Introduction
This page contains useful information on how to install and configure an ARMA 3 server and includes step by step guides of the install process. Also information on how to configure and run a server.
The majority of directories and paths are customizable, however those defined are all consistent with the tutorial instructions.
Much of the tutorial here was created using this forum guide.
ⓘ
About steamCMD utility: if you are using it on a dedicated host to install and update Arma 3 dedicated server, it is a good practice to create a separate steam account for that.
Arma 3 Dedicated server package is available for free (does not require regular Arma 3 to be purchased).
Installation
Requirements
- Steam Account
- Supported Operating System:
- Windows Server 2008 or later
- A modern Linux distribution
- Minimum Hardware:
-
-
source
Part Minimum Recommended CPU 2.4 GHz Dual-Core 3.5 GHz Quad-Core RAM 2GB 4GB Storage 32 GB HDD 32 GB SSD
-
Instructions (Windows o/s)
The following instructions will guide you through setting up one Arma 3 server on 1 box, however they will also set the foundations for installing multiple servers on that same box:
- Install the latest version of DirectX
- Create the following empty directories
- D:\Apps\Steam
- D:\Games\ArmA3\A3Master
- D:\Games\ArmA3\A3Files
- Download steamcmd.exe and save it to your targetted Steam install directory (E.g D:\Apps\Steam)
- Run the steamcmd.exe. (This will download and install the required steam files to your custom steam directory)
- Create an #Arma3server_steamcmd_example.cmd file and save it to D:\Games\ArmA3\A3Files
- Run the #Arma3server_steamcmd_example.cmd file
- Just after logging into Steam, the console window will hang and ask for a validation key
- Steam will have automatically sent you an email with this validation code, which you then need to input at the command prompt
- The Update console window should then continue to run and install ArmA3 ((DEV or STABLE) version to the target directory as defined in the .cmd file) eg (D:\Games\ArmA3\A3Master)
- Create a shortcut for the ArmA3Server.exe on the server desktop
- Add the following parameters to the Target Line in the shortcut tab of the newly created desktop shortcut
- -port=2302 (Required if running multiple server instances including any previous Arma 2 instances)
- «-profiles=D:\Games\Arma3\A3Master»
- -config=CONFIG_server.cfg
- -world=empty
- so it looks something similar to the following
- «D:\Games\Arma3\A3Master\arma3server.exe» «-profiles=D:\Games\Arma3\A3Master» -port=2302 -config=CONFIG_server.cfg -world=empty
- Setup the #Port Forwarding in your firewall or\and router accordingly, also doesn’t seems like implemented in some routers Port Trigger feature works with Arma 3 Server (tested with ASUS RT-N66U)
- Make sure you have:
- Network Discovery enabled for your network type (the setting can be found in [Control Panel\Network and Internet\Network and Sharing Center\Advanced sharing settings]. If you have problem with its state reset on the interface reopen, check if all of the required for this feature services are running: DNS Client, Function Discovery Resource Publication, SSDP Discovery, UPnP Device Host; (makes server accessible from internet) (maybe it is about the services and not the network discovery)
- Windows Media Player Network Sharing Service enabled (makes server joinable) ;
If you can’t connect to server through server browser try to use «direct connect»:
this is a client side issue (doesn’t mean other clients will have it too), reason for the issue for now unknown,
I can say it is not related to: Windows services, Windows network settings, network routers, firewalls…
Device Host;
(note: Changes to the above 2 settings require Arma relaunch to be applied, as for server same for client machines;)
Create a simple Notepad document called "CONFIG_server.cfg" and save it to the root folder of your ArmA3 install on the server D:\Games\ArmA3\A3Master
- Start up your shortcut, check the server runs. (You will see a console pop up in your desktop after a few seconds)
- Close the console window down, then you will need to edit the following files which will have been automatically created
- D:\Games\Arma3\A3Master\Users\Adminstrator\Administrator.Arma3Profile
- D:\Games\Arma3\A3Master\Users\Administrator\Arma3.cfg
- Restart the server
- Start up your client Arma3.exe (Running the same branch as the server, (eg Stable or DEV) and you should then be able to see your server in the server browser (Filters are available to reduce the server list)
- Login to your server using the password you defined in #CONFIG_server.cfg by typing «/» to open the chat window and then type (#login ADMINPASSWORD) followed by enter.
⚠
Make sure to never forget the ‘#’ in front of any server command!
- Once logged in you will be presented with a mission list, select one of the missions to start the game
- Prove the stability of your server by running BI missions initially before you start adding user made content
Instructions (Linux o/s)
Installation
As a security best practice, create a user to run steam instead of running as root or an administrator.
This way, if your ArmA server is compromised the attacker will find it more difficult to access the rest of the operating system.
useradd -m -s /bin/bash steam
Switch to the newly created steam user.
sudo -i -u steam
Create a new directory for SteamCMD to avoid cluttering the home directory.
mkdir ~/steamcmd && cd ~/steamcmd
Download the SteamCMD for Linux tarball from the link at the Valve Developer Community page.
Use a command line download tool such as wget or curl.
Extract the tarball.
tar xf steamcmd_linux.tar.gz
Execute steamcmd.sh. It will install the rest of the Steam client and start the Steam client shell.
If this step fails on a 64-bit OS, you likely need to install 32-bit libraries.
./steamcmd.sh
Change the directory SteamCMD will install the server in.
force_install_dir ./arma3/
At the Steam client shell, login with a valid Steam username and password.
The Valve Developer Community Wiki recommends that you create a new Steam account for this.
SteamCMD will cache the login credentials and anyone who gains access to your server will be able to log into the account used here.
In addition, you cannot log into a single Steam account from two places at once. You do not need to have Arma 3 purchased on the Steam account used here to download the server.
Therefore, you should create a new Steam account with no purchases only for use on this server.
login myusername
Install the Arma 3 Linux dedicated server. The validate option will check for corruption.
app_update 233780 validate
Exit SteamCMD.
exit
Create the directories used to store the profile files and Arma3.cfg file.
mkdir -p ~/".local/share/Arma 3" && mkdir -p ~/".local/share/Arma 3 - Other Profiles"
Updating
You will have to update the server whenever a patch is released on Steam.
If the server is running, stop it by pressing Ctrl+C in the terminal (or screen/tmux instance) that the server is attached to. Otherwise, switch to the steam user.
sudo -u steam -i
Launch steamcmd.
cd /home/steam/steamcmd ./steamcmd.sh
Set the Arma 3 installation directory to the same directory used above.
force_install_dir ./arma3/
Login to the Steam account used in the installation section above.
login myusername
Update the Arma 3 Linux dedicated server. The validate option will check for corruption.
app_update 233780 validate
Exit SteamCMD.
exit
Configuration
You will most likely want to customize your server’s name, password, security settings, and so on with a server.cfg file. Change to the arma3 directory and create and edit your server.cfg file.
cd ~/steamcmd/arma3 vim server.cfg
If you don’t know how to use vim, use nano instead.
nano server.cfg
See server.cfg for documentation and examples.
The first time you run the server it will auto-create a profile file at ~/.local/share/Arma 3 — Other Profiles/server/server.Arma3Profile.
Edit this file to customize difficulty settings.
⚠
The -profiles= parameter is broken on Linux — you must place your profiles in this directory.
Launching
A Linux executable is provided to launch the server. Make sure that you are running it under the steam user and not root or another administrator!
cd /home/steam/steamcmd/arma3 ./arma3server_x64 -name=server -config=server.cfg
NB: If you are using the -mod= parameter, you must specify relative paths within or below the Arma 3 directory. Symlinks will work.
The arma3server_x64 process will attach to the current terminal.
If you are connected to the server over SSH, the server will stop when you disconnect.
You can keep the server running using a terminal multiplexeer like GNU Screen or tmux.
There are many tutorials online on how to use these programs to detach and reattach processes from and to a terminal.
You can safely stop the server by pressing Ctrl+C in the terminal (or screen/tmux instance) that the server is attached to.
For older 32-bit executable use ./arma3server instead of ./arma3server_x64.
Case sensitivity & Mods
Some mods such as CUP Terrains and @ALiVE will not function if there are capital letters in any of their file names. If you do not update your mods on a regular basis, you can just use the command
find . -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
in the directory where your mods are located. This will recursively search the directory tree and make all the filenames lowercase.
If you regularly update your mods using, e.g. ArmA3Sync, you will find that this will redownload any files/folders that have changed case every time you run it.
The solution to this is to use a package called «ciopfs» — Case Insensitive On Purpose Filesystem. You should first run the «find . -depth…» command mentioned above on your mod folder.
Then, make an empty directory outside of the mods directory, e.g. mods_caseinsensitive. You then mount the directory with:
ciopfs mods mods_caseinsensitive
and tell ArmA3Sync to synchronise in the mods_caseinsensitive directory. Once it has finished, you can unmount the directory with:
fusermount -u mods_caseinsensitive
You should find that all of the files in the original mods directory are lowercase.
This article is a Stub. You can help BI Community Wiki by expanding it.
Additional Info
Useful Links
Further Reading
- Steam Cmd Tutorial
- Dedicated Server Status (Linux info)
- Kelly’s Heroes Dedicated server guide
- In Game server commands
- In Game admin commands
- Command line params
- Basic.cfg
- Steam Difficulty settings
- Server Configuration
- Sim-link GUI
Tools
- Firedeamon
- ArmA3 server using TA2DST Method
A YouTube video tutorial by Kirkwood364 which uses Tophe’s Arma 2 Dedicated Server Tool to administer and run an A3 server (Links for all the files required are available in the 1st comment of his YouTube video) - Arma3 Server Monitor — end of support in 2015
Useful Addons
- Zeu_Serverskills (AI Skill setting addon)
- Zeu_ServerBriefing (Inject server information to all missions automatically
File Locations
Some files are automatically created when you use certain commandline parameters
Some files have to be created manually.
If you have followed the instructions accurately, you will now have the following files and directories in addition to the clean install
- D:\Games\Arma3\A3Master\Users\Administrator\Administrator.Arma3Profile (Difficulty settings)
- D:\Games\Arma3\A3Master\Users\Administrator\Administrator.vars.Arma3Profile (Some binarised content which you cannot edit)
- D:\Games\Arma3\A3Master\Users\Administrator\Arma3.cfg (Bandwidth settings)
- D:\Games\Arma3\A3Master\MPMissions\ (This is where custom made mission.pbo’s need to be placed)
- D:\Games\Arma3\A3Master\arma3.rpt (Debug Log, automatically created every time the arma3server.exe is started)
- D:\Games\Arma3\A3Master\CONFIG_server.cfg (Manually created)
- D:\Games\ArmA3\A3Files\Arma3server_steamcmd_example.cmd (Manually created)
- D:\Apps\Steam\
Port Forwarding
Arma 3 uses the same default ports as Arma 2 with the addition of several ports. So if you intend running A2 and A3 servers on the same machine, you need to edit the ports used.
Default ports are all UDP and as follows:
- Incoming
- 2302 (default Arma 3 Game port) + (VON is now part of main gameport due to NAT issues)
- 2303 (STEAM query, +1)
- 2304 (Steam port, +2)
- 2305 (VON port, +3 — not used atm. but allocated)
- 2306 (BattlEye traffic, +4)
- Outgoing
DST Port | Protocol | Destination | Comment |
---|---|---|---|
2344 | TCP + UDP | 81.0.236.111 | BattlEye — arma31.battleye.com |
2345 | TCP | 81.0.236.111 | BattlEye — arma31.battleye.com |
2302-2306 | UDP | any | Arma Server to Client Traffic |
2303 | UDP | any | Arma Server STEAM query port |
2304 | UDP | any | Arma Server to STEAM master traffic |
To define the ArmA3 Game port used,
state -port= **** in your command line arguments (Where **** is the new initial Arma 3 Game, e.g 2302)
and to define your Steam ports
add the following lines to your CONFIG_server.cfg (editing the actual port numbers as required)
ⓘ
STEAM ports are now linked to game-port as +1 for query and +2 to-master.
If you are running multiple servers, i would suggest the following format
- SERVER 1
2302 UDP (gameport + VON)
2303 UDP (STEAM query port)
2304 UDP (STEAM master port)
2305 UDP (VON reserved port but not used atm.)
2306 UDP (BattlEye traffic port)
so open ports 2302-2306
… and leave at least 100 ports between the next 2nd server set
- SERVER 2
2402 UDP (gameport + VON)
2403 UDP (STEAM query port)
2404 UDP (STEAM master port)
2405 UDP (VON reserved port but not used atm.)
2406 UDP (BattlEye traffic port)
so open ports 2402-2406
and leave at least 100 ports between the next 3rd server set, etc.
NAT traversal
UPnP allows you to automatically create port forwarding on your router to bypass NAT (UPnP enabled routers are required).
The functionality can be easily enabled in server config as described in the server.cfg page.
Configuring for stable or Dev branch
Edit the Arma3server_steamcmd_example.cmd as defined below then run it
- To select Development version
SET A3BRANCH=107410 -beta development
- To select stable build (Dedicated server package)
SET A3BRANCH=233780 -beta
- To select stable build (Full client\server package)
SET A3BRANCH=107410
- Important Feature
Since 12th March 2013 the development branch and the stable branch versions are no longer compatible. This means:
- Only DEV clients can connect to a DEV server
- Only Stable clients can connect to stable servers
Advanced Configuration
This article is a Stub. You can help BI Community Wiki by expanding it.
Bandwidth Optimisation
This article is a Stub. You can help BI Community Wiki by expanding it.
Multiple Server configuration
There are various methods available to run multiple Dedicated Arma 3 servers on the same box.
Each server instance requires:
- Its own unique set of ports
- Its own profile
- Its own config
This post explains it more in depth.
Each method has some pro’s and cons
To select the preferred methodology that suits your requirements you need to have considered the following
- The useage of the «Keys» folder
- The useage of the «MpMissions» folder
- Available Hard drive space
- Update management
METHOD 1
see THIS POST for more detailed information
This is copy of the master install into a different directory
As may times as you have space for
Pros
- Most robust
- Unique MpMissions folder
- Unique «keys» folder
- Allows ability to run separate instances of different branches of the game, (E.g Dev or Stable)
Cons
- Uses more drive space
- Requires more effort to create and automate the updating process
METHOD 2
This uses 1 master install folder and has renamed arma3server.exe’s in sub folders of the master
see THIS POST for more detailed information
Pros (Compared to Method 1)
- Uses less space than Method 1
- Updating will be easier
Cons (Compared to Method 1)
- Not very robust
- Shares MPMissions folders with all the other exe’s (Will create a very cluttered MpMissions folder and allows admins to select addon required missions for a mod this server instance isn’t running
- Shares «keys» folder with all other exe’s (This can cause an issue when running various differing -mod servers)
- Will not allow you to run separate instances of different branches of the game
METHOD 3
This is a hybrid of method 1, in that it is essentially a «Virtual» copy of the master install in a different directory
the difference being that many folders are sim linked to the initial Master directory
simlink GUI:
Pros (Compared to Method 1)
- Uses less drive space (As you wont have multiple copies of the addons folder)
- Allows for unique MpMissions folder if desired
- Allows for unique «keys» folder if desired
- Updating will be easier
Cons (Compared to Method 1)
- Requires more effort to initially create the simlinks and directories
- Will not allow you to run separate instances of different branches of the game at the same time, (E.g Dev or Stable)
For example, on Linux, if you initially have the following folder layout:
~/game_servers/
arma3server/
…
mods # folder where you keep your mods
arma3server
…
Instead of copying the folders as directed in METHOD 1, run the following commands:
cd ~/game_servers/ mkdir arma3server_2/ ln -sr arma3server/* arma3server_2 cd arma3server_2 rm keys mpmissions mods mkdir keys mkdir mpmissions mkdir mods
Then proceed with the rest of the instructions in METHOD 1.
METHOD 4
You can of course mix and match all 3 previous methods to suit your specific requirements.
Dedicated Server & Client configuration
ⓘ
In order for the Arma 3 server to be able to connect to the Steam servers, the Arma 3 server has to be ping-able (ICMP 8 — Echo Reply) as well as opened TCP/UDP ports.
The only known issue, is to make sure you start the server up before you start the steam client
Failing to do this causes steam port issues and your client will not be able to connect to the server
Headless Client
This article is a Stub. You can help BI Community Wiki by expanding it.
A Headless Client can be used by missions to offload AI processing to a dedicated client, freeing up the dedicated server process from most AI processing.
Thus more AI units can be spawned and the server process will be able to dedicate most of it is processing towards communication with the clients.
For a Headless Client/Dedicated Server to function together efficiently, they both need to be connected to each other via extremely low latency and high bandwidth.
Effectively, they need to be on the same LAN at least, but preferably running on the same computer.
Setup and Execution
- Headless Client for ARMA 3 requires a valid active Steam account logged in to function (see Dwarden’s post)
- A Headless Client is simply Arma3.exe run from the command line with parameters, for example:
arma3.exe -connect=localhost -port=2444 -client -nosound -password=some_server_password -name=HC -profile=HC -mod=@CBA_A3;@blah;@blah;@blah
In the example above, the headless client is running on the same host as the dedicated server.
It uses a profile called HC and connects to the server with a password as required by the server (the password is for password protected servers, optional).
The server in this example is running on port 2444, alter this to the port of your server.
- The Headless Client profile needs to be created like any other profile in Arma 3 (Note: It is best if you name this profile HC)
No configuration of the profile is necessary, but after creation, edit HC.Arma3Profile located in C:\Users\yourusername\Documents\Arma 3 — Other Profiles\HC and add this line:
Alternatively, you can use the full Arma 3 client to connect to any multiplayer server with BattlEye enabled and accept the BattlEye License Agreement,
which will do the same thing as manually editing HC.Arma3Profile.
Once the profile is ready, copy the profile directory to C:\Users\yourusername\Documents\Arma 3 — Other Profiles on the server (if the profile was not created on the server).
If the profile was created on the server or is not going to run on the server and is already on the computer it is going to run on, then it is ready to go.
- If the Headless Client is on the server, the server’s cfg must have the local loopback address as seen below (e.g. A3Server.cfg):
localClient[]={"127.0.0.1"}; headlessClients[]={"127.0.0.1"}; battleyeLicense=1;
Dwarden suggests that battleyeLicense=1; be in the server’s config, but it is unclear whether this is actually necessary.
(Dwarden’s post).
- If the Headless Client is running in the same network or the same computer, the server’s config has to have the address in localClient[]=x.x.x.x.
This will allow the server to communicate with the Headless Client using unrestricted bandwidth. It is also required to add the adress to headlessClients[]={«x.x.x.x»};.
Multiple headless clients at different addresses can be added:
localClient[]={"127.0.0.1", "192.168.1.10", "192.168.1.210"}; headlessClients[]={"127.0.0.1","192.168.1.10","192.168.1.210"}; battleyeLicense=1;
Headless Client on a Dedicated Server Notes
If the Arma 3 Headless Client and an Arma 3: Dedicated Server are running on the same Windows computer (VM or physical),
it may be beneficial to set processor affinity to prevent execution intensive threads from being scheduled across the same (v)CPUs.
The operating system will generally schedule threads efficiently, but manual CPU allocation is possible.
This can be achieved by right-clicking on the process (e.g. Arma3Server.exe(*32)) in the processes tab of the Windows Task Manager and selecting Set Affinity….
Be aware that on a physical intel CPU, the odd numbered CPUs are Hyper-thread cores.
Note: You can use automated solution for affinity assign via batch file with commandline CMD /AFFINITY HEXvalue e.g. CMD /C START /AFFINITY 0xF3 arma3server.exe
It has been observed that although the ARMA server and client processes will kick off multiple threads, the bulk of processing is used up by only one or two threads.
For example, spawning 50 AI units does not generate 50 threads.
There is one thread in the process that handles all of the AI units, irrespective of how many have been spawned.
In this way, the ARMA server and client processes do not make maximal use of the processing capability found in modern processors and so AI counts do not scale easily.
As such, faster CPU core speed is king and offloading the AI to multiple headless clients on the same computer will probably produce the best possible results for complex missions involving many AI units (albeit an expensive way to get the results).
—
Example Files
Arma3server_steamcmd_example.cmd
- Standalone Server Package (no need for game ownership on STEAM account)
- Note: you might be asked to authorize your STEAM account due to STEAMguard (check email)
- Note: it needs to be ran two or three times (1st authorize, 2nd STEAMcmd update itself, (when done, quit), 3rd update the Arma 3 Server data package)
- Note: STEAMcmd needs to be in separate folder from STEAMclient (so always use unique folder like «STEAMcmd») to avoid file conflicts
- Note: Arma 3 server data package needs to be in separate folder from Arma 3 client (so always use unique folder like «A3server» or «Arma3server») to avoid file conflicts
- Code:
@echo off @rem http://media.steampowered.com/installer/steamcmd.zip SETLOCAL ENABLEDELAYEDEXPANSION :: DEFINE the following variables where applicable to your install SET STEAMLOGIN=mylogin mypassword SET A3serverBRANCH=233780 -beta :: For stable use 233780 -beta :: For Dev use 233780 -beta development :: Note, the missing qoutation marks, these need to be wrapped around the entire "+app_data......" :: There is no DEV branch data yet for Arma 3 Dedicated Server package !!! SET A3serverPath=D:\Games\ArmA3\A3Master SET STEAMPATH=D:\Apps\Steam :: echo. echo You are about to update Arma 3 server echo Dir: %A3serverPath% echo Branch: %A3serverBRANCH% echo. echo Key "ENTER" to proceed pause %STEAMPATH%\steamcmd.exe +force_install_dir %A3serverPath% +login %STEAMLOGIN% +"app_update %A3serverBRANCH%" validate +quit echo. echo Your Arma 3 server is now up to date echo Press "ENTER" to exit pause
CONFIG_server.cfg
// // server.cfg // // comments are written with "//" in front of them. // NOTE: More parameters and details are available at http://community.bistudio.com/wiki/server.cfg // STEAM PORTS (not needed anymore, it is +1 +2 to gameport) // steamPort = 8766; // default 8766, needs to be unique if multiple servers are on the same box // steamQueryPort = 27016; // default 27016, needs to be unique if multiple servers are on the same box // GENERAL SETTINGS hostname = "My Arma 3 Server"; // Name of the server displayed in the public server list //password = "ServerPassword"; // Password required to join the server (remove // at start of line to enable) passwordAdmin = "AdminPassword"; // Password to login as admin. Open the chat and type: #login password maxPlayers = 40; // Maximum amount of players, including headless clients. Anybody who joins the server is considered a player, regardless of their role or team. persistent = 1; // If set to 1, missions will continue to run after all players have disconnected; required if you want to use the -autoInit startup parameter // VOICE CHAT disableVoN = 0; // If set to 1, voice chat will be disabled vonCodecQuality = 10; // Supports range 1-30, the higher the better sound quality, the more bandwidth consumption: // 1-10 is 8kHz (narrowband) // 11-20 is 16kHz (wideband) // 21-30 is 32kHz (ultrawideband) // VOTING voteMissionPlayers = 1; // Minimum number of players required before displaying the mission selection screen, if you have not already selected a mission in this config voteThreshold = 0.33; // Percentage (0.00 to 1.00) of players needed to vote something into effect, for example an admin or a new mission. Set to 9999 to disable voting. allowedVoteCmds[] = // Voting commands allowed to players { // {command, preinit, postinit, threshold} - specifying a threshold value will override "voteThreshold" for that command {"admin", false, false}, // vote admin {"kick", false, true, 0.51}, // vote kick {"missions", false, false}, // mission change {"mission", false, false}, // mission selection {"restart", false, false}, // mission restart {"reassign", false, false} // mission restart with roles unassigned }; // WELCOME MESSAGE ("message of the day") // It can be several lines, separated by comma // Empty messages "" will not be displayed, but can be used to increase the delay before other messages motd[] = { "Welcome to My Arma 3 Server", "Discord: discord.somewhere.com", "TeamSpeak: ts.somewhere.com", "Website: www.example.com" }; motdInterval = 5; // Number of seconds between each message // MISSIONS CYCLE class Missions { class Mission1 { template = "MyMission.Altis"; // Filename of pbo in MPMissions folder difficulty = "Regular"; // "Recruit", "Regular", "Veteran", "Custom" }; }; // LOGGING timeStampFormat = "short"; // Timestamp format used in the server RPT logs. Possible values are "none" (default), "short", "full" logFile = "server_console.log"; // Server console output filename // SECURITY BattlEye = 1; // If set to 1, BattlEye Anti-Cheat will be enabled on the server (default: 1, recommended: 1) verifySignatures = 2; // If set to 2, players with unknown or unsigned mods won't be allowed join (default: 0, recommended: 2) kickDuplicate = 1; // If set to 1, players with an ID that is identical to another player will be kicked (recommended: 1) allowedFilePatching = 1; // Prevents clients with filePatching enabled from joining the server // (0 = block filePatching, 1 = allow headless clients, 2 = allow all) (default: 0, recommended: 1) // FILE EXTENSIONS // only allow files with those extensions to be loaded via loadFile command (since Arma 3 v1.20) allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; // only allow files with those extensions to be loaded via preprocessFile / preprocessFileLineNumbers commands (since Arma 3 v1.20) allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; // only allow files and URLs with those extensions to be loaded via htmlLoad command (since Arma 3 v1.28) allowedHTMLLoadExtensions[] = {"htm","html","php","xml","txt"}; // EVENT SCRIPTS - see http://community.bistudio.com/wiki/ArmA:_Server_Side_Scripting onUserConnected = ""; // command to run when a player connects onUserDisconnected = ""; // command to run when a player disconnects doubleIdDetected = ""; // command to run if a player has the same ID as another player in the server onUnsignedData = "kick (_this select 0)"; // command to run if a player has unsigned files onHackedData = "kick (_this select 0)"; // command to run if a player has tampered files // HEADLESS CLIENT headlessClients[] = {"127.0.0.1"}; // list of IP addresses allowed to connect using headless clients; example: {"127.0.0.1", "192.168.1.100"}; localClient[] = {"127.0.0.1"}; // list of IP addresses to which are granted unlimited bandwidth; example: {"127.0.0.1", "192.168.1.100"};
server.Arma3Profile
See server.armaprofile.
Arma3.cfg
language="English"; adapter=-1; MinBandwidth=800000; MaxBandwidth=25000000; MaxMsgSend=384; MaxSizeGuaranteed=512; MaxSizeNonguaranteed=256; MinErrorToSend=0.003; MaxCustomFileSize=100000; Windowed=0; serverLongitude=0; serverLatitude=52; serverLongitudeAuto=0; serverLatitudeAuto=52;
Support & Troubleshooting
Known Issues
- My server has 2500ms ping in server browser (This is caused by running the steam client as Non Administrator) see http://feedback.arma3.com/view.php?id=9374
- MaxMsgSend default is 128, higher values can create Desync problems if the server’s available processing and/or bandwidth can not support the higher value
- if you run Arma 3 Dedicated server data package on system where is also installed client there is possibility the server will load the full client data instead server data package, this is caused by precedence check in registry.
The solution/workaround to this issue is to use arma3server.exe -mod= (where empty modline ensure it loads data from where server is placed) - upnp=1; // in server.cfg may result into server not starting for 600 seconds on server with active firewalls / anti-ddos measures ,
it’s not recommended setting for dedicated-servers where server process related ports are open/forwarded by default - using multiple server instances with too narrow ranges in between each (e.g. first 2302, second 2314) may cause problems with query where second server reports at first range, use of minimum +100 ports for next instance next to 2302 thus 2402 then 2502 etc. for utmost safety use +200 or +1000
- engine has legacy automated port increment system for occupied sockets (used for client-listen servers, upnp) where first is tried 2302, then +12 up to 15 times (so 2314, 2326 … 2482)
Live Help
For live assistance, join the official Arma 3 Discord server! https://discord.gg/arma
Especially these channels:
- #server_admins
- #server_linux
- #server_windows
- #server_tools
F.A.Q
This article is a Stub. You can help BI Community Wiki by expanding it.
See Also
- Server Options
- Battleye’s RCON
- Arma 3 Headless Client
- Multiplayer Server Commands
- ArmA Server Configuration
Introduction
This page contains useful information on how to install and configure an ARMA 3 server and includes step by step guides of the install process. Also information on how to configure and run a server. The majority of directories and paths are customizable, however those defined are all consistent with the tutorial instructions.
Much of the tutorial here was created using this guide from the forums http://forums.bistudio.com/showthread.php?147537-Tutorial-How-to-run-ArmA3-on-a-dedicated-server
Note on steamCMD utility: if you are using it on a dedicated host to install and update Arma 3 dedicated server, it is a good practice to create a separate steam account for that. Arma 3 Dedicated server package is available for free (does not require regular Arma 3 to be purchased).
Requirements
- Steam Account
- Supported Operating System
- Windows 2008 or later
- Modern Linux Distro
Minimum Hardware:
- CPU: Duo core @ 3.2GHZ
- RAM: 4GB
- Disk: 20GB
- Network: 50mb or fibre type of connection that is strong.
Instructions for Windows
The following instructions will guide you through setting up one Arma 3 server on 1 box, however they will also set the foundations for installing multiple servers on that same box
Install the latest version of DirectX
Create the following empty directories
- D:\Apps\Steam
- D:\Games\ArmA3\A3Master
- D:\Games\ArmA3\A3Files
Download Steamcmd tool and save it to your targetted Steam install directory (E.g D:\Apps\Steam).
Run the steamcmd.exe. (This will download and install the required steam files to your custom steam directory).
Create an Arma3server_steamcmd_example.cmd file and save it to D:\Games\ArmA3\A3Files.
Like shown below.
Just after logging into Steam, the console window will hang and ask for a validation key.
- Steam will have automatically sent you an email with this validation code, which you then need to input at the command prompt.
- The Update console window should then continue to run and install ArmA3 ((DEV or STABLE) version to the target directory as defined in the .cmd file) eg (D:\Games\ArmA3\A3Master).
Create a shortcut for the ArmA3Server.exe on the server desktop.
Add the following parameters to the Target Line in the shortcut tab of the newly created desktop shortcut.
- -port=2302 (Required if running multiple server instances including any previous ArmA2 instances).
- «-profiles=d:\Games\Arma3\A3Master»
- -config=CONFIG_server.cfg
- -world=empty
so it looks something similar to the following below
«D:\Games\Arma3\A3Master\arma3server.exe» «-profiles=d:\Games\Arma3\A3Master» -port=2302 -config=CONFIG_server.cfg -world=empty
Setup the Port Forwarding in your firewa
</gallery>
ll accordingly
Create a simple Notepad document called «CONFIG_server.cfg» and save it to the root folder of your ArmA3 install on the server D:\Games\ArmA3\A3Master.
Start up your shortcut, check the server runs. (You will see a console pop up in your desktop after a few seconds)
Close the console window down, then you will need to edit the following files which will have been automatically created
- D:\Games\Arma3\A3Master\Users\Adminstrator\Administrator.Arma3Profile
- D:\Games\Arma3\A3Master\Users\Administrator\Arma3.cfg
Restart the server.
Start up your client Arma3.exe (Running the same branch as the server, (eg Stable or DEV) and you should then be able to see your server in the server browser (Filters are available to reduce the server list).
CONTENTS
-
Setting up your server
- What you need
- how you do it
-
Links
- Information
- useful Tools
- Useful Addons
- Selecting between Stable & Dev Builds, full or Dedi package installs
- Port Forwarding
- Battleye Configuration
- Location of files
- Server Admin Commands
- Running Dedicated Server and client on same machine
- Running multiple servers on one machine
- Re-locating MpMissions
- Bandwidth Optimisation
-
Trouble Shooting & Help
- Best way to use this thread
- Live chat help
- What cannot be done
- Known Issues
-
Example files
- CONFIG_Vanilla.cfg
- Arma3.cfg
- .Arma3Profile
-
Advanced configuration
- -profiles
- AutoServer_Restart.bat File
- Firedeamon
-
Addons and Mods
- Basic introduction
- Installation
- Miscellaneous
- Downloading & Addon Management
- Changelog
The tutorial is intended for the lowest level of knowledge and skill, I make no apologies to those who think it is patronising. if you do, why are you reading a tutorial :j:
LAST UPDATED: Thursday 21st March 2017 up too and including this post
************************************************************************************
IMPORTANT UPDATE (16th March 2017)
arma3server_x64.exe
64 (Released 16th March 2017)
1) Update your firewall rules to include the 64 bit binary
2) BattleEye changes
- 64 bit binary runs the beserver_x64.dll
- It also needs a BEServer_x64.cfg (Which is simply a renamed copy of your BEServer.cfg
If you run an addon server and are having issues, then try running the 32 bit arma3server.exe until the addon makers have fixed their content
************************************************************************************
SETTING UP YOUR SERVER
What you need
- 1 Standalone Windows server (2008 or later) (Sound and GPU not required)
- 1 Steam Account
- Ownership of ArmA3 No longer required if installing the server using the the Dedicated server package. (Required for Headless client or full client install)
- According to this THIS POST you can run the ArmA3server on Win2003 now
This is how you do it.
Take note.
There are additions within these instructions that you may not need, if you only intend running 1 instance of an Arma3 server on your machine
However, adding these superfluous commands and content will not be detrimental to single instance servers
Directory paths are all customisable but for the sake of this tutorial, all file examples and command lines used will be consistent with the tutorial instructions
- Login as Administrator: (You will need to run Arma3server.exe as «Administrator» or «System». Battleye requires it.)
- Install the latest version of DirectX
- Recommended to install install the 32 & 64-bit 2013 VC++ redist from https://www.microsoft.com/en-GB/download/details.aspx?id=40784
-
Create the following empty directories
- D:\Apps\Steam
- D:\Games\ArmA3\A3Master
- D:\Games\ArmA3\A3Files
- Download steamcmd.exe unpack it and save it to your targetted Steam install directory (E.g D:\Apps\Steam)
- Run the steamcmd.exe. (This will download and install the required steam files to your custom steam directory)
- Create an ArmA3_Steam_updater.cmd file, (Example shown below) and save it to D:\Games\ArmA3\A3Files
- Run the ArmA3_Steam_updater.cmd file
- Just after logging into Steam, the console window will hang and ask for a validation key
- Steam will have automatically sent you an email with this validation code, which you then need to input at the command prompt
- The Update console window should then continue to run and install ArmA3 ((DEV or STABLE) version to the target directory as defined in the .cmd file) eg (D:\Games\ArmA3\A3Master)
- Create a shortcut for the ArmA3Server_x64.exe on the server desktop
-
Add the following parameters to the Target Line in the shortcut tab of the newly created desktop shortcut
- -port=2302 (Required if running multiple server instances)
- «-profiles=d:\Games\Arma3\A3Master»
- -config=CONFIG_Vanilla.cfg
- -world=empty
-
-mod=
- -mod= (Exaclty as it looks, an empty mod parameter
so it looks something similar to the following
«D:\Games\Arma3\A3Master\arma3server_x64.exe» «-profiles=d:\Games\Arma3\A3Master» -port=2302 -config=CONFIG_Vanilla.cfg -world=empty -mod=
- Add firewall rules for the UDP ports (See below for -Port information)
- Add firewall rule for the arma3server_x64.exe
- Create a simple Notepad document called «CONFIG_vanilla.cfg» and save it to the root folder of your ArmA3 install on the server D:\Games\ArmA3\A3Master (See below for «.cfg» content)
- Then start up your shortcut, check the server runs. (You will see a console pop up in your desktop after a few seconds)
-
Close the console window down, then you will need to edit the following files which will have been created
- D:\Games\Arma3\A3Master\Users\Adminstrator\Administrator.Arma3Profile
-
D:\Games\Arma3\A3Master\Users\Administrator\Arma3.cfg
- These files contain minimal content, and require a lot of editing, so to make this easier, there are example files listed below which you can copy n paste from
- Restart the server
- Start up your client Arma3 (Running the same branch as the server, (eg Stable or DEV) and you should then be able to see your server in the server browser (Filters are available to reduce the server list)
- Login to your server using the password you defined in CONFIG_Vanilla.cfg by typing «/» to open the chat window and then type (#login ADMINPASSWORD followed by enter
- Once logged in you will be presented with a mission list, select one of the missions to start the game
-
Prove the stability of your server by running BIS missions initially before you start adding user made content
- You should now have successfully installed and be running a stable «Vanilla» (Default) server
- You can then set up Battleye, The ArmA3 anti cheat system (See the Battleye Configuration section below)
*** SUPPORTING INFORMATION ***
USEFUL LINKS, TOOLS & ADDONS
Open the spoiler for more info
INFORMATION
SteamCmd Tutorial
Dedicated Server status & Changelog
kellys-heroes Dedicated Server Guide
In Game Server commands
In Game Admin commands
ArmA2 Dedicated server
Commandline Parameters
Basic.cfg
Difficulty settings
Server Configuration
simlink GUI:
Firedaemon Tutorial for ArmA3
DeathTec’s Video Tutorial
TOOLS
Arma-Server-Monitor
Firedeamon
Arma 3 Restarter.exe server monitor
***
A U-tube video tutorial by Kirkwood364 which uses Tophe’s Arma 2 Dedicated Server Tool to administer and run an A3 server
(Links for all the files required are available in the 1st comment of his Utube video)
USEFUL ADDONS
Zeu_ServerSkill
DETAILED INFORMATION
This addon, installed serverside only, allows redefining skill setting on both the server (and remotely to the clients). This fixes the issue of not being able to reset Skill and precision settings and makes the AI less lethal
Zeu_ServerBriefing
DETAILED INFORMATION
This addon, installed serverside only, injects an additional section to the clients briefing. You can edit the userconfig file to state exactly what information you want in this section.
Typical useage
- Your teamspeak details
- Your web address
- Server rules
TICKETS RAISED that need your Vote
SELECTING DEVELOPMENT OR STABLE BUILD
Open the spoiler for more info
Edit the ArmA3_Steam_Updater.cmd and run it
To select Development version
- SET A3BRANCH=107410 -beta development
To roll back to stable build
- SET A3BRANCH=107410
To use the Dedicated server package (Stable branch only)
This has a smaller diskspace footprint than the full client installs
-
SET A3BRANCH=233780 -beta
In your root install, make sure your steamappid.txt file entry is 107410 (Do not use 233780)
Important Feature
since 12th March 2013
the development branch and the stable branch versions are no longer compatible. this means:
- Only DEV clients can connect to a DEV server
- Only Stable clients can connect to stable servers
Important Feature
since ? 2014
A dedicated server package is now available which has a smaller disk space footprint than the full client install
Most if not all client only required files have been removed. Graphics, sounds etc
This package is only available on the stable branch.
Use SET A3BRANCH=233780 -beta
Leave the steamappid.txt file entry as 107410
PORT FORWARDING (ArmA3) (Firewalls)
Open the spoiler for more info
ArmA3 uses the same default ports as ArmA2 with the addition of 2 steam ports. So if you intend running A2 and A3 servers on the same machine, you need to edit the ports used
Default ports are all UDP and as follows
- 2302 (Arma3 Game port & VON)
- 2303 (Steam query port)
- 2305 (Steam Port)
- 2306 (BattleEye RCON port)
- 8766 (Steam port) obsolete since 1.22 hotfix patch. This is now hardcoded to use Gameport + 3 (eg 2305)
- 27016 (Steam query port) obsolete since 1.22 hotfix patch. This is now hardcoded to use Gameport + 1 (eg 2303)
To define the ArmA3 Game port used,
state -port= **** in your command line arguments (Where *** is the new initial ArmA3 Game eg 2302)
and to define your Steam ports
add the following lines to your CONFIG_Vanilla.cfg (editing the actual port numbers as required)
// STEAMsteamport=8766;steamqueryport=27016; Obsolete, now engine hardcoded to use gameport +1
If you are running multiple servers, i would suggest the following format
SERVER 1
- 2302 UDP (used for game & VON)
- 2303 UDP (Steam query port)
- 2304 UDP (? no information available for this port useage)
- 2305 UDP (used for Steam Port)
- 2306 UDP (BattleEye RCON port)
so open ports 2302-2305
and leave at least 10 ports between the next server set
SERVER 2
- 2322 UDP (used for game & VON)
- 2323 UDP (Steam query port)
- 2324 UDP (? no information available for this port useage)
- 2325 UDP (used for Steam Port)
- 2326 UDP (BattleEye RCON port)
so open ports 2322-2326
leave at least 10 ports then repeat the process for No3 server etc
Update for the armaserver_x64.exe
I also found I needed to add a firewall rule for the 64 bit server executable for it to be broadcast on the WAN (Still don’t know why it wouldn’t work without doing that as all the ports were opened)
(End of 64 bit binary only)
BATTLEYE CONFIGURATION
Open the spoiler for more info
Battleye is the ArmA engine’s anti cheat application. It is automatically installed and updated.
It can be disabled in your CONFIG_Vanilla.cfg by defining Battleye=0;
If you have followed these instruction to the letter, you will see a Battleye folder in your d:\Games\Arma3\A3Master»
You will need to manually create a file in this folder named BEServer.cfg using a text editor such as Notepad
with the following content (Edit as you see fit)
RConPassword ABC123XYZ
RConPort 2306
MaxPing 250
There is an additional command you can define which is RConIP. However this can cause issues and if you have used the instructions in this tutorial, you will not need to
Update for the armaserver_x64.exe
1) BattleEye changes
- 64 bit binary runs the beserver_x64.dll
- It also needs a BEServer_x64.cfg (Which is simply a renamed copy of your BEServer.cfg
LOCATION OF FILES (When setting parameters)
Open the spoiler for more info
Just to clarify here is an example file structure and location of files if you set certain parameters
Command line entry: -profiles
NOTE: If running Firedeamon, the user will be «SYSTEM», for most other scenarios it will be «Administrator»
The below example is for Firedeamon.
Files automatically created during exe.start if they don’t already exist are highlighted in Blue
«-profiles=d:\Games\Arma3\A3Master»
d:\Games\Arma3\A3Master\Users\SYSTEM\SYSTEM.Arma3Profile
d:\Games\Arma3\A3Master\Users\SYSTEM\SYSTEM.vars.Arma3Profile
d:\Games\Arma3\A3Master\Users\SYSTEM\Arma3.cfg
d:\Games\Arma3\A3Master\MPMissions\ ? Think this was auto created can’t remember
d:\Games\Arma3\A3Master\arma3.rpt
Command line entry: -config
if you then add a -config parameter as in the example below, you will need to manually create the file and edit it accordingly
Using this example will look for the file in the root directory of the virtual server it is for
-config=CONFIG_Vanilla.cfg
You can also use a full path and place it wherever you want
-config=d:\Games\Arma3\A3Master\CONFIG_Vanilla.cfg
In the «CONFIG_Vanilla.cfg, if you add the line
logFile = «A3Master.log»;
The logfile will automatically be created as
d:\Games\Arma3\A3Master\A3Master.log
Command line entry: -netlog
This will automatically create the following file
d:\Games\Arma3\A3Master\mpStatistics.log
SERVER ADMIN COMMANDS
Open the spoiler for more info
reference: In Game Admin commands
(Known to work, (highlighted in Green))
Not working: (Highlighted in red)
Untested (Highlighted in black)
SERVER MANAGEMENT
-
#login < password > : Admin login
#logout : Admin logout
#lock : Lock server (Auto unlocks at end of mission)
#unlock : Unlocks server
#missions : Stops mission, reloads mission list
#reassign : Moves all players from their unit selection slots back into the lobby
#restart : returns the mission to the unit selection screen, with all players in their slots and restarts the mission
#shutdown: shuts the server down
#Init : Reloads file defined by -config command line parameter
PLAYER MANAGEMENT
-
#userlist : Displays the list of users on the server (use pgup to scroll up)
#kick < Server Player ID > (First entry for a player using #userlist)
#kick < nickName > (Second entry for a player using #userlist
#kick < Player UID > (Third entry for a player using #userlist)#exec kick < Server Player ID > (First entry for a player using #userlist)
#exec kick < nickName > (Second entry for a player using #userlist
#exec kick < Player UID > (Third entry for a player using #userlist)#exec ban < Server Player ID > (First entry for a player using #userlist)
#exec ban < nickName > (Second entry for a player using #userlist
#exec ban < Player UID > (Third entry for a player using #userlist)
DEBUGGING
-
#monitor 10 : Activates the server monitor which reports Bandwidth and memory useage Every * seconds via chat window)
#monitor 0 : Deactivates the server monitor
#debug off : Deactivates debugging
#debug 30 : Debug reporting interval (Default is 10 seconds
#debug von
#debug console
#debug checkFile expansion\Dta\ui.pbo
#debug userSent <username>
#debug userInfo <username>
#debug userQueue <username>
#debug JIPQueue <username>
#debug totalSent 10
RUNNING DEDICATED SERVER & CLIENT ON SAME MACHINE
If you have followed these instructions, the only known issue, is to make sure you start the server up before you start the steam client
Failing to do this causes steam port issues and your client wont be able to connect to the server
RUNNING MULTIPLE SERVERS ON SAME MACHINE
Open the spoiler for more info
This is possible and there are a few methods to accomplish this.
Each server instance requires
- Its own unique set of ports
- Its own profile
- Its own config
This POST explains it more in depth
In addition each method has some pro’s and cons
To select the preferred methodology that suits your requirements you need to have considered the following
- The useage of the «Keys» folder
- The useage of the «MpMissions» folder
- Available Hard drive space
- Update management
METHOD 1
see THIS POST for more detailed information
This is copy of the master install into a different directory
As may times as you have space for
Pros
- Most robust
- Unique MpMissions folder
- Unique «keys» folder
- Allows ability to run seperate instances of different branches of the game, (E.g Dev or Stable)
Cons
- Uses more drive space
- requires more effort to create and automate the updating process
METHOD 2
This uses 1 master install folder and has renamed arma3server.exe’s in sub folders of the master
see THIS POST for more detailed information
Pros Comparison to Method 1
- Uses less space than Method 1
- Updating will be easier
Cons Comparison to Method 1
- Not very Robust
- Shares MpMissions folders with all the other exe’s (Will create a very cluttered MpMissions folder and allows admins to select addon required missions for a mod this server instance isn’t running
- Shares «keys» folder with all other exe’s (This can cause an issue when running various differing -mod servers)
- Will not allow you to run seperate instances of different branches of the game
METHOD 3
This is a hybrid of method 1, in that it is essentially a «Virtual» copy of the master install in a different directory
the difference being that many folders are sim linked to the initial Master directory
simlink GUI:
Pros Comparison to Method 1
- Uses less drive space (As you wont have multiple copies of the addons folder)
- Allows for unique MpMissions folder if desired
- Allows for unique «keys» folder if desired
- Updating will be easier
Cons Comparison to Method 1
- Requires more effort to initially create the simlinks and directories
- Will not allow you to run seperate instances of different branches of the game at the same time, (E.g Dev or Stable)
METHOD 4
You could of course mix n match all 3 methods to suit your specific requirements
RE-LOCATING MPmIssions (For example to a dropbox)
Open the spoiler for more info
To define a different location for your MpMissions, such as a drop box location, carry out the following steps.
- Either Move your MpMissions to its new location or just delete it. (Don’t leave a copy in the original location)
-
run cmd tool on your server to create the link, use «» around the directories
example
mklink /J «D:\Games\Arma3\A3Master\mpmissions» «C:\Users\user\Desktop\Dropbox\mpmissions»
Credits to
- Banshee (His original post)
- Kinsman (His original post)
BANDWIDTH OPTIMISATION
Open the spoiler for more info
TROUBLE SHOOTING
Open the spoiler for more info
I created a Debugging tutorial guide for serverside issues which you can find in the sticky section of this forum
https://forums.bistudio.com/topic/172834-tutorial-debugging-server-issues-eg-not-loading-correctly/
Steps to take
First element to decide is:
Does the issue show itself from
-
a) Clientside perspective (i.e a client trying to join the server, or maybe viewing the game browser etc)
B) Serverside perspective (Issues that can only be seen from backend (RDP) access
Now that you have a better understanding of where the issue lies, be confident that this tutorial works, because it does. many admins have used it to set up there servers successfully. So it is likely you skipped over some steps or didn’t read the instructions carefully enough (Like we all do)
There may of course be errors somewhere. if they are please let me know so I can update this. Others are likely to have also suffered the same fate.
- For any initial query Read through this first post (It is updated with posted content as and when required)
- If your query is not answered here, then follow the «Updated to this post» link at the top of this post and read on from there
-
If you still have no answer then post on the thread and we will try and get a solution
You will need to provide us with the following information before we can help, without it we are just guessing
- Do Not try to run addons or custom missions until you have proven a Vanilla install
- Copy of the RPT file (Ideally on Pastebin)
- Copy of the Config_Vanilla.cfg (Ideally on Pastebin)
- copy of arma.cfg (Bandwisth settings)
- Command line used
- Your issue in detail
- Steps you have taken to resolve
-
Type of setup, eg
- O/S,
- number of servers running on the same box
- How you are connecting to it, eg LAN, remotely via the Internet or if on the same machine
You could also join the Server Admins Skype group channel, where you will get live help
IMPORTANT
To help others please post back any solutions you find. Not all server admins are highly trained IT Technicians (Including me)
LIVE Chat help
For Live help, join the Skype group channel
Dwarden said:
all server hosters, we have Skype channel for collaborative work of server admins, add me on Skype and demand access, slap me on IRC, try hit me over email or so … thanks
Known Issues
- Error! app 107410 is 0x1: (This occurs when you have run out of drive space or possibly memory, and is first seen after an steam update of the game)
-
My server has 2500ms ping in server browser: (This is caused by running the steam client as Non Administrator) see http://feedback.arma3.com/view.php?id=9374
Dwarden said:
easily solveable, on server firewall set enabled for any ICMP V4 incoming
(or specifically «»Destination Unreachable» , «»Echo request»», «»Time Exceeded»», «»Source Quench»», «»Redirect»»)
also make sure you allow NAT traversal for this rule in the firewall -
Server keeps crashing (Admins report servers as being stable, so this is likely to be one of the following unless this is a widespread issue caused by a recent patch)
- Recently uploaded mission has critical errors (Normally description.ext entry)
- Use of 3rd party content, eg user made missions or addons
- Server not capable of handling the resources required, badly configured or underpowered
-
DirectX
-
Windows Web Server 2008 — Error message: arma3.exe — Entry Point Not Found.The procedure entry point CreateDXGIFactory1 could not be located in the dynamic link library dxgi.dll.
Reporting Post
Solution Post
Bug Tracker Ticket- Windows 2008 server with this issue, the following may resolve it
- Nobody has yet reported being able to run a -server with 2003
noseek said:
This problem has been solved
Our server original operating system: Windows Server 2008 Enterprise (Simplified Chinese) SP1
Run steam and ArmA 3 Alpha occur same error message: …CreateDXGIFactory1 could not be located in the dynamic link library dxgi.dll…
First, download and install directx_11_redist,the problem persists
Then upgrade Windows Server to SP2, still error… :cryy:
Last, download and install Windows6.0-KB971512-x86,the problem is solved!
For reference
-
Windows Web Server 2008 — Error message: arma3.exe — Entry Point Not Found.The procedure entry point CreateDXGIFactory1 could not be located in the dynamic link library dxgi.dll.
-
ArmA2 and ArmA3 servers conflict if they use the same ports. on the same machine.
It can cause one of the servers to use a different port automatically which will not have been defined in your firewall outbound rules and therefore not visible to the outside world
this is easily remedied by stating a different port number in your startup params, eg -port=2312 (Leave at least 10 ports between servers)
So your target line would then look something like«D:\Games\ArmA3\A3Master\arma3server_x64.exe» -port = 2312 -config=CONFIG_Vanilla.cfg
. -
ArmA3server package loading Arma3 client data when both are installed on the same machine
if you run Arma 3 Dedicated server data package on a system where the client is also installed there is a possibility the server will load the full client data instead of the server package, this is caused by precedence check in the registry, the solution/workaroud to this issue is to use a -mod= parameter in the command line even if you aren’t using any mods (The -mod= ensures the server loads the game data from the server.exe root folder)
Examples of allowed useage-
-mod=
-mod=@myMod1
-mod=@myMod1;@MyMod2
-
-mod=
EXAMPLE FILES
Arma3_Steam_Updater.cmd
@echo off SETLOCAL ENABLEDELAYEDEXPANSION :: DEFINE the following variables where applicable to your install SET STEAMLOGIN=mylogin mypassword SET A3BRANCH=233780 -beta :: For stable use SET A3BRANCH=107410 :: For Dev use SET A3BRANCH=107410 -beta development :: For Dedi server stable package use SET A3BRANCH=233780 -beta :: Note, the missing qotation marks, these need to be wrapped around the entire "+app_update......" SET A3Path=D:\Games\ArmA3\A3Master SET STEAMPATH=D:\apps\Steam :: _________________________________________________________ echo. echo You are about to update ArmA3 echo Dir: %A3Path% echo Branch: %A3BRANCH% echo. echo Key "ENTER" yo procede pause %STEAMPATH%\steamcmd.exe +login %STEAMLOGIN% +force_install_dir %A3Path% +"app_update %A3BRANCH%" validate +quit echo . echo Your ArmA3 is now up to date echo key "ENTER" to exit pause
CONFIG_Vanilla.cfg
// // config_Vanilla.cfg // comments are written with "//" in front of them or encapsulated with /* and */ // visit https://community.bistudio.com/wiki/server.cfg for more info // GLOBAL IDENTIFICATION // hostname = "My Server: My Teamspeak address"; // The name of the server that shall be displayed in the public server list // JOINING RULES // //password = "ServerAccessPassword"; // Password for joining, eg connecting to the server, leave commented out for initial testing maxPlayers = 40; // Maximum amount of players. Civilians and watchers, beholder, bystanders and so on also count as player. persistent = 1; // If 1, missions still run on even after the last player disconnected. headlessClients[]={127.0.0.1}; // The server doesn't allow arbitrary connections from headless clients if you do not define the headless clients IPs. // Multiple Connections and Addresses are allowed in the case of more than one Headless Client. localClient[]={127.0.0.1}; // to indicate clients with unlimited bandwidth and nearly no latency (https://dev-heaven.net/issues/62500), Available since Arma 2:OA build 99184 , including Arma 3 onUserConnected = ""; // onUserDisconnected = ""; // // disconnectTimeout = 5; // Server wait time before disconnecting client, default 90 seconds, range 5 to 90 seconds. (since Arma 3 update 1.56+) // loopback = true; // While using the Dev version of Arma III, 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 = 1; // Automatically creates port mapping on UPNP/IGD enabled router. // This option allows you to create a server behind NAT (your router must have public IP and support UPNP/IGD protocol). // Warning: 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. forceRotorLibSimulation = 0; // Enforces the Advanced Flight Model on the server. Default = 0 (up to the player). 1 - forced AFM, 2 - forced SFM. // LOGGING // logFile = "A3Master.log"; timeStampFormat = "short"; // Possible values are "none" (default),"short","full". // WELCOME MESSAGE ("message of the day") // It can be several lines, separated by comma // Empty messages "" will not be displayed at all but are only for increasing the interval motd[]={ "", "", "", "__________ SYSTEM MESSAGES __________", "Welcome to My Server", "IMPORTANT Verify Signatures is enabled", "", "TS3 Server: teamspeak.mydomain.com", "Web: www.mywebsite.com", "TS3 Server: teamspeak.zeus-community.net", "__________ END OF MESSAGE __________" }; motdInterval = 5; // Time interval (in seconds) between each message // VOTING // voteMissionPlayers = 1; // Tells the server how many people must connect so that it displays the mission selection screen. voteThreshold = 0.33; // 33% or more players need to vote for something, for example an admin or a new map, to become effective //voteMissionPlayers = 0; // VON // disableVoN = 0; // If set to 1, Voice over Net will not be available voncodec = 1; // If set to 1 then it uses IETF standard OPUS codec, if to 0 then it uses SPEEX codec (since Arma 3 update 1.58+) vonCodecQuality = 11; // since 1.62.95417 supports range 1-20 //since 1.63.x will supports range 1-30 //8kHz is 0-10, 16kHz is 11-20, 32kHz(48kHz) is 21-30 // SECURITY // passwordAdmin = "AdminPassword"; // Password to become server admin. When you're in Arma MP and connected to the server, type '#login xyz' serverCommandPassword = "WhateverYouWant"; // "Password to use server commands via scripts"; Battleye = 1; // = 0 to disable battleye verifySignatures = 2; // Turn on addon checking system, so that players cannot join with any addon, only those you allow and host in keys folder kickDuplicate = 1; // Do not allow duplicate game IDs. Second player with an existing ID will be kicked automatically. 1 means active, 0 disabled. requiredSecureId = 2; allowedFilePatching = 0; // Allow or prevent client using -filePatching to join the server. 0, is disallow, 1 is allow HC, 2 is allow all clients (since Arma 3 1.49+) allowedLoadFileExtensions[] = {"h","hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; allowedPreprocessFileExtensions[] = {"h","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 = {}; // Leave commented to let missions/campaigns/addons decide what URIs are supported. Uncomment to define server-level restrictions for URIs onUnsignedData = "kick (_this select 0)"; // unsigned data detected onHackedData = "kick (_this select 0)"; // "ban (_this select 0)"; // tampering of the signature detected onDifferentData = ""; // data with a valid signature, but different version than the one present on server detected doubleIdDetected = ""; // // MISSION MANAGAEMENT // missionWhitelist[] = {}; //an empty whitelist means there is no restriction on what missions' available ///// LEAVE THE FOLLOWING MISSION CYCLE CLASS COMMENTED OUT UNTIL YOU HAVE PROVEN THE SERVER INSTALL ///// /* // MISSIONS CYCLE (see below) // class Missions { class Mission1 { template="co_xx_mymission.stratis"; difficulty="Regular"; }; }; */
****.Arma3Profile
Important to note, the defaul;t B.I classes, Regular, veteran cannot be edited, so if you want to run an edited version, then edit the custom class and run that
The following config is set to do just that
version=1;
blood=1;
viewDistance=3800;
preferredObjectViewDistance=3800;
terrainGrid=12.5;
class DifficultyPresets
{
class CustomDifficulty
{
class Options
{
// Simulation
reducedDamage = 0; // Reduced damage
// Situational awareness
groupIndicators = 0; // Group indicators (0 = never, 1 = limited distance, 2 = always)
friendlyTags = 0; // Friendly name tags (0 = never, 1 = limited distance, 2 = always)
enemyTags = 0; // Enemy name tags (0 = never, 1 = limited distance, 2 = always)
detectedMines = 0; // Detected mines (0 = never, 1 = limited distance, 2 = always)
commands = 0; // Commands (0 = never, 1 = fade out, 2 = always)
waypoints = 1; // Waypoints (0 = never, 1 = fade out, 2 = always)
// Personal awareness
weaponInfo = 1; // Weapon info (0 = never, 1 = fade out, 2 = always)
stanceIndicator = 1; // Stance indicator (0 = never, 1 = fade out, 2 = always)
staminaBar = 1; // Stamina bar
weaponCrosshair = 0; // Weapon crosshair
visionAid = 0; // Vision aid
// View
thirdPersonView = 1; // 3rd person view
cameraShake = 1; // Camera shake
// Multiplayer
scoreTable = 0; // Score table
deathMessages = 0; // Killed by
vonID = 1; // VON ID
// Misc
mapContent = 0; // Extended map content
autoReport = 0; // Automatic reporting
multipleSaves = 0; // Multiple saves
};
//aiLevelPreset is counted from 0 and can have following values: 0 (AI Level Low), 1 (AI Level Normal), 2 (AI Level High), 3 (AI Level Custom).
//When 3 (AI Level Custom) is chosen, values of skill and precision are stored to the class CustomAILevel.
aiLevelPreset=3;
};
class CustomAILevel
{
skillAI=0.85;
precisionAI=0.5;
};
};
Arma3.cfg
language=»English»;
adapter=-1;
MinBandwidth=800000;
MaxBandwidth=25000000;
MaxMsgSend=384;
MaxSizeGuaranteed=512;
MaxSizeNonguaranteed=256;
MinErrorToSend=0.003;
MaxCustomFileSize=100000;
Windowed=0;
serverLongitude=0;
serverLatitude=52;
serverLongitudeAuto=0;
serverLatitudeAuto=52;
ADVANCED CONFIGURATION
-Profiles
Open the spoiler for more info
-Profiles switch is used to define the location of BE, saved files, configs etc
This would be used when you want to run additional ArmA3 installs on the same machine or want to define a custom folder for the files to be read from and written to.
Example -profiles command line entry
«-profiles=d:\Games\ArmA3\A3Master»
AUTO SERVER RESTART .BAT File
Open the spoiler for more info
eRazeri created an auto-restart batch file to restart the server if it crashed:
::Made by eRazeri
@echo off :start C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3server.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3server.exe">NUL if "%ERRORLEVEL%"=="0" goto loop echo Server monitored is not running, will be started now start "" /wait "D:\Games\Arma3\A3Master\arma3server.exe" -config=CONFIG_Vanillar.cfg "-profiles=G:Games\ArmA3\A3Master" -world=empty echo Server started succesfully goto started :loop cls echo Server is already running, running monitoring loop :started C:\Windows\System32\timeout /t 10 C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3server.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3server.exe">NUL if "%ERRORLEVEL%"=="0" goto loop C:\Windows\System32\taskkill /im arma3server.exe goto start
Firedeamon
Open the spoiler for more info
Firedeamon is an application that allows users ability to start and stop Windows services and run batch files without rear end access. It is administered via a web interface and is an excellent tool for Windows servers. It is not free but it is cheap for clans if they are willing to run a Firedeamon banner on their websites)
Configuration
Programs tab: d:\Games\Arma3\A3Master\Arma3server_x64.exe
Working Directory: d:\Games\Arma3\A3Master
Parameters: -port=2302 «-profiles=d:\Games\Arma3\A3Master» -config=Config_Vanilla.cfg -world=empty -mod=
Firedeamon can also be configured to restart the server on a crash
almaxkiller created a batch file to restart the Firedeamon ArmA3server service should it close.
I have no idea why he did this, as you can configure firedeamon to restart the service should the ArmA3server instance crash
Create the following batch file and name it «arma3servercheck.bat» using notepad or notepad+.
@echo off
tasklist | findstr /i arma3server_x64.exe
if %errorlevel% neq 0 goto restart
goto end
:restart
start «» «server.bat»
:end
exit
Then create your «server.bat» file using the launch parameters of your choosing.
Example (this is what we are using to run our ARMA 3 Wasteland server):
NOTE: Both of these files MUST be saved in the same location as your ARMA3server.exe, otherwise you need to change the file directory to «arma3server.exe» in each.
In FireDeamon create a service with the arma3servercheck.bat file and have it have a start-up time of 60000ms and a pre-launch delay of 60000ms. Also in the «Upon Program Exit:» Have it set to Restart the Program at 60000ms.
All of those settings are overkill I am sure, but it makes it were every minute the process runs to see if arma3server.exe is running, and if not starts it up. Hope this helps some people, and if anybody comes up with a better solution please let me know!
ADDONS & MODS
BASIC EXPLANATION
Open the spoiler for more info
mods are basically a collection of addons installed in folders
Addons are made by 3rd parties to add content or functionality to the game
Typical Structure of a Mod folder
A3 root folder
………. \ @XYZMod
………………..\ addons
………………………… \ xyz.pbo
………………………… \ xyz.pbo.tag.bisign
The root MOD folder can be called anything you want, there is however an unwritten unofficial protocol that is widely used and that is to precede the folder name with the «@» character
The addons folder contains 2 type of files
.pbo (This is the actual addon)
.bisign (This is the file that the server communicates with to verify the integrity of the corresponding.pbo file
Each .pbo is (or should be) paired with its own .bisign
When you download an addon, typically the addon maker packs it into his own «named» mod folder,
for example @CBA_A3
Apart from the Mod folder, there should also be a «Keys» folder in the download.
The .bikey that is contained in the keys folder is for serverside use only, clients don’t need or use it.
(Some .bikeys come in the addons folder, they dont belong there but cause no harm residing there)
WHITE-LISTING / BLACK-LISTING (How does it work)
Open the spoiler for more info
Quick Explanation
If verifysignatures=2 has been declared in the server.config
- The currently loaded mission defines the addons that are required by the client to play on the server for that mission
- The *.Bikeys found in the servers «keys» folder define what addons you are allowed to connect to the server with (Whitelisting).
- Apart from actual addons that are used in missions this should also contain all the Bikeys for any clientside addons that you allow such as Sound mods etc
Detailed Explanation
Every correctly configured and signed addons requires 3 different files to work within a server where addon signature verification is enabled
These are
- Addon.pbo
- Addon.MyBikey.bisign
- MyBikey.Bikey
The Addon.pbo and Addon.MyBike.bisign are paired together and should be found in @Modfolder\addons
The MyBikey.Bikey are for servers only and are normally packaged with the addon and bisign files but stored in a seperate folder, normally called «Keys».
Point to note *.bisigns are not needed on the server itself but afaik will be needed on any headless clients that connect to the server
When a client connects to the server there is a 2 stage check carried out by the server on the addons the client has loaded
Check 1: It checks all the addons on the client and verifies that their paired *.bisign matches one of the keys found in the keys folder. (If there is a mismatch it wont allow the client to connect)
Check 2: Every mission has addon requirement entries listed in 2 sections within its mission.sqm file. If the client does not have these «required» addons the client will not be allowed to connect
There are 3 main categories of addons
- Server-only addons
- Client-only addons
- Mission Dependancy addons
Server-only addons
These are addons that only the server is required to run and are loaded on the server using the command line parameter -servermod=
These tend to be addons that run scripts and do not create mission dependancy, so typically to stop them being accidentally loaded by clients do not come with any .bisigns or .bikeys and are coded in such a way that if the node they are being run on is not the server, their scripts exit
Client Only addons
also known as clientside addons. Typically this covers sound mods, any SFX mods, GUI mods such as the Shac Tac collection. They wont (or shouldnt) create any mission dependancies, nor effect other clients or the server
Mission dependancy addons
These are addons that bring new content to the game such as vehicles, units, weapons, terrain etc. The likes of RHS, TFAR, Alive, ACE, CUP fall into this category. When classes from these addons are used in a mission they automatically add an entry into the mission.sqm which defines the actual addons you need to play that mission. Typically these addons need to be run on both the server and the client.
ADDON SIGNING
Open the spoiler for more info
The addon creator first makes his own private key which he uses to sign all his addons.
The tools for this are available from the ArmA Tools collection
When he signs his addons with this tool, he creates a *.bisign for each addon and one *.Bikey that covers all the addons he just signed
Some creators make a new private key each time they resign their addons, this tends to be how they control their versioning.
You can if you wish resign any addons you host with your own keys, there are advantages and disadvantages to this
Advantages
1) Gives you 100% of control over exactly what version of addons you allow
(Some addon creator continue to use the exact same private key to resign their addons with)
(Some addon creator create a new key but with exactly the same syntax, making it problematic to debug some issues)
2) Reduces instability issues
3) For me massively reduces client support calls
Disadvantages
- You have to fully manage your addon pack and offer it via your own repository
For me the advantages far outweigh the disadvantages
Our addon management is almost fully automated.
The addon admin manually updates the content in our repo
Then via 1 batch file it
- automatically resigns all the addons with an automatically created date stamped private key (Example ZIslands_2017_03_14.bikey)
- Updates all the servers with the updated addon pack
- Uploads the updated pack to our file host server
Then the clients just need to hit an update button on their arma 3 sync tool and voila every client and the server are running exactly the same content.
As you can imagine this saves having to keep a list of what addons we allow, , where to get them etc . It removes a lot of hassle from supporting clients and re explaining to them how to manually manage their addon packs
RESIGNING ISSUES
If your having issues resigning an addon, the following solution may help
Hardhast stated in a thread that was he;ping guy who was having issues with his bikey and bisign not liking each other after resigning an addon in his mod pack
Quote
I’ve run into this a lot of time.
Some pbo’s signatures of some addons won’t work when (re)signing them.
You need to extract the addon that does not work and recompile it and signing it with addon builder (take a look in the options to enable the signing process and throw your private key in).
Also, make sure you recompile it all lowercase (could be an issue on linux servers).
INSTALLATION
Open the spoiler for more info
To use addons is basically the same format for both clients and servers, apart from the server «.bikey» and config file entries
Unpack and copy them into your arma3 folder
Initialise the addons by defining either
a) -mod=@CBA_A3;@ModB;@ModC in the command line for a desktop shortcut that is linked to your arma3.exe\arma3server.exe
B) -mod=@CBA_A3;@ModB;@ModC in the parameters field for a firedeamon service (recommended for servers) you can get a clan discount for this great tool
c) using a similar command line in a custom launcher tool (Some are good some are not so).
d) Using the ingame Mod launcher system (Clients only)
SERVER ONLY:
Define verifysignatures=2 on your server config file (The same file where you define the admin password)
Copy the .bikey in the mod’s «keys» folder to the server’s A3 root «Keys» folder
(The Keys folder white lists the allowed addons on your server. If someone tries to connect to the server with addons, you dont have a bikey installed for, they wont be able to connect.
You should allow some clientside addons such as JSRS Mod, shack tac hud etc, do this by adding their .bikey to your keys folder. These are clientside only addons, you dont need to run these addons on the server
MISCELLANEOUS
Open the spoiler for more info
In MOST cases, you don’t have to keep the addons in the mod folders that the addons came in, you can create your own and copy all the files needed into your own mod structure
for example, on our addon server we use the following mod folders
@ZCBA_A3
@ZAlive
@ZIslands
@ZCommon
@ZClient
command line used to launch this is
-mod=@ZCBA_A3;@ZAlive;@ZCommon;@ZIslands;@ZClient
@ZCommon contains
DAR_HWMMV’s
Chinook
AK Weapon pack,
M4 Weapon pack
AGM Mod
Task Force radio
and others
@ZIslands contains
A3MP content
+ some additional islands like ToraBora
We typically pack most things that are easy to update into one common folder which makes management for us easier.
If I need to update for example DAR’s Humvee pack, all the files start with his tag «DAR_», easy enough to find and then replace
The Alive mod however is a different beast, all the tags differ, this is why we keep Alive in its own mod folder
DOWNLOADING & ADDON MANAGEMENT
Open the spoiler for more info
http://www.armaholic.com/ is the best source for direct downloads
http://play.withsix.com/arma-3 is a download and management application (Steep learning curve but widely used across a lot of servers. You will need to learn this at some point)
ArmA3Sync is a serverside/clientside content management and launcher application, easier to use and set up. We personally use this, it gives better control and ease of use to our clients
CHANGELOG
Open the spoiler for more info
Version 1.01
- Added info about defining a different port if running an A2 and an A3 server on the same machine
- Added «Known Issues about Windows 2003 server and Direct X (No solution as yet)
- Added links to WIKI for folks who were unable to find the obvious information
Version 1.02
- reformatted , reorganised initial post
- Added example files
- Added firedeamon section
- Added Port forwarding section
- Added Autorestart section
- Added Running Client and Server on same machine section
Version 1.03
- Updated «How To» instructions, added initial start up to be in online mode and run as Administrator
- Added additional commandline params
- Added to troubleshooting: Known issues
Version 1.04
- Added «How to run development version
- Updated troubleshooting: with fix for DirectX issue
- Updated troubleshooting: with «How best to use this thread»
Version 1.05
Date: 17th March 2013
- Added Section: «LOCATION OF FILES (When setting parameters)»
- Added Section: «RE-LOCATING MPMissions (For example to a dropbox)»
- Added «VerifySignatures = 2» into config.cfg (My bad, why I forgot to add this I will never know) IMPORTANT Please add to config
Version 1.06
Date: 23rd March 2013
- Added Section: «Server Admin Commands)»
Version 1.07
Date: 26th May 2013
- Major rewrite of tutorial modifying for useage of ArmA3server.exe and multiple server instances
- Added section for Multi Server set up on the same machine
Version 1.08
Date: 27th May 2013
- Syntax error in the ArmA3_Steam_Updater.cmd
- changed
SET A3BRANCH="233780 -beta"
:: For stable use SET A3BRANCH="107410"
:: For Dev use SET A3BRANCH="107410 -beta development"
:: For Dedi server stable package use SET A3BRANCH="233780 -beta"
+app_update %A3BRANCH%
to
SET A3BRANCH=233780 -beta
:: For stable use SET A3BRANCH=107410
:: For Dev use SET A3BRANCH=107410 -beta development
:: For Dedi server stable package use SET A3BRANCH=233780 -beta
:: Note, the missing quotation marks, these need to be wrapped around the entire "+app_update......" statement
"+app_update %A3BRANCH%"
Version 1.09
Date: 29th May 2013
- Win2003 can now be used
- Tidy up of initial thread, no consistency in Directory defintions
Version 1.10
Date: 25th June 2013
- Changed filenames ArmA3Alpha…… to ArmA3 to reflect beta release changes
- Added Server bandwidth optimisation section ( very good help link)
- Added «Running Server and client on same machine»
Version 1.11
Date: 25th August 2013
- Added known issues entry to explain the steam error Error! app 107410 is 0x1
Version 1.12
Date: Feb 2014
- Added information about the dedicated server package for the stable branch
Version 1.13
Date: 9th April 2014
- Added information to the troubleshooting section and the Known issues section
- Specifically information about running a client install and a server install on the same machine
Version 1.14
Date: 12th April 2014
- Clarified requirement to run ArmA3server.exe as administrator. (This is a requirement of Battleye)
Version 1.15
Date 12th June 2014
- Added Mods & Addons section
Version 1.16
Date 5th July 2014
- Updated port information to reflect changes in steam query port detailed in A3 patch 1.22 hotfix
- sections changed are
- PORT FORWARDING (ArmA3) (Firewalls)
- CONFIG_Vanilla.cfg
Version 1.17
Date 31st August 2014
- Updated port information, forgot to make some changes from the 1.22 hotfix patch
- sections changed are
- PORT FORWARDING (ArmA3) (Firewalls)
- CONFIG_Vanilla.cfg
Version 1.18
Date 25th October 2015
Updated the Config_Vanilla.cfg by commenting out and adding new entries to it.
sections changed are
- CONFIG_Vanilla.cfg
- serverCommandPassword
- allowedLoadFileExtensions
- allowedPreprocessFileExtensions
- allowedHTMLLoadExtensions
- // HEADLESS CLIENT
- headlessClients[]={127.0.0.1};
- localClient[]={127.0.0.1};
Version 1.19
Date 30th April 2016
- Edited the entire tutorial, decluttering it and creating expanding spoiler tags for each section to make it less of a «wall of text»
- Edited the config_vanilla.cfg to reflect changes up to and including patch 1.58
- Edited the *****.ArmA3Profile (Difficulty settings) to reflect changes in patch 1.58
- Added a Battleye configuration section
Version 1.20
Date 16th March 2017
- Massive update to the «Addons» section
- Updated some info for the armaserver_x64.exe (Still got to work through the entire doc to update everything for this)
Version 1.21
Date 21st March 2017
Worked through entire post updating to include arma3server_x64 changes
Important changes are
- Firewall rules
- Battleye configuration
If you host Arma 3 on a dedicated server, you’ll have the best possible basis for a shared online adventure with your friends. Due to the comparatively high hardware requirements, renting external resources is recommended. You can then easily install and set up the Arma 3 server via SteamCMD.
The first version of the military simulation Arma 3 was released on September 12, 2013. The main content of the computer game by Bohemia Interactive is a military conflict set in the near future, and the developers place the focus on managing the crisis in multiplayer mode. We clarify the requirements for your own Arma 3 server and also provide detailed instructions for installation and setup.
Contents
- Arma 3: Dedicated Server in a data center or hosting on your own PC?
- What are the system requirements of an Arma 3 host server?
- Arma 3: Server hosting with IONOS — these are your options
- IONOS Arma 3 server: Savings tips for newbies
- Arma 3: Possible host server options and suitable IONOS plans
- Host an Arma 3 server: Tutorial
- Step 1: Connect to sever
- Step 2: SteamCMD install
- Step 3: Install Arma 3 dedicated server software via SteamCMD
- Step 4: Release ports
- Step 5: Configure server
- Step 6: Start Arma 3 server
- Step 7: Connect to Server
Free Cloud Server Trial from IONOS
Try out a Cloud Server for free now — test your IONOS Cloud Server for 30 days!
REST API
Unlimited traffic
VMware virtualization
Arma 3: Dedicated Server in a data center or hosting on your own PC?
To host a multiplayer server in Arma 3, you have two options: Either you run the multiplayer instance on your own device or you host an Arma 3 server on rented hardware resources with a provider of your choice.
The advantages of hosting on your own machine are obvious — you don’t have to rent additional hardware and you have the maximum access to your server. However, a look at the disadvantages makes it clear why an Arma 3 dedicated server in a remote data center is the better choice:
For one, home Internet access is rarely enough to provide a smooth and stable gaming experience for multiple players. Secondly, only absolute top PCs provide the necessary computing power (especially if you want to participate in the game yourself). Another argument in favor of third-party hosting is the fact that the server is available around the clock, which would only be the case with hosting on your own PC if you don’t turn off your device.
Note
When you rent resources for hosting your own Arma 3 server, you are not automatically bound to hosting the military simulation. You can also use the hardware to create a Valheim server or a Minecraft server setup. Furthermore, you can use the resources to host your own TeamSpeak server.
What are the system requirements of an Arma 3 host server?
Hosting an Arma 3 dedicated server is taxing on the underlying hardware. The rule of thumb is that the more players are active at the same time and the more mods you want to use for your server, the more resources you need to plan for. For a simple co-op adventure, you can get away with a leaner hardware setup than for a multiplayer server where 16 or more players are in action together or against each other.
In the official Arma 3 Wiki, Bohemian Studios lists the following minimum requirements:
- CPU (processor): 2.4 gigahertz (dual core)
- RAM (working memory): 2 gigabytes
- Hard disk space: 32 gigabyte HDD
In the same place, the development team recommends the following hardware for all Arma 3 server scenarios that are intended to go beyond hosting a simple co-op adventure:
- CPU (processor): 3.5 gigahertz (quad-core)
- RAM (working memory): 4 gigabytes
- Hard drive storage: 32 gigabyte SSD
However, the performance for running the Arma 3 dedicated server software isn’t the only thing you need to consider when it comes to the hardware for your server. The operating system of your choice also requires resources that should be planned for from the start. For Windows Server 2019, for example, the following additional requirements need to be covered:
- 1.4 GHz processor (64-bit)
- 512 MB or 2 GB memory (without or with graphical user interface)
- 32 or 36 GB hard disk space (without or with graphical user interface)
Note
For hosting an Arma 3 server, you can choose to use a Windows operating system or a Linux distribution such as Ubuntu.
Arma 3: Server hosting with IONOS — these are your options
You can rent server hardware for hosting your own online adventure from various providers. However, choosing the right provider is not that easy — especially since every provider usually has several hosting packages in their portfolio. Different infrastructure approaches have to be taken into account, as well as different performance and cost spectrums. At IONOS, for example, you can choose between the following three server models, each with different plans:
- vServer: IONOS vServer (also Virtual Private Server, VPS) gives you access to virtualized resources. You share the hardware with other customers (without any performance loss). Billing is monthly at a fixed price.
- Cloud Server: IONOS cloud servers are also based on virtualized resources. However, they only pay for the performance actually required, as billing is on a per-minute basis.
- Dedicated Server: You can get hardware reserved for you with high single-core power in the dedicated server package from IONOS.
Tip
If you are looking for a powerful and secure server environment where you can host your own Arma 3 server in addition to other gaming servers without performance problems, think about renting your dedicated server from IONOS today to be as well prepared as you need!
IONOS Arma 3 server: Savings tips for newbies
You don’t necessarily have to choose a IONOS plan with a high performance volume, especially if you’re just starting out on your hosting adventure. In terms of server type, the cloud server model is recommended for starting out. You only pay for the server when you are actively using the hardware — you can scale up the resources at any time if you need to!
The cheapest plan with suitable computing power: Cloud Server L.
Tip
Rent your cloud server from IONOS directly now to get started with your own Arma 3 server — without fixed monthly costs!
Arma 3: Possible host server options and suitable IONOS plans
You won’t go wrong with a starter plan, thanks to the easy scalability of each plan. You can still opt for a more powerful plan right from the start if you already know that you need more CPU, RAM and so on. If you want your server to be online permanently, it also makes sense to choose a different server model.
We have summarized five possible options in the following table and assigned the most suitable IONOS server plan to each.
Host an Arma 3 server: Tutorial
Once you have access to your own hosting environment, you can put your plan into action and set up Arma 3 as a dedicated server. The easiest way to install the software is via the Steam command line SteamCMD. In the following tutorial, we will go through the individual steps for IONOS customers (vServer, Cloud Server, Dedicated Server). Windows Server 2019 is used as the operating system.
Note
You do not need the game to install and run the dedicated server software for Arma 3! You do need a verified Steam account, though. However, if you want to connect to the server yourself later, this will logically only work with your own Arma 3 license.
Step 1: Connect to sever
You manage the rented server hardware from any device after establishing a remote connection to the server. Consequently, the first step is to set up and establish this remote connection. As an IONOS customer, you can perform the configuration in the browser-based Cloud Panel. To do this, first log in with your individual customer data on the Login page.
After successful login, call up the “Server & Cloud” category. Here you can select the rented hardware setup on which you want to set up the Arma 3 host server. In addition to the most important access data for your server, you will also find a download link for setting up the remote desktop connection on the following page, which you can now click on and execute directly.
When configuring the connection for the first time, a security notice will pop up — continue by clicking “Connect”. Specify the credentials for your Arma 3 server by clicking “More options” and “Use another account”. If you haven’t changed the credentials for your IONOS server yet, you can find the automatically generated startup data in the server data overview in the Cloud Panel — under “Users” and “Initial Password”.
Note
When establishing the remote connection to your server for the first time, you must first classify the server certificate as trusted. Take this opportunity to check the “Do not ask for connections to this computer again” checkbox so that you will not receive the message on subsequent connection attempts.
Step 2: SteamCMD install
The easiest way to get Arma 3’s dedicated server software is via the Steam command line SteamCMD. As soon as the connection to your server hardware is established, download the installation files of the tool via the following download link. Then unzip the ZIP file into any directory on your server.
Finally, double-click on the SteamCMD.exe to start the installation from the Windows command prompt. After successful execution, the Windows command line tool presents you with the input line “Steam>”.
Step 3: Install Arma 3 dedicated server software via SteamCMD
You can now download Arma 3’s dedicated server software via the Steam command line. First, connect to the official Steam servers, for which you will need the username and password of your Steam account. Type the following to start (instead of “username” use your individual Steam username):
After that, enter your password and — when logging in to the server for the first time — the Steam Guard code that you receive on your linked email address.
Optionally, in the next step you can specify in which directory the Arma 3 server should be installed. For example, for the path C:\arma-3-server the appropriate command is:
force_install_dir C:\arma-3-server
Finally, combine the “app_update” command with the Steam app ID of the Arma 3 dedicated server software (233780) to download the application via SteamCMD:
app_update 233780 validate
If the installation was completed successfully, log out of the Steam servers with the command “quit”.
Tip
Using SteamCMD, you can keep your Arma 3 host server up to date after the installation. For this, the command “app_update 233780” is enough — after logging in to the Steam servers first.
Step 4: Release ports
In the next step, you need to open all relevant ports so that users can interact with your Arma 3 host server. For optimal communication between server and clients, the following ports should be opened:
- TCP/UDP 2302: Game port, under which the server itself runs and can be reached.
- TCP/UDP 2303: Query port, which is used to query information such as the number of players or the server name
- TCP/UDP 2304: Port of the game platform Steam
- TCP/UDP 2306: Port for the traffic of the anti-cheat software BattlEye
As an IONOS customer, you can also realize port sharing in the Cloud Panel. To do this, log in as usual, open the “Server & Cloud” section and select the server on which you have just installed the Arma 3 dedicated server software. Then switch to the “Network” category in the left side menu, where you will find the “Firewall Policies” menu.
Under “Incoming”, now create the rules for the four ports mentioned. Make sure that “UDP/TCP” is selected as the protocol in each case.
Note
Unblocking the ports via the IONOS Cloud Panel takes some time. You can read the current progress via the status display in the upper part of the firewall menu.
Step 5: Configure server
You need a basic configuration for your Arma 3 server. To do this, either manually create a configuration file named server.cfg and add the desired parameters using the Server command list in the official Arma 3 Wiki.
Or you can use the web-based Arma 3 Server Config Generator to create the desired server configuration. Once you have all the settings, click on “Generate” to create the appropriate server.cfg.
Note
Independently of the way you chose, copy the created server.cfg file into the directory of your Arma 3 server.
Step 6: Start Arma 3 server
Now you can finally start your Arma 3 host server. In principle, it is enough to run the arma3server.exe file for this purpose. However, to include the created configuration file, an additional step is required beforehand:
Right-click on the arma3server.exe and create a desktop shortcut by selecting “Send to” and “Desktop (create shortcut)” from the menu one after the other.
Also go to the created shortcut with right click and open the “Properties” menu. Now expand the “Target” line in the “Shortcut” tab with the following addition:
Save the adjustment by clicking on “Apply” and start the server afterwards by double-clicking on the desktop shortcut.
Step 7: Connect to Server
Your own Arma 3 dedicated server is ready for your exciting online adventures! Players who want to connect to the server only need to own the game and have the IP address and password (if defined in the server.cfg) of your server. Equipped with these components, the connection setup proceeds as follows:
- Launch Arma 3 from the Steam client.
- Press “Multiplayer” and “Server Browser” one after the other.
- Select the “Direct connection” tab.
- Enter the IP address of the server.
- For “Port”, enter the value “2302” (for the game port).
- Click the Join button.
After that, your server will show up in the list. Click on the entry and go to “Join” one more time. After that, type in the password and select the mission you want — or join the running game if a scenario has already been started.
Tip: .gg Domain
Make a statement with your own .gg domain and let the games begin. Register your own .gg domain now with IONOS.
Related articles
How to host a TeamSpeak server
The choice of tools for voice communication on the Internet or in the local network is more diverse than ever before. However, TeamSpeak, which scores points for its excellent sound quality and high security standards, is still around. We’ll tell you about the requirements of a TeamSpeak server and how to host, install and deploy your own TeamSpeak server online.
How to host a TeamSpeak server
Set up a Mumble server – a how to for mumble server hosting
Whether it’s a multiplayer game or a podcast project, the Mumble voice chat software is becoming increasingly popular. The open-source solution has an appealingly simple structure without scrimping on functions. Another advantage is that anyone can create their own Mumble server. We’ll explain all the steps of the installation, from choosing the right server package to the final configuration.
Set up a Mumble server – a how to for mumble server hosting
How to host your own Space Engineers Server
The space simulation Space Engineers is one of the most popular representatives of the genre. If you want to let off steam in the versatile worlds together with friends and acquaintances, the best way to do this is on your own Space Engineers Server. We have summarized the most important information about Space Engineers server hosting, configuration, and deployment (including step-by-step…
How to host your own Space Engineers Server
Satisfactory Dedicated Server: Hosting and Setup
Players from all over the world are having lots of fun with the factory-building game, Satisfactory, in the early access phase. If you don’t want to play the game alone, you can also join in the adventure with friends and acquaintances on a specially hosted Satisfactory server, for example. What are the requirements for this? And how do you create a Satisfactory dedicated server?
Satisfactory Dedicated Server: Hosting and Setup
How to host your own Eco server
Do you want to play Eco with friends and acquaintances? And also enjoy total freedom when it comes to game configuration? All of this is possible with your own Eco server. It’s easy to install and configure your server with the Steam client once the hosting environment has been set up. We’ll give you an overview of what to consider when hosting and using the Eco dedicated server.
How to host your own Eco server
How to host a Garry’s Mod server: A beginner’s guide
Hosting a Garry’s Mod server is a great way to get your friends together for a gaming adventure. In this guide, we’ll explain step by step how you can set up a Garry’s Mod server, what the best hosting options for a Garry’s Mod server are, and what requirements the server needs to meet. Keep reading to find out what you need to do to set up a Garry’s Mod server.
How to host a Garry’s Mod server: A beginner’s guide
ARMA 3 is a military simulation multiplayer online video game, developed and published by Bohemia Interactive. The game was initially released on the Microsoft Windows platform in September 2013. Two years later, it was also made available for Linux and Mac OS X.
In this article, you will learn about the process of setting up an Arma 3 dedicated server.
Click Here Buy To Game Dedicated Servers.
Minimum System Requirements
The minimum system requirements for an Arma 3 dedicated server include:
- Processor: 2.4GHz dual-core processor
- RAM: 2GB
- Storage: 32GB
- Operating System: Linux/Windows Server 2008 (or higher)
Recommended System Requirements
If you want a smoother gaming experience, you must have a system that fulfills the recommended system requirements.
- Processor: 3.xGHz+ multi-core processor
- RAM: 4GB+
- Storage: 32GB+
- Operating System: Linux/Windows Server 2008 (or better)
Other Pre-requisites
Before you start setting up your Arma 3 dedicated server, here are some of the things you need:
- A copy of Arma 3 on Steam
- Steam CMD (To download game files from Steam servers)
- TADST (Tool for configuring your server settings)
- Microsoft .net Framework 4.5
How To Install Arma 3 Game Files?
- Extract steam CMD into the desired folder
- Once the extraction process is complete, double click on the steamCMD.exe
- Log in with your Steam account
- Choose a directory you want to install server files in by typing this command
force_install_dir <path>
- To begin the installation of game files, type this command
app_update 233780 validate
- Quit steam cmd with exit command once the installation process is complete
- Find mission file with (.pbo) extension and copy it to the MPMissions folder
Port Forwarding
You need to login to your router and forward the following ports.
- UDP 2302 default Arma 3 game port.
- UDP 2303 Steam query port.
- UDP 2304 Steam port.
- UDP 2306 Battleye anti-cheat port.
How To Configure Your Arma 3 Server?
Configuring your Arma 3 server is not easy especially when you do it manually. This is why it is highly recommended that you use TADST.
- Download TADST
- Extract the zip file.
- Click on TADST.exe to open it.
- Select server file and choose arma3server.exe
- Specify a name for your server which will make it easy for gamers to find it.
- Next, set an admin password for the server.
- Choose the “Missions” tab and specify the mission you want to play.
- Click “Save” to save your current settings.
- Go to the “Details” tab to launch the server by clicking on the Launch button in the bottom left corner.
Here is a step by step process you can follow to install Arma 3 dedicated server
- Login to Secure Shell (SSH) on the server by using this command
ssh root@SERVER-IP
- Create a new ARMA user
adduser arma
su arma
- Create a directory called SteamCMD and download the files by using this command:
mkdir ~/steamcmd && cd ~/steamcmd
nano /etc/apt/sources.list
apt update && apt install steamcmd
- Accept the license agreement
- Start Steam by creating a symbolic link in steam cmd command
apt update && apt install steamcmd
- Steam can be started on a screen
screen
./steamcmd
- Download Arma with the following commands
login steamuser
force_install_dir ./arma3/
app_update 233780 validate
exit
- Create Arma directories with this command
mkdir -p ~/”.local/share/Arma 3″ && mkdir -p ~/”.local/share/Arma 3 – Other Profiles”
- Start the server by using this command
cd “/home/.steam/SteamApps/common/Arma 3 Server/”
./arma3server -name=server -config=server.cfg
How To Use ARMA 3 Mods?
Even though there are numerous ARMA 3 mods that you can use on your server, here are three worth considering:
- Wasteland
- MGS1
- Revenge
When you are using an ARMA 3 mod, it is imperative that your system fulfills the recommended system requirements to accommodate the additional load due to the player’s upload and downloads. The more free storage space you have on your hard drive, the better experience you will have.
Loading A Mod
Here is a step-by-step process for loading a mod:
- Connect to your server by using FTP
- Add the mod to a new folder and assign it a name
- Access the control plane and command manager
- Add the mod in the command line feature
- Save and run the server
Which method do you use to set up an Arma 3 dedicated server? Let us know in the comments section below.