DayZ types.xml explained: every field, flag and tag
What each field in DayZ's types.xml does, from nominal and min to lifetime, restock and flags, with examples and the mistakes that stop loot spawning.

On this page
If you run a DayZ server, types.xml decides what your players find. Every gun, tin of beans and backpack that can spawn as loot has an entry in it, and that entry sets how many exist, how long they last and where they turn up.
It’s also a file of around 24,000 lines on Chernarus, written in XML, with no comments explaining what each number does. This guide goes through every field, what the Central Economy does with it, and the mistakes that most often leave a server with too much loot, or none.
Where types.xml lives
types.xml belongs to the mission, not the server itself. On a standard server it’s in the mission’s db folder:
mpmissions/
dayzOffline.chernarusplus/ ← Chernarus
db/
types.xml
events.xml
globals.xml
cfgeconomycore.xml
cfglimitsdefinition.xml
cfglimitsdefinitionuser.xml
Livonia’s mission is dayzOffline.enoch and Sakhal’s is dayzOffline.sakhal. Community maps ship their own mission folder with the same layout. The server reads these files when it starts, so changes only take effect after a restart.
How the Central Economy uses it
The Central Economy (CE) is the system that spawns and cleans up everything in the world. It keeps a running count of every item type and works through a simple loop:
- Count. For each type, count how many exist. The
flagsdecide which ones count: items on the ground, in containers, in stashes or on players. - Top up. If the count is below
min, spawn more, a few at a time, until it reachesnominal. - Clean up. When an item has been left alone for its
lifetime, remove it.
New loot only appears at spawn points away from players, which is why a building you’re standing in doesn’t refill while you watch. The spawn points themselves come from mapgroupproto.xml and mapgrouppos.xml. types.xml decides what can appear at them.
Anatomy of an entry
Here’s an entry for the AKM:
<type name="AKM">
<nominal>3</nominal>
<lifetime>28800</lifetime>
<restock>0</restock>
<min>2</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" crafted="0" deloot="0"/>
<category name="weapons"/>
<usage name="Military"/>
<value name="Tier4"/>
</type>
Read top to bottom: the server aims for three AKMs on the map and tops them up whenever there are fewer than two. Each one lasts eight hours if nobody touches it, and they only spawn in military buildings in the Tier 4 zones.
The numbers
| Field | What it does | Example |
|---|---|---|
nominal |
How many the CE aims to have in the world. 0 means it never spawns as loot. |
3 |
min |
The floor. Below this, the CE starts spawning more, up to nominal. |
2 |
lifetime |
Seconds an item can lie untouched before the CE cleans it up. | 28800 (8 hours) |
restock |
Seconds the CE waits before topping the item up once it’s below min. 0 means the next pass. |
0 |
quantmin / quantmax |
How full the item spawns, as a percentage: rounds in a magazine, water in a bottle. -1 for items without a quantity. |
30 / 80 |
cost |
Spawn priority. Nearly every entry uses 100, and there’s rarely a reason to change it. |
100 |
nominal and min
These two do most of the work. nominal is the target and min is the trigger. With nominal 10 and min 5, the CE lets the count drift down to five before it starts spawning, then brings it back to ten. A wide gap means loot comes back in waves; a narrow one keeps the world steadily stocked.
min should never be higher than nominal. The CE can’t reach a floor that sits above its own target.
lifetime
lifetime is in seconds, which is why the numbers look odd: 3600 is an hour, 14400 is four hours and 3888000 is 45 days, the usual value for tents and barrels. The countdown starts when the item spawns or is dropped, and player interaction resets it.
Too short, and loot disappears before anyone reaches it. Too long, with a high nominal, and the world fills up with items nobody wants, which costs server performance.
quantmin and quantmax
For anything with a quantity, these set the range it spawns with. A magazine with quantmin 30 and quantmax 80 spawns between 30% and 80% full. Leave both at -1 for items that don’t have a quantity, like most weapons and clothing.
The flags
The flags line has six switches, each 0 or 1. The first four decide which items count towards nominal and min:
count_in_map: items lying in the world. On for almost everything.count_in_cargo: items inside other items’ cargo, like a rifle in a backpack on the ground.count_in_hoarder: items stored in tents, barrels, crates and buried stashes.count_in_player: items in players’ inventories.
With the defaults (map only), anything a player picks up or stashes stops counting, so the CE spawns a replacement. That keeps loot available to everyone, but it also means a group can hoard an item without limit. Turn on count_in_hoarder for rare items and stashed copies count against the total, so fewer new ones spawn.
The last two change whether the item spawns as normal loot at all:
crafted: marks items that players make rather than find. Leave it at0for anything you want spawning as loot.deloot: dynamic event loot. The item only spawns at dynamic events such as helicopter crash sites, never at normal loot spawn points.
category, usage, value and tag
These four decide where an item can spawn, and each name has to exist in the mission’s cfglimitsdefinition.xml.
categoryis the item’s type: the vanilla file definesweapons,tools,food,clothes,containers,explosives,booksandlootdispatch. Each entry has one.usageis the kind of place:Military,Police,Medic,Firefighter,Industrial,Farm,Hunting,Coast,Town,Villageand so on. An entry can have several, and the item spawns in any of them.valueis the map tier, fromTier1on the coast where players start toTier4in the far inland military areas, plusUniquefor special locations. Several are allowed.tagnarrows where on a spawn point the item sits:floor,shelvesorground. Most entries don’t set one.
Missions can also define groups in cfglimitsdefinitionuser.xml and use them with user instead of name:
<!-- cfglimitsdefinitionuser.xml -->
<valueflags>
<user name="Tier12">
<value name="Tier1"/>
<value name="Tier2"/>
</user>
</valueflags>
<!-- types.xml -->
<value user="Tier12"/>
Names must match exactly
A misspelt usage or value, such as Millitary, doesn’t stop the server starting, but the CE can’t use it, and an item left with no valid usage or value has nowhere to spawn. Check the server logs after editing, or use an editor that only offers the names your limits files define.
Adding mod items
Mods that add items usually ship their own types file. Rather than pasting hundreds of entries into the vanilla types.xml, put the file in a folder inside the mission and register it in cfgeconomycore.xml:
<economycore>
<!-- …the existing classes and defaults… -->
<ce folder="db/mods">
<file name="mymod_types.xml" type="types"/>
</ce>
</economycore>
The folder is relative to the mission folder. You can add as many <ce> blocks and files as you need, and a separate file per mod makes updates much easier. When a mod updates, you replace its file and your own changes to vanilla items stay untouched.
Tip
Each name must match the item’s class name in the mod’s config, exactly. If a mod adds an item and no types file mentions it, it never spawns as loot.
Common mistakes
Most loot problems on community servers come back to a handful of errors:
- Broken XML. One unclosed tag or stray character can stop the whole file loading, and the server comes back up without the loot it defines. Keep a backup before every edit.
minabovenominal. The CE can’t reach a floor that’s above its own target, so the entry won’t behave the way you meant.- Names your limits files don’t define. A typo in
category,usage,valueortagleaves the item with nowhere to spawn. - Duplicate entries. The same class in two files, often vanilla plus a mod file, makes it hard to know which values the server is using. Keep one entry per class.
- Lifetimes of zero. The item is cleaned up almost as soon as it spawns.
- Raising
nominaleverywhere. Doubling loot across the board feels generous for a day. Then the map is full of items nobody picks up, and the server slows down. Raise what players are actually short of.

