Server Config – Arma Reforger
Arma Reforger uses JSON configuration format to run. Template and Example are available at the bottom of this page.
Community server config generators:
- https://arscfg.johandejong.dev/
- https://armareforger.se/server-generator/
- https://scg.armaplatform.io/
Root
gameHostBindAddress
bindAddress
IP address to which the server socket will be bound. In most cases, this should be left empty. It can be used to restrict connections to particular network interface. When left out or empty, 0.0.0.0 is used, which allows connections through any IP address.
gameHostBindPort
bindPort
number value, range 1..65535, default: 2001
UDP port to which the server socket will be bound.
gameHostRegisterBindAddress
publicAddress
IP address registered in backend. This should be set to the public IP address to which clients can connect in order to reach the server (either IP of the server itself or IP of the machine that will forward data to the server). When left out or empty, an attempt is made to automatically determine the IP address, but this will often fail and should not be relied upon as the server might not be reachable from public networks.
gameHostRegisterPort
publicPort
number value, range 1..65535, default: 2001
UDP port registered in backend. If the server itself has a public IP address, this should be the same value as in gameHostBindPort. Otherwise, this is the UDP port that is forwarded to the server.
adminPassword
Defines the server's admin password, allows a server administrator to login and control the server, to access this either open the chat input box by pressing C in the lobby or Enter ↵ in-game followed by: #login [the admin password]
a2sQueryEnabled
bool value, default: false
Enable Steam Query protocol.
steamQueryPort
number value, range 1..65535, default: 17777
a2s
0.9.9.31
Steam Query protocol definition - see the a2s section below.
game
Define the server's settings - see the game section below.
operating
Define various server settings - see the operating section below.
a2s
0.9.9.31
address
required
IP address to which A2S socket will be bound. It can be used to restrict A2S queries to a particular network interface.
port
number value, range 1..65535, default: 17777
Change Steam Query UDP port on which game listens to A2S requests
game
name
length 0..100 characters
password
length 0..x characters
Password required to join the server.
passwordAdmin
length: 0..x characters
Defines the server's admin password, allows a server administrator to login and control the server, to access this either open the chat input box by pressing C in the lobby or Enter ↵ in-game followed by: #login [the admin password]
admins
0.9.9.31
array value of identityIds and/or steamIds
List players as server admins - they can be checked in script using BackendApi.IsListedServerAdmin(int playerId) regardless of their logged-in state.
In a next version this will allow listed users to #login without a password.
scenarioId
The scenario's .conf file path is defined here. See the listScenarios startup parameter to list available scenarios and obtain their .conf file path.
- 0.9.9
: {ECC61978EDCC2B5A}Missions/23_Campaign.conf (Conflict - Everon) : {59AD59368755F41A}Missions/21_GM_Eden.conf (Game Master - Everon) : {90F086877C27B6F6}Missions/99_Tutorial.conf (Tutorial) : {2BBBE828037C6F4B}Missions/22_GM_Arland.conf (Game Master - Arland) : {C700DB41F0C546E1}Missions/23_Campaign_NorthCentral.conf (Conflict - Northern Everon) : {28802845ADA64D52}Missions/23_Campaign_SWCoast.conf (Conflict - Southern Everon) : {DAA03C6E6099D50F}Missions/24_CombatOps.conf (Combat Ops - Arland) : {C41618FD18E9D714}Missions/23_Campaign_Arland.conf (Conflict - Arland)
playerCountLimit
maxPlayers
number value, range 1..256, default: 64
Set the maximum amount of players on the server.
visible
bool value, default: true (since 0.9.8.73)
Set the visibility of the server in the Server Browser.
crossPlatform
bool value, default: false
If set to true, automatically adds "PLATFORM_PC" and "PLATFORM_XBL" to supportedGameClientTypes if they are missing; does nothing if set to false.
supportedGameClientTypes
supportedPlatforms
array value, default: ["PLATFORM_PC"]
Define the platforms which the server accepts, allowing crossplay.
Possible values:
Key | Value |
---|---|
PLATFORM_PC | PC |
PLATFORM_XBL | Xbox console |
gameProperties
Define the scenario's settings - see the gameProperties section below.
mods
The list of mods required by the client. They will automatically be downloaded and activated on join. List of mods can be created by activating wanted mods in in-game Workshop and then, via Mod manager, result can be converted to ready to be used string after navigating to JSON tab and then clicking on Copy to clipboard button.
modID
GUID of the mod. Single GUID can be obtained from Workshop webpage
Alternatively you can grab it from Workbench options when mod is running or directly from gproj file
name
This parameter doesn't do anything and is only used as sort of comment, with human readable name of the mod.
version
gameProperties
serverMaxViewDistance
number value, range 500..10000, default: 1600
serverMinGrassDistance
number value, range 0 / 50..150, default: 0
Minimum grass distance in meters. If set to 0 no distance is forced upon clients.
fastValidation
bool value, default: true (since 0.9.6)
Validation of map entities and components loaded on client when it joins, ensuring things match with initial server state.
- true (enabled) - minimum information required to make sure data matches is exchanged between client. When a mismatch occurs, no additional information will be available for determining where client and server states start to differ. All servers that expect clients to connect over internet should have fast validation enabled.
- false (disabled) - extra data for every replicated entity and component in the map will be transferred when new client connects to the server. When a mismatch occurs, it is possible to point at particular entity or component where things start to differ. When developing locally (ie. both server and client run on the same machine), it is fine to disable fast validation to more easily pin point source of the problem.
networkViewDistance
number value, range 500..5000, default: 1500
Maximum network streaming range of replicated entities.
battlEye
bool value, default: true (since 0.9.8.73)
true to enable BattlEye, false to disable it.
disableThirdPerson
bool value, default: false
Force clients to use the first-person view.
VONDisableUI
bool value, default: false
Force clients to not have VON (Voice Over Network) UI.
VONDisableDirectSpeechUI
bool value, default: false
Force clients to not have VON (Voice Over Network) Direct Speech UI.
missionHeader
This property overwrites the scenario's SCR_MissionHeaderCampaign.
operating
lobbyPlayerSynchronise
bool value, default: true (since 0.9.8.73)
If enabled, the list of player identities present on server is sent to the GameAPI along with the server's heartbeat.
playerSaveTime
number value, default: 120
Default period in seconds for saving players for both Online and Local storage (player save can still be requested on demand).
aiLimit
0.9.8.64
number value, default: -1
Sets the top limit of AIs. No system will be able to spawn any AIs when this ceiling is reached (through aiWorld.CanAICharacterBeAdded())
A negative number is not considered as valid value and is then ignored - limit is not applied.
This param is overridden by the -aiLimit startup parameter.
slotReservationTimeout
0.9.9.31
number value, range 5..300, default 60
Sets the duration (in seconds) for how long will the backend and server reserve a slot for kicked player. It is considered disabled when set to the minimal value, the value being the same as for a normal disconnect.
It can be used in scripts via Game Mode events:
Template
{
"bindAddress": "",
"bindPort": 0,
"publicAddress": "",
"publicPort": 0,
"game": {
"name": "",
"password": "",
"passwordAdmin": "",
"scenarioId": "",
"maxPlayers": 0,
"visible": true,
"gameProperties": {
"serverMaxViewDistance": 0,
"serverMinGrassDistance": 0,
"networkViewDistance": 0,
"disableThirdPerson": false,
"fastValidation": true,
"battlEye": true,
"VONDisableUI": false,
"VONDisableDirectSpeechUI": false
},
"mods": []
}
}
Example
{
"bindAddress": "0.0.0.0",
"bindPort": 2001,
"publicAddress": "192.168.9.10",
"publicPort": 2001,
"a2s": {
"address": "192.168.9.10",
"port": 17777
},
"game": {
"name": "Server Name - Mission Name",
"password": "",
"passwordAdmin": "changeme",
"scenarioId": "{ECC61978EDCC2B5A}Missions/23_Campaign.conf",
"maxPlayers": 32,
"visible": true,
"crossPlatform": true,
"supportedPlatforms": [
"PLATFORM_PC",
"PLATFORM_XBL"
],
"gameProperties": {
"serverMaxViewDistance": 2500,
"serverMinGrassDistance": 50,
"networkViewDistance": 1000,
"disableThirdPerson": true,
"fastValidation": true,
"battlEye": true,
"VONDisableUI": true,
"VONDisableDirectSpeechUI": true,
"missionHeader": {
"m_iPlayerCount": 40,
"m_eEditableGameFlags": 6,
"m_eDefaultGameFlags": 6,
"other": "values"
}
},
"mods": [
{
"modId": "59727DAE364DEADB",
"name": "WeaponSwitching",
"version": "1.0.1"
},
{
"modId": "59727DAE32981C7D",
"name": "Explosive Goats beta",
"version": "0.5.42"
}
]
},
"operating": {
"lobbyPlayerSynchronise": true
}
}
{
"bindAddress": "0.0.0.0",
"bindPort": 2001,
"publicAddress": "192.168.9.10",
"publicPort": 2001,
"a2s": {
"address": "192.168.9.10",
"port": 17777
},
"game": {
"name": "Server Name - Mission Name",
"password": "",
"passwordAdmin": "changeme",
"scenarioId": "{ECC61978EDCC2B5A}Missions/23_Campaign.conf",
"maxPlayers": 32,
"visible": true,
"crossPlatform": true,
"supportedPlatforms": [
"PLATFORM_PC",
"PLATFORM_XBL"
],
"gameProperties": {
"serverMaxViewDistance": 2500,
"serverMinGrassDistance": 50,
"networkViewDistance": 1000,
"disableThirdPerson": true,
"fastValidation": true,
"battlEye": true,
"VONDisableUI": true,
"VONDisableDirectSpeechUI": true,
"missionHeader": {
"m_iPlayerCount": 40,
"m_eEditableGameFlags": 6,
"m_eDefaultGameFlags": 6,
"other": "values"
}
},
"mods": [
{
"modId": "59727DAE364DEADB",
"name": "WeaponSwitching",
"version": "1.0.1"
},
{
"modId": "59727DAE32981C7D",
"name": "Explosive Goats beta",
"version": "0.5.42"
}
]
},
"operating": {
"lobbyPlayerSynchronise": true
}
}