How to Install Addons on Your Garry's Mod Server

Workshop collections, resource.AddWorkshop and manual installation - and why your players see ERROR signs even though the addons work fine on the server.


Two things people confuse: server and client

This is the key to Garry's Mod addons, and the misunderstanding is behind almost every support ticket:

The server The player
What it needs The files, so the code can run and the map can load Models, materials and sounds, so there is something to see
How +host_workshop_collection or files in garrysmod/addons/ resource.AddWorkshop()
If missing The addon does not work ERROR signs and purple-black checkerboards

A workshop collection alone does not deliver addons to your players. The server mounts them, but the client is only told about two things automatically: the map the server is running, if it is in your collection, and the gamemode you run, if it has a workshop ID. Everything else - playermodels, weapons, props - has to be registered with resource.AddWorkshop.

Lua-only addons such as ULX, DarkRP and admin mods belong only on the server. They have no content for players to download.


Step 1 - Create a workshop collection

  1. Subscribe to at least one addon in the Garry's Mod workshop.
  2. Use Collections → Create Collection and add your addons.
  3. Set it to Public or Unlisted. The server cannot read a private collection.
  4. Copy the ID from the address - the number after ?id=.

Collections must not contain other collections. Nested collections are not resolved and the inner addons never load. Put addons directly in the collection.


Step 2 - Point the server at the collection

Stop the server in the Potionhost control panel, go to Startup, and add:

+host_workshop_collection 157384458

Start the server again. The first startup takes longer while everything downloads.

You do not need a Steam Web API key. Older guides say to add -authkey - that is a requirement in CS:GO and CS2, not in Garry's Mod. You can safely leave it out.

A typical complete startup line:

-game garrysmod -port 27015 +maxplayers 32
+host_workshop_collection 157384458
+gamemode sandbox +map gm_construct
+sv_setsteamaccount YOUR_GSLT

+gamemode takes the folder name under garrysmod/gamemodes/ - so darkrp, not "DarkRP". +map takes the map name without .bsp.


Step 3 - Make sure players get the content

Create the file garrysmod/lua/autorun/server/workshop.lua and list one addon ID per line:

resource.AddWorkshop( "150455514" )
resource.AddWorkshop( "104606562" )
resource.AddWorkshop( "2818480138" )
  • The IDs are individual addons - never a collection ID
  • Only addons with content: models, materials, sounds, maps. Lua-only addons gain nothing
  • There is an overall limit of 8192 files
  • Restart the server for the file to take effect

Manual installation without the workshop

If you have an addon that is not on the workshop, it has to be unpacked first. Workshop addons are distributed as .gma files, and the server cannot use those directly.

Use the gmad tool that ships with Garry's Mod:

gmad.exe extract -file "my_addon.gma" -out "where_it_goes"

Then upload the extracted folder to garrysmod/addons/. The structure has to look like this:

garrysmod/addons/my_addon/
├── lua/
├── materials/
├── models/
├── maps/
└── sound/

The most common mistake is one extra folder level. If your files sit in addons/my_addon/my_addon/lua/, they will not load. The top level inside the addon folder has to be lua, materials, models and so on.

The server runs Linux. Every file and folder must be lowercase with no spaces, or it simply will not be found.


Content from other Source games

If you run a map that uses Counter-Strike: Source textures, the server has to mount that game. That happens in garrysmod/cfg/mount.cfg:

"mountcfg"
{
  "cstrike"  "/path/to/cstrike"
}

Remember that players also have to own and mount the game themselves, otherwise they see purple-black checkerboards no matter what the server does.


Verify that it works

In the console during startup there is a line per addon:

Mounting Addon 'M9K Heavy Weapons' (128091208)

If you see Download Failed!, that is the line to act on.

To check that players receive the content, look for:

Making workshop map available for client download

Live check from the console:

lua_run PrintTable( engine.GetAddons() )

You get a list with mounted and downloaded per addon. Note that it only shows workshop addons - manually installed folders do not appear.


Troubleshooting

Symptom Likely cause Fix
Players see ERROR signs and purple checkerboards The addon is mounted on the server but not registered for download Add resource.AddWorkshop
Purple checkerboards on the map Missing game content, such as CS:S Set up mount.cfg - and the player must own the game
host_workshop_collection is unset Spaces in the parameter Write it as one token followed by one number
No addons download The collection is private Set it to public or unlisted
Only some addons load The collection contains other collections Put addons directly in it
Download Failed! on one large addon A known issue with large files Install that one addon manually
A manual addon does not load An extra folder level, or uppercase filenames Fix the structure, use lowercase
.gma uploaded directly The server does not use packed files Extract it with gmad first
The gamemode does not start +gamemode does not match the folder name Use the folder name, e.g. darkrp
Lua changes have no effect Autorun files are not reloaded at runtime Restart the server

Good advice

  • Add addons in small batches and restart in between - then you know what broke the server.
  • Join as a completely fresh player with no subscriptions to test whether resource.AddWorkshop is set up correctly.
  • Keep the collection tidy. Every addon costs startup time and disk space.
  • Set sv_setsteamaccount with a GSLT - without it your server is deprioritised in the server list.
  • Back up garrysmod/data/ before major changes. That is where your players' data lives.

Stuck on a collection that will not download? Send us the collection link in a ticket and we will look at it.

Garry's ModOrder now

Guide Information

Published
August 23, 2026
Last Updated
September 8, 2026
Views
107