Design config reference
A design is a JSON document that createDungeon and createDungeonMaker accept next to the legacy design text. This page lists every field with its type, its limits and the upstream record of DungeonMaker 2.05 it maps to. The coordinate convention is the one from Orientation: x is the column, y the row, north is up. For the ideas behind the sections, read Design concepts.
Point your editor at the schema to get completion and hover texts:
{ "$schema": "./node_modules/dungeonmaker-js/design.schema.json" }The same schema ships in the package as dungeonmaker-js/design.schema.json. The $schema key is ignored by the parser. To check a design in code use validateDesign from dungeonmaker-js/schema; on the command line use dungeonmaker-js validate. Both run the same semantic checks as the generator, so a design that validates also generates.
Fields marked optional can be left out; the Default column says what that means.
$schema
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
$schema | string | optional (omitted: ignored) | JSON Schema URL for editor support; ignored by the parser. |
map
Map dimensions and basic joining behaviour.
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
map | object | required | Map dimensions and basic joining behaviour. | D | |
map.width | integer | 3 … 4096 | required | Map width in cells (columns). | D dimY |
map.height | integer | 3 … 4096 | required | Map height in cells (rows). | D dimX |
map.background | enum | one of open, closed | required | Initial fill of the map before any builder digs. | D background |
map.joinDistance | integer | 0 … 2147483647 | required | Maximum distance in cells over which open areas are joined. | D joinDist |
map.tunnelJoinDistance | integer | 0 … 2147483647 | required | Maximum distance in cells over which tunnels are joined. | D tunnelJoinDist |
map.openings | enum[] | items: one of N, NE, E, SE, S, SW, W, NW | required | Directions in which the map border is opened; may be empty. | D openings (ends with XX) |
rectangles
Rectangles drawn onto the map before generation, in order; later ones overwrite earlier ones.
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
rectangles | object[] | optional (omitted: no rectangles) | Rectangles drawn onto the map before generation, in order; later ones overwrite earlier ones. | R | |
rectangles[].from | object | required | Top-left corner (inclusive). | R sX sY | |
rectangles[].from.x | integer | 0 … 2147483647 | required | Column, counted from the left edge (0 = leftmost). | R sX sY |
rectangles[].from.y | integer | 0 … 2147483647 | required | Row, counted from the top edge (0 = topmost, north is up). | R sX sY |
rectangles[].to | object | required | Bottom-right corner (inclusive). | R eX eY | |
rectangles[].to.x | integer | 0 … 2147483647 | required | Column, counted from the left edge (0 = leftmost). | R eX eY |
rectangles[].to.y | integer | 0 … 2147483647 | required | Row, counted from the top edge (0 = topmost, north is up). | R eX eY |
rectangles[].cell | enum | one of open, closed, guaranteedOpen, guaranteedClosed, nonJoinOpen, nonJoinClosed, nonJoinGuaranteedOpen, nonJoinGuaranteedClosed, insideRoomOpen, insideTunnelOpen, insideAnteroomOpen, horizontalDoor, verticalDoor, mob1, mob2, mob3, treasure1, treasure2, treasure3, column | required | Cell type the rectangle is filled with. | R type |
spawnDelay
Spawn delay distributions.
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
spawnDelay | object | required | Spawn delay distributions. | BC, BR, BT | |
spawnDelay.crawler | integer[] | 11 items; items: 0 … 100 | required | Eleven percent values, summing to 100: distribution of the delay before crawlers spawn; the index is the delay. | BC |
spawnDelay.roomie | integer[] | 11 items; items: 0 … 100 | required | Eleven percent values, summing to 100: distribution of the delay before room builders spawn. | BR |
spawnDelay.tunneler | integer[] | 11 items; items: 0 … 100 | required | Eleven percent values, summing to 100: distribution of the delay before tunnelers spawn. | BT |
crawlers
Crawler behaviour.
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
crawlers | object | required | Crawler behaviour. | S, C, AC, K, PR, M, N, PT, WS, WP1, WP2 | |
crawlers.stepLength | integer[] | ≥ 1 item; items: 1 … 2147483647 | required | Step length per generation; the index is the generation, beyond the end the last value applies. | S (terminator 0) |
crawlers.corridorWidth | integer[] | ≥ 1 item; items: 1 … 2147483647 | required | Corridor width per generation; beyond the end the last value applies. | C (terminator 0) |
crawlers.maxAge | integer[] | ≥ 1 item; items: 1 … 2147483647 | required | Maximum age per generation; beyond the end the last value applies. | AC (terminator 0) |
crawlers.random | object | required | Randomly seeded crawlers. | K, PR | |
crawlers.random.perThousandWallSquares | integer[] | items: 0 … 98 | required | Randomly seeded crawlers per thousand wall cells, per generation; beyond the end no crawlers are seeded. | K (terminator 99) |
crawlers.random.genes | object | required | Gene set of the randomly seeded crawlers. | PR | |
crawlers.random.genes.straightSingleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns one new builder. | sSSP |
crawlers.random.genes.straightDoubleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns two new builders. | sDSP |
crawlers.random.genes.turnSingleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns one new builder. | tSSP |
crawlers.random.genes.turnDoubleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns two new builders. | tDSP |
crawlers.random.genes.changeDirection | integer | 0 … 100 | required | Percent chance per step that the builder changes direction. | cDP |
crawlers.inTunnels | object | required | Crawlers spawned from tunnels. | M, N, PT | |
crawlers.inTunnels.enabled | boolean | required | Whether tunnelers may spawn crawlers. | M crawlersInTunnels (non-zero = true) | |
crawlers.inTunnels.inAnterooms | boolean | required | Whether crawlers are also seeded in anterooms. | N crawlersInAnterooms | |
crawlers.inTunnels.seedCount | integer | 0 … 2147483647 | required | Number of crawlers seeded in tunnels. | N seedCrawlersInTunnels |
crawlers.inTunnels.generation | integer | -1 … 2147483647 | required | Generation of the tunnel crawlers; -1 means after all other builders. | N tunnelCrawlerGeneration |
crawlers.inTunnels.maxAge | integer | 0 … 2147483647 | required | Maximum age of tunnel crawlers in steps. | PT maxAge |
crawlers.inTunnels.stepLength | integer | 1 … 2147483647 | required | Step length of tunnel crawlers in cells. | PT sL |
crawlers.inTunnels.genes | object | required | Gene set of tunnel crawlers. | PT genes | |
crawlers.inTunnels.genes.straightSingleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns one new builder. | sSSP |
crawlers.inTunnels.genes.straightDoubleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns two new builders. | sDSP |
crawlers.inTunnels.genes.turnSingleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns one new builder. | tSSP |
crawlers.inTunnels.genes.turnDoubleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns two new builders. | tDSP |
crawlers.inTunnels.genes.changeDirection | integer | 0 … 100 | required | Percent chance per step that the builder changes direction. | cDP |
crawlers.inTunnels.closedProbability | integer | 0 … 100 | required | Percent chance that a tunnel crawler digs closed cells. | PT closedProb |
crawlers.seeds | object[] | optional (omitted: none) | Explicitly placed crawlers. | WS | |
crawlers.seeds[].location | object | required | Start cell of the crawler. | WS locX locY | |
crawlers.seeds[].location.x | integer | 0 … 2147483647 | required | Column, counted from the left edge (0 = leftmost). | WS locX locY |
crawlers.seeds[].location.y | integer | 0 … 2147483647 | required | Row, counted from the top edge (0 = topmost, north is up). | WS locX locY |
crawlers.seeds[].direction | enum | one of N, E, S, W | required | Initial heading of the crawler. | WS dir |
crawlers.seeds[].intendedDirection | enum | string | one of N, NE, E, SE, S, SW, W, NW; = "any" | required | Direction the crawler prefers to travel to, or "any" for none. | WS intDir (XX = any) |
crawlers.seeds[].dormancy | integer | 0 … 2147483647 | required | Number of steps the crawler waits before it starts to dig. | WS dorm |
crawlers.seeds[].maxAge | integer | 0 … 2147483647 | required | Number of steps after which the crawler dies. | WS maxAge |
crawlers.seeds[].generation | integer | 0 … 2147483647 | required | Generation of the crawler; indexes the per-generation lists (stepLength, corridorWidth, maxAge, random). | WS gen |
crawlers.seeds[].stepLength | integer | 1 … 2147483647 | required | Length of one straight run in cells. | WS sL |
crawlers.seeds[].corridorWidth | integer | 1 … 2147483647 | required | Number of cells the crawler leaves open between the cells it fills and those already filled; at least 1. | WS cW |
crawlers.seeds[].genes | object | required | Gene set the crawler hands down to its offspring. | WS genes | |
crawlers.seeds[].genes.straightSingleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns one new builder. | sSSP |
crawlers.seeds[].genes.straightDoubleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns two new builders. | sDSP |
crawlers.seeds[].genes.turnSingleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns one new builder. | tSSP |
crawlers.seeds[].genes.turnDoubleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns two new builders. | tDSP |
crawlers.seeds[].genes.changeDirection | integer | 0 … 100 | required | Percent chance per step that the builder changes direction. | cDP |
crawlers.seeds[].open | boolean | required | true: the crawler always leaves an opening at the end of its run; false: it tries to connect its wall to an existing closed cell. | WS op | |
crawlers.pairs | object[] | optional (omitted: none) | Explicitly placed pairs of crawlers that start together. | WP1, WP2 | |
crawlers.pairs[].first | object | required | First crawler of the pair. | WP1 | |
crawlers.pairs[].first.location | object | required | Start cell of the crawler. | WS locX locY | |
crawlers.pairs[].first.location.x | integer | 0 … 2147483647 | required | Column, counted from the left edge (0 = leftmost). | WS locX locY |
crawlers.pairs[].first.location.y | integer | 0 … 2147483647 | required | Row, counted from the top edge (0 = topmost, north is up). | WS locX locY |
crawlers.pairs[].first.direction | enum | one of N, E, S, W | required | Initial heading of the crawler. | WS dir |
crawlers.pairs[].first.intendedDirection | enum | string | one of N, NE, E, SE, S, SW, W, NW; = "any" | required | Direction the crawler prefers to travel to, or "any" for none. | WS intDir (XX = any) |
crawlers.pairs[].first.dormancy | integer | 0 … 2147483647 | required | Number of steps the crawler waits before it starts to dig. | WS dorm |
crawlers.pairs[].first.maxAge | integer | 0 … 2147483647 | required | Number of steps after which the crawler dies. | WS maxAge |
crawlers.pairs[].first.generation | integer | 0 … 2147483647 | required | Generation of the crawler; indexes the per-generation lists (stepLength, corridorWidth, maxAge, random). | WS gen |
crawlers.pairs[].first.stepLength | integer | 1 … 2147483647 | required | Length of one straight run in cells. | WS sL |
crawlers.pairs[].first.corridorWidth | integer | 1 … 2147483647 | required | Number of cells the crawler leaves open between the cells it fills and those already filled; at least 1. | WS cW |
crawlers.pairs[].first.genes | object | required | Gene set the crawler hands down to its offspring. | WS genes | |
crawlers.pairs[].first.genes.straightSingleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns one new builder. | sSSP |
crawlers.pairs[].first.genes.straightDoubleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns two new builders. | sDSP |
crawlers.pairs[].first.genes.turnSingleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns one new builder. | tSSP |
crawlers.pairs[].first.genes.turnDoubleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns two new builders. | tDSP |
crawlers.pairs[].first.genes.changeDirection | integer | 0 … 100 | required | Percent chance per step that the builder changes direction. | cDP |
crawlers.pairs[].second | object | required | Second crawler of the pair. | WP2 | |
crawlers.pairs[].second.location | object | required | Start cell of the crawler. | WS locX locY | |
crawlers.pairs[].second.location.x | integer | 0 … 2147483647 | required | Column, counted from the left edge (0 = leftmost). | WS locX locY |
crawlers.pairs[].second.location.y | integer | 0 … 2147483647 | required | Row, counted from the top edge (0 = topmost, north is up). | WS locX locY |
crawlers.pairs[].second.direction | enum | one of N, E, S, W | required | Initial heading of the crawler. | WS dir |
crawlers.pairs[].second.intendedDirection | enum | string | one of N, NE, E, SE, S, SW, W, NW; = "any" | required | Direction the crawler prefers to travel to, or "any" for none. | WS intDir (XX = any) |
crawlers.pairs[].second.dormancy | integer | 0 … 2147483647 | required | Number of steps the crawler waits before it starts to dig. | WS dorm |
crawlers.pairs[].second.maxAge | integer | 0 … 2147483647 | required | Number of steps after which the crawler dies. | WS maxAge |
crawlers.pairs[].second.generation | integer | 0 … 2147483647 | required | Generation of the crawler; indexes the per-generation lists (stepLength, corridorWidth, maxAge, random). | WS gen |
crawlers.pairs[].second.stepLength | integer | 1 … 2147483647 | required | Length of one straight run in cells. | WS sL |
crawlers.pairs[].second.corridorWidth | integer | 1 … 2147483647 | required | Number of cells the crawler leaves open between the cells it fills and those already filled; at least 1. | WS cW |
crawlers.pairs[].second.genes | object | required | Gene set the crawler hands down to its offspring. | WS genes | |
crawlers.pairs[].second.genes.straightSingleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns one new builder. | sSSP |
crawlers.pairs[].second.genes.straightDoubleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns two new builders. | sDSP |
crawlers.pairs[].second.genes.turnSingleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns one new builder. | tSSP |
crawlers.pairs[].second.genes.turnDoubleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns two new builders. | tDSP |
crawlers.pairs[].second.genes.changeDirection | integer | 0 … 100 | required | Percent chance per step that the builder changes direction. | cDP |
tunnelers
Tunneler behaviour.
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
tunnelers | object | required | Tunneler behaviour. | ZU, ZD, F, J, AT, M, PU, U | |
tunnelers.sizeUpProbability | integer[] | ≥ 1 item; items: 0 … 100 | required | Percent chance that the offspring of a tunneler gets a tunnel one cell wider, per generation of the parent; beyond the end the last value applies. Per generation, sizeUpProbability + sizeDownProbability must not exceed 100. | ZU (terminator -1) |
tunnelers.sizeDownProbability | integer[] | ≥ 1 item; items: 0 … 100 | required | Percent chance that the offspring of a tunneler gets a tunnel one cell narrower, per generation of the parent; beyond the end the last value applies. | ZD (terminator -1) |
tunnelers.anteroomProbability | integer[] | items: 0 … 99 | required | Percent chance of an anteroom per tunnel width; beyond the end the value is 100. | F (terminator 100) |
tunnelers.joinPreference | integer[] | ≥ 1 item; items: 0 … 100 | required | Preference to join existing areas, per generation. DungeonMaker 2.05 reads this list but never uses it (GetJoinPref has no caller); it only has to be non-empty. | J (terminator -1) |
tunnelers.maxAge | integer[] | ≥ 1 item; items: 1 … 2147483647 | required | Maximum age per generation; beyond the end the last value applies. | AT (terminator 0) |
tunnelers.sizeUpGenerationDelay | integer | 0 … 2147483647 | required | Generational delay for tunneler offspring that are wider than their parents; overrides the normal delay of spawnDelay.tunneler. | M sizeUpGenDelay |
tunnelers.columns | boolean | required | Whether tunnels get columns. | M columnsInTunnels (non-zero = true) | |
tunnelers.anteroomGenerationSpeedUp | integer | 1 … 2147483647 | required | Generation speed-up when a tunneler makes an anteroom. | M genSpeedUpOnAnteRoom |
tunnelers.lastChance | object | required | Last-chance tunnelers that clean up unreached areas. | PU | |
tunnelers.lastChance.makeRoomsLeft | integer | 0 … 100 | required | Percent chance to make a room on the left. | PU, 1st value |
tunnelers.lastChance.makeRoomsRight | integer | 0 … 100 | required | Percent chance to make a room on the right. | PU, 2nd value |
tunnelers.lastChance.changeDirection | integer | 0 … 100 | required | Percent chance to change direction. | PU, 3rd value |
tunnelers.lastChance.straightDoubleSpawn | integer | 0 … 100 | required | Percent chance of a double spawn on a straight step. | PU, 4th value |
tunnelers.lastChance.turnDoubleSpawn | integer | 0 … 100 | required | Percent chance of a double spawn on a turn. | PU, 5th value |
tunnelers.lastChance.generationDelay | integer | 1 … 2147483647 | required | Generation delay of the last-chance tunnelers. | PU, 6th value |
tunnelers.seeds | object[] | optional (omitted: none) | Explicitly placed tunnelers. | U | |
tunnelers.seeds[].location | object | required | Start cell of the tunneler. | U locX locY | |
tunnelers.seeds[].location.x | integer | 0 … 2147483647 | required | Column, counted from the left edge (0 = leftmost). | U locX locY |
tunnelers.seeds[].location.y | integer | 0 … 2147483647 | required | Row, counted from the top edge (0 = topmost, north is up). | U locX locY |
tunnelers.seeds[].direction | enum | one of N, E, S, W | required | Initial heading of the tunneler. | U dir |
tunnelers.seeds[].intendedDirection | enum | one of N, NE, E, SE, S, SW, W, NW | required | Direction the tunneler prefers to travel to. | U intDir |
tunnelers.seeds[].dormancy | integer | 0 … 2147483647 | required | Number of steps the tunneler waits before it starts to dig. | U dorm |
tunnelers.seeds[].maxAge | integer | 0 … 2147483647 | required | Number of steps after which the tunneler dies. | U maxAge |
tunnelers.seeds[].generation | integer | 0 … 2147483647 | required | Generation of the tunneler. | U gen |
tunnelers.seeds[].stepLength | integer | 1 … 2147483647 | required | Length of one straight run in cells. | U sL |
tunnelers.seeds[].tunnelWidth | integer | 0 … 2147483647 | required | Width of the tunnel in cells; indexes the per-width lists. | U tW |
tunnelers.seeds[].genes | object | required | Inheritable behaviour of a tunneler. | U | |
tunnelers.seeds[].genes.straightDoubleSpawn | integer | 0 … 100 | required | Percent chance per step that a straight step spawns two tunnelers. | sDSP |
tunnelers.seeds[].genes.turnDoubleSpawn | integer | 0 … 100 | required | Percent chance that a turn spawns two tunnelers. | tDSP |
tunnelers.seeds[].genes.changeDirection | integer | 0 … 100 | required | Percent chance per step that the tunneler changes direction. | cDP |
tunnelers.seeds[].genes.makeRoomsRight | integer | 0 … 100 | required | Percent chance per step that a room is made on the right side. | mRRP |
tunnelers.seeds[].genes.makeRoomsLeft | integer | 0 … 100 | required | Percent chance per step that a room is made on the left side. | mRLP |
tunnelers.seeds[].genes.joinPreference | integer | 0 … 100 | required | Percent preference to join existing open areas. | jP |
rooms
Room generation.
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
rooms | object | required | Room generation. | T, GS, GB, M | |
rooms.size | object | required | Room edge lengths. | T 1-4 | |
rooms.size.min | integer | 0 … 2147483647 | required | Smallest room edge length in cells. | T 1st value |
rooms.size.medium | integer | 0 … 2147483647 | required | Medium room edge length in cells. | T 2nd value |
rooms.size.large | integer | 0 … 2147483647 | required | Large room edge length in cells. | T 3rd value |
rooms.size.max | integer | 0 … 2147483647 | required | Largest room edge length in cells. | T 4th value |
rooms.count | object | required | Number of rooms per size. | T 5-10 | |
rooms.count.labyrinth | object | required | Rooms of the labyrinth. | T 5-7 | |
rooms.count.labyrinth.small | integer | 0 … 2147483647 | required | Number of small rooms. | T 5-7 |
rooms.count.labyrinth.medium | integer | 0 … 2147483647 | required | Number of medium rooms. | T 5-7 |
rooms.count.labyrinth.large | integer | 0 … 2147483647 | required | Number of large rooms. | T 5-7 |
rooms.count.dungeon | object | required | Rooms of the dungeon. | T 8-10 | |
rooms.count.dungeon.small | integer | 0 … 2147483647 | required | Number of small rooms. | T 8-10 |
rooms.count.dungeon.medium | integer | 0 … 2147483647 | required | Number of medium rooms. | T 8-10 |
rooms.count.dungeon.large | integer | 0 … 2147483647 | required | Number of large rooms. | T 8-10 |
rooms.sizeProbability | object | required | Room size distributions. | GS, GB | |
rooms.sizeProbability.sideways | object[] | required | Room size distribution for rooms beside a tunnel, per tunnel width; beyond the end every room is large (0/0/100). | GS (terminator 0 0 100) | |
rooms.sizeProbability.sideways[].small | integer | 0 … 100 | required | Percent chance of a small room. | GS (terminator 0 0 100) |
rooms.sizeProbability.sideways[].medium | integer | 0 … 100 | required | Percent chance of a medium room. | GS (terminator 0 0 100) |
rooms.sizeProbability.sideways[].large | integer | 0 … 99 | required | Percent chance of a large room; at most 99, because the list terminator (0 0 100) must stay unambiguous. | GS (terminator 0 0 100) |
rooms.sizeProbability.branching | object[] | required | Room size distribution for rooms at a tunnel branch, per tunnel width; beyond the end every room is large (0/0/100). | GB (terminator 0 0 100) | |
rooms.sizeProbability.branching[].small | integer | 0 … 100 | required | Percent chance of a small room. | GB (terminator 0 0 100) |
rooms.sizeProbability.branching[].medium | integer | 0 … 100 | required | Percent chance of a medium room. | GB (terminator 0 0 100) |
rooms.sizeProbability.branching[].large | integer | 0 … 99 | required | Percent chance of a large room; at most 99, because the list terminator (0 0 100) must stay unambiguous. | GB (terminator 0 0 100) |
rooms.aspectRatio | number | ≥ 2.2250738585072014e-308, < 1 | required | Ratio of the short to the long room edge, between 0 and 1 exclusive; the lower bound is the smallest normal double, because the design text cannot carry a subnormal number. | M roomAspectRatio |
behaviour
General builder behaviour.
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
behaviour | object | required | General builder behaviour. | M | |
behaviour.mutator | integer | 0 … 2147483647 | required | Mutation strength applied to inherited genes. | M mutator |
behaviour.patience | integer | 0 … 2147483647 | required | How reluctantly tunnelers build rooms when they spawn twice: a room is spawned only when a roll of 0 … 100 exceeds this value, so 0 builds rooms at almost every chance and 100 or more never. Higher values build rooms later or not at all. | M patience |
behaviour.noHeadingProbability | integer | 0 … 100 | required | Percent chance that a builder ignores its intended direction. | M noHeadingProb |
population
Entity placement; parsed and serialized, effective only with entity output.
| Field | Type | Constraints | Default | Description | Upstream |
|---|---|---|---|---|---|
population | object | optional (omitted: no entities) | Entity placement; parsed and serialized, effective only with entity output. | ||
population.mobs | object | required | Mob placement. | ||
population.mobs.labyrinth | object | required | Mobs of the labyrinth. | ||
population.mobs.labyrinth.rooms | object | required | Mob groups placed in rooms of the labyrinth. | E1 | |
population.mobs.labyrinth.rooms.groupSize | integer | 0 … 2147483647 | required | Base number of entities per group. | groupSize |
population.mobs.labyrinth.rooms.groupSizeVariance | integer | 0 … 2147483647 | required | Random variance added to the group size. | groupSizeVariance |
population.mobs.labyrinth.rooms.byLevel | integer[] | items: 0 … 2147483647 | required | Group count per dungeon level; the index is the level. The serializer appends the terminator -1. | trailing list |
population.mobs.labyrinth.open | object | required | Mobs in open areas of the labyrinth. | E2 | |
population.mobs.labyrinth.open.byLevel | integer[] | items: 0 … 2147483647 | required | Mobs in open labyrinth areas per dungeon level; the index is the level. | E2 list |
population.mobs.dungeon | object | required | Mobs of the dungeon. | ||
population.mobs.dungeon.rooms | object | required | Mob groups placed in rooms of the dungeon. | H1 | |
population.mobs.dungeon.rooms.groupSize | integer | 0 … 2147483647 | required | Base number of entities per group. | groupSize |
population.mobs.dungeon.rooms.groupSizeVariance | integer | 0 … 2147483647 | required | Random variance added to the group size. | groupSizeVariance |
population.mobs.dungeon.rooms.byLevel | integer[] | items: 0 … 2147483647 | required | Group count per dungeon level; the index is the level. The serializer appends the terminator -1. | trailing list |
population.mobs.dungeon.open | object | required | Mobs in open areas of the dungeon. | H2 | |
population.mobs.dungeon.open.anteroomProbability | integer | 0 … 100 | required | Percent chance that a mob is placed in an anteroom. | H2 first value |
population.mobs.dungeon.open.byLevel | integer[] | items: 0 … 2147483647 | required | Mobs in open dungeon areas per dungeon level; the index is the level. | H2 list |
population.treasure | object | required | Treasure placement. | ||
population.treasure.labyrinth | object | required | Treasure groups of the labyrinth. | I1 | |
population.treasure.labyrinth.groupSize | integer | 0 … 2147483647 | required | Base number of entities per group. | groupSize |
population.treasure.labyrinth.groupSizeVariance | integer | 0 … 2147483647 | required | Random variance added to the group size. | groupSizeVariance |
population.treasure.labyrinth.byLevel | integer[] | items: 0 … 2147483647 | required | Group count per dungeon level; the index is the level. The serializer appends the terminator -1. | trailing list |
population.treasure.dungeon | object | required | Treasure groups of the dungeon. | I2 | |
population.treasure.dungeon.groupSize | integer | 0 … 2147483647 | required | Base number of entities per group. | groupSize |
population.treasure.dungeon.groupSizeVariance | integer | 0 … 2147483647 | required | Random variance added to the group size. | groupSizeVariance |
population.treasure.dungeon.byLevel | integer[] | items: 0 … 2147483647 | required | Group count per dungeon level; the index is the level. The serializer appends the terminator -1. | trailing list |