Min set above nominal: LootEngine outlines the field and explains the problem before you save.
Editing types.xml safely
Whatever you edit with, a few habits save a lot of restarts:
- Back up first, and keep dated copies so you can roll back a bad change.
- Change one thing at a time and restart, so you know what fixed or broke what.
- Keep mod entries in their own files, registered in
cfgeconomycore.xml. - Check the server logs after each restart for economy errors.
This is the work we built LootEngine for. It reads your mission and your mods, shows every item as a card with its icon and settings, checks each entry as you edit, and saves only the characters you changed, with a backup every time. If that sounds useful, join the waitlist below.
Questions
Where is types.xml on a DayZ server?
In the db folder of the server's mission: mpmissions/dayzOffline.chernarusplus/db/types.xml for Chernarus, with dayzOffline.enoch for Livonia and dayzOffline.sakhal for Sakhal. Mods can add more types files, which the mission lists in cfgeconomycore.xml.
What's the difference between nominal and min in types.xml?
nominal is how many of an item the Central Economy aims to have in the world. min is the floor: when the count falls below it, the economy spawns more until it's back up to nominal.
Why isn't an item from types.xml spawning?
The usual causes are a nominal of 0, a category, usage or value name that cfglimitsdefinition.xml doesn't define, the deloot flag (which limits an item to dynamic events), a class name that doesn't match the item, or an XML error that stopped the file loading. The server's logs after a restart usually say which.
- types.xml
- Central Economy
- loot
- server config