← Blog

Einen privaten DayZ-Server einrichten und verwalten

Par Benjamin D. · PDG

· Mis à jour le 13. September 2026 · Lecture 8 min

Inhaltsverzeichnis

Die DayZ Server Konfiguration entscheidet darüber, ob dein privates Survival-Projekt stabil läuft oder nach zwei Stunden im Desync versinkt. Die zentrale Datei heißt serverDZ.cfg, dazu kommen Mission-Ordner, Economy-Dateien und BattlEye. Dieser Leitfaden zeigt dir Parameter für Parameter, was wirklich zählt – und wie du Whitelist sowie Admin-Zugriff sauber aufziehst.



DayZ Server Konfiguration: Die serverDZ.cfg im Detail

Die serverDZ.cfg liegt im Stammverzeichnis der Serverinstallation und wird beim Start über den Parameter -config=serverDZ.cfg eingelesen. Änderungen greifen erst nach einem Neustart – ein Reload im laufenden Betrieb gibt es nicht. Arbeite deshalb grundsätzlich mit einer Kopie der Datei, bevor du experimentierst.

Grundgerüst einer funktionierenden Datei

hostname = "EU - Hardcore Chernarus";
password = "";
passwordAdmin = "EinSehrLangesAdminPasswort";
maxPlayers = 60;

verifySignatures = 2;
forceSameBuild = 1;
disableVoN = 0;
vonCodecQuality = 20;

disable3rdPerson = 0;
disableCrosshair = 0;
disablePersonalLight = 1;

serverTime = "SystemTime";
serverTimeAcceleration = 8;
serverNightTimeAcceleration = 4;
serverTimePersistent = 0;

guaranteedUpdates = 1;
loginQueueConcurrentPlayers = 5;
loginQueueMaxPlayers = 500;
instanceId = 1;
storageAutoFix = 1;
respawnTime = 5;

timeStampFormat = "Short";
logAverageFps = 60;
logMemory = 60;
logPlayers = 60;
logFile = "server_console.log";
adminLogPlayerHitsOnly = 0;
adminLogPlacement = 1;
adminLogBuildActions = 1;
adminLogPlayerList = 1;

enableCfgGameplayFile = 1;
allowFilePatching = 0;
simulatedPlayersBatch = 20;
multithreadedReplication = 1;
speedhackDetection = 1;

networkRangeClose = 20;
networkRangeNear = 150;
networkRangeFar = 1000;
networkRangeDistantEffect = 4000;
defaultVisibility = 1375;
defaultObjectViewDistance = 1375;

steamQueryPort = 2305;

class Missions
{
    class DayZ
    {
        template = "dayzOffline.chernarusplus";
    };
};

Die Parameter, die den Unterschied machen

ParameterWirkungEmpfehlung
verifySignaturesPrüft Signaturen der geladenen PBOsImmer 2 lassen
forceSameBuildNur identische Client-Version darf verbinden1 – verhindert Crashes nach Patches
allowFilePatchingErlaubt Clients mit entpackten Dateien0 im Live-Betrieb, 1 nur beim Mod-Testen
serverTimeAccelerationFaktor der Tageszeit (1 = Echtzeit)6–12 für ausgewogene Nächte
serverNightTimeAccelerationZusatzfaktor nur nachts2–4, damit Nächte nicht ewig dauern
simulatedPlayersBatchSpieler pro SimulationsdurchlaufBei 60+ Slots auf 15–20 senken
loginQueueConcurrentPlayersGleichzeitige Logins3–5, entlastet die Server-FPS beim Restart
storageAutoFixRepariert beschädigte Persistence-Daten1 aktiviert lassen

Häufigster Fehler in der Praxis: eine fehlende Semikolon-Zeile oder ein deutsches Sonderzeichen im hostname. Die Datei muss als reines ANSI/UTF-8 ohne BOM gespeichert werden, sonst bricht der Parser ab und der Prozess startet mit Standardwerten. Prüfe nach jedem Edit die ersten 30 Zeilen der server_console.log.

Startparameter der Kommandozeile

./DayZServer -config=serverDZ.cfg -port=2302 \
  -BEpath=battleye -profiles=profiles \
  -dologs -adminlog -netlog -freezecheck \
  -cpuCount=4 \
  -mod=@CF;@VPPAdminTools \
  -servermod=@ServerSideOnlyMod

Wichtig: -mod lädt clientseitig relevante Modifikationen, -servermod ausschließlich serverseitige. Wer beides vermischt, produziert die klassische „You cannot play/edit this mission“-Meldung beim Verbindungsversuch. Auf dem Panel von Fly-Serv trägst du diese Parameter direkt in den Startup-Variablen ein, ohne ein Startskript pflegen zu müssen.

Wenn du die Konfigurationsarbeit lieber auf vorbereiteter Ryzen-Hardware mit NVMe-Speicher und aktivem Anti-DDoS machst, statt eine Root-Umgebung selbst zu pflegen, findest du die passende Grundlage unter DayZ Server mieten.



Missionen laden und die Economy anpassen

