Last checked: September 27, 2026. The dedicated server loads Garry’s Mod Workshop addons via a Workshop collection. From Garry’s Mod 2026.09.22, it can alternatively pull individual IDs from cfg/srcds_workshop_ids.txt. resource.AddWorkshop() distributes required files to clients, but does not install any addons on the server itself. The current Facepunch guide describes both server methods.
Requirements
You need access to the Workshop collection setting of your Garry’s Mod server and a public or unlisted collection. In the game-serverhosting panel, the WORKSHOP_ID variable is provided for this. Check addon dependencies and test changes in small batches. The current Facepunch guide does not generally require a Steam Web API key for this process.
Creating a Workshop Collection
- Go to the Steam Workshop
- Create a new collection
- Add all the addons you want
- Copy the collection ID
The collection ID is in the URL of the Steam collection. Copy only the numeric ID, not the full URL. Make sure the collection is public or unlisted; according to Facepunch, the server cannot fetch private collections. If an addon is removed, set to private, or updated by its author, this can affect your server startup or the client downloads. So always check the server console after larger changes.
Loading the Collection on the Server
In the game-serverhosting panel, enter the numeric collection ID under the startup variables at Workshop Collection (WORKSHOP_ID) and restart the server. On self-managed servers, the corresponding launch parameter is:
+host_workshop_collection <collection_id>

Check the server console for Workshop messages. If an error occurs, first check the ID, visibility, and availability of the addons. A blanket -authkey step is not part of the current Facepunch process.
Individual Workshop IDs Instead of a Collection
With Garry’s Mod 2026.09.22 or newer, you can create the file cfg/srcds_workshop_ids.txt in addition to or instead of a collection. The format is described in the dedicated server documentation. Check the installed server version before using this method. The file contains IDs of individual addons, not a collection ID. Use the documented KeyValues format, not JSON and not a plain list of lines:
"my_workshop_addons"
{
"1" { "wsid" "YOUR_ADDON_ID" }
}
Replace YOUR_ADDON_ID with a real numeric addon ID; additional entries get their own keys such as "2".
Players Download Required Content
resource.AddWorkshop() triggers the download for clients. It does not install any addon on the server. Use it selectively for additional models, materials, or sounds:
-- garrysmod/lua/autorun/server/workshop.lua
resource.AddWorkshop("YOUR_ADDON_ID")
Replace YOUR_ADDON_ID with the numeric Workshop ID of an available addon with client content. Pure Lua addons do not need this entry. The current map and a Workshop-capable game mode are automatically flagged for clients from the server collection. Check the Facepunch documentation on resource.AddWorkshop and test joining without a local addon subscription.
Popular Addon Categories
| Category | Examples |
|---|---|
| Maps | ttt_minecraft, ph_office |
| Weapons | M9K Weapons, TFA Base |
| Playermodels | PM + Playermodel Selector |
| Tools | Wiremod, Precision Tool |
| HUDs | DarkRP HUD, TTT HUD |
These categories are typical examples, not a recommendation for every setup. DarkRP, TTT, Prop Hunt, and Sandbox servers have different requirements. What matters is that addons fit the game mode, are actively maintained, and do not bring duplicate functionality. Two weapon bases, multiple HUDs, or multiple admin tools can interfere with each other.
If you also run other games with mod workflows, the principles from the Project Zomboid Workshop Guide and the Installing ARK Mods Guide will help: first clarify dependencies, then enter the IDs cleanly, and finally verify with logs and a client test.
Verifying the Result
Restart the server after every larger change and check three things. First: the console should show no Workshop errors for the collection or the individual IDs. Second: the desired addons should be available on the server side, for example maps in the map list or tools in the appropriate game mode. Third: a test client without subscriptions should download the required content. Then also test the actual addon function and the next map change; the presence of files does not prove error-free Lua execution.
If possible, test with a client that has not already subscribed to the addons locally. Otherwise you can easily miss that the automatic download does not work for new players. For public servers, it is also worth adding a short note in the server description if very large content has to be downloaded.
Troubleshooting
- Addon does not load on the server: Check the collection ID, visibility, Workshop page, and startup console. The single-ID file requires version 2026.09.22 or newer.
- Players see missing textures: Check addon dependencies and client distribution. Since the July 2025 update, most CS:S content is included; maps and some other files are excluded. Do not upload third-party retail content packs to the Workshop: the Facepunch Workshop rules prohibit this.
- Download takes a long time: First measure which packages are actually being requested. Remove unused maps, duplicate models, and old packages from the collection and the additional
resource.AddWorkshop()list; a leftover autorun entry can still trigger the client download.
FAQ
Do I always need a Workshop collection?
No. A collection is convenient for multiple addons. Since version 2026.09.22, the server can also load individual IDs from cfg/srcds_workshop_ids.txt. resource.AddWorkshop() only controls the client download.
What is the difference between a collection ID and a Workshop ID?
The collection ID identifies a collection and belongs in the panel variable WORKSHOP_ID or in +host_workshop_collection. Individual addon IDs can go in cfg/srcds_workshop_ids.txt from version 2026.09.22. resource.AddWorkshop() also uses a single addon ID, but only for client files.
Why do players see missing textures?
Check the affected addon, dependencies, and the client download. Garry’s Mod has included most CS:S assets since July 2025; maps and some files are excluded. A blanket “CSS Content Pack” is not a safe fix.
Do I have to restart the server after every addon change?
For changes to launch parameters, the Workshop collection, or server-side Lua files, you should restart. Only that way can you reliably verify that the server loads the collection correctly and registers the client resources.
How large should a collection be?
As small as possible and as large as necessary. Remove addons that your game mode does not actively use. This makes troubleshooting easier, keeps downloads manageable, and makes changes during live operation easier to control.