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 <configs> als Wurzelelement.

Verfügbare Operationen

OperationFunktion
<set>Ersetzt den Inhalt eines Knotens
<append>Hängt neue Knoten an einen bestehenden Block an
<remove>Entfernt einen Knoten vollständig
<insertBefore>Fügt vor einem Knoten ein
<insertAfter>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 <item>-Element mit name-Attribut und einer Reihe von <property>-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 <configs> 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.