Der Block class Missions verweist auf einen Ordner unter mpmissions/. Standard ist dayzOffline.chernarusplus, für Livonia entsprechend dayzOffline.enoch. Der Name im Template muss exakt dem Ordnernamen entsprechen – Groß- und Kleinschreibung inklusive.

Struktur des Mission-Ordners

  • init.c – Startlogik, Wetter, Spawn-Ausrüstung, Zeitsteuerung
  • cfgeconomycore.xml – Einstiegspunkt der gesamten Economy, bindet zusätzliche Dateien ein
  • db/types.xml – Loot-Mengen, Respawn-Zeiten, Lifetime pro Item
  • db/events.xml – Fahrzeuge, Tiere, Infizierten-Events, Helikopter-Crashes
  • db/globals.xml – globale Limits wie ZombieMaxCount oder CleanupLifetimeDeadPlayer
  • cfgspawnabletypes.xml – Attachments und Magazininhalte beim Spawn
  • cfgplayerspawnpoints.xml – Spawn-Punkte für frische und wiederbelebte Charaktere

Loot realistisch steuern

Ein Eintrag in types.xml sieht so aus:

<type name="M4A1">
    <nominal>4</nominal>
    <lifetime>7200</lifetime>
    <restock>1800</restock>
    <min>2</min>
    <quantmin>-1</quantmin>
    <quantmax>-1</quantmax>
    <cost>100</cost>
    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="1"/>
    <category name="weapons"/>
    <usage name="Military"/>
</type>

nominal ist die Zielmenge auf der Karte, min der Schwellwert für Nachschub, lifetime die Sekunden bis zum Despawn. Wer alle Werte gleichzeitig verdoppelt, treibt die Anzahl aktiver Entities in die Höhe und drückt damit direkt die Server-FPS. Ändere in Schritten und beobachte den Wert serverFpsWarning im Log.

cfggameplay.json aktivieren

Mit enableCfgGameplayFile = 1 lädt der Server die Datei cfggameplay.json aus dem Mission-Ordner. Darüber steuerst du Basebuilding-Regeln, Sichtweiten der Objekte, Stamina-Verhalten oder das Deaktivieren der Karte im HUD:

{
  "GeneralData": {
    "disableBaseDamage": false,
    "disableContainerDamage": false,
    "disableRespawnDialog": false
  },
  "PlayerData": {
    "disablePersonalLight": true,
    "StaminaData": {
      "sprintStaminaModifierErc": 1.0,
      "staminaMax": 110.0
    }
  },
  "WorldsData": {
    "objectSpawnersArr": ["custom/mybase.json"]
  }
}

Ein JSON-Syntaxfehler an dieser Stelle führt dazu, dass die Datei komplett ignoriert wird, ohne dass der Start abbricht. Validiere die Datei also vor jedem Neustart. Eine vollständige Parameterreferenz pflegt Bohemia Interactive im offiziellen DayZ Server Configuration Wiki.



Whitelist, Admin-Zugriff und Moderation per RCON

DayZ bringt keine native Whitelist-Funktion mit. In der Praxis gibt es drei gängige Wege, den Zugang zu beschränken.

1. Passwortschutz über serverDZ.cfg

Der schnellste Ansatz für eine geschlossene Runde: Setze password = "GeheimesPasswort";. Der Eintrag taucht weiterhin im Browser auf, aber nur Spieler mit Kenntnis des Passworts verbinden sich. Für eine Community mit zwanzig Leuten reicht das völlig aus.

2. Echte Whitelist über BEC

BattlEye Extended Controls liest eine Whitelist.txt mit GUIDs und kickt alles, was nicht darin steht. Die Konfiguration in Config.cfg:

[Bec]
Ip = 127.0.0.1
Port = 2310
BePath = /home/dayz/battleye
Admins = Admins.txt
Commands = Commands.txt
WhiteList = Whitelist.txt
WhiteListKickMsg = Du stehst nicht auf der Whitelist. Bewirb dich im Discord.
Timeout = 10

Die Spieler-GUID findest du im profiles/-Verzeichnis in den BattlEye-Logs oder in der adminlog. Trage sie zeilenweise ein, ein Reload per #reloadwhitelist ist über die Konsole möglich.

3. Admin-Rechte im Spiel

Mit gesetztem passwordAdmin loggst du dich im Spielchat ein:

#login DeinAdminPasswort
#players          // Liste aller verbundenen Spieler
#kick NAME        // Spieler entfernen
#lock             // keine neuen Verbindungen
#unlock
#shutdown         // sauberer Serverstopp
#restart          // Mission neu laden
#logout

Für mehr Kontrolle – Teleport, Item-Spawn, Objekt-Editor, Ban-Verwaltung – kommen Mods wie VPPAdminTools oder Community Online Tools zum Einsatz. Deren Rechte werden über Permission-Dateien im profiles/-Ordner verteilt, typischerweise VPPAdminTools/Permissions/. Vergib immer rollenbasiert: Moderatoren brauchen Kick und Teleport, aber keinen Zugriff auf das Spawnen von Waffen.

BattlEye RCON absichern

# battleye/BEServer_x64.cfg
RConPassword LangesZufaelligesPasswort_MinDestens20Zeichen
RestrictRCon 0
RConPort 2310

