Logo

Configure a Steam Workshop collection for your GMod server

Configure a Steam Workshop collection for your GMod server

`+host_workshop_collection`, collection ID, automatic client download: complete guide to distributing your GMod addons via Steam Workshop on VeryCloud Wisp.

Introduction

Steam Workshop is the canonical way to distribute GMod addons: custom maps, weapons, gamemodes, props. The server references a collection (numeric ID) and each client auto-downloads it on connection. No FTP, no FastDL for workshop assets — Steam handles everything.

Prerequisites

  • A Garry's Mod server at VeryCloud
  • A Steam account
  • Access to Startup in Wisp
  • A GSLT (Game Server Login Token) — see dedicated tutorial on the docs

Step 1: Create a Workshop collection

  1. https://steamcommunity.com/workshop/browse/?appid=4000
  2. Sign in
  3. Top right → Your FilesWorkshop CollectionsCreate Collection
  4. Name it, set Public or Unlisted
  5. Add items — click Add to Collection on each addon

Step 2: Get the collection ID

URL format:

https://steamcommunity.com/sharedfiles/filedetails/?id=2987654321
                                                       ^^^^^^^^^^
                                                       Your ID

Step 3: Configure the server

In Wisp → Startup:

WORKSHOP_COLLECTION_ID = 2987654321
GSLT_TOKEN             = your_steam_token

Variable names depend on the Wisp image. The result must produce:

srcds.exe -game garrysmod -gamemode darkrp +map rp_downtown_v4c_v2 \
  +host_workshop_collection 2987654321 \
  +sv_setsteamaccount YOUR_GSLT_TOKEN

⚠️ Without a valid GSLT, workshop download is disabled on public servers. Classic trap.

Step 4: Restart and observe

Console output:

[steamworks] Downloading workshop item 2876543210...
[steamworks] Workshop item 2876543210 downloaded
[gmod] Collection 2987654321 loaded with 47 items

Step 5: Client-side distribution

When a player connects:

  1. Client compares local workshop list with server's
  2. Auto-downloads missing addons via Steam
  3. Joins once complete

Uses Steam CDNs — fast and reliable.

Step 6: Update the collection

You can modify the collection live. To apply:

  1. Server reloads on next Restart
  2. Clients re-check on next connection

No server cache purge needed, Steam handles it.

Step 7: Server vs client addons

Not all workshop items are needed server-side. Examples:

  • Map — REQUIRED server-side (else changelevel fails)
  • Custom player models — useful for validation, mostly client-side
  • SWEP/SENT scripts — REQUIRED server-side

In practice, put everything in the collection — duplication costs little (Steam dedup) and guarantees coherence.

Step 8: Maps that don't load

If changelevel <map_name> crashes:

  • Map not in the collection (add it)
  • Wrong map name (look at the internal name on the workshop page, not the marketing title)

Step 9: Multiple collections

GMod supports only one collection at a time. Either keep one big collection (recommended) or maintain several and swap the ID in startup per event.

Troubleshooting

Players don't download anything — GSLT not set or expired; players disabled workshop downloads in GMod options. Server downloads in a loop at boot — workshop item deleted by author; reinstall from Settings. Workshop authenticated failed — invalid/revoked GSLT. Regenerate via https://steamcommunity.com/dev/managegameservers.

Useful commands

lua_run print(steamworks.GetSubscribed())
lua_run steamworks.RequestWorkshopDownload()
lua_run for _,v in pairs(file.Find("addons/*.gma", "MOD")) do print(v) end

Conclusion

Steam Workshop = clean, automatic distribution for GMod addons. One collection, one ID in startup, one GSLT, restart, and your players download alone. No FastDL needed for most cases (only for large non-workshop custom assets).

Going further: FastDL for non-workshop files, local mods in /addons/, audit items that crash.

Resources

Join our Discord community server

For any questions, suggestions, or just to chat with the community, join us on Discord!

900+Members