Arma 3 (Generic) Guide

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).

1. Dependencies on Windows

Arma 3 requires the following dependencies on Windows to be installed:

2. Ports

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.

3. Settings

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.

4. Mods

4.1 Installing/updating

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.

4.2 Loading

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.

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 450814997;583496184;620019431;1472073760;583544987;2912941775.

On Linux, AMP also ensures that all the mod files are in lowercase, to prevent loading issues.

Note that, for some mods, order of loading is important.

4.3 Signature verification

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.

Alternatively, you can disable “Addon Signature Verification”, although this is not recommended.

5. Server binding

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 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.