Spawn Tables and Loot Config
A map with placed spawn points but no authored spawn tables relies entirely on the engine's vanilla fallback tables. The vanilla tables are calibrated for the official maps, not for the custom map's terrain, building layout, and intended difficulty curve. The result is a loot economy that feels generic: military zones drop civilian loot, forest cabins contain military gear, and the progression from common to rare items is flat because the vanilla tables lack awareness of the custom map's location hierarchy. Spawn tables are the mechanism that restores authorial control over loot distribution.
This article documents the 57 Studios™ workflow for building weighted spawn tables, assigning them to spawn points through the Level Editor, managing table inheritance and overrides, and diagnosing the most common spawn table failures. It covers the spawn table .dat format in the context of the assignment workflow; the companion article Spawn Table Format Reference provides the complete field-level syntax reference. This article assumes the reader has placed spawn points following the preceding article Spawn Point Placement and is ready to author the data files that those spawn points reference.

Documentation source: This article synthesizes the official Smartly Dressed Games modding documentation for spawn assets, combined with empirical analysis of shipped spawn table files and cohort-validated balancing practices. Per-field details should be verified against the companion reference articles.
Prerequisites
- A custom map project with spawn points placed in the Level Editor. See Spawn Point Placement for the placement workflow.
- A text editor for authoring
.datfiles. The 57 Studios™ recommendation is Notepad++. - Familiarity with the
.datfile format and the Unturned™ modding project folder structure. - Spawn table files from the vanilla distribution available for reference at
Unturned/Bundles/Spawns/.
What you will learn
- How the weighted random selection system works and how to calculate probabilities.
- How to author spawn table
.datfiles for items, zombies, animals, and vehicles. - How to build hierarchical tier tables that stratify loot quality.
- How to assign spawn tables to spawn points through the Level Editor's Table field.
- How spawn table inheritance works when a map overrides a parent table.
- How authoring map-specific tables prevents dependence on vanilla fallbacks.
- How to use the root-hierarchy design pattern for attaching custom tables.
- How to diagnose and fix the most common spawn table failures.
How weighted random selection works
Every entry in a spawn table has a weight. When the engine selects an item from a table, it sums the weights of all entries and draws a random value uniformly from zero to the sum. The entry whose weight interval contains the drawn value is selected. The probability of selecting any entry is its weight divided by the total weight of the table.
As shown in the flowchart above, the weight values are relative, not absolute. A table with weights 60, 30, and 10 produces the same probabilities as one with weights 6, 3, and 1. The 57 Studios™ convention is to use integer weights in the range 1-100, which keeps the ratios readable without a calculator.
Probability calculation
The probability of a specific entry is:
Probability = Entry Weight / Sum of All Entry Weights| Entry | Weight | Probability |
|---|---|---|
| Entry A | 60 | 60/100 = 60% |
| Entry B | 30 | 30/100 = 30% |
| Entry C | 10 | 10/100 = 10% |
Nested table hierarchy
A spawn table entry can reference another spawn table instead of a specific asset. When the engine selects a nested table entry, it immediately rolls against the referenced table. Nesting is the mechanism that drives the tier system and the root-hierarchy design pattern.
The tree above shows the standard tier pattern. The top-level table determines which tier is selected. The tier table determines the specific item. Adding a new common item means adding it to the Tier1 table only. Adding a new rare item means adding it to the Tier3 table only. The tier weights at the top level control the overall rarity distribution without requiring changes to the tier tables themselves.
Spawn table file format
Each spawn table is a .dat file in the map's Level/Spawns/ folder. The file name is the table's identifier; the engine references tables by file name through the Table field on spawn points.
File location
YourMap/
├── Level/
│ ├── Spawns/
│ │ ├── Item_Military.dat
│ │ ├── Item_Military_Tier1.dat
│ │ ├── Item_Military_Tier2.dat
│ │ ├── Item_Military_Tier3.dat
│ │ ├── Zombie_Military.dat
│ │ ├── Animal_Forest.dat
│ │ └── Vehicle_Road.dat
│ └── Level.dat
├── Bundle/
└── Config.jsonTable structure
Each spawn table file uses a consistent top-level key that identifies the spawn type. The top-level key is followed by Table blocks, each representing one entry.
Item spawn table structure:
Spawn_Items
(
Table
(
Asset Item/Pistol.dat
Weight 30
)
Table
(
Asset Item/Bandage.dat
Weight 25
)
Table
(
Spawn Item_Military_Tier2
Weight 40
)
)Zombie spawn table structure:
Spawn_Zombies
(
Table
(
Asset Zombie/City_Normal.dat
Weight 60
)
Table
(
Asset Zombie/City_Crawler.dat
Weight 20
)
Table
(
Spawn Zombie_City_Mega
Weight 5
)
)Animal spawn table structure:
Spawn_Animals
(
Table
(
Asset Animal/Deer.dat
Weight 50
)
Table
(
Asset Animal/Wolf.dat
Weight 30
)
Table
(
Asset Animal/Bear.dat
Weight 20
)
)Vehicle spawn table structure:
Spawn_Vehicles
(
Table
(
Asset Vehicle/Sedan.dat
Weight 40
)
Table
(
Asset Vehicle/Pickup.dat
Weight 30
)
Table
(
Asset Vehicle/MilitaryTruck.dat
Weight 10
)
)Field naming rules
The top-level key must match the spawn type exactly: Spawn_Items, Spawn_Zombies, Spawn_Animals, or Spawn_Vehicles. The Asset field references a .dat file path relative to the Bundles/ root. The Spawn field references another spawn table by file name (without extension). The Weight field is a positive integer.
Each Table block must contain either an Asset field or a Spawn field, not both. If both are present, the engine uses Asset and ignores Spawn. If neither is present, the entry is ignored.
Building tiered spawn tables
The tier system stratifies loot quality across the map. The 57 Studios™ convention uses three tiers that correspond to the vanilla Unturned™ loot table organization: Tier1 (common), Tier2 (uncommon), and Tier3 (rare).
Tier weight presets
| Map archetype | Tier1 weight | Tier2 weight | Tier3 weight | Notes |
|---|---|---|---|---|
| Hardcore survival | 70 | 25 | 5 | Severe scarcity; military gear is a rare event |
| Standard survival | 60 | 30 | 10 | Balanced for 2-4 hour session length |
| Action-oriented | 50 | 35 | 15 | Faster gearing; suitable for combat-focused servers |
| PvE / cooperative | 55 | 30 | 15 | Slightly more military gear to offset AI difficulty |
| Creative / building | 40 | 30 | 30 | Resources are abundant; survival pressure is low |
Worked example: Military loot table
The 57 Studios™ reference for a tiered item spawn table uses three files: a top-level table and two tier sub-tables. (Tier3 is omitted in this example for brevity.)
Top-level table Item_Military.dat:
Spawn_Items
(
Table
(
Spawn Item_Military_Tier1
Weight 60
)
Table
(
Spawn Item_Military_Tier2
Weight 30
)
Table
(
Spawn Item_Military_Tier3
Weight 10
)
)Tier1 sub-table Item_Military_Tier1.dat:
Spawn_Items
(
Table
(
Asset Item/MilitaryPistol.dat
Weight 35
)
Table
(
Asset Item/Bandage.dat
Weight 30
)
Table
(
Asset Item/Rations.dat
Weight 25
)
Table
(
Asset Item/MagazineSmall.dat
Weight 10
)
)Tier3 sub-table Item_Military_Tier3.dat:
Spawn_Items
(
Table
(
Asset Item/AssaultRifle.dat
Weight 40
)
Table
(
Asset Item/SniperRifle.dat
Weight 25
)
Table
(
Asset Item/NightVision.dat
Weight 20
)
Table
(
Asset Item/MilitaryVest.dat
Weight 15
)
)Balancing guidelines for tier weights
The Tier3 weight should not exceed 15 in any top-level table for a standard survival map. The 57 Studios™ measured threshold across multiple map deployments is that Tier3 probability above approximately 12% eliminates meaningful resource scarcity on most map sizes.
| Tier3 weight (of 100 total) | Approximate time to full military gear | Map economy status |
|---|---|---|
| 5-10 | 2-4 hours | Healthy scarcity |
| 10-15 | 1-2 hours | Marginal |
| 15-20 | 30-60 minutes | Economy degraded |
| 20+ | Under 30 minutes | Economy collapsed |
Assigning tables to spawn points
The Table field on each spawn point in the Level Editor connects the spawn point to its spawn table.
The assignment workflow
- Select the spawn point in the Level Editor's level view.
- In the spawn point inspector, locate the Table field.
- Type the spawn table file name (without the
.datextension) into the field. - The file name is case-sensitive.
Item_Military.datanditem_military.datare different files. - Multiple spawn points can reference the same spawn table. Each point rolls independently against the table's weighted distribution.
Verification
After assigning all spawn tables, verify each assignment by:
- Confirming that every spawn point has a non-empty Table field. Spawn points with an empty Table field produce nothing.
- Confirming that every referenced spawn table file exists in the
Level/Spawns/folder. A missing table file causes the spawn point to produce nothing, with no error message in the Level Editor. - Loading the map in single-player and checking that loot appears at the expected locations with the expected distribution.
Inheritance and overrides
When the engine resolves a spawn table reference, it checks locations in a specific priority order. This inheritance mechanism allows maps to define only the tables that differ from the vanilla distribution and inherit the rest.
Table resolution priority
| Location | Priority | Best for |
|---|---|---|
Maps/YourMap/Level/Spawns/ | Highest | Custom tables specific to this map |
Bundles/Spawns/Items/ (vanilla fallback) | Fallback | Reusing vanilla table distribution |
A table in the map's Spawns/ folder always overrides a table with the same name in the global Bundles/Spawns/ directory. If a spawn point references a table name that exists in both locations, the map's version is used.
Map-specific table naming
The 57 Studios cohort recommendation is to author all spawn tables in the map's own Spawns/ folder rather than relying on inheritance. The vanilla table structure changes between game updates, and an inherited table may produce unexpected results after an update.
| Table name pattern | Example | Purpose |
|---|---|---|
{Type}_{Region}_{Variant} | Item_Military_Tier3 | Region-specific tiered table |
{Type}_{Location} | Animal_Forest | Location-specific animal table |
{Type}_{Category} | Vehicle_Road | Category-based vehicle table |
The root-hierarchy design pattern for custom tables
The root-hierarchy pattern allows a custom spawn table to attach itself to an existing parent table. This is the standard approach for mods that add items to existing maps without modifying the map files.
A Roots section in the spawn table defines which parent tables the table attaches to and with what weight. The Roots section uses either the flat format (with Roots N declaration) or the structured format (with Roots [ ] array).
Structured format with Roots:
GUID s1p2a3w4n5t6a7b8l9e0g1u2i3d4e5f7
Type Spawn
ID 51001
Tables
[
{
Guid s1r2v3a4l5r6i7f8l9e0g1u2i3d4e5f6
Weight 3
}
]
Roots
[
{
Guid m1i2l3i4t5a6r7y8p9a0r1e2n3t4g5u
Weight 5
}
]The IsOverride flag in a root entry zeroes the weights of all default entries in the parent table. When set to true, the custom table replaces the parent table's content rather than adding alongside it. The 57 Studios cohort recommendation is to reserve IsOverride for total-conversion mods and to omit it or set it to false for standard content additions.
Map-specific tables
Authoring map-specific spawn tables rather than relying on vanilla inheritance gives the map author full control over the loot economy. Each region of the map gets a table that reflects its thematic identity.
Thematic table assignment
| Region theme | Item table | Zombie table | Vehicle table |
|---|---|---|---|
| Military base | Item_Military (3 tiers) | Zombie_Military | Vehicle_Military |
| City center | Item_City (3 tiers) | Zombie_City | Vehicle_Road |
| Residential | Item_Residential (2 tiers) | Zombie_City | Vehicle_Road |
| Forest | Item_Forest (2 tiers) | (none) | Vehicle_Offroad |
| Hospital | Item_Medical (2 tiers) | Zombie_City | (none) |
| Farm | Item_Farm (1 tier) | (none) | Vehicle_Farm |
Complete map spawn folder example
A map with four regions (military base, city, residential, forest) should have a spawn folder with at least the following files:
YourMap/Level/Spawns/
├── Item_Military.dat
├── Item_Military_Tier1.dat
├── Item_Military_Tier2.dat
├── Item_Military_Tier3.dat
├── Item_City.dat
├── Item_City_Tier1.dat
├── Item_City_Tier2.dat
├── Item_Residential.dat
├── Item_Residential_Tier1.dat
├── Item_Residential_Tier2.dat
├── Item_Forest.dat
├── Zombie_Military.dat
├── Zombie_City.dat
├── Zombie_Loot_Military.dat
├── Zombie_Loot_City.dat
├── Animal_Forest.dat
└── Vehicle_Road.datThe zombie loot tables (Zombie_Loot_Military.dat, Zombie_Loot_City.dat) are dedicated tables for zombie loot drops. They should contain lower-value items than the region's item table to prevent loot flooding from zombie kills.
Spawn table not spawning items: diagnostic workflow
When a spawn table produces no items in-game, the cause is almost always in one of the following categories.
Diagnostic flowchart
Common failures and fixes
| Symptom | Most likely cause | Resolution |
|---|---|---|
| No items appear at any spawn point referencing a table | Table file does not exist in Level/Spawns/ or the file name does not match the Table field | Create the table file with the correct name or correct the Table field |
| Items appear but only one type | Table has only one entry or all entries reference the same asset | Add more entries with different Asset paths |
| Table with multiple entries always selects the same item | Weight values are highly imbalanced (one entry has 99% of the total weight) | Redistribute weights so the highest-weight entry does not dominate |
| Zombie loot table produces no drops | Zombie Loot Index is set to 0 | Increase Zombie Loot Index to at least 128 |
| Table worked before a game update but now produces nothing | Game update changed the vanilla table structure and the map relied on inheritance | Copy the affected table into the map's Level/Spawns/ folder and update references |
| Items spawn but are invisible or pink | The Asset path in the table references a non-existent or unloaded bundle | Confirm the bundle is loaded and the Asset path is correct |
Frequently asked questions
What is the difference between a spawn table and a spawn point?
A spawn table defines the probability distribution of what can appear. A spawn point is a position or region in the map that references a spawn table and controls where the selected entity appears and how quickly it respawns. Multiple spawn points can reference the same spawn table.
Why is my spawn table producing no loot?
The most likely causes are: the file is not in the correct Level/Spawns/ folder, the file name referenced in the Level Editor does not match the actual file name (case-sensitive), or every Table block is missing either Asset or Spawn. Verify the file path and the spawn table contents before debugging further.
Can I use decimal weights like 0.5 or 1.5?
The engine parses weights as integers. Decimal values are truncated to their integer floor. A weight of 0 means the entry is never selected. Use whole-number weights only.
How do I make one specific item guaranteed to appear in every refresh?
Use a single-entry table with one Asset field and set the spawn point's Min Count and Max Count both to 1. When a table has only one entry, that entry is always selected. This pattern is common for quest-critical items.
Can different floors of the same building use different spawn tables?
Yes. Each item spawn point independently references a spawn table. Two spawn points on different floors can reference different tables. A hospital's first floor can use a standard medical table while the storage room uses a higher-tier medical table.
My zombie loot drops are too frequent. How do I reduce the drop rate?
Reduce the Zombie Loot Index setting on the zombie region. An index of 255 produces near-guaranteed drops. An index of 64 produces drops approximately 25% of the time. Reduce the index in steps of 20 and test over a 1-hour session.
What happens if two overlapping regions reference different tables and I place a spawn point in the overlap?
The spawn point uses the table from the highest-priority region. If both regions have the same priority, behavior is implementation-defined and the engine may use either. The 57 Studios recommendation is to never have two same-priority regions overlap; always assign distinct priorities.
Can I change spawn tables after the map is published?
Yes. Spawn table files are read at map load, not baked into the map bundle. Updating the spawn table files and redistributing the map folder takes effect on the next server restart. Item spawn points reference tables by name at runtime.
How does the engine handle a spawn table that references a non-existent nested table?
The engine skips the entry that references the missing table. The remaining entries in the parent table are reweighted proportionally. This can produce unexpected loot distributions. The cohort recommendation is to validate all nested table references by loading the map in single-player before publishing.
What is the maximum number of entries in a single spawn table?
The engine does not document a hard entry limit, but performance degrades as tables grow large. The 57 Studios practical limit is 50 entries per table file. Tables with more than 50 entries should be reorganized into a two-tier structure with nested sub-tables.
Can animal spawn tables reference zombie types, or vice versa?
No. The top-level key determines the spawn type context. An Asset path inside a Spawn_Animals block must reference an animal .dat file. Referencing a zombie .dat from an animal table context produces a load error and the entry is skipped.
Best practices
- Author all spawn tables in the map's own
Level/Spawns/folder. Do not rely on vanilla inheritance. - Use the tier system (Tier1, Tier2, Tier3) for item tables. A flat table with no tier hierarchy produces less interesting loot distribution.
- Keep Tier3 weight at or below 15 for standard survival maps. Higher values flood the server with military gear.
- Maintain at least three entries per leaf table. A table with one entry defeats the purpose of weighted selection.
- Author dedicated zombie loot tables for each region. Do not assign the region's item table as the zombie loot table.
- Use GUID-based linking for spawn table entries that reference custom assets. Legacy ID-based linking is deprecated.
- Validate all nested table references by loading the map in single-player and checking loot containers.
- Test weight distributions by spawning each table multiple times and recording the observed frequencies against the expected probabilities.
- Keep hierarchy depth to 4 levels or fewer (root, region, tier, item). Deeper hierarchies are harder to maintain.
- Remove zero-weight entries from table files. Zero-weight entries are never selected and create confusion during review.
Advanced considerations
Spawn table performance at scale
When a map has thousands of spawn points and a deep spawn table hierarchy, the cumulative time for weight summation and child selection can become measurable on server tick performance. The 57 Studios cohort recommendation for large maps is to flatten the spawn table hierarchy where possible, moving from a deep tree structure to a wider, shallower structure. A table with 20 children at a single level is processed faster than a table with 5 children at 3 levels of depth.
Dynamic spawn table swapping through server plugins
The base spawn table system does not support dynamic swapping at runtime. Server operators who want to change spawn tables without restarting the server must use an OpenMod or Rocket plugin that intercepts the spawn selection logic. The plugin approach is more flexible but requires C# scripting expertise and is outside the scope of the base spawn table format.
Spawn tables and the curated maps program
Curated maps that use custom spawn tables should follow the same weight distribution patterns that official maps use. SDG reviewers may flag spawn tables with extreme weight disparities as balance concerns. The 57 Studios cohort recommendation is to keep the weight ratio between the most common and rarest item in any spawn table within a factor of 100:1.
GUID vs legacy ID migration
If a map was started before the GUID-based system was adopted, its spawn tables may use legacy asset IDs. The 57 Studios cohort recommendation is to migrate to GUID-based references during a planned maintenance window. The migration involves replacing each Asset field that uses a legacy ID with a Guid field that references the target asset's GUID.
Appendix A: Spawn table field reference
| Field | Required | Type | Purpose |
|---|---|---|---|
Spawn_Items | Yes (item tables) | block | Top-level key for an item spawn table |
Spawn_Zombies | Yes (zombie tables) | block | Top-level key for a zombie spawn table |
Spawn_Animals | Yes (animal tables) | block | Top-level key for an animal spawn table |
Spawn_Vehicles | Yes (vehicle tables) | block | Top-level key for a vehicle spawn table |
Table | Yes | block | One entry in the table |
Asset | Yes (leaf entries) | path | Path to an item, zombie, animal, or vehicle .dat file |
Spawn | Yes (nested entries) | string | Name of a nested spawn table file (without extension) |
Weight | Yes | integer | Selection weight for this entry; must be positive |
Guid | Yes (structured format) | uint128 | GUID of the asset or child spawn table |
LegacySpawnId | No | uint16 | Legacy ID of a child spawn table (structured format) |
LegacyAssetId | No | uint16 | Legacy ID of the asset (structured format) |
Appendix B: Spawn table diagnostic table
| Symptom | Most likely cause | Resolution |
|---|---|---|
| Item never spawns | Total weight is zero or GUID incorrect | Verify Weight sum is positive; confirm GUID matches the target asset |
| Wrong item spawns | Incorrect GUID or legacy ID | Verify GUID in the entry matches the intended asset |
| Spawn table not found in game | Root not attached or root GUID incorrect | Verify Roots section GUID points to an existing parent table |
| Table was working, stopped after update | Game update changed vanilla table structure | Copy affected table into map's Level/Spawns/ and update references |
| Item spawns too frequently | Weight value too high relative to peers | Reduce weight to match comparable items in the table |
| IsOverride eliminates all official loot | IsOverride set to true on a root entry | Change to false or remove the flag |
| Entry never selected despite having weight | Entry weight is zero (truncated from decimal) | Use whole-number weights only |
| Spawn table produces items but wrong type | Top-level key does not match spawn type | Confirm Spawn_Items, Spawn_Zombies, Spawn_Animals, or Spawn_Vehicles |
Appendix C: Tier weight calibration presets
| Map archetype | Tier1 | Tier2 | Tier3 | Notes |
|---|---|---|---|---|
| Hardcore survival | 70 | 25 | 5 | Adjust Tier3 down if military gear is found in first hour |
| Standard survival | 60 | 30 | 10 | Baseline for most maps |
| Action-oriented | 50 | 35 | 15 | Expect faster player gearing |
| PvE | 55 | 30 | 15 | Slightly more loot to offset AI difficulty |
| Creative | 40 | 30 | 30 | Resources abundant; survival pressure low |
Cross-references
- Spawn Point Placement - the previous article in this series; covers placing the spawn points that reference the tables authored in this article.
- Level Config and Settings - the next article; covers Config.json fields for spawn loadouts and arena mode that reference spawn tables.
- Spawn Tables - the spawn table system overview with weighted selection and tier system.
- Spawn Table Format Reference - the complete spawn table
.datformat reference with flat and structured syntax. - Navmesh Generation and Editing - covers navmesh compatibility for zombie spawn regions that use the tables authored here.
- Local Map Testing - the testing procedure that validates spawn table behavior in single-player.
- Smartly Dressed Games Modding Documentation - the official spawn assets documentation.
- Unturned on Steam - the base game and community hub.
Document history
| Version | Date | Author | Notes |
|---|---|---|---|
| 1.0 | 2026-07-26 | 57 Studios | Initial publication. Complete spawn table and loot config guide with weighted selection, tier system, inheritance, map-specific tables, and diagnostic procedures. |
