Skip to content

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.

Spawn table files in the map's Level/Spawns folder open in Notepad++ alongside the Level Editor

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 .dat files. The 57 Studios™ recommendation is Notepad++.
  • Familiarity with the .dat file 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 .dat files 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
EntryWeightProbability
Entry A6060/100 = 60%
Entry B3030/100 = 30%
Entry C1010/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.json

Table 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 archetypeTier1 weightTier2 weightTier3 weightNotes
Hardcore survival70255Severe scarcity; military gear is a rare event
Standard survival603010Balanced for 2-4 hour session length
Action-oriented503515Faster gearing; suitable for combat-focused servers
PvE / cooperative553015Slightly more military gear to offset AI difficulty
Creative / building403030Resources 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 gearMap economy status
5-102-4 hoursHealthy scarcity
10-151-2 hoursMarginal
15-2030-60 minutesEconomy degraded
20+Under 30 minutesEconomy 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

  1. Select the spawn point in the Level Editor's level view.
  2. In the spawn point inspector, locate the Table field.
  3. Type the spawn table file name (without the .dat extension) into the field.
  4. The file name is case-sensitive. Item_Military.dat and item_military.dat are different files.
  5. 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:

  1. Confirming that every spawn point has a non-empty Table field. Spawn points with an empty Table field produce nothing.
  2. 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.
  3. 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

LocationPriorityBest for
Maps/YourMap/Level/Spawns/HighestCustom tables specific to this map
Bundles/Spawns/Items/ (vanilla fallback)FallbackReusing 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 patternExamplePurpose
{Type}_{Region}_{Variant}Item_Military_Tier3Region-specific tiered table
{Type}_{Location}Animal_ForestLocation-specific animal table
{Type}_{Category}Vehicle_RoadCategory-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 themeItem tableZombie tableVehicle table
Military baseItem_Military (3 tiers)Zombie_MilitaryVehicle_Military
City centerItem_City (3 tiers)Zombie_CityVehicle_Road
ResidentialItem_Residential (2 tiers)Zombie_CityVehicle_Road
ForestItem_Forest (2 tiers)(none)Vehicle_Offroad
HospitalItem_Medical (2 tiers)Zombie_City(none)
FarmItem_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.dat

The 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

SymptomMost likely causeResolution
No items appear at any spawn point referencing a tableTable file does not exist in Level/Spawns/ or the file name does not match the Table fieldCreate the table file with the correct name or correct the Table field
Items appear but only one typeTable has only one entry or all entries reference the same assetAdd more entries with different Asset paths
Table with multiple entries always selects the same itemWeight 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 dropsZombie Loot Index is set to 0Increase Zombie Loot Index to at least 128
Table worked before a game update but now produces nothingGame update changed the vanilla table structure and the map relied on inheritanceCopy the affected table into the map's Level/Spawns/ folder and update references
Items spawn but are invisible or pinkThe Asset path in the table references a non-existent or unloaded bundleConfirm 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

FieldRequiredTypePurpose
Spawn_ItemsYes (item tables)blockTop-level key for an item spawn table
Spawn_ZombiesYes (zombie tables)blockTop-level key for a zombie spawn table
Spawn_AnimalsYes (animal tables)blockTop-level key for an animal spawn table
Spawn_VehiclesYes (vehicle tables)blockTop-level key for a vehicle spawn table
TableYesblockOne entry in the table
AssetYes (leaf entries)pathPath to an item, zombie, animal, or vehicle .dat file
SpawnYes (nested entries)stringName of a nested spawn table file (without extension)
WeightYesintegerSelection weight for this entry; must be positive
GuidYes (structured format)uint128GUID of the asset or child spawn table
LegacySpawnIdNouint16Legacy ID of a child spawn table (structured format)
LegacyAssetIdNouint16Legacy ID of the asset (structured format)

Appendix B: Spawn table diagnostic table

SymptomMost likely causeResolution
Item never spawnsTotal weight is zero or GUID incorrectVerify Weight sum is positive; confirm GUID matches the target asset
Wrong item spawnsIncorrect GUID or legacy IDVerify GUID in the entry matches the intended asset
Spawn table not found in gameRoot not attached or root GUID incorrectVerify Roots section GUID points to an existing parent table
Table was working, stopped after updateGame update changed vanilla table structureCopy affected table into map's Level/Spawns/ and update references
Item spawns too frequentlyWeight value too high relative to peersReduce weight to match comparable items in the table
IsOverride eliminates all official lootIsOverride set to true on a root entryChange to false or remove the flag
Entry never selected despite having weightEntry weight is zero (truncated from decimal)Use whole-number weights only
Spawn table produces items but wrong typeTop-level key does not match spawn typeConfirm Spawn_Items, Spawn_Zombies, Spawn_Animals, or Spawn_Vehicles

Appendix C: Tier weight calibration presets

Map archetypeTier1Tier2Tier3Notes
Hardcore survival70255Adjust Tier3 down if military gear is found in first hour
Standard survival603010Baseline for most maps
Action-oriented503515Expect faster player gearing
PvE553015Slightly more loot to offset AI difficulty
Creative403030Resources abundant; survival pressure low

Cross-references

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete spawn table and loot config guide with weighted selection, tier system, inheritance, map-specific tables, and diagnostic procedures.