Install it with SteamCMD
The dedicated server package is app 233780. Bohemia's advice, and the Valve Developer Community's, is to make a separate Steam account for it. Two reasons: SteamCMD caches the login credentials, so anyone who reaches your server can use that account, and you cannot be logged in to one Steam account from two places at once. You do not need to own Arma 3 on the account that downloads the server, so a fresh account with no purchases costs you nothing.
On Linux the documented sequence runs as a dedicated steam user, not root:
./steamcmd.sh, thenforce_install_dir ./arma3/,login myusername,app_update 233780 validate,exit- Then create the profile directories:
mkdir -p ~/".local/share/Arma 3" && mkdir -p ~/".local/share/Arma 3 - Other Profiles"
On Windows the wiki uses a small .cmd file that calls steamcmd.exe +force_install_dir <path> +login <user> +"app_update 233780 -beta public" validate +quit. Expect it to pause the first time and ask for a Steam Guard code from your email, and expect to run it more than once: once to authorise, once for SteamCMD to update itself, once for the actual download. Keep SteamCMD in its own folder, separate from a Steam client, and keep the server in its own folder, separate from an Arma 3 client, to avoid file conflicts.
The requirement that is not negotiable
Bohemia state it in a warning box, so this page will too. The Arma 3 server does not support IPv6, and it does not support DS-Lite IPv4 tunnelled over IPv6. You must have a real IPv4 connection. If you are not sure what your connection is, their advice is to ask your internet provider, and that is the right order: find that out before you spend an evening on a router.
Start it
On Windows the documented shortcut target looks like this, with the paths changed to yours:
arma3server.exe "-profiles=D:\Games\Arma3\A3Master" -port=2302 -config=CONFIG_server.cfg -world=empty
On Linux it is ./arma3server_x64 -name=server -config=server.cfg. One Linux quirk is stated as a warning on the wiki: the -profiles= parameter is broken there, so profiles must live in ~/.local/share/Arma 3 - Other Profiles. The process attaches to your terminal and dies with your SSH session, so run it inside screen or tmux.
Run the server once before you configure difficulty. The first start creates the files you then edit: an .Arma3Profile holding difficulty settings, an Arma3.cfg holding bandwidth settings, and arma3.rpt, the debug log, which is written afresh every start.
CONFIG_server.cfg
You create this one by hand. The settings that carry the most weight:
| Setting | What it does |
|---|---|
hostname | The name in the public server list. |
passwordAdmin | What you log in with. In game, open the chat and type #login yourpassword. |
maxPlayers | Slots, counting headless clients. Anybody who joins counts, whatever their role. |
persistent | Set to 1 and missions keep running after everyone disconnects. Required if you want to use -autoInit. |
verifySignatures | At 2, players with unknown or unsigned mods cannot join. Bohemia recommend 2. |
BattlEye | 1 enables the anti-cheat. Bohemia's default and recommendation are both 1. |
voteThreshold | The share of players needed to pass a vote. Set it to 9999 to disable voting entirely. |
class Missions | The mission cycle. Each entry names a .pbo in MPMissions and a difficulty. |
logFile | Server console output filename. Pair it with timeStampFormat. |
There is one syntax rule worth putting on a sticky note. Bohemia's own warning: never forget the # in front of a server command. #login works; login is just chat.
The config also carries the file-extension allowlists, allowedLoadFileExtensions, allowedPreprocessFileExtensions and allowedHTMLLoadExtensions, which limit what mission scripts may read. Leave the shipped lists alone unless a mission needs something specific.
Ports
Arma 3's ports are all UDP, and they run in a block from whatever you set with -port=:
- 2302, the game port, which now also carries voice, because voice on its own port caused NAT problems
- 2303, the Steam query port, game port plus one
- 2304, the Steam master port, game port plus two
- 2305, reserved for voice and not currently used
- 2306, BattlEye traffic
The Steam ports are derived from the game port, so you set one number and the rest follow. If you run more than one server on a machine, Bohemia's instruction is to leave at least 100 ports between each set: 2302 to 2306, then 2402 to 2406, and so on. Ignore that and you hit a documented failure where the second server reports on the first server's range. The cause is in their known issues: the engine has a legacy port increment for occupied sockets that tries the port, then adds twelve, up to fifteen times, so a second instance placed twelve or twenty-four ports away lands on top of the first.
Two more known issues save time. Setting upnp=1 in the config can leave the server not starting for ten minutes on a machine with active firewall or filtering, and Bohemia say it is not recommended where the ports are already forwarded. And the server has to answer a ping for Steam, so allow ICMP echo alongside the UDP ports.
Branches and mods
Development and stable builds have not been compatible since March 2013: a development client can only join a development server and a stable client can only join a stable one. In the SteamCMD script, 233780 -beta public is the stable dedicated server package and 107410 -beta development is the development client and server package.
With -mod=, Bohemia note the paths must be within or below the Arma 3 directory; symlinks work. On Linux there is a case-sensitivity trap: some well-known mods will not function if their file names contain capital letters. The documented fix is a recursive rename to lowercase, and if you re-sync mods often, mounting the mod folder through a case-insensitive filesystem so the sync does not undo it every time.
Self-hosting or renting
If you have a machine that stays on and a real IPv4 connection, self-hosting Arma 3 costs nothing but attention, and a group running its own missions usually wants that control. Plenty of communities should stop reading here.
The honest costs are the ordinary ones plus one specific to Arma. The machine has to be awake whenever anyone wants to play. Many home connections cannot accept incoming connections at all, and the IPv4 requirement above rules out more of them than you would expect. Mod updates, branch changes and the restart after each one are yours to catch. And a mission-heavy server is a filing job as much as a hosting one: missions, keys, profiles and configs all need somewhere sensible to live.
Renting moves that work rather than removing it. The mission cycle, the mod set and the signature policy are still your decisions.
Where RadarHost fits
RadarHost rents Arma 3 servers hosted in Beauharnois, Quebec, Canada. There are three plans, Standard, Premium and Diamond, priced in Canadian dollars, with no setup fee and cancel any time. Renting changes who keeps the machine on; the config file, the missions and the mod set above are still yours to choose. After payment, our team reviews the order and emails setup details or next steps within 24 hours. Current plans and prices are on the Arma 3 availability page.