Skip to content

How to Add Workshop Addons to a Garry's Mod Server

The key function is resource.AddWorkshop. Here is how the whole system fits together, from collection IDs to client delivery to debugging missing content.

How GMod Workshop addons work on a server

Steam Workshop addons are downloaded by the server and pushed to connecting clients. The server itself does not host the addon files. Steam CDN delivers them to each client on join.

Addons can be referenced individually by their Workshop item ID (the number in the Workshop URL), or as a group via a Workshop Collection ID. Collection IDs are preferred for large addon sets: one line in your config vs dozens of individual entries.

Server-side addons (entities, weapons, gamemodes) must be mounted on the server. Client-side addons (HUDs, cosmetics) only need to be in the resource list so clients download them. Some addons are both: a DarkRP job pack may require models on the client and Lua on the server.

Creating a Steam Workshop Collection

  1. Log into Steam and go to the Workshop for Garry's Mod.
  2. Use the "Create Collection" option in your account's Workshop items.
  3. Add each addon you want by browsing or searching the Workshop.
  4. Set the collection visibility to Public. Servers cannot subscribe to private collections.
  5. Copy the collection ID from the URL: steamcommunity.com/sharedfiles/filedetails/?id=COLLECTION_ID

Adding the collection to your server

Method 1 - startup parameter (recommended)

./srcds_run -game garrysmod +host_workshop_collection 1234567890 +gamemode sandbox +map gm_flatgrass

Method 2 - server.cfg

// server.cfg
hostname "My GMod Server"
sv_password ""
sv_maxplayers 32
host_workshop_collection 1234567890

The collection ID tells SteamCMD to download all addons in the collection to the server on startup. Combined with resource.AddWorkshop in Lua, this covers both server mounting and client delivery.

Forcing clients to download addons (resource.AddWorkshop)

Even with host_workshop_collection set, you still need to list addons in Lua so the game client knows to download them before spawning. Create a file at garrysmod/lua/autorun/server/workshop.lua:

-- garrysmod/lua/autorun/server/workshop.lua
resource.AddWorkshop("123456789")   -- Addon Name Here
resource.AddWorkshop("987654321")   -- Another Addon

Clients who already have the addon cached via Steam will skip the download; new clients will queue the download on connect.

Addon conflicts and debugging

Common conflict scenarios: two addons modifying the same hook, model packs required by one addon but not listed in resource.AddWorkshop, or duplicate SWEPs from two similar packs.

  1. Check the server console for Lua errors on startup. They will reference the addon file and line number.
  2. Disable addons one at a time (comment out their resource.AddWorkshop lines) to isolate the conflict.
  3. Use lua_dumpstack in the server console for deeper Lua error traces.
  4. Join the server with cl_showresourceprogress 1 set to see what is being downloaded and whether any files fail.

Frequently asked questions

What is the difference between a Workshop collection ID and an individual addon ID?

A collection ID groups multiple addons together under one Steam Workshop collection. An individual addon ID refers to a single addon. For server configuration, you can use a collection ID in your startup line to download all addons at once, then reference individual IDs in resource.AddWorkshop for client delivery.

Do I need to upload Workshop addons manually via FTP?

No. GMod servers download Workshop addons automatically from Steam CDN using the collection ID or resource.AddWorkshop entries. You only need to upload files manually if you are using a non-Workshop addon (a raw .zip or .lua file not published to the Workshop).

Why are players seeing ERROR models or pink-black textures after I added an addon?

This usually means the addon is not listed in resource.AddWorkshop, so the server never told the client to download it. Add the addon's Workshop ID to your autorun/server/workshop.lua file and restart the server.

How do I know if an addon is server-side or client-side?

Check the addon's Workshop description. Most authors state this. If they do not, look at the addon's file structure: addons with files only in lua/autorun/client/ are client-side only; those with lua/entities/, lua/weapons/, or lua/autorun/server/ have server-side components.

Do Workshop addons update automatically?

Yes. Each time your server restarts, SteamCMD checks for updates on all subscribed Workshop addons and downloads any new versions before the server fully starts.

Skip the manual steps

The Mod Manager adds Workshop addons straight from the panel dashboard - no Lua file to edit, no FTP, and the Backdoor Scanner checks what lands. Try it free for 24-hour, no credit card required.