---
title: "Arma 3 Mods on a Dedicated Server: Workshop IDs, -mod, -serverMod and Keys"
description: "Install Arma 3 mods on a dedicated server: Launcher modlist or Workshop IDs, -mod vs -serverMod, optional mods, bikeys, verifySignatures, lowercase."
url: "https://www.gameserverkings.com/knowledge-base/arma-3/arma-3-mods/"
category: "Arma 3"
category_url: "https://www.gameserverkings.com/knowledge-base/arma-3/"
published: "2026-09-28T03:33:04.692Z"
updated: "2026-09-28T04:56:54.127Z"
source_format: "markdown"
site: "GameServerKings"
---

# Arma 3 Mods on a Dedicated Server: Workshop IDs, -mod, -serverMod and Keys

Arma 3 mods are Steam Workshop items that load as `@folders`, and a modded dedicated server has to agree with its players on three things: which folders are on the `-mod` line, which signing keys sit in `keys/`, and what the server lets clients join with (`verifySignatures`). This guide shows how the GameServerKings (GSK) Arma 3 panel handles all three: Workshop IDs in the Startup tab, a modlist exported from the Arma 3 Launcher, server-only mods, optional mods and the Linux lowercase problem.

It's written for server owners. If you only want to play with mods, subscribe on the Workshop and enable them in the Launcher.

> [!IMPORTANT] Workshop downloads need a Steam account that owns Arma 3
> Our Arma 3 server installs and updates through a Steam login rather than anonymously, and Workshop mod downloads only work when the Steam account set on the server owns Arma 3. Those login fields are hidden in your panel. Before you rely on the automatic download routes below, contact support so we can confirm your server has a working account, and contact us too if the console shows `Cannot download mod - Download failed`. Until then you can upload mod folders yourself (see Uploading a Mod Manually below).

## The Three Kinds of Mod on an Arma 3 Server

Bohemia's startup parameters give the server two mod lines, and the GSK egg adds a third category:

| Kind | Loaded with | Players need it? | Panel variable |
|---|---|---|---|
| Client-side (most mods: ACE, CBA_A3, RHS, maps, game modes) | `-mod=` | Yes, the same mods | **Additional Mods** or **Modlist File** |
| Server-side only (admin tools, persistence back ends) | `-serverMod=` | No | **[Advanced] Server-Side Only Mods** |
| Optional client mods (sound, UI, cosmetic) | Not loaded; only the key is installed | Their choice | **[Advanced] Optional Client-Side Mods** |

`-serverMod` content isn't broadcast to clients, so players don't see it on the server's mod list. Anything that adds units, weapons, vehicles or terrain has to be on `-mod`. The server runs it, and every client must run it too.

## Route 1: Upload a Launcher Modlist (the Easy Way)

The Arma 3 Launcher can export any preset as an HTML file. The GSK image reads that file and turns every Workshop item in it into an `@<id>` mod.

1. In the Arma 3 Launcher, load the mods you play with and use the preset **Export** option to save them as an HTML file.
2. In the panel, open **Files** and upload it to the server root as `modlist.html` (the default name in **Modlist File (Exported from A3 Launcher)**; change the variable if you prefer another filename).
3. Make sure **Automatic Updates** is `1` and restart.

With a working Steam account on the server, the console prints on boot `Checking all Steam Workshop mods for updates...`, then a `Downloading new Mod:` line for each item. The image only accepts files that contain the Launcher's `Created by Arma 3 Launcher` marker, so a hand-written list won't parse. It logs `Arma 3 Modlist file "modlist.html" could not be found, or is invalid!` and falls back to **Additional Mods**.

## Route 2: Type Workshop IDs in Additional Mods

The Workshop ID is the number at the end of the item's URL, `steamcommunity.com/sharedfiles/filedetails/?id=450814997` for CBA_A3. Put an `@` in front and end every entry with a semicolon:

```
@450814997;@463939057;
```

That line loads CBA_A3 and ACE. The egg's rules for this field are strict: no capital letters, no spaces, and no folder names that start with a number. The `@` prefix is what keeps Workshop IDs legal. Only entries in the `@<digits>` form are downloaded and kept updated. Anything else, such as `@mymod;` or a Creator DLC folder like `vn;`, is loaded as-is from the server root, so you upload it yourself.

**Additional Mods** and the modlist file stack: the server loads both and removes duplicates.

## What Happens to a Workshop Mod on Boot

With **Automatic Updates** on and a Steam account that owns Arma 3 set on the server, for every `@<id>` in any of the three mod variables, the image:

