Zombie survival mod that revolutionized the genre
| Base Game: | ARMA 2: Operation Arrowhead + ARMA 2 (Combined Operations) |
| Version: | DayZ Mod 1.9.0+ (final official release) |
| Database: | MySQL/MariaDB required for character persistence |
| Server Type: | Reality build + Hive server architecture |
| Max Players: | Up to 100 (50-60 typical for performance) |
| Anti-Cheat: | BattlEye required |
| Port: | 2302 UDP (game), 2303 UDP (query) |
DayZ Mod is the original zombie survival mod for ARMA 2 that popularized the survival genre. Players spawn on a massive map with minimal gear, scavenging for supplies while avoiding zombies and other players in a persistent open world.
DayZ Mod uses a unique two-server architecture:
# Install MariaDB
sudo apt-get update
sudo apt-get install mariadb-server mariadb-client
# Secure installation
sudo mysql_secure_installation
# Start service
sudo systemctl start mariadb
sudo systemctl enable mariadb
# Download MySQL Community Server from mysql.com
# Or use XAMPP which includes MySQL
# Install MySQL Server
# Set root password during installation
# Ensure MySQL service is running
# Login to MySQL
mysql -u root -p
# Create database
CREATE DATABASE dayz_epoch CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# Create user with permissions
CREATE USER 'dayz'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON dayz_epoch.* TO 'dayz'@'localhost';
FLUSH PRIVILEGES;
# If Hive is on different machine
CREATE USER 'dayz'@'%' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON dayz_epoch.* TO 'dayz'@'%';
FLUSH PRIVILEGES;
DayZ Mod includes SQL schema files in the database folder:
# Import the schema (adjust path to your installation)
mysql -u root -p dayz_epoch < path/to/dayz_server/SQL/dayz_schema.sql
# Or import via MySQL client
mysql -u root -p
USE dayz_epoch;
SOURCE /path/to/dayz_server/SQL/dayz_schema.sql;
| Table | Purpose |
|---|---|
character_data |
Player characters (inventory, position, stats) |
survivor_data |
Survivor profile information |
object_data |
Persistent objects (tents, storage, vehicles) |
player_data |
Player login tracking |
instance_deployable |
Deployed items (wire, tank traps) |
# Install ARMA 2 OA server via SteamCMD
steamcmd +force_install_dir ~/arma2oa_server +login YOUR_USERNAME +app_update 33935 validate +quit
# Download DayZ Mod server files
# Available from DayZ GitHub: https://github.com/DayZMod/DayZ
# Or DayZ Launcher repositories
# Extract DayZ files
cd ~/arma2oa_server
unzip dayz_server_files.zip
# Install Reality build (custom ARMA 2 build for DayZ)
# Copy @Reality folder to server root
cp -r /path/to/@Reality ~/arma2oa_server/
# Install HiveExt
# Copy HiveExt.so to server root
cp HiveExt.so ~/arma2oa_server/
# Set permissions
chmod +x ~/arma2oa_server/arma2oaserver
chmod +x ~/arma2oa_server/HiveExt.so
# Install ARMA 2 OA server via SteamCMD
steamcmd +force_install_dir C:\arma2oa_server +login YOUR_USERNAME +app_update 33935 validate +quit
# Download and extract DayZ Mod server files
# Extract to C:\arma2oa_server\
# Install @Reality folder
# Copy to C:\arma2oa_server\@Reality\
# Install HiveExt.dll
# Copy to C:\arma2oa_server\
Configure HiveExt.ini in server root:
[Database]
;Hostname or IP of the MySQL server
Host = 127.0.0.1
;Port to connect to MySQL (default 3306)
Port = 3306
;Database name
Database = dayz_epoch
;Username
Username = dayz
;Password
Password = your_secure_password
[Time]
;Type of time to use
;Possible values:
; Local (use server machine time)
; Static (use fixed time from config)
; Custom (use time from database)
Type = Local
;If Type is Static, set the time here (24-hour format)
Hour = 8
Minute = 0
[Logging]
;Enable detailed logging for debugging
;0 = Off, 1 = Errors only, 2 = All
LogLevel = 1
LogFile = HiveExt.log
Test database connectivity before starting server:
# Linux
telnet 127.0.0.1 3306
# Windows
Test-NetConnection -ComputerName 127.0.0.1 -Port 3306
# Or use MySQL client
mysql -h 127.0.0.1 -u dayz -p dayz_epoch
Basic ARMA 2 server configuration:
hostname = "My DayZ Server";
password = "";
passwordAdmin = "AdminPassword";
serverCommandPassword = "RconPassword";
maxPlayers = 50;
kickDuplicate = 1;
verifySignatures = 2; // BattlEye enforcement
BattlEye = 1;
persistent = 1; // Required for DayZ persistence
// Mission file
class Missions
{
class DayZ
{
template = dayz_1.chernarus;
difficulty = "regular";
};
};
motd[] = {
"Welcome to My DayZ Server",
"Visit our website: example.com"
};
motdInterval = 300;
disableVoN = 0; // Voice enabled
vonCodecQuality = 10;
// Performance settings
MinBandwidth = 768000;
MaxBandwidth = 10000000;
MaxMsgSend = 256;
MaxSizeGuaranteed = 512;
MaxSizeNonguaranteed = 256;
MinErrorToSend = 0.001;
MinErrorToSendNear = 0.01;
MPMissions/
βββ dayz_1.chernarus/
βββ mission.sqm // Mission file (player spawn, time settings)
βββ init.sqf // Initialization script
βββ description.ext // Mission description and parameters
βββ scripts/ // Custom scripts folder
βββ addons/ // Mission-specific addons
// DayZ initialization
startLoadingScreen ["","RscDisplayLoadCustom"];
cutText ["","BLACK OUT"];
enableSaving [false, false];
// Variables
dayZ_instance = 1; // Server instance ID
dayzHiveRequest = [];
initialized = false;
// Load DayZ
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";
progressLoadingScreen 0.1;
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf";
progressLoadingScreen 0.2;
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
progressLoadingScreen 0.4;
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
progressLoadingScreen 0.5;
// Server-side initialization
if (isServer) then {
call compile preprocessFileLineNumbers "\z\addons\dayz_server\system\dynamic_vehicle.sqf";
call compile preprocessFileLineNumbers "\z\addons\dayz_server\system\server_monitor.sqf";
};
progressLoadingScreen 1.0;
cutText ["","BLACK IN", 1];
BattlEye filters in BattlEye/ folder prevent exploits and hacks. DayZ-specific filters are critical.
# Download latest filters from community sources
# Recommended: DayZ GitHub or DZMS filter packs
# Example: Download from GitHub
wget https://github.com/DayZMod/DayZ/tree/master/BattlEye -O battleye_filters.zip
unzip battleye_filters.zip -d BattlEye/
# Always backup existing filters before updating!
cp -r BattlEye/ BattlEye_backup_$(date +%Y%m%d)/
Additional maps require mission files and sometimes map addons:
# Install map addon (e.g., @Namalsk)
cp -r @Namalsk ~/arma2oa_server/
# Add to startup parameters
-mod=@Reality;@DayZ;@Namalsk
# Install mission file
cp -r dayz_1.namalsk MPMissions/
#!/bin/bash
# start_dayz.sh
# Variables
SERVER_DIR="/home/user/arma2oa_server"
CONFIG="server.cfg"
PORT="2302"
MODS="-mod=@Reality;@DayZ"
cd $SERVER_DIR
# Start server
./arma2oaserver \
$MODS \
-port=$PORT \
-config=$CONFIG \
-cfg=basic.cfg \
-profiles=profiles \
-name=server \
-world=empty \
-nosound \
-noCB \
-cpuCount=4 \
-exThreads=7
@echo off
REM start_dayz.bat
SET SERVER_DIR=C:\arma2oa_server
SET MODS=-mod=@Reality;@DayZ
SET PORT=2302
cd %SERVER_DIR%
start "DayZ Server" /high arma2oaserver.exe ^
%MODS% ^
-port=%PORT% ^
-config=server.cfg ^
-cfg=basic.cfg ^
-profiles=profiles ^
-name=server ^
-world=empty ^
-cpuCount=4 ^
-exThreads=7
-mod=@Reality;@DayZ - Load Reality and DayZ mods-port=2302 - Game port (default 2302)-config=server.cfg - Server configuration file-profiles=profiles - Profile folder for logs-world=empty - Don't load world at startup (faster)-cpuCount=4 - Number of CPU cores to use-exThreads=7 - Extra threads for better performance# Check HiveExt.log for errors
tail -f HiveExt.log
# Common causes:
# 1. Wrong database credentials in HiveExt.ini
# 2. MySQL not running
# 3. Firewall blocking port 3306
# 4. Database name doesn't exist
# Test connection manually
mysql -h 127.0.0.1 -u dayz -p dayz_epoch
# Check MySQL is listening
netstat -an | grep 3306
This indicates database connection issues:
# Check server logs
tail -f arma2oaserver.rpt
# Common causes:
# 1. Missing @Reality or @DayZ files
# 2. Corrupted mission file
# 3. Wrong mod load order
# 4. Insufficient RAM (4GB+ recommended)
# Verify mod folders exist
ls -la @Reality
ls -la @DayZ
# Check mission file syntax
# mission.sqm must be valid ARMA format
BattlEye/ folder# Verify database connection
mysql -u dayz -p dayz_epoch
# Check character_data table
SELECT * FROM character_data LIMIT 10;
# Verify HiveExt is loading
grep "HiveExt" arma2oaserver.rpt
# Check for SQL errors in HiveExt.log
grep "ERROR" HiveExt.log