7 Days to Die: XML-Modding

Das XML-Modding in 7 Days to Die ermöglicht es dir, Spielinhalte gezielt über Konfigurationsdateien zu verändern — ohne Code zu kompilieren. Diese Seite erklärt den Einstieg und den gezielten Umgang mit den wichtigsten Dateien: entitygroups.xml, items.xml, rwgmixer.xml und weiteren Config-Dateien.


Vorbereitung

Benötigte Werkzeuge

  • Texteditor mit XML-Syntax-Highlighting — empfohlen: Notepad++ (kostenlos) oder Visual Studio Code
  • Grundverständnis der XML-Struktur (Elemente, Attribute, Verschachtelung)

Originaldateien sichern

Speicherort der Config-Dateien

Die originalen Konfigurationsdateien liegen im Installationsverzeichnis des Spiels:

C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Data\Config\

Dort befinden sich alle editierbaren XML-Dateien sowie eine XML.txt mit Entwicklerkommentaren und Hinweisen zu vielen Attributen — eine hilfreiche Referenz direkt im Spiel-Verzeichnis.


Das Modlet-System verstehen

Seit Alpha 17 werden Anpassungen über sogenannte Modlets eingebunden. Ein Modlet ist ein eigenständiger Unterordner im Mods-Verzeichnis, der die Spiellogik per XPath-Patch ergänzt — ohne die Original-Dateien zu überschreiben.

Ordnerstruktur eines Modlets

Mods/
  MeinModlet/
    ModInfo.xml
    Config/
      entitygroups.xml
      items.xml
      rwgmixer.xml

Die Config-Mappe im Modlet muss die Originaldatei-Namen exakt übernehmen. Beim Spielstart liest die Engine alle Modlets ein und wendet die darin enthaltenen Patches auf die Vanilla-Daten an.

ModInfo.xml

Jedes Modlet benötigt eine ModInfo.xml — ohne diese Datei wird der Ordner vom Spiel ignoriert.

<?xml version="1.0" encoding="UTF-8"?>
<xml>
  <ModInfo>
    <Name value="MeinModlet" />
    <DisplayName value="AKMG Testmod" />
    <Author value="DeinName" />
    <Version value="1.0" />
    <Description value="Kurzbeschreibung des Mods" />
  </ModInfo>
</xml>

Installationspfad (ab V1.0)

Ab Version 1.0 ist der bevorzugte Installationsort für Mods der User-Data-Ordner:

%appdata%\7DaysToDie\Mods\

Alternativ funktioniert weiterhin das klassische Verzeichnis im Steam-Installationspfad:

C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Mods\

XPath-Syntax — das Grundprinzip

Alle XML-Patches in Modlets verwenden XPath, um gezielt einzelne Knoten oder Attribute in den Spieldaten zu adressieren und zu verändern. Die Mod-Datei beginnt stets mit als Wurzelelement.

Verfügbare Operationen

OperationFunktion
Ersetzt den Inhalt eines Knotens
Hängt neue Knoten an einen bestehenden Block an
Entfernt einen Knoten vollständig
Fügt vor einem Knoten ein
Fügt nach einem Knoten ein

Einfaches Beispiel — Attribut ändern

<configs>
  <set xpath="/items/item[@name='gunHandgunT1Pistol']/property[@name='DegradationMax']/@value">500</set>
</configs>

Dieses Snippet erhöht die maximale Haltbarkeit der Pistole, ohne weitere Eigenschaften zu berühren.


XML-Modding: Die wichtigsten Dateien

entitygroups.xml — Spawn-Gruppen anpassen

Diese Datei definiert, welche Entities (Zombies, Tiere, NPCs) in welchen Gruppen zusammengefasst sind. Spawn-Gruppen werden vom Spawnsystem und von Horden referenziert.

Typische Einträge:

<entitygroup name="ZombiesAll">
  <entity name="zombieMoe"       prob="1" />
  <entity name="zombieBoe"       prob="0.5" />
  <entity name="zombieDarlene"   prob="0.5" />
</entitygroup>
  • prob — relative Wahrscheinlichkeit, mit der das Entity aus der Gruppe ausgewählt wird
  • Höherer Wert = häufiger; Wert 0 oder auskommentierter Eintrag = nie

Eigene Gruppe hinzufügen:

<configs>
  <append xpath="/entitygroups">
    <entitygroup name="ZombiesNurOnly">
      <entity name="zombieNurse" prob="1" />
    </entitygroup>
  </append>
</configs>

items.xml — Gegenstände und Waffen modifizieren

items.xml enthält alle Definitionen für Waffen, Werkzeuge, Nahrungsmittel, Ressourcen und sonstige Items. Jeder Eintrag ist ein -Element mit name-Attribut und einer Reihe von -Unterknoten.

Häufig geänderte Attribute:

AttributnameBeschreibung
EntityDamageSchaden gegen Entities (min,max nach Qualität)
BlockDamageSchaden gegen Blöcke
DegradationMaxMaximale Haltbarkeit
DegradationRateVerschleiß pro Benutzung
Gain_food / Gain_waterHunger-/Durststillung bei Nahrungsmitteln
CritChanceKritische-Treffer-Wahrscheinlichkeit
GroupCrafting-Menü-Kategorie des Items

