This article covers the different settings for the config file in ArmA 3 servers (server.cfg). This is located under “arma/config/server.cfg” on your Game Server and can be edited via the file browser (located under Tools on the web interface) or via FTP .
Parameter | Default | Description |
---|---|---|
passwordAdmin = "xyzxyz"; |
"" |
Password to protect admin access. |
password = "xyz"; |
"" |
Password required to connect to server. |
serverCommandPassword = "xyzxyz"; |
"" |
Password required by alternate syntax of serverCommand server-side scripting. |
hostname="My Server"; |
UNKNOWN |
Servername visible in the game browser. |
maxPlayers = 10; |
64 (DS) |
The maximum number of players that can connect to server. The final number will be lesser between number given here and number of mission slots. |
motd[]= {"Welcome to my server.", "Hosted in the net."}; |
{} |
Two lines welcome message. Comma is the ‘new line’ separator. |
admins[] = {"<UID>"}; |
{} |
Whitelisted clients can use #login w/o password. See Logged In Admin |
headlessClients[] = {"<IP>"}; |
{} |
Headless clients IPs. Multiple connections and addresses are allowed in the case of more than one Headless Client. See Arma 3: Headless Client |
localClient[] = {"<IP>"}; |
{} |
Indicates clients with unlimited bandwidth and nearly no latency . See Arma 3: Headless Client |
voteThreshold = 0.33; |
UNKNOWN |
Percentage of votes needed to confirm a vote. 33% in this example. |
voteMissionPlayers = 3; |
UNKNOWN |
Start mission-voting when X numberOfPlayers connect. |
kickduplicate = 1; |
UNKNOWN |
Do not allow duplicate game IDs . Second player with an existing ID will be kicked automatically. 1 means active, 0 disabled. |
loopback = true; |
false |
Adding this option will force server into LAN mode. This will allow multiple local instances of the game to connect to the server for testing purposes. At the same time it will prevent all non-local instances from connecting. |
upnp = true; |
false |
Automatically creates port mapping on UPNP/IGD enabled router. This option allows to create a server behind NAT (the router must have public IP and support UPNP/IGD protocol). Read more Internet Gateway Device (IGD) Standardized Device Control Protocol.
⚠ When enabled then this setting may delay server start-up by 600s (standard UDP timeout of 10 minutes) if blocked on firewall or bad routing etc. Thus in such case is recommended to disable it. |
allowedFilePatching = 0; |
0 |
Prevent or allow file patching for the clients (including the HC)
|
allowedLoadFileExtensions[] = {"sqf","txt"}; |
UNKNOWN |
Only allow files with listed extensions to be loaded via loadFile command. Not listing any extension means everything is allowed. Defining the setting as empty arrays means nothing is allowed. |
allowedPreprocessFileExtensions[] = {"sqf","sqs"}; |
UNKNOWN |
Only allow files with listed extensions to be loaded via preprocessFile / preprocessFileLineNumbers commands. Not listing any extension means everything is allowed. Defining the setting as empty arrays means nothing is allowed. |
allowedHTMLLoadExtensions[] = {"htm","html"}; |
UNKNOWN |
Only allow files and URLs with listed extensions to be loaded via htmlLoad command. Not listing any extension means everything is allowed. Defining the setting as empty arrays means nothing is allowed. |
allowedHTMLLoadURIs[] = {"http://arma3.com"}; |
UNKNOWN |
Only allow files from listed URIs and URLs to be loaded via htmlLoad command. Comment out if not used. Can use += to add to the existing list. Not listing any extension means everything is allowed. Defining the setting as empty arrays means nothing is allowed. |
filePatchingExceptions[] = {"123456789","987654321"}; |
{} |
Whitelisted Steam IDs allowed filePatching |
disconnectTimeout = 5; |
90 |
Server wait time before disconnecting client after loss of active traffic connection, range 5 to 90 seconds. |
maxdesync = 150; |
UNKNOWN |
Max desync value until server kick the user |
maxping= 200; |
UNKNOWN |
Max ping value until server kick the user |
maxpacketloss= 50; |
UNKNOWN |
Max packetloss value until server kick the user |
kickClientsOnSlowNetwork[] = { 0, 0, 0, 0 }; |
UNKNOWN |
Defines if {<MaxPing>, <MaxPacketLoss>, <MaxDesync>, <DisconnectTimeout>} will be logged (0) or kicked (1) |
enablePlayerDiag = 1 |
0 |
Logs players’ bandwidth and desync info every 60 seconds, as well as “network message is pending” owner identity. |
callExtReportLimit = 1000; |
1000 |
If server initiated callExtension takes longer than specified limit in milliseconds, the warning will be logged into server .rpt file as well as reflected in the extension return result. |
kickTimeout[] = { {0, -1},{1, 180},{2, 180},{3, 180} }; |
UNKNOWN |
kickTimeout[] = { {kickID, timeout}, ... };
kickID (type to determine from where the kick originated e.g. admin or votekick etc.)
timeout = in seconds how long until kicked player can return
|
votingTimeOut = 60; |
60 |
Voting timeout |
votingTimeOut[] = {60, 90}; |
{60, 90} |
Voteing timeout {ready, notReady} |
roleTimeOut = 90; |
90 |
Role seleciton timout |
roleTimeOut[] = {90, 120}; |
{90, 120} |
Role selection timeout {ready, notReady} |
briefingTimeOut = 60; |
60 |
Briefing timeout |
briefingTimeOut[] = {60, 90}; |
{90, 120} |
Briefing timeout {ready, notReady} |
debriefingTimeOut = 45; |
45 |
Briefing timeout |
debriefingTimeOut [] = {60, 60}; |
{90, 120} |
Debriefing timeout {ready, notReady} |
lobbyIdleTimeout = 300; |
300 |
Lobby idle timeout
Independent of set lobbyIdleTimeout in the config file, it will be at least
|
missionsToServerRestart = 8; |
UNKNOWN |
Number of times missionEnd happens before server initiate process restart (uses actual session startup command-line parameters, not possible to combine with `missionsToShutdown` ) |
missionsToShutdown = 8; |
UNKNOWN |
Number of times missionEnd happens before server initiate process shutdown (has same behavior as setting named `missionsToHardRestart`) |
autoSelectMission = true; |
false |
When enabled, the server auto-starts next mission in mission cycle and waits for players in the role selection. This allows full mission information in server browser and then results in proper filtering of the servers. This is lesser-variant (trimmed) of server startup command-line parameter -autoInit . Might collide with campaign linked missions / need mission cycle etc. |
randomMissionOrder = true; |
UNKNOWN |
When enabled, the server random start / next selection with one of missions from mission rotation list. ( setting goes outside(before) Mission class {}; ) |
disableChannels[] = { {0,false,true} }; |
{} |
disableChannels[] = { {channelID, text, voice}, ... }>;
List of channels ID:
ⓘ Missions which use Description.ext#disableChannels will override any setting of disableChannels[] in the server.cfg . |
More Information
Further information can be acquired from the ArmA 3 server.cfg Wiki.
Parameter | Default Value | Description |
---|---|---|
verifySignatures = 2; |
2 |
Enables or disables the signature verification for addons.
|
drawingInMap = false; |
true |
Enables or disables the ability to place markers and draw lines on the map. |
disableVoN = 1; |
0 |
Enables or disables the Voice over Net. |
vonCodecQuality = 10; |
3 |
Defines VoN codec quality. Value range is from 1 to 20 .
|
vonCodec = 1; |
0 |
Defines VoN codec type. Value range is from 0 to 1 .
|
skipLobby = false; |
false |
If true, joining player will skip role selection. This is only used if no Mission, Campaign or Config setting skipLobby is defined (See Description.ext#skipLobby). |
allowProfileGlasses = false; |
true |
If false, glasses set in player profile will be ignored. This is only used if no Mission, Campaign, or Config setting allowProfileGlasses is defined (See Description.ext – allowProfileGlasses). |
zeusCompositionScriptLevel = 0; |
1 |
This is only used if no Mission, Campaign, or Config setting |
logFile = "server_console.log"; |
UNKNOWN |
Enables output of dedicated server console into textfile. Default location of log is the same as crash dumps and other logs. (Local settings) Note that this does not change the location of the “net.log” file, which is enabled with the -netlog command line option. |
doubleIdDetected = "command"; |
"" |
See Server Side Scripting |
onUserConnected = "command"; |
"" |
|
onUserDisconnected = "command"; |
"" |
|
onHackedData = "command"; |
"" |
|
onDifferentData = "command"; |
"" |
|
onUnsignedData = "command"; |
"" |
|
onUserKicked = "command"; |
"" |
|
regularCheck = "command"; |
"" |
|
BattlEye = 1; |
1 |
Enables or disables the BattlEye anti-cheat engine. Requires installed BattlEye on the server and clients joining the server. |
timeStampFormat = "none"; |
"" |
Set the timestamp format used on each report line in server-side RPT file. Possible values are “none”, “short”, “full”. |
forceRotorLibSimulation = 0; |
0 |
Enforces the Advanced Flight Model on the server. 0 (up to the player). 1 – forced AFM, 2 – forced SFM. |
persistent = 1; |
0 |
Mission keeps running when all clients disconnect. Enabling the persistence option will make missions that have either base or instant respawn keep on running after all players have disconnected. The other respawn types will not make a mission persistent. The kind of respawn a certain mission uses is set in its Description.ext. |
requiredBuild = xxxxx; |
UNKNOWN |
Minimum required client version. Clients with a version lower than requiredBuild will not be able to connect. If requiredBuild is set to a large number, like requiredBuild = 999999999; for example, it will automatically be lowered to the current server version. |
statisticsEnabled = 1; |
1 |
Allows opting-out of Arma 3 analytics for the server by using 0 . |
forcedDifficulty = "regular"; |
"" |
Enforces the selected difficulty on the server. forcedDifficulty = "<difficultyClass>";
|
missionWhitelist[] = {"intro.altis"}; |
{} |
Limit the available missions for the admin for the mission change. See Arma 3: MP Mission Names for a full list. |
steamProtocolMaxDataSize = 1024; |
UNKNOWN |
Limit for maximum Steam Query packet length. Increasing this value is dangerous as it can cause Arma 3 server to send UDP packets of a size larger than the MTU. This will cause UDP packets to be fragmented which is not supported by some older routers. But increasing this will fix the modlist length limit in Arma 3: Launcher. |
armaUnitsTimeout = 30; |
30 |
Defines how long the player will be stuck connecting and waiting for armaUnits data. The player will be notified if the timeout elapses and no units data is received. |