This article sets out some key basic information for running an Arma 3 server on AMP. This article assumes that the “Generic” template is being used, not the CubeCoders official module (ARMA III, which is now legacy).
Arma 3 requires the following dependencies on Windows to be installed:
You will also need X86 Visual C++ Redistributable Packages for Visual Studio 2015-2022 to run SteamCMD in AMP to install the server.
Arma 3 uses (or reserves) a number of ports, which are allocated accordingly in AMP:
- Game Port: 2302 UDP by default
- Query Port: 2303 UDP by default
- Steam Port: 2304 UDP by default
- Reserved Port: 2305 UDP by default
- BattlEye Port: 2306 UDP by default
- RCON Port: 2307 UDP by default
At least the first three ports need to be port forwarded (if you’re on a NAT network). Also forward the BattlEye port if using BattlEye on the server.
Check what ports are actually allocated to your instance by clicking on the “Edit Ports” button for the instance.
The query port is used for finding and connecting to the server in Steam. The game port is used for finding and connecting to the server in-game.
You can use the RCON port to connect to the server’s RCON by an external RCON client if needed.
Note that all ports other than the game port and RCON port are configured by the server as relative to the game port. So the query port is game port + 1, the Steam port is game port + 2, etc. Make sure that at least the first five ports above are sequential in AMP.
Almost all settings that can be configured in the server’s config file, as listed here, are included in AMP’s UI.
You can search for a setting using its formal name (eg
allowedFilePatching) using AMP’s search bar to find it in AMP’s UI.
AMP uses a file called
AMP_server.cfg to control Arma 3’s settings. This file is in the server base directory. This file writes the relevant settings to
server.cfg, which is then loaded by the server. Don’t edit
server.cfg directly - AMP will overwrite it.
AMP_server.cfg has two sections. You should not change the first section in any way.
Any settings that are not handled by AMP in the first section can be configured in the second section, under “USER CONFIGURABLE SETTINGS”.
This applies particularly to mission settings, including mission cycles.
The “Steam workshop items” option under the SteamCMD and Updates menu is used to download and update mods on the server.
Specify the mods to be downloaded and updated by adding its mod ID, such as
2912941775. Each mod ID has to be added separately. Order doesn’t matter.
The mods will be downloaded and updated whenever the server is updated.
The mod files are downloaded to the directory
steamapps/workshop/content/107410, in separate directories.
To load mods, they need to be specified either under “Load Mods” or “Load Server Mods” in the Arma Server Settings menu, depending on the mod type (ie whether they need to be used on the client as well, or only on the server).
The mod lists must be separated by semi-colons. Make sure your mod lists are just one line - no line breaks or carriage returns.
On both Windows and Linux, AMP automatically creates symlinks (technically directory junctions on Windows) in the server base directory to the mod directories downloaded via SteamCMD and Updates. So you only have to specify the mod IDs to load them, such as
On Linux, AMP also ensures that all the mod directories and files are in lowercase, to prevent loading issues.
Note that, for some mods, order of loading is important.
By default, AMP enables addon signature verification, meaning that clients cannot connect if they are using mods not allowed by the server. This is a cheating protection.
To permit mods, the relevant
.bikey file needs to be added to the
keys directory in the server base directory. For mods installed on your server that clients are also intended to use, copy the
.bikey files from the
keys directory inside each mod directory. Also add the
.bikey files of other mods (eg client-only mods) that you wish to allow.
AMP can do this automatically for you for any mods listed in “Load Mods”, by enabling the “Manage Bikeys” setting. The relevant
.bikey files will be copied across when the server is started. Note that this will remove the
.bikey files for any other mods, other than the default
Alternatively, you can disable “Addon Signature Verification”, although this is not recommended.
By default the Arma 3 server is bound to the application IP binding set for the instance. This is normally 0.0.0.0 (all interfaces) unless it has been changed under New Instance Defaults.
If you have multiple IPs on your host, you may wish to bind the server to one of them. You can change the
App.ApplicationIPBinding setting in
GenericModule.kvp in the instance datastore for that purpose. The instance (not just the server) must be stopped before editing this setting.
The IP binding set in this way must be one that AMP itself can reach. Otherwise AMP will not be able to connect to the server’s RCON, and therefore won’t detect when the server is started. As well, logging output to the console, and input from the console, will not be enabled. This can particularly be an issue if the server is bound to a public IP (such as on a VPS). Generally it is better to keep the binding as 0.0.0.0.
Headless clients can be used to offload AI calculations from the Arma 3 server, helping improve performance by spreading the processing load across more CPU cores.
You can run headless clients via AMP. AMP allows up to 5 per server, but you generally won’t need more than 2 or 3. Remember that each headless client consumes resources (CPU and RAM), so you must take that into account when deciding how many to run, and if to run them. You can of course also run headless clients for your server on another host (not via AMP).
The headless clients run via AMP are launched when the server is started, and terminated when the server shuts down.
In the Arma Server Settings menu, set the number of clients you want to launch under “Headless Clients To Launch”.
Also set the appropriate IP of the headless clients under “Headless Clients IPs”:
- If your Arma 3 server is bound to 0.0.0.0 (all IPs), then set
- If your Arma 3 server is bound to an actual IP, then set that IP, eg
"192.168.1.10". As noted above, that IP binding must be reachable from the server, otherwise the headless clients will not be able to connect.
If the IP is 127.0.0.1 or a local (private) IP, set it also under “Local Headless Client IPs”.
(Include the quotation marks in the two IP settings.)
Note that, as a failsafe, if the server is not successfully started within 3 minutes, the headless clients will not be launched.
Any mods listed under “Load Mods” will be passed to the headless clients so that they can connect to the server. If you are instead using a parameters file to load mods for the server (under “Use Server Startup Parameters File”), you can also use a separate parameters file (called
hc_parameters.txt) to pass the mods to the headless clients. See the “Use Headless Client Startup Parameters File” setting.
Creator DLCs are additional content for Arma 3 servers, created by external developers but published by Bohemia Interactive.
To load a Creator DLC on your server:
In the SteamCMD and Updates menu, select
Creator DLC Buildunder “Server Branch”. (Or select
Creator DLC + Performance Profiling Buildsif you want to use the Performance Profiling build of the server binary with the Creator DLC build. This will take more space on disk.)
Click Update on the Status menu page to install the Creator DLC build (and Performance Profiling build if relevant).
Under “Load Mods” in the Arma Server Settings menu, add the relevant DLC code to load the DLC when the server starts:
DLC Code Global Mobilization - Cold War Germany gm S.O.G. Prairie Fire vn CSLA Iron Curtain csla Western Sahara ws Spearhead 1944 spe
Add any DLC missions you want to load to