GodotSteam Documentation
Welcome! If you find any mistakes or have some additions to make, please check out our documentation repository here.
Where Do I Start?
In Most Cases
Most users will just want to install the GDExtension or GDNative plug-in to quickly use the standard GodotSteam.
To get started:
- Open your Godot editor
- Click on the 'Assets' tab
- Search for 'GodotSteam'
- If using Godot 4.x, install the GDExtension 4.1 / 4.2 plug-in
- If using Godot 3.x, install the GDNative plug-in
You may need to restart your editor but the plug-in does not need to be enabled manually. Check by calling the Steam class.
However, you might be trying to make something else. If so, keep reading to find out about other versions of GodotSteam.
What Are You Making?
Depending on what your end goals are, you will probably want to use a different version of GodotSteam. See which of the following best fits your project.
-
Singleplayer or Steam Networking
You are making a singleplayer game or a multiplayer game that solely uses Steam's networking classes. You also might be just checking things out. You will want the standard GodotSteam version.
Godot 4 [ | 4.3 ] [ | 1.60 ] [ | 4.11 ]
Pre-compiled Editor and Templates
GDExtension | Godot Asset Library
Godot 3 [ | 3.5.3 ] [ | 1.60 ] [ | 3.27 ]
-
Multiplayer Using Godot's Nodes
You are making a multiplayer game using Godot 4's multiplayer nodes like synchronizer and spawner but you want to use Steam's networking with it. Sounds like you want the MultiplayerPeer version.
Godot 4 [ | 4.3 ] [ | 1.60 ] [ | 4.11 ]
MultiplayerPeer Editor and Templates
ExpressoBits's SteamMultiplayerPeer
A separate project using Steam Sockets networking class with Godot's multiplayer nodes and available as a GDExtension.
-
C# In General
You are making a singleplayer or multiplayer game with only Steam's networking classes or also with Godot's multiplayer nodes in C#. You also might be checking things out with C#.
Sadly, there are currently no .NET-enabled versions of GodotSteam yet. However, you can use LauraWebdev's C# bindings with any version of standard version of GodotSteam.
If you would like to help resolve this issue, we are trying to create Github Action processes to reliably build pre-compiles and templates. Feel free to check out our existing workflows to edit in C# versions by pull request.
-
Master or Dedicated Server
You are making a master server that runs somewhere and players connected to it or a dedicated server that players can run themselves and other players connect to that. In that case, you will want to use the GodotSteam Server builds.
Godot 4 [ | 4.2.2 ] [ | 1.60 ] [ | 4.9 ]
Server Pre-Compiled Editors and Templates
Godot 3 [ | 3.5.3 ] [ | 1.59 ] [ | 3.3 ]
Differences Between Pre-Compiles and Plug-ings
For the most part, the pre-compiles and plug-ins are functionally the same. One major difference is the plug-ins have no in-editor documentation.
GDNative, however, has no access to Steam constants or enums, an issue with Rich Presence on Windows, others which are documented in the Common Issues section.
Previous versions of all branches can be found on Github.
Pre-compiled editors and template zips are self-contained and have everything you need to work with GodotSteam. The GDNative and GDExtension plug-ins require an official version of Godot Engine.
Compile It Yourself
Roll up your sleeves and build your own versions of GodotSteam. More instructions are available on each branch's readme page or up above under the Compiling tab.
-
Godot 4.x Branches
-
Server 4.x Branches
-
Godot 3.x Branches
-
Server 3.x Branches
Requirements
If you are compiling the module, GDNative, or GDExtension version yourself, there are a few things you'll need to start working regardless of which flavor you decide to try out.
-
Steamworks SDK
While we suggest the latest version of Valve's Steamworks SDK 1.59 or newer, the older versions work well too.
-
Godot Engine Source
You will need the version that matches your GodotSteam version. Use the tags section in Github.
Just make sure there are no compatibility breaks between the SDK and GodotSteam; usually noted in the readme's.
Quick Start
-
Tutorials
There currently is a wide selection of tutorials available with more in the works. Feel free to submit corrections or new ones So far there are topics such as:
-
External Resources
A list of things related to Godot and Steam like video and text tutorials, linked to other tools and plug-ins, and other Steam API projects.
-
Compiling How-To Guides
If you want to build GodotSteam from scratch, use one of these compiling how-to guides to continue on:
-
GodotSteam Example Project
A working example of some GodotSteam features based on current tutorials.
Have A Game Using GodotSteam?
Finally got your Steam store page up? Whether you are about to release your game, already did, or are just tinkering away at it, you have your game added to the list of Games Using GodotSteam section.
-
E-Mail Your Game
Please include your Steam store page and up to five additional links like social platforms, Discord invite links, development website, devlog, or anything relevant to your game or studio.
-
PR Submit Your Game
You can create your own entry in our documentation by submitting a pull request on Github. Make sure not to add any more than six additional links. You can view other entries to see how the submission should be formatted.
Need Support?
-
Github Issues
These should only be used for actual bugs in the project. Please direct questions to either an e-mail or Discord.
-
By E-Mail
Send me an e-mail with as many details as you can about your issue. Unless you are just saying hi.
-
Community Support
A bunch of really smart folks can usually help out with issues; especially things like MultiplayerPeer.
Contributing and Donating
Want to help out? There are a few ways and all of them get you listed in our contributors section. Yes, even for tiny corrections.
-
Pull Requests
A huge help is the contributions of fixes and additions through pull-requests on GitHub.
-
Donations
You can provide donations for the project through Github Sponsors or Patreon.