- C++ 95.3%
- C 3.8%
- Python 0.9%
GodotSteam MultiplayerPeer for Godot Engine 4.x | Community Edition
An ecosystem of tools for Godot Engine and Valve's Steam. MultiplayerPeer bridges Godot's multiplayer nodes with Steam networking. For the Windows, Linux, and Mac platforms.
Notice: This MultiplayerPeer repository is now retired. This functionality and code has been merged into the main GodotSteam 4.x branch.
Additional Flavors
| Standard Module | Standard Plug-ins | Server Module | Server Plug-ins | Examples |
|---|---|---|---|---|
| Godot 2.x | GDNative | Server 3.x | GDNative | Skillet |
| Godot 3.x | GDExtension | Server 4.x | GDExtension | Skillet UGC Editor |
| Godot 4.x | --- | --- | --- | --- |
| MultiplayerPeer | --- | --- | --- | --- |
Documentation
Documentation is available here. You can also check out the Search Help section inside Godot Engine. To start, try checking 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.
Feel free to chat with us about GodotSteam or ask for assistance on the Stoat server or IRC on Libera Chat.
Donate
Pull-requests are the best way to help the project out but you can also donate through Github Sponsors or LiberaPay! You can read more about donor perks here. You can also view all our awesome donors here.
Current Build
You can download pre-compiled versions of this repo here.
Version 4.16.2
- Changed: allow users to opt-in to server_relay
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.63 or newer | 4.17 |
| 1.62 | 4.14 or 4.16.2 |
| 1.61 | 4.12 to 4.13 |
| 1.60 | 4.6 to 4.11 |
| 1.59 | 4.6 to 4.8 |
| 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 |
| 4.13 | getItemDefinitionProperty return a dictionary, html_needs_paint key 'bgra' changed to 'rbga' |
| 4.14 | Removed first argument for stat request in steamInit and steamInitEx, steamInit returns intended bool value |
| 4.16 | Variety of small break points, refer to 4.16 changelog for details |
| 4.17 | Windows projects using Steam SDK 1.63 are meant to work with Proton 11 or Experimental on Linux / Steam Deck. |
Known Issues
- Steam overlay may not work when running your game from the editor if you are using Forward+ as the renderer unless you use auto-initialization from the Project Settings menu. Your exported project should work perfectly fine in the Steam client, however.
Quick How-To
For complete instructions on how to build the GodotSteam MultiplayerPeer from scratch, please refer to our documentation's 'How-To Multiplayer Peer' 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!
License
MIT license