- Both server and client must be updated to A2OA stable 1.64.0.144629 or newer. Do NOT use beta builds — wait until A2/OA updates reach the stable channel.
- Do not copy ArmA 2 addon files or PBOs into the ArmA 2 OA/Expansion directory. Instead, load ArmA 2 addons via a
-modflag:-mod=C:\Program Files (x86)\Steam\SteamApps\common\Arma 2;EXPANSION;ca - If you have already copied ArmA 2 addons into your ArmA 2 OA
Expansion/Addonsfolder: uninstall ArmA 2 OA, completely delete the ArmA 2 OA Expansion folder, then reinstall cleanly.
Basic Install Guide
-
Install Visual C++ Redistributables
Install or update your Visual Studio Redistributable packages using the installers found in the Visual Studio C++ Redistributables directory included with the Epoch server files.
-
Set up MySQL
Install or update MySQL Server on the server machine. Then, in your MySQL client (MySQL Workbench, HeidiSQL, or the command line):
-
Create a new database.
dayz_epochis the conventional name, but it doesn't have to be — you can call it whatever you like. Just remember the name, because it must be entered as theDatabasevalue inHiveExt.inilater. - Execute
epoch.sqlon that database to create the tables. - Execute
add_recommended_mysql_events.sqlon the same database to add the recommended cleanup events. - Create a MySQL user for the server and grant it access to the database, using legacy password auth (see below).
- Confirm the MySQL event scheduler is turned on (see below).
MySQL 8+: enable legacy password authentication. Epoch'sHiveExt.dllis old and can only log in using the legacymysql_native_passwordplugin. Modern MySQL (8.0+) defaults tocaching_sha2_password, which Hive can't use — so the server will fail to connect to the database unless you create its user with the native plugin (adjust the names/password to match your setup):CREATE USER 'dayz'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword'; GRANT ALL PRIVILEGES ON dayz_epoch.* TO 'dayz'@'localhost'; FLUSH PRIVILEGES;
To convert an existing user instead:ALTER USER 'dayz'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword';
On MySQL 8.4+ the native plugin is disabled by default — enable it by addingmysql_native_password=ONunder[mysqld]inmy.iniand restarting MySQL. (On 8.0–8.3 you can instead setdefault-authentication-plugin=mysql_native_password.)Confirm the event scheduler is on. The recommended events handle automatic database cleanup and only run while the scheduler is active. Check its status with:SHOW VARIABLES LIKE 'event_scheduler';
If it returnsOFF, turn it on for the current session:SET GLOBAL event_scheduler = ON;
To keep it enabled across MySQL restarts, add this under[mysqld]inmy.iniand restart the service:event_scheduler=ON
-
Create a new database.
-
Download and extract the Epoch files
Download both the client and server files and extract them into the root ArmA 2 Operation Arrowhead folder, for example:
C:\Program Files (x86)\Steam\steamapps\common\Arma 2 Operation ArrowheadOn some Windows systems, DLL files may need to be unblocked after extraction. Right-click the file → Properties → click Unblock. Additionally, copy the DLLs from the
dllsfolder into the server root folder (the directory containingarma2oaserver.exe). -
Set up the
@DayZ_Epoch_Servermod folderThe server loads as a mod folder in your OA root. The release normally includes it, but if you're assembling it by hand, build this structure inside your Arma 2 Operation Arrowhead directory:
...\Arma 2 Operation Arrowhead\ ├─ @DayZ_Epoch_Server\ │ ├─ addons\ │ │ └─ dayz_server.pbo │ └─ HiveExt.dll (HiveExt.ini sits alongside it) └─ MPMissions\ └─ DayZ_Epoch_11.Chernarus (the map[s] you plan to run)
- Create the
@DayZ_Epoch_Serverfolder in the OA root. - Inside it, create an
addonsfolder and placedayz_server.pboin it. - Place
HiveExt.dlldirectly in@DayZ_Epoch_Server(withHiveExt.ininext to it). - Put the mission folder(s) or
.pbo(s) for the map(s) you want to run into theMPMissionsfolder (e.g.DayZ_Epoch_11.Chernarus).
Install PBO Manager. You'll need it to unpack and repack.pbofiles (the mission anddayz_server.pbo) whenever you edit them. Download PBO Manager — then right-click any.pboto extract or pack it. - Create the
-
Move the server config folder outside the game directory
Move the
DZE_Server_Configfolder to the root of your drive (e.g.C:\DZE_Server_Config) or another location outside thearma2oaserver.exefolder and its subfolders. Keeping config files outside the game directory is an important security measure — it prevents scripts from reading your passwords via directory traversal. -
Edit the configuration files
-
Open
HiveExt.iniand fill in your MySQL connection details under[Database]—IP,Port,Username,PasswordandDatabase. TheDatabasevalue must match the database name you created in MySQL (dayz_epochor your custom name). -
Open your server config file (the
*_map.cfg, e.g.11_chernarus.cfg) and set a strong admin password. This file is also where you set the public-facing server options:hostName— the server name shown in the in-game server browserpassword— password players must enter to join (leave blank for an open/public server)passwordAdmin— the admin / RCon login passwordmaxPlayers— number of player slotsmotd[]— the message of the day shown to players as they join the lobby
- Open
BEServer.cfgin theBattlEyefolder and set a strong RCon password.
-
Open
-
Configure the mission folder
Server-side gameplay options live inside the mission
.pboinMPMissions\(e.g.DayZ_Epoch_11.Chernarus.pbo). Unpack it with PBO Manager, edit, then repack. The main file to review isconfigVariables.sqf, which controls things like:- Spawn selection and starting loadouts
- Safe zones / trader-city god mode
- Day/night cycle and time acceleration
- Vehicle, trader and economy tuning, plus many other gameplay toggles
Each option inconfigVariables.sqfis documented with inline comments — read them, and change one thing at a time so a bad value is easy to trace. Your server's instance number (set in the mission'sinit.sqf) must match theinstancevalue in your database. Remember to repack the PBO after editing. -
Launch the server
Run the desired
*_map.batfile to start the server for the map you configured. -
Port forwarding (if needed)
If players cannot connect, you may need to open the following ports in your server's software and hardware firewalls:
Port(s) Protocol Purpose 2302 UDP ArmA game traffic (primary) 2303 UDP ArmA game traffic (secondary) 2304 UDP ArmA game traffic 2305 UDP ArmA game traffic 2306 UDP / TCP BattlEye RCon -
Running multiple servers on the same machine
To host more than one server from a single machine:
- Create a copy of the
DZE_Server_Configfolder with a unique name for each additional server. - Update the config folder name referenced inside each
*_map.bat. - Use different port numbers in each server's
*_map.cfgand*_map.bat. - Update
HiveExt.inisettings if each server uses a separate database. - Make a copy of
arma2oaserver.exefor each instance, give each a unique name (e.g.arma2oaserver_1.exe,arma2oaserver_2.exe), and point each*_map.batat its own renamed copy.
Why rename the executable? Epoch itself doesn't strictly require it, but it's strongly recommended with multiple instances. Process-watchers, auto-restart scripts and monitoring tools (BEC schedulers, FireDaemon, Task Scheduler, etc.) identify a server by its executable name — giving each instance a uniquely named copy ofarma2oaserver.exelets those tools target and restart the correct server instead of guessing between identical processes. - Create a copy of the
Basic Upgrading Guide
-
Re-run steps 1–3 from the install guide
Ensure Visual C++ redistributables are current, MySQL is up to date, and the new Epoch files are extracted to the correct location.
-
Update server components
Replace the following with the new versions from the download:
- MPMission folder
dayz_server.pbo- BattlEye filter files
HiveExt.dll
-
Update the database
- Connect to MySQL and make a full backup of
dayz_epochbefore proceeding. - Open the included
*_Updates.sqlfile and read the comments carefully, especially those at the bottom of the file. - Run the appropriate update queries against the
dayz_epochdatabase.
- Connect to MySQL and make a full backup of
-
Clean up old BIKeys
Inside the server
Keysfolder, remove anyDayZ_Epoch*.bikeyfiles from previous versions. -
Fresh or diffmerged dayz_server.pboCritical: You must either start with a completely fresh
dayz_server.pboor carefully diffmerge your current customised version against the latest release. Skipping this step will break your server.
⚠ Security Advisory
BEServer.cfg.
Your server config directory, profiles, and startup files must be kept outside your ArmA 2 / OA root directory so that they cannot be read by hackers or scripters who exploit directory traversal vulnerabilities. The instructions below show how to set that up.
In this example we place the profiles directory at C:\DZE_Server_Config. Adjust the path to suit your setup and select the correct map .cfg for your server.
Modify your startup.bat to point the following flags at your new config directory:
"-profiles=C:\DZE_Server_Config" "-BEpath=C:\DZE_Server_Config\BattlEye" "-config=C:\DZE_Server_Config\11_chernarus.cfg" "-cfg=C:\DZE_Server_Config\basic.cfg"
Content based on the official DayZ Epoch Server Readme by the Epoch Mod Team. Always refer to the latest readme for the most current information.