Install Arma 3 server mods by downloading each Workshop item with SteamCMD (or uploading a complete manual addon), placing it in an @ModName folder, and adding that folder to the correct startup parameter. Put mods that every player must run in -mod; keep administrative and other server-only addons in -serverMod. Clients must have matching required mods and compatible versions, and signature verification requires the corresponding .bikey files in the server’s key directory.
The process is the same on a self-hosted machine or a managed host, but Linux path rules, shell escaping, firewall/NAT settings, and the host’s control panel differ. The procedure below covers a fresh dedicated-server installation, Workshop and manual files, launch commands, signatures, networking, and the failures that most often prevent a modded server from appearing or accepting players.
What do I need before installing Arma 3 server mods?
Prepare the dedicated server, a writable installation directory, network access, and a way to transfer files. The official dedicated-server requirements list the following baseline hardware; the publication year is not stated on that page.
| Component | Minimum | Recommended |
|---|---|---|
| Memory | 2 GB RAM | 4 GB RAM |
| CPU | 2.4 GHz dual-core | 3.5 GHz quad-core |
| Storage | 32 GB HDD | 32 GB SSD |
You also need SteamCMD, the dedicated-server application ID 233780, and the game Workshop application ID 107410. The dedicated package can be installed by a server account that does not own the regular game.
- Choose a server root with enough free space for the base files, Workshop downloads, mod updates, logs, missions, and backups.
- Have administrator access to Windows or Linux, or FTP/File Manager access on a managed host.
- Record every mod’s dependencies, required load order, supported game version, and whether it is client-required or server-only.
- Use a real public IPv4 connection. Bohemia Interactive’s dedicated-server documentation states that an Arma 3 server does not support IPv6 or DS-Lite IPv4 through an IPv6 tunnel.
How do I install the Arma 3 dedicated server with SteamCMD?
SteamCMD installs the server files independently of the retail game. Create a dedicated folder, sign in with the server account, update application 233780, validate the files, and then exit SteamCMD.
- Install SteamCMD for your operating system and create an empty server directory. On Windows, a path such as
C:arma3serveris convenient; on Linux, use a directory owned by the account that will run the service. - Start SteamCMD and set its install directory with
force_install_dir. Log in with the server account. - Run
app_update 233780 validate. Validation downloads missing files and checks the existing installation. - Run
quitafter the update completes. The server executable and its support files are now in the selected directory.
For an unattended Windows invocation, the equivalent command sequence is:
steamcmd +force_install_dir C:arma3server +login <server-account> +app_update 233780 validate +quit
Keep credentials out of shared scripts and command histories where possible. On a managed host, the provider may perform this installation and expose only a control panel, FTP area, and startup-command editor.
How do I download an Arma 3 Workshop mod with SteamCMD?
Copy the numeric item ID from the mod’s Steam Workshop URL, then download it against Workshop app 107410. The command downloads the Workshop content but does not automatically create the @ModName folder that the server launch command expects.
- Open the Workshop item’s URL and copy its numeric
idvalue. - In SteamCMD, run
workshop_download_item 107410 <workshop-id> validate. - Find the resulting files under the Steam Workshop content tree, in the directory for app
107410and that item ID. - Expose the content to the server as a folder whose name begins with
@. You can copy the downloaded directory or create a symbolic link from the server root, for example:
ln -s /path/to/steamapps/workshop/content/107410/<workshop-id> /path/to/arma3server/@YourMod
The link or copy must contain the mod’s complete structure, including its addons directory and any metadata supplied by the author. Pointing -mod at only the numeric Workshop ID will not load the addon.
How should I update Workshop content?
Stop the server before replacing a mod, run the same workshop_download_item command with validate, and then restart. If the author changes dependencies or load order, read the mod’s documentation and update the startup list and every player’s installation together.
How do I install a manually downloaded mod?
Manual installation is required for files that are not distributed through Workshop and is also useful when a host’s Workshop downloader cannot access a particular archive. Upload the complete @ModName directory to the server root or to another location supported by your startup parameter.
- Extract the archive locally without flattening its directory tree.
- Verify that the top-level directory starts with
@, such as@MyAddon, and that the expectedaddonsfolder is directly inside it. - Use FTP or the host’s File Manager to upload that folder to the Arma 3 server directory.
- Preserve case, hidden files, and nested directories. Re-uploading only the archive’s inner
addonsfolder leaves the launch path incorrect. - Obtain updates from the mod author and replace the old folder during a maintenance window.
Managed-host guides commonly provide both a one-click Workshop installer and FTP access. The one-click tool handles the download, while manual mode still requires an @-prefixed folder and an explicit command-line entry.
What is the difference between -mod and -serverMod?
-mod loads client-required content and advertises those mods to connecting players. -serverMod loads server-only content, such as administration or persistence tools, without requiring clients to install or enable it.
| Parameter | Use it for | Player requirement | Example |
|---|---|---|---|
-mod |
Gameplay, units, maps, frameworks, or any addon whose files run on clients | Every player needs the same required mods and compatible versions | -mod=@CBA_A3;@ace;@YourMod |
-serverMod |
Administration, persistence, logging, or other server-only utilities | Players are not advertised these as required client mods | -serverMod=@AdminTools;@Persistence |
A mod can be technically server-capable yet still require a client component; follow its author documentation rather than moving it solely because the server starts. Loading a client-required addon through -serverMod commonly produces missing-content errors, while placing a server-only utility in -mod unnecessarily forces every player to install it.
How do I write the startup command on Windows and Linux?
Use the folder names, not Workshop numbers, in the launch parameters. Keep the configuration filename explicit with -config; the file itself may have any name.
Windows example
arma3server_x64.exe -name=server -config=server.cfg -mod="@CBA_A3;@ace;@YourMod" -serverMod="@AdminTools;@Persistence"
Windows paths containing spaces can be quoted. If your folders are outside the server directory, use a supported path and quote it when necessary.
Linux example
./arma3server_x64 -name=server -config=server.cfg -mod=@CBA_A3;@ace;@YourMod -serverMod=@AdminTools;@Persistence
Linux paths for -mod must be relative to, or below, the Arma 3 directory according to the official guide. The shell treats semicolons as command separators, so escape them as shown or place the complete argument in a quoting form that preserves the semicolons for Arma 3. Apply the same rule to multiple -serverMod entries.
Start with one mod, confirm it appears in the server log, and then add dependencies and gameplay addons. This isolates a bad path or load-order issue before a long list makes the error difficult to identify.
How do I configure the server and network for mods?
The file selected by -config controls the server’s identity and operating policy, not the mod files themselves. Use it for hostname, maximum players, passwords, MOTD, logging, BattlEye, and mission settings.
hostname = "Example Arma 3 Server";
maxPlayers = 16;
password = "";
passwordAdmin = "change-this";
motd[] = {"Welcome"};
Remove the leading space before motd[] if you copy this illustrative fragment into a strict parser, and add the rest of the settings required by your mission. The exact configuration can be named server.cfg, public.cfg, or another filename as long as the same name follows -config.
- Open and forward the game and Steam ports required by your chosen host and network design.
- Allow the executable through Windows Firewall; the official configuration guidance recommends NAT traversal support for Windows Firewall.
- Check that the forwarded ports reach the machine running the dedicated process, not a separate desktop or container.
- Test from outside the local network. A local client may connect through LAN discovery even when Internet forwarding is wrong.
If your provider offers a control panel, enter the complete mod arguments in its custom command-line field. A Workshop button may download files but still require manual selection of -mod and -serverMod.
How do I install keys and fix a signature mismatch?
When signature verification is enabled, the server must possess the key that validates each signed mod. Copy every matching .bikey file supplied with the mod into the server’s keys folder, or point -keysFolder at directories containing those keys.
- Open each mod’s distribution and locate its
.bikeyfile. The key is separate from the client-side.bisignfiles inside addon folders. - Copy the key into the server’s
keysdirectory. Keep one copy of each required key and remove obsolete keys only when you are certain no active mod uses them. - If keys are stored elsewhere, add
-keysFolderwith the relevant directory path. - On Linux, escape semicolons when supplying multiple key-directory paths, just as you do for multiple mod folders.
- Restart the server and have a client reconnect with the same mod release.
A “signature mismatch” kick usually means the client and server have different mod builds, a required key is missing, or an old signed file remains in one installation. Compare the complete mod version and key set rather than copying a random key from another addon.
How do clients install the required mods?
Every addon in -mod must be present on the client in a compatible version. Players can subscribe through Workshop when the author distributes the mod there, or install the same manually downloaded release and its dependencies.
- Give players the exact mod names and load order shown in the server command.
- Tell them to install dependencies first; frameworks such as
@CBA_A3may be required by other mods. - Require the same map and gameplay addons that the mission uses.
- After updates, have every player close the game, update or replace the mod, and restart the launcher before joining.
- Do not ask clients to install entries that are exclusively in
-serverMod.
Mission compatibility is mod-specific. A server can load successfully while a selected mission fails because it expects a map, framework, or version that is absent or loaded in the wrong order.
Which installation workflow should I choose?
Choose based on where the files originate, who maintains updates, and how much control you have over the command line.
| Workflow | Strength | Trade-off | Best fit |
|---|---|---|---|
| SteamCMD Workshop download | Repeatable downloads and validation using item IDs | Still requires an @ folder mapping and explicit launch arguments |
Workshop-distributed mods on a self-managed server |
| Manual FTP/File Manager | Works for non-Workshop archives and custom builds | You handle extraction, updates, permissions, and folder layout | Private or author-distributed addons |
| Managed-host installer | One-click Workshop retrieval and provider-managed storage | Control-panel labels and command-line access vary by provider | Operators who prefer not to maintain the operating system |
| Self-hosted Windows | Familiar file paths and graphical administration | Requires firewall, port forwarding, and process management | Home or Windows-server operators |
| Self-hosted Linux | Automation and service-manager integration | Relative-path and shell-semicolon rules require care | Administrators comfortable with command-line services |
Why is my mod not loading?
Most “missing mod” cases are path or parameter errors rather than a broken Workshop download. Check the following in order.
- Confirm the directory is named
@ModNameand contains the mod’s complete files. - Verify that
-modreferences the folder path, not only the numeric Workshop ID. - Check every semicolon and quotation mark. On Linux, ensure the shell did not split the argument at an unescaped semicolon.
- Confirm that the command is running from the intended server directory and that Linux paths are relative to or below the Arma 3 installation.
- Temporarily launch with only the suspect mod and its documented dependencies, then add the remaining entries one at a time.
- Read the server log for the exact folder it attempted to load and for dependency or version messages.
Why are players kicked for a signature mismatch?
First compare the server’s mod files with the client’s files, including updates that may have changed signed PBO content. Then verify that every required .bikey is in keys or a directory named by -keysFolder.
- Replace partially updated Workshop content with a complete validated download.
- Remove stale duplicate copies from alternate mod directories so the client does not load an older build.
- Check that the server is not loading a similarly named folder through both
-modand another path. - Restart after changing keys or signed files; a running process keeps its previous file set.
Why does Steam report a dedicated-server launch problem?
A cited SpotRep entry for dedicated-server version 2.22 notes that Steam can modify steam_appid.txt. When that specific launch problem appears, open the file in the server directory and verify that it contains 107410, then restart the server process.
Do not change the file for unrelated errors. If the ID is already correct, return to the command path, executable permissions, and the log’s first fatal error instead of repeatedly validating the same Workshop item.
What should I check before opening the server to players?
- The server starts with the intended
-config,-mod, and-serverModarguments. - Each
-modfolder exists, begins with@, and contains its expected addon files. - Dependencies and load order match the mod author’s instructions.
- Keys are installed when signature verification is enabled.
- The mission loads in a local test and does not request an uninstalled map or framework.
- Firewall and router rules forward the required game and Steam ports over a real IPv4 connection.
- A test player can join from outside the host’s local network with the same client-required mod set.
Frequently Asked Questions
Can I run an Arma 3 dedicated server without buying the game on that account?
Yes. The dedicated-server package is available through SteamCMD using application ID 233780 without purchasing the regular game on the server account. Players still need their own licensed game installations to connect.
Where are Steam Workshop mods stored after SteamCMD downloads them?
They are placed in Steam’s Workshop content tree under the game application directory and the numeric item ID. The server command generally cannot use that raw directory name, so expose the content through an @ModName folder or link.
Can a server-only addon be hidden from players?
Place it in -serverMod rather than -mod. This prevents it from being advertised as a client requirement, although the addon itself must genuinely support server-only operation.
Why can I join locally but not from the Internet?
Local success does not prove that router forwarding or firewall rules are correct. Test from an outside network and confirm that the forwarded game and Steam ports terminate on the machine running the dedicated process over IPv4.
Do all mods need a key file?
Only signed content that is checked by the server needs its corresponding key. If a mod uses signature verification, install the supplied .bikey; missing or mismatched keys produce signature-related kicks rather than an ordinary missing-folder error.