How To Upload Missions To Arma 3 Decated Server
Contents
- ane Server Options
- ii Server Administration
- 2.1 Voted In Admin
- 2.2 Logged In Admin
- 3 Server Security
- 3.1 Notes
- 3.2 Rubber Binder Structure
- 4 Example Configuration File
- five Mission rotation
- 6 Arma 3: Noon - Mission collection
- 7 Boosted details
- eight Overriding Mission Parameters
Arma 3 Server Configuration Overview | ||||
---|---|---|---|---|
Topic | Pages | |||
Setup | Arma 3: Defended Server ● Arma 3: Defended Server (Chinese Simplified) ● Arma three: Dedicated Server (Chinese Traditional) | |||
Files | Arma iii: Server Config File ● Arma iii: Basic Server Config File ● Arma three: Server Contour | |||
Other | Multiplayer Server Commands ● Arma 3: Mission voting ● Arma 3: Headless Client ● BattlEye |
This commodity deals with the server.cfg, a configuration file which one can utilize to configure various game server settings such as the difficulty level, how many votes are needed, and welcome messages. The proper noun server.cfg means zip, and this file tin can exist chosen anything. The real proper name is determined by the -config command line pick when launching the dedicated server. There is no default name: when no filename is specified, no server configuration file is loaded.
Server Options
Parameter | Default | Description | Since |
---|---|---|---|
passwordAdmin = "xyzxyz"; | "" | Password to protect admin access. | - |
password = "xyz"; | "" | Password required to connect to server. | - |
serverCommandPassword = "xyzxyz"; | "" | Password required past 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 tin can connect to server. The final number will be lesser betwixt number given here and number of mission slots. | - |
motd[]= {"Welcome to my server.", "Hosted in the cyberspace."}; | {} | Two lines welcome message. Comma is the 'new line' separator. | - |
admins[] = {"<UID>"}; | {} | Whitelisted clients tin use #login w/o password. See Logged In Admin | ane.seventy |
headlessClients[] = {"<IP>"}; | {} | Headless clients IPs. Multiple connections and addresses are allowed in the case of more than 1 Headless Client. See Arma iii: Headless Client | - |
localClient[] = {"<IP>"}; | {} | Indicates clients with unlimited bandwidth and nigh no latency. Come across Arma three: Headless Customer | - |
Server Behaviour | |||
voteThreshold = 0.33; | UNKNOWN | Percentage of votes needed to ostend a vote. 33% in this case. | - |
voteMissionPlayers = 3; | UNKNOWN | Start mission-voting when X numberOfPlayers connect. | - |
allowedVoteCmds[] = { {"kick", false, imitation, 0.75} }; | {} | See Arma iii: Mission voting | - |
allowedVotedAdminCmds[] = { { "mission", true, true } }; See Arma 3: Mission voting | - | ||
kickduplicate = 1; | UNKNOWN | Exercise not allow duplicate game IDs. Second player with an existing ID will be kicked automatically. one ways agile, 0 disabled. | - |
loopback = true; | fake | Adding this selection 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 aforementioned time it will foreclose all non-local instances from connecting. | - |
upnp = truthful; | faux | Automatically creates port mapping on UPNP/IGD enabled router. This pick allows to create a server behind NAT (the router must have public IP and back up UPNP/IGD protocol). Read more than Internet Gateway Device (IGD) Standardized Device Control Protocol. | - |
allowedFilePatching = 0; | 0 | Prevent or allow file patching for the clients (including the HC)
| one.50 |
allowedLoadFileExtensions[] = {"sqf","txt"}; | UNKNOWN | Simply let files with listed extensions to be loaded via loadFile command. Not listing whatever extension ways everything is immune. Defining the setting as empty arrays ways zilch is allowed. | 1.20 |
allowedPreprocessFileExtensions[] = {"sqf","sqs"}; | UNKNOWN | Only permit files with listed extensions to be loaded via preprocessFile / preprocessFileLineNumbers commands. Not listing any extension means everything is immune. Defining the setting equally empty arrays ways nothing is allowed. | 1.20 |
allowedHTMLLoadExtensions[] = {"htm","html"}; | UNKNOWN | Just allow files and URLs with listed extensions to be loaded via htmlLoad command. Non listing any extension means everything is immune. Defining the setting as empty arrays means zero is immune. | one.28 |
allowedHTMLLoadURIs[] = {"http://arma3.com"}; | UNKNOWN | Only permit files from listed URIs and URLs to be loaded via htmlLoad command. Comment out if not used. Tin apply += to add to the existing list. Not listing whatsoever extension means everything is immune. Defining the setting every bit empty arrays means nothing is allowed. | - |
filePatchingExceptions[] = {"123456789","987654321"}; | {} | Whitelisted Steam IDs allowed filePatching | - |
disconnectTimeout = 5; | 90 | Server expect time before disconnecting client after loss of active traffic connection, range v to ninety seconds. | ane.56 |
maxdesync = 150; | UNKNOWN | Max desync value until server kick the user | ane.56 |
maxping= 200; | UNKNOWN | Max ping value until server kick the user | ane.56 |
maxpacketloss= fifty; | UNKNOWN | Max packetloss value until server kick the user | 1.56 |
kickClientsOnSlowNetwork[] = { 0, 0, 0, 0 }; | UNKNOWN | Defines if {<MaxPing>, <MaxPacketLoss>, <MaxDesync>, <DisconnectTimeout>} will be logged (0) or kicked (1) | one.56 |
enablePlayerDiag = 1 | 0 | Logs players' bandwidth and desync info every lx seconds, every bit 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 every bit reflected in the extension return outcome. | - |
kickTimeout[] = { {0, -ane},{i, 180},{2, 180},{iii, 180} }; | UNKNOWN | kickTimeout[] = { {kickID, timeout}, ... };
timeout = in seconds how long until kicked actor tin return
| 1.90 Profil. Branch |
votingTimeOut = 60; | 60 | Voting timeout | - |
votingTimeOut[] = {sixty, 90}; | {sixty, 90} | Voteing timeout {ready, notReady} | 1.90 Profil. Branch |
roleTimeOut = xc; | 90 | Office seleciton timout | - |
roleTimeOut[] = {90, 120}; | {ninety, 120} | Part pick timeout {ready, notReady} | 1.90 Profil. Branch |
briefingTimeOut = threescore; | 60 | Briefing timeout | - |
briefingTimeOut[] = {60, 90}; | {ninety, 120} | Conference timeout {ready, notReady} | 1.90 Profil. Branch |
debriefingTimeOut = 45; | 45 | Briefing timeout | - |
debriefingTimeOut [] = {60, 60}; | {xc, 120} | Debriefing timeout {ready, notReady} | 1.90 Profil. Branch |
lobbyIdleTimeout = 300; | 300 | Lobby idle timeout Contained of gear up lobbyIdleTimeout in the config file, it volition be at to the lowest degree | i.90 Profil. Co-operative |
missionsToServerRestart = 8; | UNKNOWN | Number of times missionEnd happens earlier server initiate process restart (uses bodily session startup command-line parameters, non possible to combine with `missionsToShutdown` ) | - |
missionsToShutdown = 8; | UNKNOWN | Number of times missionEnd happens before server initiate procedure shutdown (has same beliefs as setting named `missionsToHardRestart`) | - |
autoSelectMission = true; | false | When enabled, the server machine-starts adjacent mission in mission cycle and waits for players in the role selection. This allows full mission data in server browser and then results in proper filtering of the servers. This is lesser-variant (trimmed) of server startup control-line parameter -autoInit. Might collide with entrada linked missions / need mission bicycle etc. | - |
randomMissionOrder = true; | UNKNOWN | When enabled, the server random get-go / next selection with one of missions from mission rotation listing. ( setting goes outside(before) Mission class {}; ) | - |
disableChannels[] = { {0,false,true} }; | {} | disableChannels[] = { {channelID, text, voice}, ... }>;
List of channels ID:
| - |
Other Options | |||
verifySignatures = 2; | 2 | Enables or disables the signature verification for addons.
| - |
drawingInMap = faux; | true | Enables or disables the ability to place markers and draw lines in map. | ane.64 |
disableVoN = i; | 0 | Enables or disables the 5oice over Net. | - |
vonCodecQuality = 10; | 3 | Defines VoN codec quality. Value range is from 1 to twenty.
| - |
vonCodec = 1; | 0 | Defines VoN codec type. Value range is from 0 to ane.
| - |
skipLobby = false; | false | If true, joining player volition skip role selection. This is just used if no Mission, Entrada or Config setting skipLobby is defined (See Description.ext#skipLobby). | - |
allowProfileGlasses = simulated; | true | If simulated, spectacles ready in role player profile will be ignored. This is simply used if no Mission, Entrada or Config setting allowProfileGlasses is defined (See Clarification.ext - allowProfileGlasses) | ii.06 |
zeusCompositionScriptLevel = 0; | one |
This is only used if no Mission, Campaign or Config setting zeusCompositionScriptLevel is defined (See Description.ext - zeusCompositionScriptLevel). | ii.06 |
logFile = "server_console.log"; | UNKNOWN | Enables output of dedicated server console into textfile. Default location of log is same as crash dumps and other logs. (Local settings) Annotation that this does not change the location of the "net.log" file, which is enabled with the -netlog command line option. | - |
doubleIdDetected = "control"; | "" | Encounter Server Side Scripting | |
onUserConnected = "command"; | "" | - | |
onUserDisconnected = "command"; | "" | - | |
onHackedData = "command"; | "" | - | |
onDifferentData = "command"; | "" | - | |
onUnsignedData = "command"; | "" | - | |
onUserKicked = "command"; | "" | - | |
regularCheck = "command"; | "" | - | |
BattlEye = ane; | 1 | Enables or disables the BattlEye anti-cheat engine. Requires installed BattlEye on 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", "brusque", "total". | - |
forceRotorLibSimulation = 0; | 0 | Enforces the Advanced Flight Model on the server. 0 (upwards to the actor). 1 - forced AFM, 2 - forced SFM. | 1.34 |
persistent = one; | 0 | Mission keeps running when all clients disconnect. Enabling the persistence selection will make missions that accept either base or instant respawn continue on running afterwards all players have disconnected. The other respawn types will not make a mission persistent. The kind of respawn a sure mission uses is prepare in its Description.ext. | - |
requiredBuild = xxxxx; | UNKNOWN | Minimum required client version. Clients with version lower than requiredBuild will not be able to connect. If requiredBuild is prepare to a big number, similar requiredBuild = 999999999; for example, it will automatically be lowered to the current server version. | - |
statisticsEnabled = 1; | ane | Allows to opt-out of Arma 3 analytics for the server by using 0 | 1.56 |
forcedDifficulty = "regular"; | "" | Enforces the selected difficulty on the server. forcedDifficulty = "<difficultyClass>";
| one.56 |
missionWhitelist[] = {"intro.altis"}; | {} | Limit the available missions for the admin for the mission modify. See Arma 3: MP Mission Names for a total listing. | 1.56 |
steamProtocolMaxDataSize = 1024; | UNKNOWN | Limit for maximum Steam Query packet length. Increasing this value is dangerous as it can cause Arma three 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. | 2.00 |
class AdvancedOptions { LogObjectNotFound = truthful ; // logging enabled SkipDescriptionParsing = false ; // parse description.ext ignoreMissionLoadErrors = imitation ; // do not ingore errors }; | true/simulated/false | 2.02
2.04
| ii.02 two.04 |
armaUnitsTimeout = thirty; | 30 | Defines how long the player will exist stuck connecting and look for armaUnits data. Thespian will exist notified if timeout elapsed and no units data was received | 2.06 |
Server Administration
If BattlEye RCon is not in use, there can simply exist i server admin at whatsoever given time. There are two means of becoming admin, through a vote or through login with authenticated credentials.
Voted In Admin
It is possible to become a server administrator through player voting procedure. Such admin has less abilities than logged in admin.
For example, voted in admin would exist able to kicking a player, only only logged in admin would be able to ban a histrion.
For more information on voting and voting configuration see folio Server Voting.
Logged In Admin
To log in as admin, one is required to blazon in#login command followed by server password, which matches countersign defined in passwordAdmin param.
Since Arma2OA information technology is possible to add one or several user ids UIDs into admins[] server config parameter, which would allow listed users to log in as admin by simply typing #login without a password.
This presents several advantages for managing the servers. The server owner can have multiple admins selected from the customs and doesn't have to provide each i with server admin password.
The adding and removing of UIDs is done on the server side which makes information technology piece of cake to add and to remove admins if necessary. On the server, admins are handled on first come beginning served basis.
Here are the rules:
- If there is already a logged in admin on the server, the new admin will not exist able to log in until previously logged in admin logs out
- If there is a voted in admin on the server, the logged in admin will override voted in admin and take admin role
- In that location is no difference between logged in admin that used admin password or logged in admin that was whitelisted with admins[] param
The logged in and voted in admins take different fix of Multiplayer Server Commands available to them. Run across serverCommandAvailable for more information.
Server Security
Several of these settings straight contribute to the security of the server and have been highlighted as important, particularly for running public - no countersign - servers.
- The most updated ones that give a practiced protection (and are, de facto, the standard for public servers) are
battlEye = 1 ; verifySignatures = 2 ; allowedFilePatching = 0 ; allowedLoadFileExtensions [] = { "hpp" , "sqs" , "sqf" , "fsm" , "cpp" , "paa" , "txt" , "xml" , "inc" , "ext" , "sqm" , "ods" , "fxy" , "lip" , "csv" , "kb" , "bik" , "bikb" , "html" , "htm" , "biedi" }; allowedPreprocessFileExtensions [] = { "hpp" , "sqs" , "sqf" , "fsm" , "cpp" , "paa" , "txt" , "xml" , "inc" , "ext" , "sqm" , "ods" , "fxy" , "lip" , "csv" , "kb" , "bik" , "bikb" , "html" , "htm" , "biedi" }; allowedHTMLLoadExtensions [] = { "htm" , "html" , "xml" , "txt" }; // allowedHTMLLoadURIs[] = {}; passwordAdmin = "xyzxyz123" ; serverCommandPassword = "xyzxyz456" ;
Notes
The properties allowedLoad*/allowedPreprocess*/allowedHTML* are server.cfg settings with array list of extensions for server-side use only. The above listed examples are for basic game multiplayer modes. Server admins may endeavour to make information technology stricter for their servers. However, if too strict and then server's log file will contain warning entries about unable read.
- With the exception of allowedHTMLLoadURIs those arrays covers both files inside and outside PBOs so don't change the above defaults w/o testing outset as there is a chance it volition intermission the game.
- To read loadFile , preprocessFile , preprocessFileLineNumbers and to think, those works on files only-within Arma 3 server directory and its sub-directories!
- Refer to ArmA: Addon Signatures for current all-time practices in server modern signing and the apply of key signature files.
- To further increment servers security, think that BattlEye has the ability to utilize server-side (including preventing remote execution) and client-side script cheque filters.
- These BattlEye filters needs to exist written specifically for each mission and mod as the scripting differs in each of them.
Safe Folder Structure
Engine supports absolute outside Arma three server folder for control-line parameters -servermod=, -modernistic= and same for contour directories and config locations. This puts those out of reach by various load script control features which are limited only within Arma three binder and it is sub-directories for security reason. thus e.chiliad. safe folder-structure looks like:
- \arma3server\
- \arma3server\@publicmods\
- \arma3server_servermods_secrethash\
- \arma3server_profiles_and_configs_secrethash\
Note that callExtensions are loaded only from Arma iii server root / sub-folders
Example Configuration File
Show text
// server.cfg // GLOBAL SETTINGS hostname = "Fun and Test Server" ; // The name of the server that shall exist displayed in the public server list countersign = "" ; // Password for joining, eg connecting to the server passwordAdmin = "xyz" ; // Password to become server admin. When in Arma MP and connected to the server, type '#login xyz' serverCommandPassword = "xyzxyz" ; // Password required past alternate syntax of [[serverCommand]] server-side scripting. logFile = "server_console.log" ; // Where the logfile should go and what information technology should be chosen // WELCOME MESSAGE ("message of the twenty-four hour period") // It tin be several lines, separated past comma // Empty messages "" volition not be displayed at all but are only for increasing the interval motd [] = { "" , "" , "Two empty lines higher up for increasing interval" , "Welcome to our server" , "" , "" , "We are looking for fun - Join united states of america At present !" , "http://world wide web.case.com" , "One more empty line below for increasing interval" , "" }; motdInterval = v ; // Time interval (in seconds) between each message // JOINING RULES maxPlayers = 64 ; // Maximum amount of players. Civilians and watchers, beholder, bystanders so on also count equally role player. kickDuplicate = 1 ; // Each ArmA version has its own ID. If kickDuplicate is set to one, a histrion will be kicked when he joins a server where another actor with the same ID is playing. verifySignatures = ii ; // Verifies .pbos against .bisign files. Valid values 0 (disabled), 1 (prefer v2 sigs but accept v1 likewise) and 2 (only v2 sigs are allowed). equalModRequired = 0 ; // Outdated. If set to 1, actor has to use exactly the same -mod= startup parameter as the server. allowedFilePatching = 0 ; // Let or prevent client using -filePatching to join the server. 0, is disallow, 1 is allow HC, 2 is allow all clients (since Arma 3 v1.50) filePatchingExceptions [] = { "123456789" , "987654321" }; // Whitelisted Steam IDs immune to join with -filePatching enabled //requiredBuild = 12345; // Crave clients joining to have at to the lowest degree build 12345 of game, preventing obsolete clients to connect // VOTING voteMissionPlayers = i ; // Tells the server how many people must connect and then that it displays the mission selection screen. voteThreshold = 0.33 ; // 33% or more than players need to vote for something, for example an admin or a new map, to become constructive // INGAME SETTINGS disableVoN = 0 ; // If set to one, Phonation over Net will not be available vonCodec = ane ; // If ready to 1 so it uses IETF standard OPUS codec, if to 0 then it uses SPEEX codec (since Arma iii update one.58+) vonCodecQuality = 30 ; // since 1.62.95417 supports range 1-20 //since 1.63.10 will supports range i-30 //8kHz is 0-10, 16kHz is xi-20, 32kHz(48kHz) is 21-30 persistent = 1 ; // If ane, missions still run on fifty-fifty after the last role player disconnected. timeStampFormat = "brusque" ; // Set the timestamp format used on each report line in server-side RPT file. Possible values are "none" (default),"short","total". BattlEye = ane ; // Server to use BattlEye system allowedLoadFileExtensions [] = { "hpp" , "sqs" , "sqf" , "fsm" , "cpp" , "paa" , "txt" , "xml" , "inc" , "ext" , "sqm" , "ods" , "fxy" , "lip" , "csv" , "kb" , "bik" , "bikb" , "html" , "htm" , "biedi" }; //but let files with those extensions to exist loaded via loadFile command (since Arma 3 build 1.19.124216) allowedPreprocessFileExtensions [] = { "hpp" , "sqs" , "sqf" , "fsm" , "cpp" , "paa" , "txt" , "xml" , "inc" , "ext" , "sqm" , "ods" , "fxy" , "lip" , "csv" , "kb" , "bik" , "bikb" , "html" , "htm" , "biedi" }; //only let files with those extensions to exist loaded via preprocessFile/preprocessFileLineNumber commands (since Arma 3 build ane.xix.124323) allowedHTMLLoadExtensions [] = { "htm" , "html" , "xml" , "txt" }; //only let files with those extensions to be loaded via HTMLLoad command (since Arma 3 build ane.27.126715) //allowedHTMLLoadURIs[] = {}; // Leave commented to let missions/campaigns/addons decide what URIs are supported. Uncomment to define server-level restrictions for URIs // TIMEOUTS disconnectTimeout = 5 ; // Time to await before disconnecting a user which temporarly lost connection. Range is 5 to ninety seconds. maxDesync = 150 ; // Max desync value until server kick the user maxPing = 200 ; // Max ping value until server kicking the user maxPacketLoss = 50 ; // Max packetloss value until server kick the user kickClientsOnSlowNetwork [] = { 0 , 0 , 0 , 0 }; // Defines if {<MaxPing>, <MaxPacketLoss>, <MaxDesync>, <DisconnectTimeout>} volition be logged (0) or kicked (ane) kickTimeout [] = { { 0 , - 1 }, { 1 , 180 }, { 2 , 180 }, { 3 , 180 } }; votingTimeOut [] = { 60 , xc }; // Kicks users from server if they spend too much fourth dimension in mission voting roleTimeOut [] = { 90 , 120 }; // Kicks users from server if they spend too much time in role pick briefingTimeOut [] = { 60 , 90 }; // Kicks users from server if they spend too much time in briefing (map) screen debriefingTimeOut [] = { 45 , sixty }; // Kicks users from server if they spend as well much time in debriefing screen lobbyIdleTimeout = 300 ; // The corporeality of time the server will wait before force-starting a mission without a logged-in Admin. // SCRIPTING Problems onUserConnected = "" ; onUserDisconnected = "" ; doubleIdDetected = "" ; // SIGNATURE VERIFICATION onUnsignedData = "kick (_this select 0)" ; // unsigned data detected onHackedData = "kicking (_this select 0)" ; // tampering of the signature detected onDifferentData = "" ; // data with a valid signature, but dissimilar version than the one present on server detected // MISSIONS CYCLE (see below) randomMissionOrder = true ; // Randomly iterate through Missions list autoSelectMission = true ; // Server machine selects next mission in cycle class Missions {}; // An empty Missions class ways at that place volition be no mission rotation missionWhitelist [] = {}; // An empty whitelist means there is no brake on what missions' available
Mission rotation
One can fix an automated mission rotation. Without an admin, the server volition automatically select a mission when at least one role player is connected. One time the mission is done and if there are still players on the server, it will automatically switch to the next in the cycle.
Case:
grade Missions { course TestMission01 { template = MP_Marksmen_01 . Altis ; difficulty = "veteran" ; form Params {}; }; class TestMission02 { template = MP_End_Game_01 . Altis ; difficulty = "veteran" ; grade Params {}; }; class TestMission03 { template = MP_End_Game_02 . Altis ; difficulty = "veteran" ; class Params {}; }; class TestMission04 { template = MP_End_Game_03 . Altis ; difficulty = "veteran" ; class Params {}; }; };
Arma 3: Apex - Mission collection
Mainly intended for MP campaigns. If the progress is defined in the MPMissions class, server administrator can simply add the whole campaign by adding campaign grade into the server.cfg. See the example below.
config.cpp:
form MPMissions { class Apex { briefingName = $ STR_A3_CoopCampaignName ; class EXP_m01 { briefingName = $ STR_A3_exp_m01_missionname ; directory = "a3\missions_f_exp\entrada\missions\exp_m01.tanoa" ; }; class EXP_m02 { briefingName = $ STR_A3_exp_m02_missionname ; directory = "a3\missions_f_exp\campaign\missions\exp_m02.tanoa" ; }; form EXP_m03 { briefingName = $ STR_A3_exp_m03_missionname ; directory = "a3\missions_f_exp\campaign\missions\exp_m03.tanoa" ; }; }; };
server.cfg:
// MISSIONS CYCLE course Missions { grade Noon {}; };
Too the difficulty of the each mission can be overridden
grade Missions { class Apex { course EXP_m01 { difficulty = "veteran" ; }; }; };
Additional details
For hosting server behind NAT or firewall, delight ensure gameport and STEAMports are forwarded and open!
Set the ICMP "echo reply" as allowed so the server is able return ping delay properly.
It's recommended to enable the NAT traversal (so called "Edge traversal" in Windows Firewall) for arma3server.exe, arma3.exe to better support clients/servers behind NAT.
Overriding Mission Parameters
On dedicated server, but an admin can prepare mission options provided by mission maker via course Params. However every bit a server owner information technology is possible to override default setting with your own. Run into Mission Parameters for more than info.
Source: https://community.bistudio.com/wiki/Arma_3:_Server_Config_File
Posted by: andersoncaminarthe.blogspot.com
0 Response to "How To Upload Missions To Arma 3 Decated Server"
Post a Comment