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
| Operation | Funktion |
|---|---|
| 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
0oder 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:
| Attributname | Beschreibung |
|---|---|
EntityDamage | Schaden gegen Entities (min,max nach Qualität) |
BlockDamage | Schaden gegen Blöcke |
DegradationMax | Maximale Haltbarkeit |
DegradationRate | Verschleiß pro Benutzung |
Gain_food / Gain_water | Hunger-/Durststillung bei Nahrungsmitteln |
CritChance | Kritische-Treffer-Wahrscheinlichkeit |
Group | Crafting-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:
| Bereich | Funktion |
|---|---|
| Biome-Regeln | Wahrscheinlichkeiten und Verteilung der Biome |
| Hub-Regeln | Größen und Abstände von Städten/Dörfern |
| Prefab-Regeln | Welche POI-Typen in welchen Stadtteilen erlaubt sind |
| Wilderness-Regeln | Freistehende 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:
| Datei | Inhalt |
|---|---|
loot.xml | Loot-Tabellen für Container und Zombies |
spawning.xml | Biom-basiertes Zombie-Spawning (Wander-Hordenrouten) |
gamestages.xml | Schwierigkeitsskalierung nach Spielzeit/Gamestage |
recipes.xml | Crafting-Rezepte |
progression.xml | Perks, Skills, Stufensystem |
blocks.xml | Alle platzierbaren Blöcke und ihre Eigenschaften |
biomes.xml | Biom-Eigenschaften und Deko-POI-Spawns zur Laufzeit |
traders.xml | Händler-Inventar und Handelsregeln |
Schritt-für-Schritt: Erstes Modlet erstellen
- Im
Mods-Verzeichnis einen neuen Ordner anlegen, z. B.AKMG_TestMod - Darin eine Datei
ModInfo.xmlerstellen (Beispiel siehe oben) - Einen Unterordner
Configanlegen - Darin die gewünschte XML-Datei anlegen (z. B.
items.xml) — mitals Wurzelelement - XPath-Patches eintragen und speichern
- 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.