Enhanced DayZ with base building, traders, and persistent economy
| Base Requirement: | DayZ Mod 1.8.8+ (builds on DayZ) |
| Version: | Epoch 1.0.6.2+ (final stable release) |
| Database: | MySQL/MariaDB with complex schema |
| Key Features: | Base building, trader NPCs, banking, vehicle spawns |
| Variants: | Pure Epoch, Overpoch (Overwatch + Epoch) |
| Max Players: | Up to 100 (50-70 optimal) |
| Port: | 2302 UDP (game), 2303 UDP (query) |
DayZ Epoch is an extensive modification built on top of DayZ Mod. It adds base building with plot poles, trader NPCs with a dynamic economy, banking system, enhanced vehicles, and custom loot tables. Epoch significantly extends DayZ's survival mechanics with persistent base construction and economy management.
# 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
# Start MySQL service from Services panel
# Login to MySQL
mysql -u root -p
# Create database
CREATE DATABASE epoch CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# Create user with permissions
CREATE USER 'epoch'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON epoch.* TO 'epoch'@'localhost';
FLUSH PRIVILEGES;
# If Hive is on different machine
CREATE USER 'epoch'@'%' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON epoch.* TO 'epoch'@'%';
FLUSH PRIVILEGES;
Epoch includes comprehensive SQL schema files:
# Import Epoch schema (adjust path)
mysql -u root -p epoch < path/to/epoch_server/SQL/epoch.sql
# Or import via MySQL client
mysql -u root -p
USE epoch;
SOURCE /path/to/epoch_server/SQL/epoch.sql;
# Import additional tables if using Overpoch
SOURCE /path/to/epoch_server/SQL/overpoch_additions.sql;
| Table | Purpose |
|---|---|
character_data |
Player characters (inventory, position, stats, coins) |
object_data |
Player-built objects (walls, floors, storage) and plot poles |
player_data |
Player login tracking and stats |
trader_data |
Trader inventory, prices, stock levels |
vehicle_spawns |
Vehicle spawn points and configurations |
trader_tids |
Trader item IDs and categories |
player_login |
Player authentication and banking |
Critical: Epoch databases grow rapidly. Regular cleanup is essential.
# Cleanup old objects (run weekly)
DELETE FROM object_data WHERE Datestamp < DATE_SUB(NOW(), INTERVAL 30 DAY) AND CharacterID = 0;
# Remove abandoned vehicles
DELETE FROM object_data WHERE ObjectUID IN (
SELECT ObjectUID FROM object_data
WHERE Classname LIKE '%_DZ' AND Damage = 1
);
# Optimize tables
OPTIMIZE TABLE object_data, character_data, trader_data;
# Backup before cleanup!
mysqldump -u epoch -p epoch > epoch_backup_$(date +%Y%m%d).sql
# Assumes DayZ Mod already installed at ~/arma2oa_server
# Download Epoch server files
cd ~/arma2oa_server
wget https://github.com/EpochModTeam/DayZ-Epoch/releases/download/1.0.6.2/DayZ_Epoch_Server_1.0.6.2.zip
unzip DayZ_Epoch_Server_1.0.6.2.zip
# Extract Epoch files
# Copy @DayZ_Epoch folder to server root
cp -r DayZ_Epoch_Server_1.0.6.2/@DayZ_Epoch ~/arma2oa_server/
# Update HiveExt for Epoch
cp DayZ_Epoch_Server_1.0.6.2/HiveExt.ini ~/arma2oa_server/
cp DayZ_Epoch_Server_1.0.6.2/HiveExt.so ~/arma2oa_server/
# Extract mission files
cp -r DayZ_Epoch_Server_1.0.6.2/MPMissions/DayZ_Epoch_11.Chernarus ~/arma2oa_server/MPMissions/
# Set permissions
chmod +x ~/arma2oa_server/HiveExt.so
# Download Epoch server files from EpochMod.com
# Extract to temporary location
# Copy @DayZ_Epoch folder to C:\arma2oa_server\
xcopy /E /I DayZ_Epoch_Server_1.0.6.2\@DayZ_Epoch C:\arma2oa_server\@DayZ_Epoch
# Replace HiveExt files
copy DayZ_Epoch_Server_1.0.6.2\HiveExt.dll C:\arma2oa_server\
copy DayZ_Epoch_Server_1.0.6.2\HiveExt.ini C:\arma2oa_server\
# Copy mission files
xcopy /E /I DayZ_Epoch_Server_1.0.6.2\MPMissions\DayZ_Epoch_11.Chernarus C:\arma2oa_server\MPMissions\DayZ_Epoch_11.Chernarus
The plot pole is central to Epoch's base building:
| Item | Materials Required | Notes |
|---|---|---|
| Plot Pole | 4x Wood, 1x Etool | Required for building |
| Wooden Wall | 4x Wood | Basic defense |
| Metal Wall | 2x Metal Panel | Strong defense |
| Storage Shed | 8x Wood, 4x Metal Panel | Large storage (500 slots) |
| Gate | 6x Wood, 2x Metal Panel | Base entrance |
| Floor | 4x Wood | Horizontal surface |
// Plot pole settings (mission init.sqf)
DZE_PlotPole = [30,45]; // [Range in meters, Maintenance period in days]
// Building requirements
DZE_requireplot = 1; // 1 = Require plot pole for building, 0 = Free build
// Building limit per plot
DZE_BuildingLimit = 150;
// Allow doorway building
DZE_doorManagement = true;
Epoch uses briefcases of gold/silver coins:
Prices fluctuate based on server activity:
// Economy settings (mission init.sqf)
DZE_EconomyCore = true; // Enable dynamic economy
// Price adjustment rates
DZE_PriceAdjustment = [0.8, 1.2]; // [Min, Max] multipliers
// Restock timers (in seconds)
DZE_RestockTimer = 1800; // 30 minutes
// Banking interest rate
DZE_BankInterest = 0.001; // 0.1% per day
-- Add custom item to trader
INSERT INTO trader_data (item, qty, buy, sell, order, tid, afile)
VALUES ('ItemGPS', 5, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]', 0, 126, 'trade_items');
-- Adjust trader prices
UPDATE trader_data SET buy = '[1,"ItemGoldBar10oz",1]' WHERE item = 'M4A1_HWS_GL_camo';
-- Restock trader inventory
UPDATE trader_data SET qty = 10 WHERE tid = 126;
Epoch uses vehicle_spawns table for dynamic spawning:
-- Add vehicle spawn point
INSERT INTO vehicle_spawns (vehicle, chance, position, direction, hitpoints, fuel, damage)
VALUES ('UAZ_Unarmed_TK_EP1', 0.6, '[4532,9516,0]', 90, '[]', 0.5, 0);
-- Configure spawn chances
UPDATE vehicle_spawns SET chance = 0.8 WHERE vehicle LIKE 'Offroad%';
// Key settings (mission init.sqf)
DZE_KeysAllow = true; // Enable vehicle key system
// Key types
// Green key - Can access vehicle
// Red key - Owner, can give access
// Banking settings (mission init.sqf)
DZE_EnableBanking = true;
// Banking interest rate (per day)
DZE_BankInterest = 0.001; // 0.1%
// Max bank storage
DZE_MaxBankMoney = 10000000; // 10 million coins
// Banking fees
DZE_BankFee = 0; // No fee for deposits/withdrawals
[Database]
Host = 127.0.0.1
Port = 3306
Database = epoch
Username = epoch
Password = your_password
[Objects]
;Maximum number of objects per player
MaxObjectsPerPlayer = 150
;Object cleanup timer (days)
CleanupPeriod = 30
[Traders]
;Enable trader menu
TraderMenuEnabled = true
;Trader safe zone radius
SafeZoneRadius = 150
// DayZ Epoch initialization
dayZ_instance = 11; // Server instance ID
dayzHiveRequest = [];
// Epoch settings
DZE_ConfigTrader = true; // Use trader_data table
DZE_GodModeBase = false; // Can destroy bases (set true for invincible)
DZE_BuildOnRoads = false; // Prevent building on roads
DZE_SelfTransfuse = true; // Allow self blood bag usage
// Plot pole settings
DZE_PlotPole = [30,45]; // [Range meters, Maintenance days]
DZE_PlotManagement = true; // Enable plot management menu
// Building
DZE_BuildingLimit = 150;
DZE_requireplot = 1;
DZE_doorManagement = true;
// Traders
DZE_EnableBanking = true;
DZE_BankInterest = 0.001;
DZE_EconomyCore = true;
// Vehicles
DZE_KeysAllow = true;
Epoch includes custom loot tables in mission folder:
// Edit CfgLoot/CfgBuildingLoot.hpp
class BuildingLoot {
class Supermarket {
zombieChance = 0.3;
maxRoaming = 2;
zombieClass[] = {"zZombie_Base","z_hunter"};
lootChance = 0.4;
lootPos[] = {};
itemType[] = {
{"ItemSodaMdew",0.03},
{"FoodCanBakedBeans",0.02},
{"ItemBandage",0.01}
};
};
};
# Check object_data table
mysql -u epoch -p
USE epoch;
SELECT * FROM object_data WHERE CharacterID = YOUR_PLAYER_ID LIMIT 10;
# Common causes:
# 1. HiveExt not connecting to database
# 2. CharacterID mismatch
# 3. Database full / locked
# 4. Plot pole not placed correctly
# Check HiveExt.log
grep "object_data" HiveExt.log
trader_data table exists and is populatedDZE_ConfigTrader = true in mission init.sqf# Check vehicle_spawns table
SELECT * FROM vehicle_spawns LIMIT 20;
# Adjust spawn chances if too low
UPDATE vehicle_spawns SET chance = 1.0 WHERE chance < 0.5;
# Force respawn (wipe existing vehicles)
DELETE FROM object_data WHERE Classname IN (SELECT vehicle FROM vehicle_spawns);
# Check database size
SELECT table_name,
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.TABLES
WHERE table_schema = "epoch";
# Run cleanup script (backup first!)
DELETE FROM object_data WHERE Damage = 1 OR CharacterID = 0;
DELETE FROM object_data WHERE LastUpdated < DATE_SUB(NOW(), INTERVAL 30 DAY);
OPTIMIZE TABLE object_data;
After your server is created, you can configure it through the control panel:
Servers are automatically started after creation. You can stop/start your server from the control panel.
Use your server's IP address and port to connect from the game client.
Access your server files via FTP using the credentials provided in your control panel.
If you need assistance with your DayZ Epoch Mod server: