DayZ ist so ziemlich das Gleiche wie Minecraft, ein Server basiertes Multiplayer Spiel bei dem es darum geht kluge Entscheidungen zu treffen um a.) zu überleben und b.) zu sammeln und zu bauen.

Leider wird Crossplay nicht unterstützt, so dass der Game Server ausschließlich für die PC Version des Spiels gedacht ist.

Zielsetzung

  1. DayZ Server im LAN 
    1. Autostart mit Server
    2. Auto update bei Server Start
  2. Server MOD installiert
    1. CF (Community Framework) https://steamcommunity.com/sharedfiles/filedetails/?id=1559212036
    2. Community-Online-Tools (COT) weblink:https://steamcommunity.com/sharedfiles/filedetails/?id=1564026768 
  3. Admin Rechte für eigenen User

    Bonusziel
  4. Public Server

Voraussetzungen:

  • Ubuntu Linux Server installiert (virtuelle Maschine (VM)
    • remote Zugriff installiert
  • Steam Account 
    • Steam User Name 
    • Steam User Passwort
  • DayZ Spiel installiert auf PC (installiert über Steam)

 

Installation

Installationsanleitung von Bohemia Interactive auf: https://community.bistudio.com/wiki/DayZ:Hosting_a_Linux_Server 

Die Installation der Serververzeichnisse erfolgt im Linux home Verzeichnis des angemeldeten Users.

Download SteamCMD:
sudo apt-get install lib32gcc-s1

Folgende Schritte ausführen:

mkdir -p ~/servers/steamcmd && cd ~/servers/steamcmd

curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

Download DayZ Server Hinweis:
  • Ersetze your_login, mit Deinem Steam login (Steam Usernamen).
  • Aktualisieren des Servers erfolgt mit denselben Schritten wie die nachfolgende Installation
Mit Mods auf stable branch

Wir installieren mit der "stable branch" die Mods: Community Framework und Community Online Tools:

~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 223350 +workshop_download_item 221100 1559212036 +workshop_download_item 221100 1564026768 +quit

Dein Passwort wird nur beim ersten Mal abgefragt.

DayZ Server konfigurieren

⚠ Vor dem ersten Start muss der Servername konfiguriert werden. Sonst startet er nicht.
Hier der Link zur vollständigen Liste der Konfigurationsvariablen
 
Pfad zur Konfigurationsdatei:
User Homeverzeichnis
cd ~/servers/dayz-server/

Dateiname: 

serverDZ.cfg

Folgende Einträge bearbeiten
hostname = "Dein Server Name"; // Server name description = "Deine Server Beschreibung"; // Kurzbeschreibung Deines Servers. Wird im Client Browser angezeigt, max Länge 255 Zeichen.

 

DayZ Server starten

Starten mit Mods

In diesem Beispiel wird der DayZ Server zusammen mit den zwei Mods Community Framework und Community Online Tools gestartet.

cd ~/servers/dayz-server/
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036 ~/servers/dayz-server/1559212036
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1564026768 ~/servers/dayz-server/1564026768
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036/keys/* ~/servers/dayz-server/keys/
./DayZServer -config=serverDZ.cfg -port=2301 "-mod=1559212036;1564026768;" -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck

Ctrl + C - zum Schließen des Serverprozesses.

 

DayZ Client starten

Unter dem Menüpunkt Server sollte im Tab LAN der Servername in der Serverliste (ungefiltert) angezeigt werden.

Mit DLCS und MODS einrichten und Beitreten anklicken.

COT konfigurieren und Admin Rechte vergeben

Wenn das erste Verbinden zum Server funktioniert, müssen wir den Server wieder verlassen und stoppen.

DayZ Client

Server verlassen

Linux Server prozess stoppen 

Ctrl + C - zum Schließen des Serverprozesses.

oder, wenn Autostart eingerichtet ist:

sudo systemctl stop dayz-server

Nun müssen dem Player Admin Rechte vergeben und eine Schlüsseldatei kopiert werden.

Die Schlüsseldatei aus dem jeweiligen Mod "keys" Verzeichnis muss in das Dayz-Server "keys" Verzeichnis kopiert werden. Da COT und CF vom selben Entwickler sind sind beide Dateien identisch - es muss nur eine kopiert werden:

Quelle:
/home/username/servers/dayz-server/1559212036/keys

Dateiname: Jacob_Mango_V3.bikey

Ziel:

/home/username/servers/dayz-server/keys

Nun zu den COT Admin Rechten für unseren Spielcharakter auf unserem DayZ Server

/home/username/   = Persönlicher Ordner in Ubuntu Linux

/home/username/servers/dayz-server/profiles/PermissionsFramework/Players/       = hier befindet sich nach dem ersten Verbinden / Spielen  eine *.json Datei

Der Dateiname entspricht der Steam User ID

Diese Datei mit einem Editor öffnen und zwischen den eckigen Klammern ein "admin" eintragen

{   "Roles":  ["admin"]  }

Jetzt kann der Dayz Server wieder gestartet werden.

Server Daemon mit Restart und Auto-Update

  • Ersetze your_login, mit deinem Steam login Namen.
  • Ersetze your_username mit Deinem Linux Usernamen.

Erstellen des Scripts

    • mit  mods: nano ~/servers/dayz-server/update.sh
      /home/your_username/servers/steamcmd/steamcmd.sh +force_install_dir /home/your_username/servers/dayz-server/ +login your_login +app_update 223350 +workshop_download_item 221100 1559212036 +workshop_download_item 221100 1564026768 +quit
      rm /home/your_username/servers/dayz-server/1559212036 /home/your_username/servers/dayz-server/1564026768 /home/your_username/servers/dayz-server/keys/Jacob_Mango_V3.bikey
      ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1559212036 /home/your_username/servers/dayz-server/1559212036
      ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1564026768 /home/your_username/servers/dayz-server/1564026768
      ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1559212036/keys/* /home/your_username/servers/dayz-server/keys/
      
  1. Ctrl + O
  2. Ctrl + X
  3. sudo chmod +x ~/servers/dayz-server/update.sh
  4. sudo nano /etc/systemd/system/dayz-server.service
    [Unit]
    Description=DayZ Dedicated Server
    Wants=network-online.target
    After=syslog.target network.target nss-lookup.target network-online.target
    
    [Service]
    ExecStartPre=/home/your_username/servers/dayz-server/update.sh
    ExecStart=/home/your_username/servers/dayz-server/DayZServer -config=serverDZ.cfg -port=2301 "-mod=1559212036;1564026768;" -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck
    WorkingDirectory=/home/your_username/servers/dayz-server/
    LimitNOFILE=100000
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s INT $MAINPID
    User=your_username
    Group=users
    Restart=on-failure
    RestartSec=5s
    
    [Install]
    WantedBy=multi-user.target
    
  5. sudo systemctl daemon-reload

Daemon Commands

  • sudo systemctl enable dayz-server - Einschalten Server Autostart wenn Betriebssystem startet.
  • sudo systemctl disable dayz-server - Ausschalten Server Autostart wenn Betriebssystem startet.
  • sudo systemctl start dayz-server - Server starten.
  • sudo systemctl restart dayz-server - Server Restart.
  • sudo systemctl stop dayz-server - Server stoppen.
  • sudo systemctl status dayz-server - Server Status überprüfen.

 

Anmerkung

Der Autostart funktionierte bei mir zunächst nicht, weil das update script fehlschlug.

Als hotfix habe ich das updatescript in der datei dayz-server.service mit einer # auskommentiert.

Danach lief der Autostart.

 

Router Portfreigabe für Public-Server

DayZ nutzt oder reserviert folgende Ports die für den Zugriff aus dem Internet am eigenen Internet Router freigegeben, bzw. an die Server IP durchgereicht werden müssen. 

  • Spielport: 2302 UDP standardmäßig
  • Reservierter Port: 2303 UDP standardmäßig
  • BattlEye-Port: 2304 UDP standardmäßig
  • RCON-Port: 2305 UDP standardmäßig
  • Abfrageport: 27016 UDP standardmäßig

Zumindest der Spiel-Port, der Abfrage-Port und der BattlEye-Port sind erforderlich.

Der Abfrageport wird zum Suchen und Herstellen einer Verbindung zum Server in Steam verwendet. Der Spielport wird zum Suchen und Herstellen einer Verbindung zum Server im Spiel verwendet.

Beachte, dass der reservierte Port und der BattlEye-Port vom Server relativ zum Game-Port konfiguriert werden. Der reservierte Port ist also Game-Port + 1 und der BattlEye-Port ist Game-Port + 2. 

 

Server Admin

Um einen Admin-Befehl zu nutzen, musst du die Konsole öffnen. Dies machst du, indem du die Chat-Taste drückst. Die folgenden Befehle kannst du dann eingeben und mit der “Enter”-Taste bestätigen. Ein Admin-Befehl startet immer mit dem “#”-Symbol.