A simple script that updates, builds, packages, and uploads your game from Godot to Steam.
- Updates your project (changes the version of your project to an inputted version)
- Builds your project for Windows, MacOS, and Linux
- Note that your export configurations should be called "Windows", "macOS" and "Linux".
- Packages your builds into .zip files for non-Steam uploading
- Generates Steam scripts and uses them to upload your content to a content depot, and each executable to a platform-specific depot.
- (Optional) Send an update message to a given Slack channel via the Slack API. Will not trigger if
SLACK_TOKENorSLACK_CHANNEL_IDare not defined.
All custom values and project-specific settings are placed in a .env file next to the make_build.py file.
GODOT_PATH = # Path to Godot executable
STEAMCMD_PATH = # Path to steamcmd exectuable
STEAM_USERNAME = # Your Steam username
PROJECT_PATH = # Path to your Godot Project
PROJECT_NAME = # Name of your game (for executables)
APPID = # Steam appid
CONTENT_DEPOT_ID = # Content depot ID
WINDOWS_DEPOT_ID = # Windows depot ID
MACOS_DEPOT_ID = # macOS depot ID
LINUX_DEPOT_ID = # Linux depot ID
# Optional
SLACK_TOKEN = # Your Slack app token
SLACK_CHANNEL_ID = # Your Slack channel IDAll required Python packages are listed in requirements.txt. If you want to support Slack notifications, you'll need a Slack app with the chat.write permission. To upload to Steam of course you'll need a Steamworks account. :^)
Written by Angus Goucher @gusg21, 2025