1. Compares the item's latest Workshop changelog date with the date of its folder, and downloads it through SteamCMD only if it's missing or newer.
2. Moves it to `@<id>` in the server root.
3. Renames every file and folder in it to lowercase.
4. Copies every `.bikey` it contains into `keys/`.

Step 3 matters because the server runs on Linux. Bohemia's dedicated server notes warn that "some mods such as CUP Terrains and @ALiVE will not function if there are capital letters in any of their file names". Workshop downloads are handled for you. For a mod you uploaded yourself from a Windows PC, set **[Repair] Make Mod Files Lowercase** to `1` for one boot, then set it back to `0`.

## Keys and verifySignatures

The GSK default `server.cfg` ships with `verifySignatures = 2;`. Bohemia's server config reference: it "verifies .pbos against .bisign files", and 2 means only v2 signatures are accepted. In practice:

- A player can only join with mods whose `.bikey` is in the server's `keys/` folder. Workshop mods get their keys copied automatically.
- For a mod you uploaded yourself, copy its key from `@modname/keys/` (sometimes `key/`) into the top-level `keys/` folder.
- Keep `verifySignatures` at 2. Setting it to 0 turns signature checking off entirely, so the server stops checking what players load.

**Optional Client-Side Mods** use this: the image downloads the mod, keeps only its key (renamed `optional_<id>_<name>.bikey`), and deletes the rest. Players who run the mod can join, and so can players who don't. Remove the ID from the variable and the key is removed on the next boot.

## Uploading a Mod Manually

For a mod that isn't on the Workshop, or when a download keeps timing out (huge packs like RHS or CUP):

1. On your PC, copy the mod folder from `!Workshop` in your Arma 3 install, or from wherever the author distributes it.
2. Rename it to lowercase with no spaces, for example `@mymod`.
3. Upload it to the server root over [SFTP](/knowledge-base/general/how-to-upload-files-via-sftp/). Large packs upload far more reliably over SFTP than through the browser.
4. Copy its `.bikey` into `keys/`.
5. Add `@mymod;` to **Additional Mods** (or **Server-Side Only Mods**), run one boot with **Make Mod Files Lowercase** on, and restart.

Manually uploaded mods aren't updated for you. When the author releases a new version, upload it again so the server matches what your players have.

## Creator DLC

Set **Download Creator DLCs** to `1` and restart once so the server fetches the CDLC data (it switches the update to the `creatordlc` branch). Then add the DLC's folder to **Additional Mods**. The egg's own example is `vn;` for S.O.G. Prairie Fire.

## Dependencies

Every framework a mod needs must be on the list too. The Workshop page's **Required items** box lists them. For example, ALiVE requires CBA_A3 (`@450814997`), and so do many other large mods. The image sorts the combined mod list and removes duplicates before it builds `-mod`, so there's no point hand-ordering it. The job is to make the list complete. Exporting the exact preset your group already plays with (Route 1) is the least error-prone way to do that.

For a full game mode built this way, see [Arma 3 Antistasi Server Setup (Plus the Arma Reforger Alternatives)](/knowledge-base/arma-3/arma-3-antistasi-server/). For ALiVE's server-side mod and persistence, see [ALiVE on an Arma 3 Dedicated Server: Mods, Persistence and Saves](/knowledge-base/arma-3/arma-3-alive-server/). On Arma Reforger, mods go in `config.json` instead: see [Arma Reforger mods](/knowledge-base/arma-reforger/arma-reforger-mods/).

## Troubleshooting

| Console / symptom | Fix |
|---|---|
| `Timeout downloading Steam Workshop mod` | Expected for very large mods. Restart to try again, or upload the mod manually. |
| `Cannot download mod - Download failed` | The server's Steam account can't download the mod (usually it doesn't own Arma 3). Contact support, and upload the mod manually meanwhile. |
| `Unable to complete download - Not enough storage` | Your disk quota is full. RHSUSAF and RHSAFRF alone are about 7.5 GB each. |
| Players kicked with a signature message | Missing `.bikey` in `keys/`, or a player running a mod version the server doesn't have |
| A mod "loads" but does nothing | Folder name or files not lowercase. Run one boot with **Make Mod Files Lowercase**. |
| Everyone can see the server but can't join | See [players can't connect](/knowledge-base/general/players-cant-connect/) |

Take a [backup](/knowledge-base/general/how-to-create-a-backup/) before a big mod change, especially on a persistent mission.

---

Made with 💜 by GameServerKings
