An Arma 3 dedicated server is a separate, free copy of Arma 3 that runs a mission on its own, with no player sitting at the host PC. You install it with SteamCMD (app 233780) on Windows or Linux, give it 4–8 GB of RAM and the fastest CPU core you have, open UDP ports 2302–2306, and control it from a server.cfg file. This guide covers every step — requirements, install, config, mods, missions, admin — and then the problems people actually hit, like a server not showing up for friends.
Dedicated server or hosting from the game?
Arma 3 can host a multiplayer game straight from the client, or run as a dedicated server. Hosting from the game is quicker for one evening with friends; a dedicated server is what you want for a unit, a persistent mission like Antistasi, or anything with heavy AI. The table shows the difference at a glance.
| Host from the game (non-dedicated) | Arma 3 dedicated server | |
|---|---|---|
| Runs when the host is offline | No — the server closes when you quit | Yes |
| Performance | Your PC renders the game and simulates the mission | All of the CPU goes to the mission and AI |
| Config | Menu options | Full control in server.cfg, basic.cfg and the profile |
| Mods | Whatever you load in the launcher | -mod= and server-only -serverMod= |
| Best for | A quick co-op night | Units, persistent missions, public servers |
How to host a server for friends from the game
- Load the mods everyone will use in the Arma 3 Launcher, then start the game.
- Open Multiplayer → Server Browser and choose the Host Server tab.
- Set a server name, set Host to Internet, add a password, tick UPnP and click Host Server.
- Pick a map and mission, then click Play. Friends find it by name in the server browser.
If UPnP doesn’t work, forward UDP 2302–2306 to your PC by hand (see ports) — but don’t use UPnP and manual forwarding at the same time, they conflict. Only the host needs to forward ports. If you can’t forward at all, a VPN tool like Hamachi works as a workaround, as long as every player installs the same tool and joins the same network.
Arma 3 dedicated server requirements
An Arma 3 server is limited by the CPU first. The server binary can use more than one core, but the mission and AI simulation lean on one fast core, so a high clock speed beats a high core count. A server does not need a graphics card. These are the numbers to plan around:
| Bare minimum | Recommended | |
|---|---|---|
| CPU | 2.4 GHz dual-core, 64-bit x86 | 3.5 GHz+ quad-core |
| RAM | 2 GB | 4–8 GB; add about 2 GB per headless client |
| Storage | 32 GB | 50 GB+ SSD — mods add a lot |
| Network | 0.5 Mbit/s upload per player | 1–5 Mbit/s per player, real IPv4 |
| OS | 64-bit Windows or Linux | |
Two catches. Arma 3 servers don’t support IPv6 or DS-Lite tunnels, so you need a real public IPv4 address. And on CPUs with efficiency cores, performance can tank if the server lands on the slow cores; the -cpuCount or -cpuAffinity startup parameters keep it on the fast ones. Server RAM is mostly a modpack question: a vanilla Zeus night fits in 4 GB, while Antistasi or Exile with a large mod list wants the upper end of 8 GB.
How to set up an Arma 3 dedicated server
Step 1: Download the server with SteamCMD
The Arma 3 dedicated server download is Steam app ID (AppID) 233780, separate from the game (107410). Unlike many games, it can’t be installed with SteamCMD’s anonymous login: you need a real Steam account with Steam Guard turned off. That account doesn’t have to own Arma 3, so make a separate account just for servers.
On Windows, install SteamCMD to a folder like C:\SteamCMD and run:
steamcmd +force_install_dir C:\arma3server +login yoursteamaccount +app_update 233780 validate +quit
On Linux (Ubuntu or Debian), install SteamCMD from your package manager, create a non-root user for the server, and run the same command with a Linux path:
steamcmd +force_install_dir /home/arma3/server +login yoursteamaccount +app_update 233780 validate +quit
The same command updates the server later. You’ll get arma3server_x64.exe on Windows and arma3server_x64 on Linux (plus 32-bit versions you can ignore).
Step 2: Create server.cfg
The server doesn’t ship with a server.cfg — you make the file yourself. Create it next to the executable and start with:
hostname = "My Arma 3 Server";
password = "squad-only";
passwordAdmin = "something-long-and-private";
maxPlayers = 32;
motd[] = {"Welcome to the server", "TeamSpeak and rules on our Discord"};
motdInterval = 30;
persistent = 1;
verifySignatures = 2;
BattlEye = 1;
kickDuplicate = 1;
voteThreshold = 0.33;
voteMissionPlayers = 1;
Lines starting with // are comments. Every setting line ends with a semicolon. The settings table below explains what each one does.
Step 3: Write the start command
On Windows, save this as start_server.bat in the server folder:
arma3server_x64.exe -port=2302 -config=server.cfg -cfg=basic.cfg -profiles=profiles -name=server -world=empty -mod=@cba_a3;@ace
On Linux, the same line goes in a shell script — quote the mod list, because a semicolon ends a shell command:
./arma3server_x64 -port=2302 -config=server.cfg -cfg=basic.cfg -profiles=profiles -name=server -world=empty "-mod=@cba_a3;@ace"
Leave out -mod= for a vanilla server and -cfg=basic.cfg until you’ve made that file.
Step 4: Open the ports and start it
Forward the ports in the ports table on your router, allow them through the firewall (on Linux: sudo ufw allow 2302:2306/udp), then run the script. Join from the game to check it works, then hand the address to your friends.
Server tools if you’d rather click than type
On Windows, community tools like FASTER and the older TADST put the startup parameters, the mod list and server.cfg behind a window, which helps if you run several setups. On Linux, LinuxGSM can install and run the server and keep it updated. A server manager doesn’t change the files underneath, so knowing what server.cfg does still pays off. Or skip running anything yourself with Arma 3 server hosting.
Arma 3 server config: server.cfg, basic.cfg and the profile
An Arma 3 server reads three files. server.cfg (loaded with -config=) holds the name, passwords, security and the mission cycle. basic.cfg (loaded with -cfg=) tunes bandwidth and packet sizes. The server profile, server.Arma3Profile in the profiles folder, holds the difficulty settings. Most owners only ever touch the first.
| server.cfg setting | What it does |
|---|---|
hostname |
Name in the server browser |
password |
Join password; leave it out for a public server |
passwordAdmin |
Password for #login |
admins[] |
Steam64 IDs that can log in as admin without the password |
maxPlayers |
Slots; the real limit is AI and scripting load |
verifySignatures |
2 checks every client addon against the keys folder |
BattlEye |
1 on, 0 off |
persistent |
1 keeps the mission running with nobody on |
disableVoN |
1 turns off in-game voice |
headlessClients[] / localClient[] |
IP addresses allowed to connect as headless clients |
class Missions |
The mission cycle (next section) |
Mission files and the mission cycle
Missions are .pbo files named MissionName.MapName.pbo. Put them in the mpmissions folder, then list them in server.cfg — without that, a fresh server sits on an empty rotation and waits for an admin to pick one:
class Missions
{
class Mission1
{
template = MP_Marksmen_01.Altis;
difficulty = "veteran";
class Params {};
};
};
template is the file name without .pbo. Add more class blocks for a rotation. Mission parameters (the options a mission offers in its lobby) go inside class Params, using the parameter names that mission defines. Add -autoInit to the start command (it only works with persistent = 1;) and the server starts the first mission on boot instead of waiting for a player.
Custom difficulty settings
The built-in difficulties (Recruit, Regular, Veteran) need no setup. For a custom difficulty — no crosshair, no third person, no name tags — add a CustomDifficulty class to server.Arma3Profile:
class DifficultyPresets
{
class CustomDifficulty
{
class Options
{
groupIndicators = 0;
friendlyTags = 0;
enemyTags = 0;
weaponCrosshair = 0;
thirdPersonView = 0; // 0 off, 1 on, 2 vehicles only
mapContent = 0;
};
aiLevelPreset = 3; // 3 = use CustomAILevel
};
class CustomAILevel
{
skillAI = 0.5;
precisionAI = 0.5;
};
};
Then set difficulty = "Custom"; on the mission in class Missions.
Performance settings
Server performance is measured in server FPS — log in as admin and type #monitor 5 to see it. The usual levers, in order: fewer AI and better-written missions, a headless client that takes the AI off the main server, and only then basic.cfg values like MaxMsgSend, MinBandwidth and MaxBandwidth. -limitFPS caps how many simulation cycles the server runs per second, and -loadMissionToMemory keeps the mission pre-processed in memory after the first client downloads it, which saves server CPU for the next ones. A headless client is a second copy of Arma 3 started with -client -connect=127.0.0.1 -port=2302 and listed in headlessClients[]; the mission has to support it.
How to add mods to an Arma 3 dedicated server
Arma 3 server mods load from @folders next to the executable. Client mods go on -mod= and every player must run the same ones; server-only mods go on -serverMod= and players don’t need them. Every client mod also ships a .bikey file that must go into the server’s keys folder, or verifySignatures kicks everyone running it.
- Download the Workshop mods. Subscribe in the Arma 3 Launcher on your own PC. Steam saves them under
steamapps/workshop/content/107410/<mod ID>. Downloading Workshop mods straight on the server through SteamCMD only works if the server’s Steam account owns Arma 3. - Copy them to the server as named folders, for example
@cba_a3and@ace. - On Linux, make everything lowercase — the folder names and the
addonsfolder inside each mod. Uppercase letters stop the server from loading them. - Copy each mod’s .bikey from its
keys(orkey) folder into the server’skeysfolder. - Add the folders to the start command:
-mod=@cba_a3;@ace. Load dependencies (CBA first) before the mods that need them.
Arma 3 Launcher presets export as an HTML file, which some server tools can read to build the mod list for you. Keep the preset in your unit’s Discord so everyone loads the exact same set.
DLC and Creator DLC on a server
Creator DLCs like S.O.G. Prairie Fire, Spearhead 1944 (WW2) and Western Sahara come with the server’s creatordlc Steam branch, which installs the files every Creator DLC needs: install with app_update 233780 -beta creatordlc validate, then load them like a mod by their folder name, for example -mod=vn for Prairie Fire or -mod=spe for Spearhead.
Popular server types you can run
Most of the best Arma 3 servers people look for — modded or vanilla — are a mission plus a mod list. Any of these run on your own dedicated server once you have their files:
- Co-op and PvE: Antistasi (guerrilla campaign against AI), Liberation (co-op campaign), Overthrow, and Zeus, where a game master builds the mission live. Zeus and Warlords are also in the base game.
- PvP: KOTH (King of the Hill) and Wasteland.
- Survival: Exile and Epoch, plus DayZ-style and zombies mods.
- Roleplay: Altis Life and other life or RP frameworks, usually with their own server-side mods.
- Total conversions and themed units: Star Wars, Vietnam (Prairie Fire), the Second World War (Spearhead 1944), helicopter and infantry training servers.
Life, Exile and Epoch servers ship server files of their own that go on -serverMod= — follow each project’s install notes, since they differ. Bohemia also runs official servers (Zeus, Warlords, Combat Patrol, End Game and more), which you’ll find in the in-game server browser.
Arma 3 server ports and port forwarding
An Arma 3 server uses one main port plus fixed offsets from it, all UDP. Change the main port with -port= and the others move with it. Running two servers on one machine? Keep them 100 ports apart (2302 and 2402).
| Port | Protocol | What it’s for | Forward it? |
|---|---|---|---|
| 2302 | UDP | Game and voice (main port) | Yes |
| 2303 | UDP | Steam query (+1) | Yes |
| 2304 | UDP | Steam (+2) | Yes |
| 2305 | UDP | Old voice port (+3), retired | No |
| 2306 | UDP | BattlEye (+4) | Yes |
Forward them to the server PC’s local IPv4 address (give it a fixed one in the router so it doesn’t change). If your ISP uses CGNAT, port forwarding can’t work at all; that’s when people turn to Hamachi, or rent a server with a public IP.
Admin login and server commands
Open chat (/ by default) and type #login yourpassword using passwordAdmin. Players whose Steam64 ID is in admins[] can log in with just #login.
| Command | What it does |
|---|---|
#login / #logout |
Become admin / drop admin rights |
#missions |
End the mission and open mission selection |
#mission name difficulty |
Load a mission by name |
#restart / #reassign |
Restart the mission / send everyone back to role selection |
#kick name / #exec ban name |
Kick / ban (bans go to ban.txt) |
#lock / #unlock |
Stop or allow new players joining |
#monitor 5 |
Show server FPS and memory every 5 seconds (0 stops it) |
#init |
Reload server.cfg |
#restartserver / #shutdown |
Restart or stop the whole server |
For a server restart on a schedule, #restartserveraftermission waits for the current mission to end; on your own machine, a scheduled task or systemd timer that stops and starts the process does the rest.
Logs: where the RPT file is
The server writes an .rpt log into its profiles folder (the one you pass with -profiles=). It is the first place to look for any problem: missing mods, bad signatures, script errors, a mission that won’t load. Starting with -noLogs turns RPT logs off, so don’t use it while you’re still setting up.
Common Arma 3 server problems and fixes
| Problem | Most likely cause | Fix |
|---|---|---|
| Server not showing up for friends in the browser | Query port 2303 blocked, or the server isn’t reachable from outside | Forward 2302–2304 and 2306; ask friends to use Direct Connect with IP and port |
| Friends can’t connect at all | Ports not forwarded, UPnP and manual forwarding mixed, CGNAT, or no public IPv4 | Pick one forwarding method; check for CGNAT; use a VPN tool or a hosted server |
| Kicked when joining with a signature or BattlEye message | A client mod whose key isn’t in keys, or a mismatched mod version |
Copy the .bikey; make everyone load the same preset |
| Stuck on the loading screen or a black screen when joining | Missing or mismatched mods, or a large mission still downloading | Check the RPT log; match the mod list |
| Crashing when joining the server | A broken or outdated mod on the client | Repair the mods in the launcher and match versions with the server |
| Linux server ignores mods | Uppercase letters in mod or addons folder names |
Rename everything to lowercase |
| Steam login fails in SteamCMD | Anonymous login, or Steam Guard on | Use a real account with Steam Guard off |
| Server sits in the lobby with no mission | Empty or broken class Missions |
Fix the template name; add -autoInit |
| Low server FPS in big fights | Too much AI for one core | Fewer AI, a headless client, a faster CPU |
Keeping the server updated
When Arma 3 updates, stop the server and run the same SteamCMD line (app_update 233780 validate), then update the mods too — a client on a newer mod version gets kicked just like a missing one. Back up server.cfg, basic.cfg, the profiles folder and mpmissions first; that’s the data you’d hate to rebuild.
Skip the setup: rent an Arma 3 server
Running your own server means a PC that stays on, a Steam account just for SteamCMD, five ports on the router and a keys folder that has to match the mod list. If your unit would rather spend that time on the op, Arma 3 server hosting on GameTeam is ready in minutes: you pay per GB of RAM (from $0.49/GB a week) with unlimited slots, there’s nothing to forward, and the built-in AI copilot does the fiddly parts. Tell it “half the squad gets kicked on join with a signature error” and it reads the RPT log, finds the missing key and fixes it, or ask “run the Antistasi mission I uploaded on Veteran” and it writes the mission cycle in server.cfg. Playing Reforger too? The Arma Reforger dedicated server guide covers its very different JSON setup.
FAQ
Is an Arma 3 dedicated server free?
The server software is free — it doesn’t even need an account that owns the game, only a real Steam login. Running it costs a PC that stays on, or a hosting fee.
Is Arma 3 CPU or GPU heavy on a server?
CPU. A dedicated server renders nothing, so the graphics card doesn’t matter; AI and mission scripts run mostly on one fast core.
How do I make a server for friends without port forwarding?
Try UPnP in the Host Server tab first. If that fails, every player can join the same Hamachi network and connect over it, or you can use a hosted server that already has a public address.
Do players need the same mods as the server?
For everything on -mod=, yes, with matching versions. Mods on -serverMod= run only on the server and players don’t need them.
How do I disable BattlEye on my server?
Set BattlEye = 0; in server.cfg and restart. Only do it on a private server; without BattlEye there’s no anti-cheat.
Can I play co-op without a dedicated server?
Yes — host from Multiplayer → Server Browser → Host Server and your friends join you. The server closes when you leave, and your PC carries the AI load while you play.
Are Arma 3 servers still active?
Yes. Multiplayer servers are run by the community and by Bohemia, and the in-game server browser lists the ones online right now. Your own server stays up as long as you run it.
Linux or Windows for an Arma 3 server?
Both run the same missions. Linux needs no Windows licence, but mod folders must be lowercase and some tools are Windows-only. Windows is easier if you’re new and want a GUI tool.
