Skip to content

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:

json
{ "$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 ​

FieldTypeConstraintsDefaultDescriptionUpstream
$schemastringoptional (omitted: ignored)JSON Schema URL for editor support; ignored by the parser.

map ​

Map dimensions and basic joining behaviour.

FieldTypeConstraintsDefaultDescriptionUpstream
mapobjectrequiredMap dimensions and basic joining behaviour.D
map.widthinteger3 … 4096requiredMap width in cells (columns).D dimY
map.heightinteger3 … 4096requiredMap height in cells (rows).D dimX
map.backgroundenumone of open, closedrequiredInitial fill of the map before any builder digs.D background
map.joinDistanceinteger0 … 2147483647requiredMaximum distance in cells over which open areas are joined.D joinDist
map.tunnelJoinDistanceinteger0 … 2147483647requiredMaximum distance in cells over which tunnels are joined.D tunnelJoinDist
map.openingsenum[]items: one of N, NE, E, SE, S, SW, W, NWrequiredDirections 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.

FieldTypeConstraintsDefaultDescriptionUpstream
rectanglesobject[]optional (omitted: no rectangles)Rectangles drawn onto the map before generation, in order; later ones overwrite earlier ones.R
rectangles[].fromobjectrequiredTop-left corner (inclusive).R sX sY
rectangles[].from.xinteger0 … 2147483647requiredColumn, counted from the left edge (0 = leftmost).R sX sY
rectangles[].from.yinteger0 … 2147483647requiredRow, counted from the top edge (0 = topmost, north is up).R sX sY
rectangles[].toobjectrequiredBottom-right corner (inclusive).R eX eY
rectangles[].to.xinteger0 … 2147483647requiredColumn, counted from the left edge (0 = leftmost).R eX eY
rectangles[].to.yinteger0 … 2147483647requiredRow, counted from the top edge (0 = topmost, north is up).R eX eY
rectangles[].cellenumone of open, closed, guaranteedOpen, guaranteedClosed, nonJoinOpen, nonJoinClosed, nonJoinGuaranteedOpen, nonJoinGuaranteedClosed, insideRoomOpen, insideTunnelOpen, insideAnteroomOpen, horizontalDoor, verticalDoor, mob1, mob2, mob3, treasure1, treasure2, treasure3, columnrequiredCell type the rectangle is filled with.R type

spawnDelay ​

Spawn delay distributions.

FieldTypeConstraintsDefaultDescriptionUpstream
spawnDelayobjectrequiredSpawn delay distributions.BC, BR, BT
spawnDelay.crawlerinteger[]11 items; items: 0 … 100requiredEleven percent values, summing to 100: distribution of the delay before crawlers spawn; the index is the delay.BC
spawnDelay.roomieinteger[]11 items; items: 0 … 100requiredEleven percent values, summing to 100: distribution of the delay before room builders spawn.BR
spawnDelay.tunnelerinteger[]11 items; items: 0 … 100requiredEleven percent values, summing to 100: distribution of the delay before tunnelers spawn.BT

crawlers ​

Crawler behaviour.

FieldTypeConstraintsDefaultDescriptionUpstream
crawlersobjectrequiredCrawler behaviour.S, C, AC, K, PR, M, N, PT, WS, WP1, WP2
crawlers.stepLengthinteger[]≥ 1 item; items: 1 … 2147483647requiredStep length per generation; the index is the generation, beyond the end the last value applies.S (terminator 0)
crawlers.corridorWidthinteger[]≥ 1 item; items: 1 … 2147483647requiredCorridor width per generation; beyond the end the last value applies.C (terminator 0)
crawlers.maxAgeinteger[]≥ 1 item; items: 1 … 2147483647requiredMaximum age per generation; beyond the end the last value applies.AC (terminator 0)
crawlers.randomobjectrequiredRandomly seeded crawlers.K, PR
crawlers.random.perThousandWallSquaresinteger[]items: 0 … 98requiredRandomly seeded crawlers per thousand wall cells, per generation; beyond the end no crawlers are seeded.K (terminator 99)
crawlers.random.genesobjectrequiredGene set of the randomly seeded crawlers.PR
crawlers.random.genes.straightSingleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns one new builder.sSSP
crawlers.random.genes.straightDoubleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns two new builders.sDSP
crawlers.random.genes.turnSingleSpawninteger0 … 100requiredPercent chance that a turn spawns one new builder.tSSP
crawlers.random.genes.turnDoubleSpawninteger0 … 100requiredPercent chance that a turn spawns two new builders.tDSP
crawlers.random.genes.changeDirectioninteger0 … 100requiredPercent chance per step that the builder changes direction.cDP
crawlers.inTunnelsobjectrequiredCrawlers spawned from tunnels.M, N, PT
crawlers.inTunnels.enabledbooleanrequiredWhether tunnelers may spawn crawlers.M crawlersInTunnels (non-zero = true)
crawlers.inTunnels.inAnteroomsbooleanrequiredWhether crawlers are also seeded in anterooms.N crawlersInAnterooms
crawlers.inTunnels.seedCountinteger0 … 2147483647requiredNumber of crawlers seeded in tunnels.N seedCrawlersInTunnels
crawlers.inTunnels.generationinteger-1 … 2147483647requiredGeneration of the tunnel crawlers; -1 means after all other builders.N tunnelCrawlerGeneration
crawlers.inTunnels.maxAgeinteger0 … 2147483647requiredMaximum age of tunnel crawlers in steps.PT maxAge
crawlers.inTunnels.stepLengthinteger1 … 2147483647requiredStep length of tunnel crawlers in cells.PT sL
crawlers.inTunnels.genesobjectrequiredGene set of tunnel crawlers.PT genes
crawlers.inTunnels.genes.straightSingleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns one new builder.sSSP
crawlers.inTunnels.genes.straightDoubleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns two new builders.sDSP
crawlers.inTunnels.genes.turnSingleSpawninteger0 … 100requiredPercent chance that a turn spawns one new builder.tSSP
crawlers.inTunnels.genes.turnDoubleSpawninteger0 … 100requiredPercent chance that a turn spawns two new builders.tDSP
crawlers.inTunnels.genes.changeDirectioninteger0 … 100requiredPercent chance per step that the builder changes direction.cDP
crawlers.inTunnels.closedProbabilityinteger0 … 100requiredPercent chance that a tunnel crawler digs closed cells.PT closedProb
crawlers.seedsobject[]optional (omitted: none)Explicitly placed crawlers.WS
crawlers.seeds[].locationobjectrequiredStart cell of the crawler.WS locX locY
crawlers.seeds[].location.xinteger0 … 2147483647requiredColumn, counted from the left edge (0 = leftmost).WS locX locY
crawlers.seeds[].location.yinteger0 … 2147483647requiredRow, counted from the top edge (0 = topmost, north is up).WS locX locY
crawlers.seeds[].directionenumone of N, E, S, WrequiredInitial heading of the crawler.WS dir
crawlers.seeds[].intendedDirectionenum | stringone of N, NE, E, SE, S, SW, W, NW; = "any"requiredDirection the crawler prefers to travel to, or "any" for none.WS intDir (XX = any)
crawlers.seeds[].dormancyinteger0 … 2147483647requiredNumber of steps the crawler waits before it starts to dig.WS dorm
crawlers.seeds[].maxAgeinteger0 … 2147483647requiredNumber of steps after which the crawler dies.WS maxAge
crawlers.seeds[].generationinteger0 … 2147483647requiredGeneration of the crawler; indexes the per-generation lists (stepLength, corridorWidth, maxAge, random).WS gen
crawlers.seeds[].stepLengthinteger1 … 2147483647requiredLength of one straight run in cells.WS sL
crawlers.seeds[].corridorWidthinteger1 … 2147483647requiredNumber of cells the crawler leaves open between the cells it fills and those already filled; at least 1.WS cW
crawlers.seeds[].genesobjectrequiredGene set the crawler hands down to its offspring.WS genes
crawlers.seeds[].genes.straightSingleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns one new builder.sSSP
crawlers.seeds[].genes.straightDoubleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns two new builders.sDSP
crawlers.seeds[].genes.turnSingleSpawninteger0 … 100requiredPercent chance that a turn spawns one new builder.tSSP
crawlers.seeds[].genes.turnDoubleSpawninteger0 … 100requiredPercent chance that a turn spawns two new builders.tDSP
crawlers.seeds[].genes.changeDirectioninteger0 … 100requiredPercent chance per step that the builder changes direction.cDP
crawlers.seeds[].openbooleanrequiredtrue: 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.pairsobject[]optional (omitted: none)Explicitly placed pairs of crawlers that start together.WP1, WP2
crawlers.pairs[].firstobjectrequiredFirst crawler of the pair.WP1
crawlers.pairs[].first.locationobjectrequiredStart cell of the crawler.WS locX locY
crawlers.pairs[].first.location.xinteger0 … 2147483647requiredColumn, counted from the left edge (0 = leftmost).WS locX locY
crawlers.pairs[].first.location.yinteger0 … 2147483647requiredRow, counted from the top edge (0 = topmost, north is up).WS locX locY
crawlers.pairs[].first.directionenumone of N, E, S, WrequiredInitial heading of the crawler.WS dir
crawlers.pairs[].first.intendedDirectionenum | stringone of N, NE, E, SE, S, SW, W, NW; = "any"requiredDirection the crawler prefers to travel to, or "any" for none.WS intDir (XX = any)
crawlers.pairs[].first.dormancyinteger0 … 2147483647requiredNumber of steps the crawler waits before it starts to dig.WS dorm
crawlers.pairs[].first.maxAgeinteger0 … 2147483647requiredNumber of steps after which the crawler dies.WS maxAge
crawlers.pairs[].first.generationinteger0 … 2147483647requiredGeneration of the crawler; indexes the per-generation lists (stepLength, corridorWidth, maxAge, random).WS gen
crawlers.pairs[].first.stepLengthinteger1 … 2147483647requiredLength of one straight run in cells.WS sL
crawlers.pairs[].first.corridorWidthinteger1 … 2147483647requiredNumber of cells the crawler leaves open between the cells it fills and those already filled; at least 1.WS cW
crawlers.pairs[].first.genesobjectrequiredGene set the crawler hands down to its offspring.WS genes
crawlers.pairs[].first.genes.straightSingleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns one new builder.sSSP
crawlers.pairs[].first.genes.straightDoubleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns two new builders.sDSP
crawlers.pairs[].first.genes.turnSingleSpawninteger0 … 100requiredPercent chance that a turn spawns one new builder.tSSP
crawlers.pairs[].first.genes.turnDoubleSpawninteger0 … 100requiredPercent chance that a turn spawns two new builders.tDSP
crawlers.pairs[].first.genes.changeDirectioninteger0 … 100requiredPercent chance per step that the builder changes direction.cDP
crawlers.pairs[].secondobjectrequiredSecond crawler of the pair.WP2
crawlers.pairs[].second.locationobjectrequiredStart cell of the crawler.WS locX locY
crawlers.pairs[].second.location.xinteger0 … 2147483647requiredColumn, counted from the left edge (0 = leftmost).WS locX locY
crawlers.pairs[].second.location.yinteger0 … 2147483647requiredRow, counted from the top edge (0 = topmost, north is up).WS locX locY
crawlers.pairs[].second.directionenumone of N, E, S, WrequiredInitial heading of the crawler.WS dir
crawlers.pairs[].second.intendedDirectionenum | stringone of N, NE, E, SE, S, SW, W, NW; = "any"requiredDirection the crawler prefers to travel to, or "any" for none.WS intDir (XX = any)
crawlers.pairs[].second.dormancyinteger0 … 2147483647requiredNumber of steps the crawler waits before it starts to dig.WS dorm
crawlers.pairs[].second.maxAgeinteger0 … 2147483647requiredNumber of steps after which the crawler dies.WS maxAge
crawlers.pairs[].second.generationinteger0 … 2147483647requiredGeneration of the crawler; indexes the per-generation lists (stepLength, corridorWidth, maxAge, random).WS gen
crawlers.pairs[].second.stepLengthinteger1 … 2147483647requiredLength of one straight run in cells.WS sL
crawlers.pairs[].second.corridorWidthinteger1 … 2147483647requiredNumber of cells the crawler leaves open between the cells it fills and those already filled; at least 1.WS cW
crawlers.pairs[].second.genesobjectrequiredGene set the crawler hands down to its offspring.WS genes
crawlers.pairs[].second.genes.straightSingleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns one new builder.sSSP
crawlers.pairs[].second.genes.straightDoubleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns two new builders.sDSP
crawlers.pairs[].second.genes.turnSingleSpawninteger0 … 100requiredPercent chance that a turn spawns one new builder.tSSP
crawlers.pairs[].second.genes.turnDoubleSpawninteger0 … 100requiredPercent chance that a turn spawns two new builders.tDSP
crawlers.pairs[].second.genes.changeDirectioninteger0 … 100requiredPercent chance per step that the builder changes direction.cDP

tunnelers ​

Tunneler behaviour.

FieldTypeConstraintsDefaultDescriptionUpstream
tunnelersobjectrequiredTunneler behaviour.ZU, ZD, F, J, AT, M, PU, U
tunnelers.sizeUpProbabilityinteger[]≥ 1 item; items: 0 … 100requiredPercent 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.sizeDownProbabilityinteger[]≥ 1 item; items: 0 … 100requiredPercent 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.anteroomProbabilityinteger[]items: 0 … 99requiredPercent chance of an anteroom per tunnel width; beyond the end the value is 100.F (terminator 100)
tunnelers.joinPreferenceinteger[]≥ 1 item; items: 0 … 100requiredPreference 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.maxAgeinteger[]≥ 1 item; items: 1 … 2147483647requiredMaximum age per generation; beyond the end the last value applies.AT (terminator 0)
tunnelers.sizeUpGenerationDelayinteger0 … 2147483647requiredGenerational delay for tunneler offspring that are wider than their parents; overrides the normal delay of spawnDelay.tunneler.M sizeUpGenDelay
tunnelers.columnsbooleanrequiredWhether tunnels get columns.M columnsInTunnels (non-zero = true)
tunnelers.anteroomGenerationSpeedUpinteger1 … 2147483647requiredGeneration speed-up when a tunneler makes an anteroom.M genSpeedUpOnAnteRoom
tunnelers.lastChanceobjectrequiredLast-chance tunnelers that clean up unreached areas.PU
tunnelers.lastChance.makeRoomsLeftinteger0 … 100requiredPercent chance to make a room on the left.PU, 1st value
tunnelers.lastChance.makeRoomsRightinteger0 … 100requiredPercent chance to make a room on the right.PU, 2nd value
tunnelers.lastChance.changeDirectioninteger0 … 100requiredPercent chance to change direction.PU, 3rd value
tunnelers.lastChance.straightDoubleSpawninteger0 … 100requiredPercent chance of a double spawn on a straight step.PU, 4th value
tunnelers.lastChance.turnDoubleSpawninteger0 … 100requiredPercent chance of a double spawn on a turn.PU, 5th value
tunnelers.lastChance.generationDelayinteger1 … 2147483647requiredGeneration delay of the last-chance tunnelers.PU, 6th value
tunnelers.seedsobject[]optional (omitted: none)Explicitly placed tunnelers.U
tunnelers.seeds[].locationobjectrequiredStart cell of the tunneler.U locX locY
tunnelers.seeds[].location.xinteger0 … 2147483647requiredColumn, counted from the left edge (0 = leftmost).U locX locY
tunnelers.seeds[].location.yinteger0 … 2147483647requiredRow, counted from the top edge (0 = topmost, north is up).U locX locY
tunnelers.seeds[].directionenumone of N, E, S, WrequiredInitial heading of the tunneler.U dir
tunnelers.seeds[].intendedDirectionenumone of N, NE, E, SE, S, SW, W, NWrequiredDirection the tunneler prefers to travel to.U intDir
tunnelers.seeds[].dormancyinteger0 … 2147483647requiredNumber of steps the tunneler waits before it starts to dig.U dorm
tunnelers.seeds[].maxAgeinteger0 … 2147483647requiredNumber of steps after which the tunneler dies.U maxAge
tunnelers.seeds[].generationinteger0 … 2147483647requiredGeneration of the tunneler.U gen
tunnelers.seeds[].stepLengthinteger1 … 2147483647requiredLength of one straight run in cells.U sL
tunnelers.seeds[].tunnelWidthinteger0 … 2147483647requiredWidth of the tunnel in cells; indexes the per-width lists.U tW
tunnelers.seeds[].genesobjectrequiredInheritable behaviour of a tunneler.U
tunnelers.seeds[].genes.straightDoubleSpawninteger0 … 100requiredPercent chance per step that a straight step spawns two tunnelers.sDSP
tunnelers.seeds[].genes.turnDoubleSpawninteger0 … 100requiredPercent chance that a turn spawns two tunnelers.tDSP
tunnelers.seeds[].genes.changeDirectioninteger0 … 100requiredPercent chance per step that the tunneler changes direction.cDP
tunnelers.seeds[].genes.makeRoomsRightinteger0 … 100requiredPercent chance per step that a room is made on the right side.mRRP
tunnelers.seeds[].genes.makeRoomsLeftinteger0 … 100requiredPercent chance per step that a room is made on the left side.mRLP
tunnelers.seeds[].genes.joinPreferenceinteger0 … 100requiredPercent preference to join existing open areas.jP

rooms ​

Room generation.

FieldTypeConstraintsDefaultDescriptionUpstream
roomsobjectrequiredRoom generation.T, GS, GB, M
rooms.sizeobjectrequiredRoom edge lengths.T 1-4
rooms.size.mininteger0 … 2147483647requiredSmallest room edge length in cells.T 1st value
rooms.size.mediuminteger0 … 2147483647requiredMedium room edge length in cells.T 2nd value
rooms.size.largeinteger0 … 2147483647requiredLarge room edge length in cells.T 3rd value
rooms.size.maxinteger0 … 2147483647requiredLargest room edge length in cells.T 4th value
rooms.countobjectrequiredNumber of rooms per size.T 5-10
rooms.count.labyrinthobjectrequiredRooms of the labyrinth.T 5-7
rooms.count.labyrinth.smallinteger0 … 2147483647requiredNumber of small rooms.T 5-7
rooms.count.labyrinth.mediuminteger0 … 2147483647requiredNumber of medium rooms.T 5-7
rooms.count.labyrinth.largeinteger0 … 2147483647requiredNumber of large rooms.T 5-7
rooms.count.dungeonobjectrequiredRooms of the dungeon.T 8-10
rooms.count.dungeon.smallinteger0 … 2147483647requiredNumber of small rooms.T 8-10
rooms.count.dungeon.mediuminteger0 … 2147483647requiredNumber of medium rooms.T 8-10
rooms.count.dungeon.largeinteger0 … 2147483647requiredNumber of large rooms.T 8-10
rooms.sizeProbabilityobjectrequiredRoom size distributions.GS, GB
rooms.sizeProbability.sidewaysobject[]requiredRoom 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[].smallinteger0 … 100requiredPercent chance of a small room.GS (terminator 0 0 100)
rooms.sizeProbability.sideways[].mediuminteger0 … 100requiredPercent chance of a medium room.GS (terminator 0 0 100)
rooms.sizeProbability.sideways[].largeinteger0 … 99requiredPercent 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.branchingobject[]requiredRoom 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[].smallinteger0 … 100requiredPercent chance of a small room.GB (terminator 0 0 100)
rooms.sizeProbability.branching[].mediuminteger0 … 100requiredPercent chance of a medium room.GB (terminator 0 0 100)
rooms.sizeProbability.branching[].largeinteger0 … 99requiredPercent chance of a large room; at most 99, because the list terminator (0 0 100) must stay unambiguous.GB (terminator 0 0 100)
rooms.aspectRationumber≥ 2.2250738585072014e-308, < 1requiredRatio 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.

FieldTypeConstraintsDefaultDescriptionUpstream
behaviourobjectrequiredGeneral builder behaviour.M
behaviour.mutatorinteger0 … 2147483647requiredMutation strength applied to inherited genes.M mutator
behaviour.patienceinteger0 … 2147483647requiredHow 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.noHeadingProbabilityinteger0 … 100requiredPercent chance that a builder ignores its intended direction.M noHeadingProb

population ​

Entity placement; parsed and serialized, effective only with entity output.

FieldTypeConstraintsDefaultDescriptionUpstream
populationobjectoptional (omitted: no entities)Entity placement; parsed and serialized, effective only with entity output.
population.mobsobjectrequiredMob placement.
population.mobs.labyrinthobjectrequiredMobs of the labyrinth.
population.mobs.labyrinth.roomsobjectrequiredMob groups placed in rooms of the labyrinth.E1
population.mobs.labyrinth.rooms.groupSizeinteger0 … 2147483647requiredBase number of entities per group.groupSize
population.mobs.labyrinth.rooms.groupSizeVarianceinteger0 … 2147483647requiredRandom variance added to the group size.groupSizeVariance
population.mobs.labyrinth.rooms.byLevelinteger[]items: 0 … 2147483647requiredGroup count per dungeon level; the index is the level. The serializer appends the terminator -1.trailing list
population.mobs.labyrinth.openobjectrequiredMobs in open areas of the labyrinth.E2
population.mobs.labyrinth.open.byLevelinteger[]items: 0 … 2147483647requiredMobs in open labyrinth areas per dungeon level; the index is the level.E2 list
population.mobs.dungeonobjectrequiredMobs of the dungeon.
population.mobs.dungeon.roomsobjectrequiredMob groups placed in rooms of the dungeon.H1
population.mobs.dungeon.rooms.groupSizeinteger0 … 2147483647requiredBase number of entities per group.groupSize
population.mobs.dungeon.rooms.groupSizeVarianceinteger0 … 2147483647requiredRandom variance added to the group size.groupSizeVariance
population.mobs.dungeon.rooms.byLevelinteger[]items: 0 … 2147483647requiredGroup count per dungeon level; the index is the level. The serializer appends the terminator -1.trailing list
population.mobs.dungeon.openobjectrequiredMobs in open areas of the dungeon.H2
population.mobs.dungeon.open.anteroomProbabilityinteger0 … 100requiredPercent chance that a mob is placed in an anteroom.H2 first value
population.mobs.dungeon.open.byLevelinteger[]items: 0 … 2147483647requiredMobs in open dungeon areas per dungeon level; the index is the level.H2 list
population.treasureobjectrequiredTreasure placement.
population.treasure.labyrinthobjectrequiredTreasure groups of the labyrinth.I1
population.treasure.labyrinth.groupSizeinteger0 … 2147483647requiredBase number of entities per group.groupSize
population.treasure.labyrinth.groupSizeVarianceinteger0 … 2147483647requiredRandom variance added to the group size.groupSizeVariance
population.treasure.labyrinth.byLevelinteger[]items: 0 … 2147483647requiredGroup count per dungeon level; the index is the level. The serializer appends the terminator -1.trailing list
population.treasure.dungeonobjectrequiredTreasure groups of the dungeon.I2
population.treasure.dungeon.groupSizeinteger0 … 2147483647requiredBase number of entities per group.groupSize
population.treasure.dungeon.groupSizeVarianceinteger0 … 2147483647requiredRandom variance added to the group size.groupSizeVariance
population.treasure.dungeon.byLevelinteger[]items: 0 … 2147483647requiredGroup count per dungeon level; the index is the level. The serializer appends the terminator -1.trailing list

DungeonMaker 2.05 © Peter Henningsen. WebAssembly port, package and site created by spearwolf. Released under GPL-3.0-or-later. About · License