411 words
2 minutes
Upload Game Binaries to Steam with steamcmd and ContentBuilder

This is going to be a quick guide to setting up your steamsdk to upload game binaries to steam using the cli. You can upload a build through the browser, but it takes longer and I also use this method as a way to automate my uploads whenever I have a game update

Steam SDK#

To proceed with this tutorial you will need to have the steam sdk installed on your computer. You can get it from the Steamworks page.

Core Setup#

The setup is the same across all OSs. Once you have the sdk, navigate to

tools/ContentBuilder/

Once here there are two folders that you will be working with primarily. content which is where you will end up putting your game binaries and scripts which will store the information steam needs to upload your game.

To start, we want to set up an app and depot vdf file. Go to your Steamworks page and get the ID for your App and Depot. Steam uses the vdf files are configuration files. There should be samples in there but in case there aren’t, here are mine.

Depot file

Change the name of the file to depot_YOUR-DEPOT-ID.vdf or create a new one if there isn’t a depot file already

"DepotBuildConfig" { "DepotID" "YOUR-DEPOT-ID" "contentroot" "D:\steamsdk\tools\ContentBuilder\content" \\ absolute path to your content folder "FileMapping" { "LocalPath" "*" "DepotPath" "." "recursive" "1" } "FileExclusion" "*.pdb" \\ this excludes debugging symbols. Can be whatever you want }

App file

Change the name of the file to app_YOUR-DEPOT-ID.vdf or create a new one if there isn’t an app file already

"appbuild" { "appid" "YOUR-APP-ID" "desc" "Default Build Script" "buildoutput" "D:\steamsdk\tools\ContentBuilder\output" \\ absolute path to your content folder "contentroot" "" "setlive" "beta" \\ optional. This will make it so this build will automatically be set to live for my beta channel "preview" "0" "local" "" "depots" { "YOUR-DEPOT-ID" "D:\steamsdk\tools\ContentBuilder\scripts\depot_YOUR-DEPOT-ID.vdf" \\ path to your depot file } }

That ends the setup

Usage#

First, you want to add whatever you want to upload to the content directory. Once added, you can run the deployment command

Windows

PATH-STEAM-SDK\steamsdk\tools\ContentBuilder\builder\steamcmd.exe +login STEAM_USERNAME STEAM_PASSWORD +run_app_build_http PATH-STEAM-SDK\steamsdk\tools\ContentBuilder\scripts\app_YOUR-APP-ID.vdf +quit

Linux

PATH-STEAM-SDK\steamsdk\tools\ContentBuilder\builder_linux\steamcmd.sh +login STEAM_USERNAME STEAM_PASSWORD +run_app_build_http PATH-STEAM-SDK\steamsdk\tools\ContentBuilder\scripts\app_YOUR-APP-ID.vdf +quit

If it does not work and says: /home/steam/steamcmd/linux32/steamcmd: No such file or directory you will need to install lib32gcc1:

sudo apt-get install lib32gcc

This library helps run compiled c/c++ code

OS-X

PATH-STEAM-SDK\steamsdk\tools\ContentBuilder\builder_osx\steamcmd.sh +login STEAM_USERNAME STEAM_PASSWORD +run_app_build_http PATH-STEAM-SDK\steamsdk\tools\ContentBuilder\scripts\app_YOUR-APP-ID.vdf +quit

Last note, the output folder stores CSD and CSM files that are used for caching. You don’t need to keep them, but they do speed up builds.

Upload Game Binaries to Steam with steamcmd and ContentBuilder
https://edwardbeazer.com/posts/upload-game-binaries-to-steam-with-steamcmd-and-contentbuilder/
Author
Edward Beazer
Published at
2021-12-02