How to run Arma 3 as a Windows Service with FireDaemon Pro.
Arma 3 is a FPS military game that takes place in a massive map.
The dedicated server component can be run as a Windows Service using FireDaemon Pro, which allows you to have the dedicated server start automatically at boot prior to login, start multiple instances of the dedicated server and more. This HOWTO will show you how to set it up. You can also use Fusion to manage FireDaemon and other Windows services via a web browser.
You must install the server with SteamCMD outlined in this guide. If you try to run the server through Arma 3 in your Steam client, the server will not stop properly.
Arma 3 Dedicated Server Setup Under FireDaemon Pro
The easy way to install the server files is via Steam's SteamPipe servers, but the caveat to this is that the server must use a Steam account to download the files. We suggest that you do not use your local Steam account as it will be logged out when you install or update the server files. You also risk having your Steam account hijacked or stolen should your server ever be hacked since the hackers could then get access to your Steam account.
Arma 3 server also requires the following:
- DirectX End-User Runtime Web Installer
- Visual C++ Redistributable Packages for Visual Studio 2013 x64
Step 1: Download and Install SteamCMD for Windows
SteamCMD is a command-line version of the Steam Client. Its primary use is to install and update various dedicated servers available on Steam using a command-line interface.
- Create a folder on your system, for SteamCMD, C:\SteamCMD
- Download SteamCMD to this folder. A single ZIP file steamcmd.zip is downloaded.
- Extract the contents of the ZIP file into the folder. A single program file, steamcmd.exe, is extracted.
- Double-click steamcmd.exe. This will download SteamCMD and corresponding support files into the C:\SteamCMD folder.
Step 2: Download and Install FireDaemon Pro
- Download FireDaemon Pro installer
- Double-click installer and follow the installation wizard to complete the installation.
- For more information about installing FireDaemon, see the FireDaemon Pro Users Guide.
Step 3: Download and Install Arma 3 Server
Download the Arma 3 server files via the Steam SteamPipe servers. Go to the directory where you installed SteamCMD and create a shortcut to "SteamCMD.exe". In the shortcut, edit the properties and in the target box, at the end of it (with a space before the following), put:
+login USERNAME PASSWORD +force_install_dir "C:\arma 3" +app_update 233780 validate +quit
Note: Replace USERNAME with your Steam username and PASSWORD with your Steam password. You will need to enter a verification string if your Steam account has SteamGuard enabled. The verification string will be sent to the email you set up as your steam account email. This string only needs to be filled in once.
If Arma 3 successfully downloads, the command window will close on its own. Otherwise it will stay open and tell you what went wrong (most likely you don't have enough free disk space).
Step 4: Set Up Arma 3 as a FireDaemon Pro Service
Double click the FireDaemon Pro icon on your desktop, then click on the New (i.e. +) button in the toolbar (or type Ctrl + N) to create a new service. Enter the information into the fields as you see below. Adjust the path names to suit your installation. Note the required parameters.
The most important field on the tab is the Parameters. The Parameters define the initial setup of your server. The minimum parameter list should be as follows:
"-profiles=C:\arma3\A3Master" "-bepath=C:\arma 3\BattlEye" -ip=220.127.116.11 -port=2302 -config=CONFIG_Vanilla.cfg -world=empty-cpuCount=2 -exThreads=7 -bandwidthAlg=2 -maxMem=2047 -noSound
- "-profiles=C:\arma 3\A3Master" Loads the profile from your Arma 3 server directory instead. If you dont define this, than it will be located in your C:\Users directory instead which makes configuration more complicated. If your path contains spaces, you must enclose the entire command in double quotes.
- "-bepath=C:\arma 3\BattlEye" Loads the BattlEye from your Arma 3 server directory instead. If you dont define this, than it will be located in your C:\Users directory instead which makes configuration more complicated. If your path contains spaces, you must enclose the entire command in double quotes.
- "-ip" It's useful to define this if your server is behind a NAT router or if your server machine has multiple IP's and you only want the server to listen on one IP. If you are hosting the server from home or do not know your server IP, then on the server, go to the following website to find your external IP address: http://WhatIsMyIp.com
- "-port" This set's the server port. It should be left on default unless you are running multiple servers on the same IP.
- "-config" Loads the server config file.
- "-world" Loads the world (map).
The next few parameters are performance related and may be too low or high depending on your server specs. You should research them before using. If you don't know about them, then do not use them.
- "-cpuCount 2" Limits the number of cores your server uses to 2. This is usefull to prevent your whole machine from locking up should your server ever use 100% cpu.
- "-exThreads 7" Limits the number of threads your server uses to 7.
- "-bandwidthAlg 2" Changes the bandwidth algoritm to a better optimized one. This may improve bandwidth usage and management.
- "-maxMem=2047" Limits the maximum amount of memory to 2GB. Arma 3 servers in general use 512 to 1536 MB (even for 50 slot servers), this command is usefull to prevent memory leaks.
- "-noSound" Disables sound output when the server starts.
Next, click on the FireDaemon Pro Settings tab:
Enter appropriate values in the fields on the Settings tab as follows:
- (Required) Job Type: You must set job type to "Global Job".
- (Optional) Logon Account: Enter the Windows account under which the Arma 3 is to be run, e.g. the current user account.
- Password / Confirm Password: Enter the logon account's password twice.
- (Optional) Interact with Desktop: If this setting is enabled (default), the Arma 3 server's output messages can be seen in the console window on Windows Session 0. To switch to Session 0, it may be necessary to install FireDaemon Zero and ZeroInput. Alternatively, this setting may be disabled, in which case the Arma 3 server's messages will be hidden.
- (Optional) Priority: To allocate more CPU time to the Arma 3 server, select a higher scheduling priority in this field.
- (Optional) CPU Bindings: To run the Arma 3 server on a specific CPU, specify the appropriate CPU in this field.
Next, click in the Lifecycle tab. Set Shutdown By to Forceful Termination and check "Console Program".
Lastly, click the Save and Close (ie. the tick) button on the toolbar. If the service's Startup Type is set to Automatic or Automatic (Delayed-Start), it will start immediately.
Step 5: Verify that Arma 3 is Running Correctly
The Arma 3 Arma 3 server's status can easily be checked on the main FireDaemon Pro Services List - look for a Running Status value and a numeric Process ID (PID) value.
If the service's Interact with Desktop setting is enabled, the Arma 3 status can also be verified by switching to Windows Session 0 to view the Arma 3's messages.