Skip to content

An ecosystem of tools for Godot Engine and Valve's Steam. For the Windows, Linux, and Mac platforms.

License

Notifications You must be signed in to change notification settings

GodotSteam/GodotSteam

Repository files navigation

GodotSteam for Godot Engine 4.x | Community Edition

An ecosystem of tools for Godot Engine and Valve's Steam. For the Windows, Linux, and Mac platforms.

Additional Flavors

Pre-Compiles Plug-ins Server Examples
Godot 2.x GDNative Server 3.x Skillet
Godot 3.x GDExtension Server 4.x ---
Godot 4.x --- GDNative ---
MultiplayerPeer --- GDExtension ---

Documentation

Documentation is available here. You can also check out the Search Help section inside Godot Engine.

Feel free to chat with us about GodotSteam or ask for assistance on the Discord server.

Donate

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

Current Build

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

Version 4.12 Changes

  • Added: new Timeline functions, call results, and enums
  • Added: new Inputs enums for Horipad; INPUT_ACTION_ORIGIN
  • Added: new Networking config enum NETWORKING_CONFIG_SEND_TIME_SINCE_PREVIOUS_PACKET
  • Added: new Networking config enums for fake packet jitter; NETWORKING_CONFIG_FAKE_JITTER_
  • Changed: equipped_profile_items callback now sends from_cache bool
  • Changed: first argument for steamInit and steamInitEx no longer calls for stats as they are synced by client; left to prevent compatibility breakage
  • Fixed: getAchievement and related achievement functions breaking under rare conditions
  • Fixed: incorrect type for set_inventory_update_handle
  • Removed: setTimelineGameMode function which was removed in 1.61
  • Removed: current_stats_received callback removed for redundancy
  • Removed: Google Stadia, Nintendo, Epic Games, and WeGame Networking identity types fully removed, from 1.61
  • Removed: unncessary commenting

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
4.11 setLeaderboardDetailsMax removed

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.
  • When self-compiling, do not use MinGW as it will cause crashes.

Quick How-To

For complete instructions on how to build the Godot 4.x version of GodotSteam from 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!

To start, check out our tutorial on initializing Steam. There are additional tutorials with more in the works. You can also check out additional Godot and Steam related videos, text, additional tools, plug-ins, etc. here.

License

MIT license