> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wasabihosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Install Steam Workshop Addons on Your Garry's Mod Server

> Set up Steam Workshop collections, API keys, and client downloads on your Garry's Mod server hosting - complete addon installation guide for Wasabi Hosting.

Steam Workshop addons are the heart of Garry's Mod — maps, weapons, playermodels, gamemodes, and tools all come from the Workshop. This guide shows you how to mount a Workshop collection on your Wasabi Hosting server, make clients download the content automatically, and keep everything up to date.

## How It Works

Server-side Workshop content involves three pieces:

1. **A Workshop collection** — a list of addons on Steam that your server should load.
2. **A Steam Web API key** — lets your server query the Workshop and download the collection.
3. **`resource.AddWorkshop`** — a small Lua script that tells joining players which addons to download so they don't see missing textures and errors.

## Step 1: Create a Workshop Collection

<Steps>
  <Step title="Open the GMod Workshop">
    Go to the Garry's Mod Steam Workshop in your browser and sign in to Steam.
  </Step>

  <Step title="Create a collection">
    Click **Browse → Collections → Create Collection**. Give it a name, set visibility to **Public** (the server can't read private collections), and save it.
  </Step>

  <Step title="Add addons">
    Browse the Workshop and click **Add to Collection** on each addon you want. Maps, weapons, and playermodels are all added the same way.
  </Step>

  <Step title="Copy the collection ID">
    Open your collection page and copy the number at the end of the URL — for example, in `steamcommunity.com/sharedfiles/filedetails/?id=1234567890` the collection ID is `1234567890`.
  </Step>
</Steps>

## Step 2: Get a Steam Web API Key

Your server needs an API key to download Workshop content:

1. Visit [https://steamcommunity.com/dev/apikey](https://steamcommunity.com/dev/apikey) while logged in to Steam.
2. Enter any domain name (e.g. `wasabihosting.com` — it isn't validated for this use).
3. Agree to the terms and click **Register**.
4. Copy the key that's displayed.

<Warning>
  Treat your API key like a password — anyone with it can act on the Workshop through your Steam account's API access. Never share it publicly or commit it to public files.
</Warning>

## Step 3: Add the Startup Parameters

In the [Game Panel](https://panel.wasabihosting.com), open your server's **Startup** tab and add these parameters (the panel may provide dedicated fields for them):

```
+host_workshop_collection 1234567890 -authkey YOURAPIKEY
```

* `+host_workshop_collection` — your collection ID from Step 1.
* `-authkey` — your Steam Web API key from Step 2.

Restart the server. On boot, the console will show it downloading and mounting each addon in the collection — the first start after adding a large collection can take several minutes.

## Step 4: Make Clients Download the Content

Mounting the collection only affects the **server**. Without one more step, players who don't own the addons will see missing textures (pink/black checkers) and ERROR models. Fix this with `resource.AddWorkshop`:

<Steps>
  <Step title="Create the script">
    Using the **File Manager** or SFTP ([File Management](/server/file-management)), create a new file at:

    ```
    garrysmod/lua/autorun/server/workshop.lua
    ```
  </Step>

  <Step title="Add one line per addon">
    Each line uses the **addon's** Workshop ID (from its Workshop page URL — not the collection ID):

    ```lua theme={null}
    -- lua/autorun/server/workshop.lua
    resource.AddWorkshop("2818480138") -- Example: a custom map
    resource.AddWorkshop("111412589")  -- Example: a weapon pack
    resource.AddWorkshop("104603291")  -- Example: playermodels
    ```
  </Step>

  <Step title="Restart and test">
    Restart the server, then join with a client that doesn't have the addons installed — you should see "Downloading..." entries on the loading screen.
  </Step>
</Steps>

<Tip>
  Only add content that players actually need to **see** (maps, models, textures, sounds). Server-side-only addons like admin mods don't need `resource.AddWorkshop` — skipping them keeps join times short.
</Tip>

## Alternative: Legacy Addons Folder

Some content isn't on the Workshop (private scripts, purchased addons from marketplaces, extracted legacy addons). These go directly into the addons folder:

1. Open the File Manager and navigate to `garrysmod/addons/`.
2. Upload the addon **folder** (it should contain files like `addon.json` or subfolders such as `lua/`, `models/`, `materials/`).
3. Restart the server.

<Note>
  Workshop `.gma` files can also be placed in `garrysmod/addons/` and the server will mount them directly. Folder-based addons must keep the correct internal structure — an addon nested one folder too deep won't load.
</Note>

## Keeping Addons Updated

* **Workshop collection addons** update automatically — the server re-checks the collection on each restart, so a simple restart pulls the latest versions.
* **Adding/removing addons** — edit the collection on Steam, then restart the server. Remember to update `workshop.lua` if you added client-visible content.
* **Legacy folder addons** never auto-update; re-upload new versions manually.
* Schedule a nightly restart via the panel's **Schedules** feature to keep content fresh and memory usage low.

## Performance Considerations

Every mounted addon costs startup time, memory, and often tickrate. Symptoms of addon bloat include long join times, low FPS for everyone, and server lag spikes. Audit your collection regularly and remove what you don't use — then see the [Server Optimization guide](/games/garrysmod/server-optimization) for deeper tuning.

Before major addon overhauls, take a [backup](/server/backups) so you can roll back a broken configuration in one click.

<Card title="Host your addon-packed server with Wasabi" icon="rocket" href="https://wasabihosting.com/game-servers/garrysmod">
  Garry's Mod hosting from **€12.50/month** on Ryzen 7950X3D/9950X hardware — fast NVMe storage means even big collections mount quickly.
</Card>
