DayZ Central Economy: types.xml und events.xml verstehen
Loot-Steuerung in DayZ: types.xml-Attribute, events.xml, cfgeconomycore und wie du Spawns gezielt anpasst.
DayZ Central Economy: types.xml und events.xml verstehen
Die Central Economy (CE) ist das Herzstück der Loot-Verteilung in DayZ. Sie steuert, was, wo und wie oft spawnt — von Konservendosen über Waffen bis hin zu Fahrzeugen und Helikopter-Abstürzen. Dieser Guide zeigt die wichtigsten Dateien, ihre Attribute und typische Anpassungen.
Wo liegen die CE-Dateien?
Alle CE-Dateien liegen im Mission-Ordner deines Servers, z. B.:
mpmissions/dayzOffline.chernarusplus/
├── db/
│ ├── types.xml # Item-Definitionen und Spawn-Quoten
│ ├── events.xml # Dynamische Events (Heli-Crashes, Tiere, Fahrzeuge)
│ ├── globals.xml # Globale Server-Variablen
│ └── messages.xml # Server-Nachrichten
├── cfgeconomycore.xml # CE-Datei-Routing (welche XMLs geladen werden)
├── cfgeventspawns.xml # Spawn-Positionen für Events
├── cfgspawnabletypes.xml # Inhalt von spawnenden Containern
├── cfglimitsdefinition.xml # Verfügbare Tags, Categories, Usage
├── cfglimitsdefinitionuser.xml # Eigene User-Definitionen für Spawn-Filter
├── init.c # Mission-Skript (Spawn-Punkte, Custom-Logik)
└── storage_1/ # Persistence (Spielerdaten, Basen, Items in der Welt)
Bei Livonia heißt der Mission-Ordner dayzOffline.enoch, bei Sakhal dayzOffline.sakhal — die Struktur ist identisch.
types.xml verstehen
Die types.xml definiert pro Item, wie viele davon auf der Map existieren dürfen, wie lange sie liegen bleiben, und in welchen Gebäudetypen sie spawnen.
Ein typischer Eintrag:
<type name="AKM">
<nominal>10</nominal>
<lifetime>14400</lifetime>
<restock>1800</restock>
<min>5</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0"/>
<category name="weapons"/>
<usage name="Military"/>
<value name="Tier3"/>
<value name="Tier4"/>
</type>
Die wichtigsten Attribute
| Attribut | Bedeutung |
|---|---|
name | Klassenname des Items (z. B. AKM, Apple, Mosin9130) |
nominal | Soll-Anzahl auf der Map. Die CE versucht diesen Wert zu erreichen. |
min | Mindestmenge. Fällt der Bestand darunter, spawnt das Item priorisiert. |
lifetime | Sekunden, die das Item liegen bleibt. 14400 = 4 Stunden. |
restock | Sekunden, bis ein neues Item nach Pickup nachspawnt. 0 = sofort. |
quantmin / quantmax | Bei Items mit Munition/Inhalt: Min-/Max-Füllung in % (1-100, oder -1 für “nicht zutreffend”). |
cost | Spawn-Priorität. Höhere Werte = häufiger gewählt. Standard 100. |
category | Kategorie für Gebäude-Filter (food, weapons, tools, clothes, containers, explosives). |
usage | Wo es spawnen darf: Military, Police, Medic, Farm, Industrial, Hunting, Town, Village, Coast. |
value | Loot-Tier: Tier1 (Küste) bis Tier4 (Tisy/Nordwest). |
tag | Indoor/Outdoor-Filter: floor, shelves. |
Flags-Attribute
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0"/>
| Flag | Wirkung wenn 1 |
|---|---|
count_in_cargo | Items in Backpacks/Containern zählen zur Nominal-Quote |
count_in_hoarder | Items in Spielerlagern (Zelte, Fässer, vergrabene Säcke) zählen mit |
count_in_map | Items, die in der Welt liegen, zählen mit (Standard: 1) |
count_in_player | Items im Spieler-Inventar zählen mit |
Praxis: Wenn du verhindern willst, dass Spieler Loot horten, setze count_in_hoarder="1" und count_in_cargo="1". Dann spawnt nichts Neues, solange die Items irgendwo gestapelt sind.
Beispiel: Loot häufiger machen
Du willst, dass mehr AKMs spawnen?
<type name="AKM">
<nominal>30</nominal> <!-- vorher 10 -->
<min>15</min> <!-- vorher 5 -->
<restock>600</restock> <!-- vorher 1800 (10 statt 30 Min) -->
...
</type>
Wichtig: Auch Munition und Magazine entsprechend erhöhen, sonst nutzlose Waffen.
events.xml verstehen
events.xml steuert dynamische Events: Helikopter-Abstürze, Tier-Spawns, Fahrzeuge, Loot-Container, kontaminierte Zonen.
Ein Heli-Crash-Event sieht so aus:
<event name="StaticHeliCrash">
<nominal>5</nominal>
<min>3</min>
<max>8</max>
<lifetime>14400</lifetime>
<restock>0</restock>
<saveforce>0</saveforce>
<active>1</active>
<children>
<child lootmax="0" lootmin="0" max="0" min="0" type="Land_Wreck_Mi8_DZ"/>
<child lootmax="0" lootmin="0" max="0" min="0" type="Land_Wreck_UH1Y"/>
</children>
</event>
| Attribut | Bedeutung |
|---|---|
nominal | Ziel-Anzahl gleichzeitig aktiver Events |
min / max | Min-/Max-Anzahl (überschreibt nominal-Limit) |
lifetime | Sekunden, bis das Event despawnt |
restock | Sekunden Wartezeit zwischen Spawns |
active | 1 = aktiv, 0 = deaktiviert |
children | Welche Wracks/Items konkret spawnen können |
Spawn-Positionen: cfgeventspawns.xml
Wo ein Event spawnt, wird in cfgeventspawns.xml festgelegt:
<event name="StaticHeliCrash">
<pos x="2200" z="3500" />
<pos x="6700" z="9800" />
...
</event>
Die Koordinaten sind die internen Map-Koordinaten (X = Ost-West, Z = Nord-Süd).
Container-Inhalt: cfgspawnabletypes.xml
Wenn du willst, dass eine Mosin mit Munition und Optik spawnt, definierst du das in cfgspawnabletypes.xml:
<type name="Mosin9130">
<attachments chance="0.40">
<item name="PUScopeOptic" chance="0.30"/>
<item name="HuntingOptic" chance="0.30"/>
</attachments>
<cargo chance="0.50">
<item name="Ammo_762x54" chance="0.40" quantmin="5" quantmax="20"/>
</cargo>
</type>
chance ist die Wahrscheinlichkeit (0.0-1.0), dass der Slot gefüllt wird.
cfgeconomycore.xml
Diese Datei steuert, welche XMLs überhaupt geladen werden. Mods nutzen das, um eigene types.xml-Dateien anzuhängen, ohne deine zu überschreiben:
<economycore>
<classes>
<rootclass name="ce" folder="ce">
<file name="expansion_types.xml" type="types"/>
<file name="expansion_events.xml" type="events"/>
</rootclass>
</classes>
</economycore>
Das ist sauberer als alles in eine zentrale types.xml zu kopieren.
Häufige Anpassungen
1. Zombies reduzieren (events.xml):
<event name="InfectedArmy">
<nominal>50</nominal> <!-- statt 80 -->
...
</event>
2. Loot-Lifetime verlängern für RP-Server:
<type name="AKM">
<lifetime>28800</lifetime> <!-- 8h statt 4h -->
</type>
3. Kompletten Loot-Multiplier per Skript:
In der init.c kannst du beim Mission-Start alle Nominals via Code skalieren — siehe Bohemia-Wiki “DayZ:Central Economy mission files modding”.
Validierung und Debugging
Symptome eines kaputten CE:
- Nichts spawnt mehr
- Server-Konsole spammt “Type X not found”
- Loot ist irgendwo gestapelt, aber nirgends in Gebäuden
Vorgehen:
profiles/server_console.logöffnen- Nach
[CE]oderTypesuchen - Bei Syntax-Fehlern: XML-Validator nutzen (z. B. xmllint)
- Bei “Type X not found”: Das Item gibt es nicht (mehr), entferne es aus
types.xml
FAQ
Frage: Wie wechsel ich types.xml für eine Mod?
Du hast zwei Wege: Entweder du kopierst die Mod-Items direkt in deine types.xml, oder du nutzt cfgeconomycore.xml, um eine separate Datei aus der Mod-Vorlage einzubinden. Letzteres ist update-sicherer.
Frage: Wo finde ich Item-Klassennamen?
In den Mod-Workshops, in types.xml selbst (alle Vanilla-Items), oder über Tools wie DayZ-Tools und Klassen-Listen-Generatoren. Mods liefern fast immer eine types.xml-Vorlage mit.
Frage: Was bewirkt lifetime = 0?
Sehr kurze Lebensdauer (effektiv: das Item despawnt fast sofort, sobald es nicht mehr in einem Container/Spielerinventar ist). Setze stattdessen lifetime = 60, wenn du Loot kurzlebig haben willst.
Frage: Wie weiß die CE, ob ein Item drinnen oder draußen spawnen soll?
Über den tag-Eintrag (floor für Boden, shelves für Regale) und den Loot-Punkt im Gebäude. Die Mapper haben pro Gebäudetyp Spawn-Punkte definiert, jedes Item hat passende Tags.
Frage: Wann startet die CE neu?
Bei jedem Server-Restart wird economy.xml ausgewertet und Items mit init=1 gespawnt. Während des Betriebs läuft die CE alle paar Minuten und gleicht Bestände gegen die Nominal-Werte ab.
Frage: Wie mache ich einen “kompletten Loot-Wipe” ohne neue Map?
Lösche den storage_1-Ordner im Mission-Verzeichnis. Beim nächsten Start wird Persistence neu generiert, alle Spielerlager und gebauten Strukturen sind weg.
Frage: Brechen Mods my types.xml?
Mods, die direkt in deine types.xml schreiben, ja — updaten sie sich, gehen deine Anpassungen verloren. Lade Mod-Items deshalb über cfgeconomycore.xml.
Frage: Was ist mit quantmin = -1?
Bedeutet “nicht anwendbar” — für Items ohne Mengenangabe (Waffen, Werkzeuge). Bei Konsumgütern wie Munition oder Wasserflaschen setzt du quantmin und quantmax als Prozentsatz (1-100).