Der RCON-Port sollte nur von vertrauenswürdigen IPs erreichbar sein. Wenn du die Umgebung selbst administrierst, sperrst du ihn per Firewall ab:

sudo ufw allow 2302:2306/udp
sudo ufw allow from 203.0.113.10 to any port 2310 proto udp
sudo ufw enable
sudo systemctl enable --now fail2ban

Ein schwaches RCON-Passwort ist der häufigste Einbruchsvektor bei Survival-Communities. Wechsle es nach jedem Personalwechsel im Admin-Team und teile es nie über den öffentlichen Discord.



Performance, Backups und Wartung im Alltag

DayZ ist stark single-thread-lastig. Eine hohe Taktfrequenz bringt mehr als viele Kerne – Ryzen-Plattformen mit NVMe-Speicher liefern hier spürbar bessere Server-FPS, gerade beim Laden der Persistence nach einem Neustart.

Server-FPS im Blick behalten

Setze in der Konfiguration:

serverFpsWarning = 15;
logAverageFps = 60;

Fällt der Wert dauerhaft unter 15, sind meist zu viele persistente Objekte im Spiel: verwaiste Basen, hunderte Fahrzeuge in events.xml oder ein überdimensioniertes Loot-Setup. Prüfe zuerst ZombieMaxCount in globals.xml und reduziere die Fahrzeugzahl, bevor du an der Hardware zweifelst.

Neustarts planen

Vier bis sechs Stunden Laufzeit sind ein bewährtes Intervall. Kündige Restarts über BEC-Scheduler an:

<Scheduler>
  <job id="0">
    <time>003:50:00</time>
    <delay>000:00:00</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>1</loop>
    <cmd>say -1 Neustart in 10 Minuten. Geht in Deckung.</cmd>
  </job>
</Scheduler>

Was du sichern musst

  • mpmissions/dayzOffline.chernarusplus/storage_1/ – die komplette Persistence
  • serverDZ.cfg und alle angepassten XML-Dateien
  • profiles/ inklusive Admin-Permissions und Ban-Listen
  • battleye/BEServer_x64.cfg

Automatische Sicherungen laufen bei Fly-Serv im Hintergrund mit, ein manueller Snapshot vor jedem Mod-Update bleibt trotzdem Pflicht. Wer per Konsole sichert:

tar -czf /backups/dayz-$(date +%F-%H%M).tar.gz \
  mpmissions/dayzOffline.chernarusplus/storage_1 \
  serverDZ.cfg profiles

Mods sauber aktualisieren

Nach jedem größeren Update erst die Mod-Versionen abgleichen, dann die Keys in keys/ erneuern, erst danach starten. Eine veraltete .bikey führt bei verifySignatures = 2 zum sofortigen Kick aller Spieler. Ähnliche Workflows gelten übrigens auch für andere Bohemia-Titel – wer parallel einen Arma Reforger Server betreut, kennt das Prinzip. Einen Überblick über weitere Survival-Titel gibt Alle unsere Gameserver, und praktische Anleitungen findest du laufend im Fly-Serv Blog.



Fazit

Eine saubere DayZ Server Konfiguration ist Handarbeit: serverDZ.cfg validieren, Mission und Economy schrittweise anpassen, Admin-Zugriff über RCON absichern und regelmäßig sichern. Wer Änderungen einzeln testet und die Server-FPS mitliest, findet Fehlerquellen in Minuten statt Stunden – und bekommt eine Welt, die auch nach Wochen Laufzeit stabil bleibt.



FAQ

Warum greifen meine Änderungen in der serverDZ.cfg nicht?

Die Datei wird ausschließlich beim Prozessstart gelesen. Stoppe den Server vollständig, speichere die Datei als UTF-8 ohne BOM und achte auf das abschließende Semikolon jeder Zeile. Prüfe danach die ersten Zeilen der server_console.log: Dort taucht der übernommene hostname auf. Steht dort ein alter Wert, lädt der Start eine andere Konfigurationsdatei als gedacht – kontrolliere den Pfad hinter -config=.

Wie setze ich die Persistence zurück, ohne alles neu zu installieren?

Stoppe den Server, sichere den Ordner storage_1 und lösche anschließend dessen Inhalt. Beim nächsten Start baut DayZ die Persistence neu auf, Basen und Fahrzeuge verschwinden, Loot spawnt frisch nach types.xml. Willst du nur Fahrzeuge zurücksetzen, reicht oft das Anpassen der events.xml plus ein Neustart, ohne die gesamte Speicherung zu löschen.

Spieler werden mit „Bad Version, server rejected connection“ getrennt – was tun?

Diese Meldung erscheint bei forceSameBuild = 1, wenn Client- und Serverversion voneinander abweichen. Aktualisiere die Serverdateien über SteamCMD auf den aktuellen Branch und synchronisiere alle Mods samt zugehöriger .bikey-Dateien im Ordner keys/. Erst danach neu starten. Tritt das Problem nur bei einzelnen Spielern auf, hängen diese noch in einem älteren Steam-Download fest.