Zone Facts
Living page. Every number below is derived from the chronicle’s own spawn files and NPC stats. The zones listed are the ones that have been derived so far — not the whole world. See Coverage.
Where to hunt at a given level, what you’ll meet there, and whether you want a party.
The short version
- Level (median) is the middle of what spawns there, measured from the spawn file.
- Range is the real spread. A wide range means the zone is not uniform.
- Shape says how mobs are packed:
field,group, orroom. - Mobs per pull is the mean monster count per spawn territory — the practical “how many come at once.”
How the level band is derived
For each zone the deriver reads the spawn file, resolves every NPC id against the chronicle’s stat XML, and takes the median, minimum and maximum of the mobs placed there.
A zone whose range is much wider than its median is telling you something real: the Forbidden Gateway spans levels 42–65 around a median of 63, so the low end is a fringe, not the zone.
Shape — field, group, or room
Shape is inferred from how densely mobs pack into each spawn territory, which the spawn file records directly:
| Shape | Mean mobs per territory | What it feels like |
|---|---|---|
field |
under 3 | Singles and pairs scattered thin — you pick your fights |
group |
3 to 7 | Clusters; a pull brings friends |
room |
over 7 | Enclosed territories packed with several types at once |
Every figure here is measured from the spawn data.
⚠️ Shape is about packing, not aggression. A dense room of passive mobs is calmer than a sparse
field of aggressive clan mobs. Whether a pull brings the whole clan depends on the mobs’ social
attributes — see Party Composition, which covers how that decides party size.
Zone facts
Every row is derived from the chronicle’s own spawn files and NPC stats — the level band is the median and range of the mobs spawned there. Shape comes from how densely mobs pack into each spawn territory: a field scatters singles and pairs, a room packs many types into one enclosed territory. Mobs per pull is the mean monster count per territory.
| Zone | Level (median) | Range | Shape | Mobs per pull | Spawns | Distinct mobs |
|---|---|---|---|---|---|---|
| Execution Grounds (Dion) | 30 | 20–35 | group | 5.7 | 199 | 14 |
| Cruma Marshlands | 31 | 25–35 | room | 18.0 | 414 | 11 |
| Catacomb of the Branded | 45 | 40–51 | group | 6.0 | 228 | 16 |
| Plains of Glory | 48 | 45–50 | room | 10.8 | 173 | 6 |
| War-Torn Plains | 48 | 45–53 | room | 9.5 | 199 | 8 |
| Fields of Massacre | 60 | 55–65 | room | 13.6 | 477 | 12 |
| Giant’s Cave | 62 | 55–65 | room | 10.6 | 605 | 14 |
| Forbidden Gateway | 63 | 42–65 | room | 9.5 | 162 | 7 |
| Catacomb of the Witch | 66 | 60–72 | group | 6.0 | 224 | 19 |
| Tower of Insolence | 67 | 60–75 | group | 5.3 | 487 | 36 |
| Blazing Swamp | 71 | 65–75 | group | 6.8 | 402 | 12 |
| Catacomb of Dark Omens | 76 | 72–80 | group | 6.1 | 176 | 12 |
| Silent Valley | 77 | 74–79 | room | 10.0 | 40 | 3 |
Coverage — what this page does not cover
These are the zones derived so far, not a map of the world. A zone missing here is not a zone that doesn’t exist — it means no derivation has been run against its spawn file yet.
Two limits worth knowing:
| Limit | What it means for you |
|---|---|
| Zone coverage is partial | Most of the world’s geodata tiles are unbaked, so absence here proves nothing. |
| Names collide in the datapack | “Execution Grounds” exists twice. Each row is pinned to a specific spawn file, which is why the Dion one is named as such. |
Under the hood
How a row is built
For each zone the deriver walks the chronicle’s own files:
- Read the spawn file for that zone and collect every spawn territory.
- Resolve each NPC id against the chronicle’s stat XML to get real levels.
- Take the median, minimum and maximum across the mobs placed there.
- Count mobs per territory to classify the shape as field, group or room.
Nothing in that chain consults a zone name or a label written by hand, so a row can disagree with a name you expect.
Where this comes from
- Design:
docs/design/party-comp-intelligence.md. - Generator:
scripts/combat/derive_zone_facts.pyreads the datapack’s spawn files and NPC stats directly and rebuilds the tables above on every wiki build. - Related model: party size is decided from these facts plus gear — see Party Composition.
Related
- Tower of Insolence — one zone in full, floor by floor
- Party Composition — how the party for a zone gets assembled
- Smart Roam — how a party decides to move somewhere better
Derived by scripts/combat/derive_zone_facts.py from the chronicle’s spawns/ and stats/npcs/ XML.
The generated block rebuilds every wiki build, per chronicle. Design:
docs/design/party-comp-intelligence.md.