/GodotSteam

An open-source and fully functional Steamworks SDK / API module and plug-in for the Godot Game Engine.

Primary LanguageC++MIT LicenseMIT

GodotSteam for Godot Engine

An open-source and fully functional Steamworks SDK / API module and plug-in for the Godot Game Engine (version 4.x). For the Windows, Linux, and Mac platforms.

Additional Flavors

Pre-Compiles Plug-ins Server Examples/Demos
Godot 2.x GDNative Server 3.x Godot 3.x
Godot 3.x GDExtension Server 4.x Godot 4.x
Godot 4.x --- GDNative Server 3.x
Multiplayer Peer --- GDExtension Server 4.x

Documentation

Documentation is available here. You can also check out the Search Help section inside Godot Engine after compiling it with GodotSteam.

Feel free to chat with us about GodotSteam on the Discord server.

Current Build

You can download pre-compiled versions of this repo here.

Version 4.9.1 Changes

  • Fixed: fixed typo in RESULT_ADMINISTRATOR_OK, thanks to sepTN
  • Fixed: fixed a variety of types and code corrections, thanks to bobsayhilol

Version 4.9 Changes

  • Added: missing user_achievement_icon_fetched callback
  • Added: new functions and enums to Apps class
  • Added: new Steam Timeline class functions, enums, and constants
  • Added: new functions to UGC class
  • Added: new enum BetaBranchFlags
  • Added: new value NETWORKING_CONFIG_IP_LOCAL_HOST_ALLOW_WITHOUT_AUTH for NetworkingConfigValue enum
  • Changed: updated for Steamworks SDK 1.60
  • Changed: network_messages_session_failed callback now returns the Steam ID associated with the user whose session failed
  • Changed: global_stats_received had call result name change under-the-hood, does not affect anything
  • Changed: sendMessages() now returns the message result
  • Changed: getQueryUGCResult() now passes back additional value total_files_size
  • Changed: enum RemoteStoragePlatform now cast as uint32_t, fixes Rust compatibility, thanks to GreenFox
  • Changed: item_installed signal now returns additional data - legacy_content and manifest_id
  • Fixed: incorrect signal name for inventory_definition_update, thanks to Foxushka

You can read more change-logs here.

Compatibility

While rare, sometimes Steamworks SDK updates will break compatilibity with older GodotSteam versions. Any compatability breaks are noted below. Newer API files (dll, so, dylib) should still work for older versions.

Steamworks SDK Version GodotSteam Version
1.59 or newer 4.6 or newer
1.58a or older 4.5.4 or older

Versions of GodotSteam that have compatibility breaks introduced.

GodotSteam Version Broken Compatibility
4.8 Networking identity system removed, replaced with Steam IDs
4.9 sendMessages returns an Array

Known Issues

  • Steam overlay will not work when running your game from the editor if you are using Forward+ as the renderer. It does work with Compatibility though. Your exported project will work perfectly fine in the Steam client, however.
  • Using MinGW causes crashes. I strongly recommend you do not use MinGW to compile at this time.

"Quick" How-To

For complete instructions on how to build the Godot 4.x version of GodotSteam scratch, please refer to our documentation's 'How-To Modules' section. It will have the most up-to-date information.

Alternatively, you can just download the pre-compiled versions in our Releases section and skip compiling it yourself!

Donate

Pull-requests are the best way to help the project out but you can also donate through Github Sponsors!

License

MIT license