Skip to content

Steam Workshop

Steam Workshop provides mod hosting, discovery, and distribution integrated directly into Steam. If your game is on Steam, Workshop is the most natural place for your modding community.

Players subscribe to mods through the Steam Workshop in their game client. For dedicated servers, the process is different: the server uses SteamCMD to download mods by their Workshop item ID.

Hosting platforms and server admins can download Workshop mods using SteamCMD. Some game devs automate this process as to avoid the clunkly/unreliable SteamCMD process.:

steamcmd +login anonymous +workshop_download_item YOUR_APP_ID WORKSHOP_ITEM_ID +quit

This downloads the mod to SteamCMD’s workshop content directory. The server admin or hosting platform then copies or symlinks the mod files into the server’s mods directory.

Key points:

  • Workshop downloads via SteamCMD work with anonymous login (no purchase required) for most games
  • Each mod is identified by a numeric Workshop item ID
  • SteamCMD downloads the latest version of the mod by default

SteamCMD can check for and download updated mods before each server start. Hosting platforms typically run a SteamCMD update pass as part of their server startup routine.

Your server should detect when mods have been updated and reload or restart as needed. Log the versions of loaded mods at startup so admins can verify what’s running.

Steam Workshop does not natively support downloading a specific older version of a mod. Mod authors can push updates at any time, and all servers get the latest version.

If your game needs version pinning (running a specific mod version regardless of updates), you’ll need to support this at the server level by storing mod versions locally and not re-downloading.

Steam Workshop supports collections: curated lists of mods that work together. However, SteamCMD’s workshop_download_item command downloads individual items, not entire collections. To install all mods in a collection, you need to resolve the collection’s contents first (via the Steam Web API’s ISteamRemoteStorage/GetCollectionDetails endpoint) and then download each item individually.

Hosting platforms typically automate this: query the collection, iterate the item list, and run workshop_download_item for each mod.

When creating your mod framework, define how Workshop items should be structured so the community produces consistent, automatable mods:

  • Each Workshop item should contain a manifest file your server can read
  • Define required fields (mod ID, version, dependencies)
  • Document the expected file structure so modders know where to put their files
  • Provide a template or example mod
  • Workshop mods are stored outside your server’s directory by SteamCMD. Your server needs to know where to find them, either by accepting a mods path argument or by having the hosting platform copy mods into the expected location.
  • If a Workshop mod is deleted by its author, it can no longer be downloaded. Servers that depend on it will lose the mod on their next update pass. There’s no built-in fallback for this.
  • Rate limits apply to SteamCMD Workshop downloads. During high-demand periods (game launch, major mod update), downloads may be throttled.