[Guide] DayZ Standalone Server HowTo's und FAQ für Server Admins

  • Hallo Leute,

    da ich nun hier auch einiges gelernt habe was die Server Konfiguration etc. betrifft würde ich gern noch meine Erkenntnisse mit euch teilen.

    Eventuell greife ich Sachen auf die hier schon erwähnt wurden und werde dann natürlich die entsprechenden Beiträge auch verlinken.

    1.) Start Spawn Gear, Tageszeit & Wetter

    Wie ihr vielleicht schon wisst muss dies in der 'init.c' festgelegt werden, anbei meine kommentierte 'init.c'
    Diese findet ihr unter '\ServerRootDir\mpmissions\dayzOffline.chernarusplus\init.c'

    init.c

    Zum Thema Coding:

    • Für die die sich nicht mit Coding auskennen eine kleine Erklärung.
    Spoiler anzeigen
    • Kommentiert wird in C mit //comment für ein Zeilenkommentar und mit /*comment*/ ein zeilenübergreifendes Kommentar. Kommentare überspringt der Compiler und Code in Kommentaren wird nicht ausgeführt.
    • Eine Funktion ist immer so aufgebaut: Rückgabetyp Funktionsname( Parameter1, Parameter2, ... ){ Code }
    • Eine Funktion wie zum Beispiel oben override void StartingEquipSetup(PlayerBase player, bool clothesChosen) muss immer eine { besitzen und am Ende eine }.
    • Eine Funktion hat immer einen oder keinen Rückgabetyp. Wenn eine Funktion keinen Rückgabetyp bestitzt, wird sie mit void initialisert, siehe Zeile 43. Ein Rückgabetyp wäre z.B. in Zeile 55 PlayerBase, deshalb wird auch in Zeile 63 return m_player zurückgegeben.
    • Override besagt, dass es bereits irgendwo eine Funktion mit demselben Namen gibt und diese dann mit override überschrieben wird.
    • Intern in einer Funktion wird jede Zeile mit einem Semikolon abgeschlossen damit der Compiler weiß das die Codezeile hier endet.
      Ausnahmen sind z.B. if oder if else Anweisungen, z.B. Zeile 47. Dasselbe gilt für Schleifen (while, for, ...), siehe Zeile 49-52.
    • Aufrufe wie player.RemoveAllItems(); sind nichts anderes als ein Funktionsaufruf. Hier wird die Funktion RemoveAllItems() auf den Datentyp PlayerBase mit Namen player angewendet.
    • Eine Klasse wie z.B. oben class CustomMission: MissionServer muss ebenfalls eine { und eine } besitzen, jedoch am Ende der Klasse ein Semikolon, siehe Zeile 202.


    Zudem ist es seit 1.0 möglich die Tageszeit auch per Config Datei einzustellen.

    Spoiler anzeigen


    2.) no Stamina einstellen

    1. Navigiert dazu in euer Server Root Directory '\ServerRootDir\dta\scripts.pbo' und kopiert die scripts.pbo in einen anderen Ordner, und entpackt die pbo Datei mit Rechtsklick -> PBO Manager -> extract to \scripts.pbo
    2. Navigiert in scripts.pbo zu '\scripts\3_Game\constants.c' und öffnet diese mit Notepad++
    3. Anbei ein Ausschnitt aus meiner 'constants.c'
    Ausschnitt constants.c

    Wenn ihr diese Zeilen so übernehmt wird euer Stamina immer wieder sofort auf Maximum gepusht.


    3.) Player Spawn Points festlegen

    1. WICHTIG Server vorher runterfahren und alle DayZ Prozesse beenden!
    2. Navigiert in '\DayZServer\mpmissions\dayzOffline.chernarusplus\storage_1' und löscht die Datei spawnpoints.bin (Sicherheitskopie!)
    3. Navigiert in '\ServerRootDir\mpmissions\dayzOffline.chernarusplus\'
    4. Öffnet 'cfgplayerspawnpoints.xml' mit Notepad++ und editiert die Spawn Points bei <generator_posbubbles>
    5. Nehmt am besten https://dayz.ginfo.gg/ für die Koordinaten
    Spoiler anzeigen
    Code
    <generator_posbubbles>
            <pos x="xxxx.xx" z="xxxx.xx" /> <!-- VIBOR: Vibor -->
            <pos x="xxxx.xx" z="xxxx.xx" /> <!-- NWAF: Grishino -->       
    </generator_posbubbles>
  • 4.) Auto Spawn Rate erhöhen

    1. Navigiert zu '\ServerRootDir\mpmissions\dayzOffline.chernarusplus\db\events.xml' und öffnet die Datei 'events.xml' (Notepad++)
    2. Sucht dort nach 'VehicleOffroadHatchback' das ist der 4x4 Lada der aktuell bugfrei genutzt werden kann.
    3. Anbei ein Ausschnitt aus meiner events.xml
    Ausschnitt events.xml


    5.) Autos mit allen Attachements spawnen lassen

    1. Navigiert dazu in '\ServerRootDir\mpmissions\dayzOffline.chernarusplus\' und öffnet cfgspawnabletypes.xml (Notepad++)
    2. STRG + F und sucht nach 'OffroadHatchback'
    3. Anbei ein Ausschnitt aus meiner cfgspawnabletypes.xml
    Ausschnitt cfgspawnabletypes.xml


    6.) Server Loot Spawn Rate erhöhen

    1. Dazu benötigt ihr die 'types.xml' die ihr unter '\ServerRootDir\mpmissions\dayzOffline.chernarusplus\db\types.xml' findet.
    2. skyn1 hat dafür ein recht nettes Tool geschrieben das eigentlich selbsterklärend ist.
    3. sky1.se Loot Tool


    7.) Server wipen

    1. Beendet euren Server
    2. Schaut im Taskmanager ob noch ein Dayz Prozess läuft, falls ja beendet ihn.
    3. Navigiert in '\DayZServer\mpmissions\dayzOffline.chernarusplus\storage_1'
    4. Löscht alle Dateien im Ordner /data (aber nicht den Ordner selbst)
    5. Löscht players.db und spawnpoints.bin
    6. Server ist nun komplett gewiped

    Thread: Wie funktioniert das mit dem Server wipe?

    Teilweise wipen:

    • players.db löschen wenn du alle Chars + Equip auf dem Server wipen wilslt
    • vehicles.bin löschen wenn du die Fahrzeuge wipen willst
    • types.bin löschen wenn du alle spawnbaren Items wipen willst


    8.) Login & Logout Zeit festlegen

    Login Time:

    1. Navigiere in '\ServerRootDir\' und öffne die Datei 'serverDZ.cfg'
    2. Füge dort folgende Zeile hinzu (egal wo, ich habe es vor dem motd[]-Array gesetzt)

    Beispiel:

    Spoiler anzeigen
    Code
    respawnTime = 5; //default is 15, can be set to 0 if you dont want a respawn timer

    Logout Time:

    1. Navigiere in '\ServerRootDir\mpmissions\dayzOffline.chernarusplus\db\' und öffnet dort die 'globals.xml'
    2. Sucht dort nach 'QueueTimeSameServer' und setzt dort euren gewünschten Logout Wert.

    Beispiel:

    Spoiler anzeigen
    Code
    <var name="QueueTimeSameServer" type="0" value="5"/><!--15 is default-->

    Thread: Login/Logout Countdown


    9.) Hunger, Durst deaktivieren & Unlimited Life (GodMode)

    1. Navigiert dazu in euer Server Root Directory '\ServerRootDir\dta\scripts.pbo' und kopiert die scripts.pbo in einen anderen Ordner, und entpackt die pbo Datei mit Rechtsklick -> PBO Manager -> extract to \scripts.pbo
    2. Navigiert in scripts.pbo zu 'scripts\4_World\Classes\PlayerModifiers\Modifiers\Thirst.c, Hunger.c und Health.c' und öffnet diese mit Notepad++
    3. Editiere 'Thirst.c', 'Hunger.c' und 'Health.c' wie folgt:
    Thirst.c

    Ihr müsst in Thirst.c die Funktion override void OnTick(PlayerBase player, float deltaT) auskommentieren, das macht ihr wie oben mit dem zeilenübergreifenden Kommentar /* Code */

    Hunger.c

    Hier genau dasselbe.

    Health.c

    Und wieder :)


    10.) Scripting Tutorial by Sneaky Kitty Gaming

    Part 1
    Part 2
    Part 3
    Part 4

    11.) Wie installiere ich Mods auf meinem DayZ Sever?

    Hilfreiche Links:


    Admin Tools:


    Wenn ihr noch hilfreiche Ergänzungen habt, die uns allen helfen werde ich sie hier gern ergänzen :)

    Gruß Juicy

  • kann sich das von den technikern T.J.Curtes , HalfMoon  Gabunviper  Mosin mal jemand ansehen ob es aktuell ist und passt.

    Wenn dem so ist könnte man es schließen und oben anheften.

    DaRT v2.1 ist die aktuelle Version ...... auf deren Seite wird zwar 2.0 angepriesen, im Program selbst steht aber, dass es bereits 2.1 gibt.

    aktualisiert man es, bleibt die Meldung das es zu aktualisieren geht leider erhalten.

    CFTools ...... keine Ahnung, bisher nicht mit befasst

    Man kann zugleich Optimist und Skeptiker sein, darf aber nicht als Pessimist resignieren und kapitulieren (Manès Sperber 1905 - 1984)

  • 1.) Start Spawn Gear, Tageszeit & Wetter

    Wie ihr vielleicht schon wisst muss dies in der 'init.c' festgelegt werden, anbei meine kommentierte 'init.c'
    Diese findet ihr unter '\ServerRootDir\mpmissions\dayzOffline.chernarusplus\init.c'

    init.c
    C: init.c
    void main()
    {
        GetGame().GetWorld().SetDate(2018, 8, 10, 13, 00); //Set the ingame date and time
    }

    Seit 1.0 Release greifen die Einstellungen der ServerDZ.cfg wieder, lässt sich also wieder dort einstellen.

    [tishina]pazdJMD.png[tishina]
  • Seit 1.0 Release greifen die Einstellungen der ServerDZ.cfg wieder, lässt sich also wieder dort einstellen.

    Stimmt, danke für den Hinzweis, ich habe es allerdings so gelassen da es so auch gut funktioniert. Habe dafür in der .cfg Datei server Time auskommentiert.

    PS: Der Thread sollte nach Möglichkeit offen bleiben damit wir uns hier untereinander noch weiter helfen können und ich die entsprechenden Sachen nachtragen kann :)

  • Juicy 16. Dezember 2018 um 19:50

    Hat den Titel des Themas von „DayZ Standalone Server HowTos and FAQ für Server Admins“ zu „DayZ Standalone Server HowTo's and FAQ für Server Admins“ geändert.
  • Darf man hier auch Fragen stellen?

    Denn ich würde gerne die LootSpawnDistance ändern.
    Es stört mich, dass das Loot nur paar hundert Meter hintermir nach paar Minuten neu spawnt.
    Ich könnte quasie allein in der NWA-Zeltstadt immer im Kreis laufen und müsste jedes Item nur einmal anfassen.
    und schon spawnt nach paar Minuten alles neu...

    Wo kann ich da die Entfernung einstellen, in der kein Spieler sein darf und die Zeit die verstreichen muss, wo kein Spieler in der Nähe ist???

    Ich möchte mich für vermutlich unnötige Fragen im Forum, die man sich evtl durch testen usw selber beantworten könnte entschuldigen.

    Leider bin ich beruflich bedingt immer mal für 12 ganze Tage am Stück nicht zuhause!

    Ich arbeite deutschlandweit im Schichtdienst und das gut und gerne auch mal bis zu 16 Stunden.

    Mir steht nicht die Möglichkeit zur Verfügung einen Patch, eine Mod oder etwas anderes auf die schnelle zu testen.

  • Du kannst pro Item die Spawnzeit einstellen wo die „Loot Table“ für das item aufgestockt wird.

    Der Parameter ist in der types.xml zu finden.

    Was die einzelnen Parameter bedeuten kann man in der Liste für Items nachlesen. In diesem Dokument findest Du auch mehrere Reiter mit beschreibung: DayZ Item Liste

    Types.xml:

    Das könnte etwas Arbeit bedeuten. Grundsätzlich gebe ich dir aber recht. Bei einem Server der leer wäre ist dann eine Runde am NWA immer mit neuem Loot verbunden.

    Bei 80 Leuten sieht es da wieder anders aus.

    Andere Möglichkeit wäre die Anzahl vom Loot zu halbieren. Das müsstest du aber vorher testen.

    Loot Änderungen beeinflussen massiv das gameplay auf einem Server.

    Gruß,

    [moon]

  • also steht das Restock für die Verstrichene Zeit, aber ich kann zB genau im Container stehen und Stunden warten, da kommt dann nix neues.
    Irgendwo muss doch auch die Entfernung vermerkt sein. Denn bewege ich mich vom Container rund 200m weg, dann kann ich zB durch das Fernglas sehen, dass etwas neues gespawnt ist...
    Die Zeit ist okay, aber die Entfernung muss deutlich erhöht werden :(
    Diese wird doch bestimmt allgemein sein und nicht für jedes Item separat...

    Ich möchte mich für vermutlich unnötige Fragen im Forum, die man sich evtl durch testen usw selber beantworten könnte entschuldigen.

    Leider bin ich beruflich bedingt immer mal für 12 ganze Tage am Stück nicht zuhause!

    Ich arbeite deutschlandweit im Schichtdienst und das gut und gerne auch mal bis zu 16 Stunden.

    Mir steht nicht die Möglichkeit zur Verfügung einen Patch, eine Mod oder etwas anderes auf die schnelle zu testen.

  • also steht das Restock für die Verstrichene Zeit, aber ich kann zB genau im Container stehen und Stunden warten, da kommt dann nix neues.
    Irgendwo muss doch auch die Entfernung vermerkt sein. Denn bewege ich mich vom Container rund 200m weg, dann kann ich zB durch das Fernglas sehen, dass etwas neues gespawnt ist...
    Die Zeit ist okay, aber die Entfernung muss deutlich erhöht werden :(
    Diese wird doch bestimmt allgemein sein und nicht für jedes Item separat...

    Also ich bin mir nicht sicher, habs selbst nicht ausprobiert aber in der events.xml steht:

    evtl da mal an cleanupradius, saferadius oder distanceradius rumprobieren^^

    Vermutlich ist es cleanupradius.

  • Danke

    Ich möchte mich für vermutlich unnötige Fragen im Forum, die man sich evtl durch testen usw selber beantworten könnte entschuldigen.

    Leider bin ich beruflich bedingt immer mal für 12 ganze Tage am Stück nicht zuhause!

    Ich arbeite deutschlandweit im Schichtdienst und das gut und gerne auch mal bis zu 16 Stunden.

    Mir steht nicht die Möglichkeit zur Verfügung einen Patch, eine Mod oder etwas anderes auf die schnelle zu testen.

  • Bin nun noch auf das hier gestoßen, man kann anscheinend den item despawn radius in der global.xml einstellen.

    "globals.xml"

    globals.xml changes the values of certain game variables, such as item despawning (which is distance-based), zombie and animal counts.

    Welche Variable das jetzt genau ist weiß ich aber leider nicht. Vermutlich ZoneSpawnDist und RestartSpawn

  • Juicy 18. Dezember 2018 um 15:25

    Hat den Titel des Themas von „DayZ Standalone Server HowTo's and FAQ für Server Admins“ zu „DayZ Standalone Server HowTo's und FAQ für Server Admins“ geändert.
  • Sollte das möglich sein, wäre es mir eigentlich ganz lieb wenn wir dafür dann evtl ein eigenes Thema erstellen damit es andere bei Bedarf schneller finden, bzw dann einfach die Antworten + Anfrage hier raus nehmen = neues Thema. Wenn du das aus so siehst DagiWeh

  • Nu hab ich auch mal ne Frage. Wir zocken grad auf nem eigenen Server der auch passwort geschützt ist. Nun wollt ich gern einen Spawnpoint für Player in der Nähe unserer Base setzten. Ich habe die Koordinaten in die "cfgplayerspawnpoints" eingetragen und alle anderen gelöscht. Wenn ich nun aber Respawne lande ich immernoch an der Küste wie immer.

    <generator_posbubbles>

    <pos x="3098.76" z="8394.60" />

    </generator_posbubbles>

    </playerspawnpoints>

    hab ich was falsch gemacht oder wieso klappt das nicht???

  • habt ihr einen vps oder einen Game Server Provider (GSP)?