Server Config – Arma Reforger
Lou Montana (talk | contribs) m (→Template: Fix) |
Lou Montana (talk | contribs) m (Update to 1.2.0) |
||
(27 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{TOC|side}} | |||
{{ | {{armaR}} servers uses {{Link|https://en.wikipedia.org/wiki/JSON|JSON}} configuration format. {{Link|#Template}} and {{Link|#Example}} are available at the bottom of this page. | ||
{{Feature|important| | {{Feature|important| | ||
Two '''very important''' aspects of dedicated server public hosting: | Two '''very important''' aspects of dedicated server public hosting: | ||
* Keep {{Link|#fastValidation}} to {{hl|true}} | * Keep {{Link|#fastValidation}} to {{hl|true}} | ||
* Limit max FPS with the {{hl| | * Limit max FPS with the {{hl|{{Link|Arma Reforger:Startup Parameters#maxFPS|-maxFPS}}}} startup parameter in order to save performance | ||
}} | |||
{{Feature|informative| | |||
* Parameters inside the JSON file are case-sensitive! | |||
* Values are strings, unless mentioned otherwise. | |||
* For Community config generators, see the following: | |||
** {{Link|https://arscfg.johandejong.dev/}} | |||
** {{Link|https://armareforger.se/server-generator/}} | |||
** {{Link|https://scg.armaplatform.io/}} | |||
}} | }} | ||
== Summary == | |||
Default ports to be opened for hosting: | |||
:{| class="wikitable align-center valign-middle" style="min-width: 30em" | |||
! Port | |||
! Protocol | |||
! Optional | |||
! Reason | |||
|- | |||
| 2001 | |||
| rowspan="3" | UDP | |||
| {{Icon|unchecked}} | |||
| {{Link|#publicPort|Public port}} | |||
|- | |||
| 17777 | |||
| {{Icon|checked}} | |||
| {{Link|#port|A2S port}} | |||
|- | |||
| 19999 | |||
| {{Icon|checked}} | |||
| {{Link|#port 2|RCON port}} | |||
|} | |||
{{Feature| | |||
* | == Root == | ||
* | |||
=== 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 a particular network interface. When left out or empty, {{hl|0.0.0.0}} is used, which allows connections through any IP address. | |||
{{Feature|important| | |||
* This entryshould generally be left out of server config to use default value and should only be set by experienced users with specific network needs. | |||
* IP'''v6''' is '''not''' supported by {{armaR}}. | |||
}} | }} | ||
''was '''gameHostBindAddress''' before 0.9.8.73'' | |||
=== bindPort === | |||
number value, range 1..65535, default: 2001 | number value, range 1..65535, default: 2001 | ||
UDP port to which the server socket will be bound. | UDP port to which the server socket will be bound. | ||
{{Feature|important| | |||
{{ | This entry should generally be left out of server config so that it automatically uses same value as {{Link|#publicPort}}. | ||
It should only be used by users with specific port forwarding needs. | |||
}} | |||
''was '''gameHostBindPort''' before 0.9.8.73'' | |||
=== publicAddress === | |||
IP address registered in backend. | 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). | 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). | ||
If the entry is missing or empty, then the public IP address will be automatically detected and used by the backend. | |||
{{Feature|important|IP'''v6''' is '''not''' supported by {{armaR}} | {{Feature|important| | ||
* This entry should generally be left out of server config to let the server automatically detect and use its public address used to reach it from internet. | |||
* It is possible to use the "local" keyword to automatically detect the local address of the network card. | |||
* IP'''v6''' is '''not''' supported by {{armaR}}. | |||
}} | |||
''was '''gameHostRegisterBindAddress''' before 0.9.8.73'' | |||
=== 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 {{Link|#bindPort}}. Otherwise, this is the UDP port that is forwarded to the server. | |||
''was '''gameHostRegisterPort''' before 0.9.8.73'' | |||
{{ArgTitle|3|a2s|{{GVI|armaR|0.9.9}}}} | |||
''0.9.9.31'' | ''0.9.9.31'' | ||
Steam Query protocol definition - see the | Steam Query protocol definition - see the {{Link|#a2s 2|a2s}} section below. | ||
{{Feature|informative|Before {{GVI|armaR|0.9.9|size= 0.75}}, a2s settings were: | {{Feature|informative| | ||
Before {{GVI|armaR|0.9.9|size= 0.75}}, a2s settings were: | |||
* {{hl|a2sQueryEnabled}} - bool value, default: false | * {{hl|a2sQueryEnabled}} - bool value, default: false | ||
* {{hl|steamQueryPort}} - number value, range 1..65535, default: 17777 | * {{hl|steamQueryPort}} - number value, range 1..65535, default: 17777 | ||
}} | }} | ||
{{ArgTitle|3|rcon|{{GVI|armaR|1.0.0}}}} | |||
Define the server's settings - see the | |||
The RCON Protocol is a UDP-based communication protocol that allows console commands to be issued to the server via a '''R'''emote '''CON'''sole, or RCON - see the {{Link|#rcon 2|rcon}} section below. | |||
=== game === | |||
Define the server's settings - see the {{Link|#game 2|game}} section below. | |||
{{Feature|important|Only '''one''' scenario can be defined - {{armaR}} does '''not''' allow for mission rotation as of v0.9.8.}} | {{Feature|important|Only '''one''' scenario can be defined - {{armaR}} does '''not''' allow for mission rotation as of v0.9.8.}} | ||
{{ArgTitle| | {{ArgTitle|3|operating|{{GVI|armaR|0.9.7}}}} | ||
Define various server settings - see the {{Link|#operating 2|operating}} section below. | Define various server settings - see the {{Link|#operating 2|operating}} section below. | ||
{{ArgTitle| | |||
{{ArgTitle|2|a2s|{{GVI|armaR|0.9.9}}}} | |||
''0.9.9.31'' | ''0.9.9.31'' | ||
See {{Link|https://developer.valvesoftware.com/wiki/Server_queries|A2S server queries}}. | |||
=== address === | |||
required | required | ||
IP address to which A2S socket will be bound. It can be used to restrict A2S queries to a particular network interface. | 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 | number value, range 1..65535, default: 17777 | ||
Change Steam Query UDP port on which game listens to A2S requests | Change Steam Query UDP port on which game listens to A2S requests | ||
==== name === | {{ArgTitle|2|rcon|{{GVI|armaR|1.0.0}}}} | ||
(Optional) | |||
See {{Link|https://www.battleye.com/downloads/BERConProtocol.txt|RCON protocol}}. | |||
=== address === | |||
required | |||
IP address to which the RCON socket will be bound. It can be used to restrict connection to a particular network interface. | |||
=== port === | |||
number value, range 1..65535, default 19999 | |||
RCON protocol port on which the game listens | |||
=== password === | |||
string | |||
{{Feature|important| | |||
The password: | |||
* is required for RCON to start | |||
* does '''not''' support spaces | |||
* must be at least '''3''' characters long | |||
}} | |||
{{ArgTitle|3|maxClients|{{GVI|armaR|1.1.0}}}} | |||
number value, range 1..16, default 16 | |||
The maximum number of clients that can connect to RCON at the same time. | |||
{{Feature|informative|RCON lacks client disconnect support, so when a user exits the RCON client, the server maintains the connection for an additional 30 seconds before a timeout removes the user from the list.}} | |||
=== permission === | |||
string | |||
Permission for all RCON clients. | |||
Possible values: | |||
{| class="wikitable" | |||
! Key | |||
! Value | |||
|- | |||
| admin | |||
| The admin can perform any command. | |||
|- | |||
| monitor | |||
| The monitor can only perform commands which do not change the server's state. | |||
|} | |||
=== blacklist === | |||
array value, default [] | |||
A list of commands excluded from execution. | |||
=== whitelist === | |||
array value, default [] | |||
If defined, it specifies the list of commands that can be executed, and no other command is allowed. | |||
== game == | |||
=== name === | |||
length 0..100 characters | length 0..100 characters | ||
=== password === | |||
length 0..x characters | length 0..x characters | ||
Password required to join the server. | Password required to join the server. | ||
=== passwordAdmin === | |||
length: 0..x characters | 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 {{Controls|C}} in the lobby or {{Controls|enter}} in-game followed by: {{hl|#login [the admin password]}} | 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 {{Controls|C}} in the lobby or {{Controls|enter}} in-game followed by: {{hl|#login [the admin password]}} | ||
{{Feature|important|This password does not support spaces in it.}} | {{Feature|important|This password does not support spaces in it.}} | ||
''was root/passwordAdmin before 0.9.8.73'' | |||
{{ArgTitle|3|admins|{{GVI|armaR|0.9.9}}}} | |||
''0.9.9.31'' | ''0.9.9.31'' | ||
Line 142: | Line 229: | ||
List players as server admins - they can be checked in script using <enforce inline>BackendApi.IsListedServerAdmin(int playerId)</enforce> regardless of their logged-in state. | List players as server admins - they can be checked in script using <enforce inline>BackendApi.IsListedServerAdmin(int playerId)</enforce> regardless of their logged-in state. | ||
{{GVI|armaR|1.0.0|size= 0.75}} Listed users can {{hl|#login}} without a password. | |||
=== scenarioId === | |||
The scenario's {{hl|.conf}} file path is defined here. | The scenario's {{hl|.conf}} file path is defined here. | ||
See the | See the {{Link|Arma Reforger:Startup Parameters#listScenarios|listScenarios}} startup parameter to list available scenarios and obtain their {{hl|.conf}} file path. | ||
: | |||
: {{GVI|armaR|1.1.0|size= 0.75}} <spoiler text="Show Official Scenarios (1.1.0)"> | |||
: -------------------------------------------------- | |||
: Official scenarios (9 entries) | |||
: -------------------------------------------------- | |||
: {ECC61978EDCC2B5A}Missions/23_Campaign.conf (Conflict - Everon) | |||
: {59AD59368755F41A}Missions/21_GM_Eden.conf (Game Master - Everon) | |||
: {94FDA7451242150B}Missions/103_Arland_Tutorial.conf (Training) | |||
: {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) | |||
: {DFAC5FABD11F2390}Missions/26_CombatOpsEveron.conf (Combat Ops - Everon) | |||
: -------------------------------------------------- | |||
: Workshop scenarios (8 entries) | |||
: -------------------------------------------------- | |||
: {6EA2E454519E5869}Missions/CAH_Military_Base.conf | |||
: {7C491B1FCC0FF0E1}Missions/CAH_LeMoule.conf | |||
: {F1A1BEA67132113E}Missions/CAH_Castle.conf | |||
: {589945FB9FA7B97D}Missions/CAH_Concrete_Plant.conf | |||
: {2B4183DF23E88249}Missions/CAH_Morton.conf | |||
: {3F2E005F43DBD2F8}Missions/CAH_Briars_Coast.conf | |||
: {9405201CBD22A30C}Missions/CAH_Factory.conf | |||
: {1CD06B409C6FAE56}Missions/CAH_Forest.conf | |||
: -------------------------------------------------- | |||
</spoiler> | |||
: {{GVI|armaR|1.0.0|size= 0.75}} <spoiler text="Show Official Scenarios (1.0.0)"> | |||
: {ECC61978EDCC2B5A}Missions/23_Campaign.conf (Conflict - Everon) | |||
: {59AD59368755F41A}Missions/21_GM_Eden.conf (Game Master - Everon) | |||
: {94FDA7451242150B}Missions/103_Arland_Tutorial.conf (Training) | |||
: {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) | |||
</spoiler> | |||
: {{GVI|armaR|0.9.9|size= 0.75}} <spoiler text="Show Official Scenarios (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) | |||
</spoiler> | |||
=== maxPlayers === | |||
number value, range 1..256, default: 64 | number value, range 1..256, default: 64 | ||
Set the maximum amount of players on the server. | Set the maximum amount of players on the server. | ||
''was '''playerCountLimit''' before 0.9.8.73'' | |||
=== visible === | |||
bool value, default: true (since 0.9.8.73) | bool value, default: true (since 0.9.8.73) | ||
Set the visibility of the server in the Server Browser. | Set the visibility of the server in the Server Browser. | ||
{{ArgTitle| | {{ArgTitle|3|crossPlatform|{{GVI|armaR|0.9.9}}}} | ||
bool value, default: false | bool value, default: false | ||
If set to true, automatically adds {{hl|"PLATFORM_PC"}} and {{hl|"PLATFORM_XBL"}} to {{Link|#supportedGameClientTypes}} if they are missing; does nothing if set to false. | If set to true, automatically adds {{hl|"PLATFORM_PC"}} and {{hl|"PLATFORM_XBL"}} to {{Link|#supportedGameClientTypes}} if they are missing; does nothing if set to false. | ||
=== | === supportedPlatforms === | ||
array value, default: ["PLATFORM_PC"] | array value, default: ["PLATFORM_PC"] | ||
Line 184: | Line 325: | ||
|} | |} | ||
''was '''supportedGameClientTypes''' before 0.9.8.73'' | |||
Define the scenario's settings - see the | |||
=== gameProperties === | |||
Define the scenario's settings - see the {{Link|#gameProperties 2|gameProperties}} section below. | |||
=== mods === | |||
The list of mods required by the client that will automatically be downloaded and activated on join. | |||
The list of mods required by the client | It can be created by activating wanted mods in the {{Link|Arma Reforger:Workshop|Workshop}} and then, via the '''Mod manager''', result can be converted to ready to be used string after navigating to '''JSON''' tab and then clicking on the '''Copy to clipboard''' button. | ||
[[File:armareforger-server-hosting-mod-list.png|906x906px]] | |||
==== modID ==== | |||
GUID of the mod. Single GUID can be obtained from Workshop webpage | |||
[[File:armareforger-server-hosting-workshop-guid.png]] | |||
===== version | Alternatively you can grab it from Workbench options when mod is running or directly from gproj file | ||
[[File:armareforger-server-hosting-guid.png|1200px]] | |||
==== name ==== | |||
This parameter does not do anything and is only used as sort of comment, with human readable name of the mod. | |||
==== version ==== | |||
{{Feature|informative|The {{hl|version}} mod parameter is optional. If it missing, the latest mod version will be used.}} | {{Feature|informative|The {{hl|version}} mod parameter is optional. If it missing, the latest mod version will be used.}} | ||
==== serverMaxViewDistance === | == gameProperties == | ||
=== serverMaxViewDistance === | |||
number value, range 500..10000, default: 1600 | number value, range 500..10000, default: 1600 | ||
=== serverMinGrassDistance === | |||
number value, range 0 / 50..150, default: 0 | number value, range 0 / 50..150, default: 0 | ||
Minimum grass distance in meters. If set to 0 no distance is forced upon clients. | Minimum grass distance in meters. If set to 0 no distance is forced upon clients. | ||
=== fastValidation === | |||
bool value, default: true (since 0.9.6) | bool value, default: true (since 0.9.6) | ||
Line 223: | Line 379: | ||
{{Feature|warning|'''Always''' set this value to {{hl|true}} for a public server!}} | {{Feature|warning|'''Always''' set this value to {{hl|true}} for a public server!}} | ||
=== networkViewDistance === | |||
number value, range 500.5000, default: 1500 | |||
number value, range 500..5000, default: 1500 | |||
Maximum network streaming range of replicated entities. | Maximum network streaming range of replicated entities. | ||
=== battlEye === | |||
bool value, default: true (since 0.9.8.73) | bool value, default: true (since 0.9.8.73) | ||
true to enable BattlEye, false to disable it. | true to enable BattlEye, false to disable it. | ||
=== disableThirdPerson === | |||
bool value, default: false | bool value, default: false | ||
Force clients to use the first-person view. | Force clients to use the first-person view. | ||
=== VONDisableUI === | |||
bool value, default: false | bool value, default: false | ||
Force clients to not have VON (Voice Over Network) UI. | Force clients to not have VON (Voice Over Network) UI. | ||
=== VONDisableDirectSpeechUI === | |||
bool value, default: false | bool value, default: false | ||
Force clients to not have VON (Voice Over Network) Direct Speech UI. | Force clients to not have VON (Voice Over Network) Direct Speech UI. | ||
{{ArgTitle|3|VONCanTransmitCrossFaction|{{GVI|armaR|1.0.0}}}} | |||
bool value, default: false | |||
Option to allow players to transmit on other factions radios. true is allow to communicate, false is listen-only | |||
=== missionHeader === | |||
This property overwrites the scenario's {{Link/Enfusion|armaR|SCR_MissionHeaderCampaign}}. | This property overwrites the scenario's {{Link/Enfusion|armaR|SCR_MissionHeaderCampaign}}. | ||
{{ArgTitle|2|operating|{{GVI|armaR|0.9.7}}}} | |||
=== lobbyPlayerSynchronise === | |||
bool value, default: true (since 0.9.8.73) | 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. | If enabled, the list of player identities present on server is sent to the GameAPI along with the server's heartbeat. | ||
{{Feature|informative|This setting fixes the discrepancy between the real and reported number of players on the server.}} | {{Feature|informative|This setting fixes the discrepancy between the real and reported number of players on the server.}} | ||
{{ArgTitle| | {{ArgTitle|3|disableCrashReporter|{{GVI|armaR|0.9.8}}}} | ||
bool value, default: false | bool value, default: false | ||
If enabled, the automatic server-side | If enabled, the automatic server-side {{Link|Arma Reforger:Crash Report|Crash Report}} is disabled. Has the same effect as {{Link|Arma Reforger:Startup Parameters#disableCrashReporter|-disableCrashReporter}}. | ||
{{ArgTitle|3|disableNavmeshStreaming|{{GVI|armaR|1.0.0}}}} | |||
* {{GVI|armaR|1.0.0|size= 0.75}} bool value, default: false | |||
* {{GVI|armaR|1.2.0|size= 0.75}} array value, default undefined | |||
* {{GVI|armaR|1.0.0|size= 0.75}} If enabled, the server will disable navmesh streaming on all navmesh components and load the entire navmesh into memory.<!-- | |||
--> This setting provides slightly better server performance and reaction times of moving AIs at the cost of higher memory consumption (up to hundreds of MB depending on the terrain). | |||
* {{GVI|armaR|1.2.0|size= 0.75}} If not provided, no navmesh streaming is disabled. If provided empty, streaming of all navmeshes is disabled. If filled, only disables provided navmeshes's streaming. | |||
''was '''bool''' before 1.2.0'' | |||
{{ArgTitle|3|disableServerShutdown|{{GVI|armaR|0.9.8}}}} | |||
bool value, default: false | bool value, default: false | ||
If enabled, the server will not automatically shutdown if connection to backend is lost. | If enabled, the server will not automatically shutdown if connection to backend is lost. | ||
Related to room requests errors - other causes like corrupted config will still shutdown the server. | Related to room requests errors - other causes like corrupted config will still shutdown the server. | ||
{{ArgTitle| | {{ArgTitle|3|disableAI|{{GVI|armaR|1.1.0}}}} | ||
bool value, default: false | |||
If enabled, the server will prevent initialization and ticking of AIWorld and its components. | |||
Will completely disable AI functionality on the server. | |||
{{ArgTitle|3|playerSaveTime|{{GVI|armaR|0.9.8}}}} | |||
number value, default: 120 | 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). | Default period in seconds for saving players for both Online and Local storage (player save can still be requested on demand). | ||
{{ArgTitle| | {{ArgTitle|3|aiLimit|{{GVI|armaR|0.9.8}}}} | ||
''0.9.8.64'' | ''0.9.8.64'' | ||
Line 287: | Line 479: | ||
This param is overridden by the {{Link|Arma Reforger:Startup Parameters#AILimit|-aiLimit}} startup parameter. | This param is overridden by the {{Link|Arma Reforger:Startup Parameters#AILimit|-aiLimit}} startup parameter. | ||
{{ArgTitle| | {{ArgTitle|3|slotReservationTimeout|{{GVI|armaR|0.9.9}}}} | ||
''0.9.9.31'' | ''0.9.9.31'' | ||
Line 303: | Line 496: | ||
{{Feature|informative|Reservation works only for '''replication''' kicks.}} | {{Feature|informative|Reservation works only for '''replication''' kicks.}} | ||
== Template == | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
Line 311: | Line 505: | ||
"publicAddress": "", | "publicAddress": "", | ||
"publicPort": 0, | "publicPort": 0, | ||
"a2s": { | |||
"address": "", | |||
"port": 0 | |||
}, | |||
"rcon": { | |||
"address": "", | |||
"port": 0, | |||
"password": "", | |||
"permission": "monitor", | |||
"blacklist": [], | |||
"whitelist": [] | |||
}, | |||
"game": { | "game": { | ||
"name": "", | "name": "", | ||
"password": "", | "password": "", | ||
"passwordAdmin": "", | "passwordAdmin": "", | ||
"admins" : [], | |||
"scenarioId": "", | "scenarioId": "", | ||
"maxPlayers": 0, | "maxPlayers": 0, | ||
Line 326: | Line 533: | ||
"battlEye": true, | "battlEye": true, | ||
"VONDisableUI": false, | "VONDisableUI": false, | ||
"VONDisableDirectSpeechUI": false | "VONDisableDirectSpeechUI": false, | ||
"VONCanTransmitCrossFaction": false | |||
}, | }, | ||
"mods": [] | "mods": [] | ||
Line 333: | Line 541: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Example == | |||
<spoiler text="Show Example Configuration"> | <spoiler text="Show Example Configuration"> | ||
Line 345: | Line 554: | ||
"address": "192.168.9.10", | "address": "192.168.9.10", | ||
"port": 17777 | "port": 17777 | ||
}, | |||
"rcon": { | |||
"address": "192.168.9.10", | |||
"port": 19999, | |||
"password": "changeme_withoutspaces", | |||
"permission": "monitor", | |||
"blacklist": [], | |||
"whitelist": [] | |||
}, | }, | ||
"game": { | "game": { | ||
Line 350: | Line 567: | ||
"password": "", | "password": "", | ||
"passwordAdmin": "changeme", | "passwordAdmin": "changeme", | ||
"admins" : [ | |||
"76561198200329058" | |||
], | |||
"scenarioId": "{ECC61978EDCC2B5A}Missions/23_Campaign.conf", | "scenarioId": "{ECC61978EDCC2B5A}Missions/23_Campaign.conf", | ||
"maxPlayers": 32, | "maxPlayers": 32, |
Revision as of 14:26, 26 June 2024
Arma Reforger servers uses JSON configuration format. Template and Example are available at the bottom of this page.
Summary
Default ports to be opened for hosting:
Port Protocol Optional Reason 2001 UDP Public port 17777 A2S port 19999 RCON port
Root
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 a particular network interface. When left out or empty, 0.0.0.0 is used, which allows connections through any IP address.
was gameHostBindAddress before 0.9.8.73
bindPort
number value, range 1..65535, default: 2001
UDP port to which the server socket will be bound.
was gameHostBindPort before 0.9.8.73
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). If the entry is missing or empty, then the public IP address will be automatically detected and used by the backend.
was gameHostRegisterBindAddress before 0.9.8.73
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 bindPort. Otherwise, this is the UDP port that is forwarded to the server.
was gameHostRegisterPort before 0.9.8.73
a2s
0.9.9.31
Steam Query protocol definition - see the a2s section below.
rcon
The RCON Protocol is a UDP-based communication protocol that allows console commands to be issued to the server via a Remote CONsole, or RCON - see the rcon 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
See A2S server queries.
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
rcon
(Optional)
See RCON protocol.
address
required
IP address to which the RCON socket will be bound. It can be used to restrict connection to a particular network interface.
port
number value, range 1..65535, default 19999
RCON protocol port on which the game listens
password
string
maxClients
number value, range 1..16, default 16
The maximum number of clients that can connect to RCON at the same time.
permission
string
Permission for all RCON clients. Possible values:
Key | Value |
---|---|
admin | The admin can perform any command. |
monitor | The monitor can only perform commands which do not change the server's state. |
blacklist
array value, default []
A list of commands excluded from execution.
whitelist
array value, default []
If defined, it specifies the list of commands that can be executed, and no other command is allowed.
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]
was root/passwordAdmin before 0.9.8.73
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.
1.0.0 Listed users can #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.
1.1.0
: -------------------------------------------------- : Official scenarios (9 entries) : -------------------------------------------------- : {ECC61978EDCC2B5A}Missions/23_Campaign.conf (Conflict - Everon) : {59AD59368755F41A}Missions/21_GM_Eden.conf (Game Master - Everon) : {94FDA7451242150B}Missions/103_Arland_Tutorial.conf (Training) : {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) : {DFAC5FABD11F2390}Missions/26_CombatOpsEveron.conf (Combat Ops - Everon)
: -------------------------------------------------- : Workshop scenarios (8 entries) : -------------------------------------------------- : {6EA2E454519E5869}Missions/CAH_Military_Base.conf : {7C491B1FCC0FF0E1}Missions/CAH_LeMoule.conf : {F1A1BEA67132113E}Missions/CAH_Castle.conf : {589945FB9FA7B97D}Missions/CAH_Concrete_Plant.conf : {2B4183DF23E88249}Missions/CAH_Morton.conf : {3F2E005F43DBD2F8}Missions/CAH_Briars_Coast.conf : {9405201CBD22A30C}Missions/CAH_Factory.conf : {1CD06B409C6FAE56}Missions/CAH_Forest.conf : --------------------------------------------------
1.0.0
: {ECC61978EDCC2B5A}Missions/23_Campaign.conf (Conflict - Everon) : {59AD59368755F41A}Missions/21_GM_Eden.conf (Game Master - Everon) : {94FDA7451242150B}Missions/103_Arland_Tutorial.conf (Training) : {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)
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)
maxPlayers
number value, range 1..256, default: 64
Set the maximum amount of players on the server.
was playerCountLimit before 0.9.8.73
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.
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 |
was supportedGameClientTypes before 0.9.8.73
gameProperties
Define the scenario's settings - see the gameProperties section below.
mods
The list of mods required by the client that will automatically be downloaded and activated on join. It can be created by activating wanted mods in the Workshop and then, via the Mod manager, result can be converted to ready to be used string after navigating to JSON tab and then clicking on the 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 does not 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.
VONCanTransmitCrossFaction
bool value, default: false
Option to allow players to transmit on other factions radios. true is allow to communicate, false is listen-only
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.
disableCrashReporter
bool value, default: false
If enabled, the automatic server-side Crash Report is disabled. Has the same effect as -disableCrashReporter.
1.0.0 If enabled, the server will disable navmesh streaming on all navmesh components and load the entire navmesh into memory. This setting provides slightly better server performance and reaction times of moving AIs at the cost of higher memory consumption (up to hundreds of MB depending on the terrain).
1.2.0 If not provided, no navmesh streaming is disabled. If provided empty, streaming of all navmeshes is disabled. If filled, only disables provided navmeshes's streaming.
was bool before 1.2.0
disableServerShutdown
bool value, default: false
If enabled, the server will not automatically shutdown if connection to backend is lost. Related to room requests errors - other causes like corrupted config will still shutdown the server.
disableAI
bool value, default: false
If enabled, the server will prevent initialization and ticking of AIWorld and its components. Will completely disable AI functionality on the server.
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,
"a2s": {
"address": "",
"port": 0
},
"rcon": {
"address": "",
"port": 0,
"password": "",
"permission": "monitor",
"blacklist": [],
"whitelist": []
},
"game": {
"name": "",
"password": "",
"passwordAdmin": "",
"admins" : [],
"scenarioId": "",
"maxPlayers": 0,
"visible": true,
"gameProperties": {
"serverMaxViewDistance": 0,
"serverMinGrassDistance": 0,
"networkViewDistance": 0,
"disableThirdPerson": false,
"fastValidation": true,
"battlEye": true,
"VONDisableUI": false,
"VONDisableDirectSpeechUI": false,
"VONCanTransmitCrossFaction": 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
},
"rcon": {
"address": "192.168.9.10",
"port": 19999,
"password": "changeme_withoutspaces",
"permission": "monitor",
"blacklist": [],
"whitelist": []
},
"game": {
"name": "Server Name - Mission Name",
"password": "",
"passwordAdmin": "changeme",
"admins" : [
"76561198200329058"
],
"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
}
}