How to upload a build to Steam with SteamPipe

2 min read

By Eduardo Orellana ·

SteamPipe is how every build reaches Steam. In Steamworks, define a launch option and depots, publish, and add the depots to a package. Put your game files in the SDK's tools\ContentBuilder\content folder, write an app_build_<AppID>.vdf script mapping them to a depot, and run steamcmd with +login and +run_app_build. The build then appears under Your Builds; beta branches can go live from the script, but the default branch is set live by hand in Steamworks.

Every Steam game, from every engine, ships the same way

Whatever the engine, the last step is SteamPipe: Valve's content system, driven by steamcmd and two small text files. It chunks, compresses, encrypts and uploads your files, and only sends what changed next time.

In Steamworks, once

  1. General Installation Settings: at least one launch option, pointing at your executable.
  2. Depots: rename the default depot; add one per operating system if you ship more than one.
  3. Publish the changes.
  4. Associated Packages & DLC: add the depots to your package, or nobody owns them.
  5. A build account with Edit App Metadata and Publish App Changes To Steam permissions.

The build script

Put the game in tools\ContentBuilder\content and a script in tools\ContentBuilder\scripts:

"AppBuild"
{
  "AppID" "1000"
  "Desc" "First build"
  "ContentRoot" "..\content\"
  "BuildOutput" "..\output\"
  "Depots"
  {
    "1001"
    {
      "FileMapping"
      {
        "LocalPath" "*"
        "DepotPath" "."
        "recursive" "1"
      }
    }
  }
}

Upload and set live

Run steamcmd from the ContentBuilder folder:

tools\ContentBuilder\builder\steamcmd.exe +login <account> <password> +run_app_build ..\scripts\app_build_1000.vdf +quit

Then open Your Builds in Steamworks. A beta branch can be set live by the script's SetLive field; the default branch, which players get, is set live by hand there.

Tips from Valve: set Preview to 1 to test a script without uploading; read the .log files in the output folder when a build fails; on Windows the SDK includes a SteamPipe GUI.

Where Flockbay fits

Flockbay makes the native Windows build of your Godot game and prepares the Steam store page as a .zip. The upload is yours: Flockbay never uploads to Steam.

Questions

Can I upload to Steam without the command line?
On Windows, the Steamworks SDK includes a SteamPipe GUI that writes the scripts and uploads for you.

Flockbay

The free AI game maker for Windows, macOS and Linux.