How to run Arma 3 Epoch (DayZ Spiritual Successor) as a Windows Service with FireDaemon Pro


Epoch is a mod for Arma 3 that expands on the Arma 2 Epoch mod. It's everything that DayZ could have been if it wasn't abandoned shortly after release.


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 FireDaemon Fusion to manage FireDaemon Pro 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 screenshot


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:


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.


  1. Create a folder on your system, for SteamCMD, C:\SteamCMD
  2. Download SteamCMD to this folder. A single ZIP file steamcmd.zip is downloaded.
  3. Extract the contents of the ZIP file into the folder. A single program file, steamcmd.exe, is extracted.
  4. Double-click steamcmd.exe. This will download SteamCMD and corresponding support files into the C:\SteamCMD folder.

Step 2: Download and Install FireDaemon Pro

  1. Download FireDaemon Pro installer
  2. Double-click the installer and follow the installation wizard to complete the installation.
  3. 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 epoch" +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: Download and Install Arma 3 Epoch Mod

Both the server and client files need to be installed on the server.

  1. Download the client files from here.
  2. Download the server files from here.
  3. Extract the contents of the client 7zip to "C:\arma 3 epoch". The path to the client files should be "C:\arma 3 epoch\@Epoch".
  4. Extract the contents of the folder "Server_Install_Pack" in server zip into "C:\arma 3 epoch". The path to the server files should be "C:\arma 3 epoch". If you extracted the files correctly you should see the folder "@epochhive" in "C:\arma 3 epoch". If you see the folder "Server_Install_Pack" instead, then enter that folder and move its contents to "C:\arma 3 epoch".


Step 5: Download and Install Redis Server

Arma 3 Epoch server requires a database backend to store all player info.


  1. Download the zip version of Microsoft's Redis Server port here.
  2. Extract to "C:\arma 3 epoch\Redis".
  3. Open "C:\arma 3 epoch\Redis\redis.windows.conf" and replace all of its contents with the contents of this file. Be sure to change the password "Changeme9832" to something else.
  4. Edit "C:\arma 3 epoch\@epochhive\EpochServer.ini" and look for "[Redis]" section. Replace the password you set in step 3.

Step 6: Set Up Redis 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.


FireDaemon Pro Arma 3 Dedicated Server Service Program Tab


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:

redis.windows.conf
  • "redis.windows.conf" Loads the redis config.

Next, click on the FireDaemon Pro Settings tab:


FireDaemon Pro Arma 3 service settings


Enter appropriate values in the fields on the Settings tab as follows:

  • (Optional) Job Type: You can 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".


FireDaemon Pro Arma 3 lifecycle settings


Next, click in the Scheduling tab. Add a new restart setting for once per week. The best time is when the server is empty like 6am on a Monday.


FireDaemon Pro Arma 3 scheduling settings


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 7: 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.


FireDaemon Pro Arma 3 Dedicated Server Service Program Tab


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:\arma 3 epoch\A3Master" "-bepath=C:\arma 3 epoch\BattlEye" -ip=1.2.3.4 -port=2302 -mod=@Epoch -serverMod=@EpochHive -config="C:\arma 3 epoch\sc\server.cfg" -profiles=sc -cfg="C:\arma 3 epoch\sc\basic.cfg" -name=sc -autoINIT -Loadmissiontomemory -world=empty-cpuCount=2 -exThreads=7 -bandwidthAlg=2 -maxMem=2047 -noSound
  • "-profiles=C:\arma 3 epoch\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 epoch\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: https://www.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.
  • "-mod=@Epoch" Loads the client mod files.
  • "-serverMod=@EpochHive" Loads the server mod files.
  • "-config="C:\arma 3 epoch\sc\server.cfg"" Loads the server config file.
  • "-cfg="C:\arma 3 epoch\sc\basic.cfg"" Loads performance settings.
  • "-name sc" Loads the profile named sc.
  • "-autoINIT" Starts the map so it runs even when the server is empty.
  • "-Loadmissiontomemory" Keeps the map cached in memory so the next player who connects loads in faster.
  • "-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 them. 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 useful 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 useful to prevent memory leaks.
  • "-noSound" Disables sound output when the server starts.

Next, click on the FireDaemon Pro Settings tab:


FireDaemon Pro Arma 3 service settings


Enter appropriate values in the fields on the Settings tab as follows:

  • (Required) Job Type: You must set the 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 on the Lifecycle tab. Set Shutdown By to Forceful Termination and check "Console Program".


FireDaemon Pro Arma 3 lifecycle settings


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 8: Verify that Arma 3 is Running Correctly

The 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.


FireDaemon Pro Services list


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.


Arma 3 dedicated server messages window