Beispiel — Nahrung nahrhafter machen:

<configs>
  <set xpath="/items/item[@name='foodShamSandwich']/property[@name='Gain_food']/@value">40</set>
  <set xpath="/items/item[@name='foodShamSandwich']/property[@name='Gain_water']/@value">10</set>
</configs>

Beispiel — neues Item als Erweiterung eines bestehenden:

<configs>
  <append xpath="/items">
    <item name="myCustomKnife">
      <property name="Extends" value="knifeHuntingT1" />
      <property class="Attributes">
        <property name="EntityDamage" value="50,80" />
        <property name="DegradationMax" value="300,800" />
      </property>
    </item>
  </append>
</configs>

Mit Extends erbt das neue Item alle nicht explizit überschriebenen Eigenschaften des Originals. Das ist die sauberste Methode für eigene Varianten.


rwgmixer.xml — Weltgenerierung konfigurieren

rwgmixer.xml steuert, wie zufällig generierte Welten (Random World Generation) aufgebaut werden: Biom-Verteilung, Stadtgrößen, Straßennetz und welche POIs (Points of Interest) in welchen Gebieten spawnen dürfen.

Wichtige Bereiche der Datei:

BereichFunktion
Biome-RegelnWahrscheinlichkeiten und Verteilung der Biome
Hub-RegelnGrößen und Abstände von Städten/Dörfern
Prefab-RegelnWelche POI-Typen in welchen Stadtteilen erlaubt sind
Wilderness-RegelnFreistehende POIs außerhalb von Siedlungen

Beispiel — Stadtgröße für einen Biom erhöhen:

<configs>
  <set xpath="/rwgmixer/biome[@name='pine_forest']/property[@name='MaxTownSize']/@value">large</set>
</configs>

POIs werden über Tags zugewiesen. Soll ein eigener POI durch RWG platziert werden, muss das entsprechende Prefab in seiner Metadatei ein passendes Tags-Attribut tragen, das in den Prefab-Regeln der rwgmixer.xml referenziert wird.


Weitere relevante XML-Dateien

Das XML-Modding in 7 Days to Die deckt weit mehr als nur die drei Hauptdateien ab. Hier eine Übersicht weiterer häufig genutzter Dateien:

DateiInhalt
loot.xmlLoot-Tabellen für Container und Zombies
spawning.xmlBiom-basiertes Zombie-Spawning (Wander-Hordenrouten)
gamestages.xmlSchwierigkeitsskalierung nach Spielzeit/Gamestage
recipes.xmlCrafting-Rezepte
progression.xmlPerks, Skills, Stufensystem
blocks.xmlAlle platzierbaren Blöcke und ihre Eigenschaften
biomes.xmlBiom-Eigenschaften und Deko-POI-Spawns zur Laufzeit
traders.xmlHändler-Inventar und Handelsregeln

Schritt-für-Schritt: Erstes Modlet erstellen

  1. Im Mods-Verzeichnis einen neuen Ordner anlegen, z. B. AKMG_TestMod
  2. Darin eine Datei ModInfo.xml erstellen (Beispiel siehe oben)
  3. Einen Unterordner Config anlegen
  4. Darin die gewünschte XML-Datei anlegen (z. B. items.xml) — mit als Wurzelelement
  5. XPath-Patches eintragen und speichern
  6. Spiel starten — beim Laden werden alle Mods aus dem Mods-Ordner automatisch eingelesen

Fehlerkontrolle: Bei einem Syntaxfehler im XML bricht das Spiel oft beim Ladebildschirm ab. Die Log-Datei unter %appdata%\7DaysToDie\Logs\ enthält in solchen Fällen den genauen Fehlerort.


Tipps und häufige Fehlerquellen

  • Groß-/Kleinschreibung: Attributnamen und Elementnamen in XPath sind case-sensitive. [@name='zombieMoe'] und [@name='zombiemoe'] sind verschieden.
  • Kommentare nutzen: XML-Kommentare () helfen, experimentelle Änderungen temporär zu deaktivieren, ohne sie zu löschen.
  • Vanilla-Dateien nie direkt bearbeiten: Jede Steam-Verifikation überschreibt direkte Edits. Nur Modlets im Mods-Ordner bleiben erhalten.
  • Ein Modlet = eine Funktion: Kleine, klar abgegrenzte Modlets lassen sich einfacher debuggen und deaktivieren als monolithische Sammelpakete.
  • Mehrere Mods, gleiche Datei: Wenn zwei Modlets dieselbe Datei patchen, werden beide Patches nacheinander angewendet. Konflikte entstehen, wenn beide denselben Knoten entfernen oder widersprüchlich setzen. Ladereihenfolge ist dabei alphabetisch nach Modlet-Ordnername.
  • Beim XML-Modding immer die originale Config-Datei zur Referenz öffnen — nur so lassen sich gültige XPath-Ausdrücke korrekt formulieren.