Skip to content

Configuration

Everything below is plugins/dungeon/config.yml. /dungeon reload picks up changes without a restart.

timezone: America/Los_Angeles
max-party-size: 8
run:
allow-late-join: true
max-minutes: 90
linger-minutes: 20
death:
ends-run: true

timezone decides which midnight ends a run and must be kept in step with mazegen’s own daily.timezone. They are separate plugins reading separate files, and a mismatch means the maze changes at a different moment from the ledger.

allow-late-join covers /dungeon join. Joining closes once the boss lever is pulled regardless, which is not configurable.

linger-minutes is how long an empty world is held for someone to come back to. An empty world costs about five microseconds a tick.

death.ends-run: false respawns the dead at the entrance instead. Both paths work.

shards:
per-clear: 1
guest-entry: 1
cap: 5

A guest run paying no shard is not configurable here. It is in DailyRules, so the two rates cannot drift into each other.

boss:
seal-warning-seconds: 5
sign-scale: 3.0

sign-scale is how big the floating “Start Boss Fight” board over the lever is. The right value depends on how far back the doorway is, which is a property of the schematic, so it wants checking from inside the room. It takes effect on the next run without a reload.

npcs:
exit:
name: "<red><bold>Leave Dungeon</bold></red>"
type: PLAYER
skin: HyperKids
says: ["<gray>Had enough? Click again to go home.</gray>"]
clicks: 2
confirm-seconds: 10
commands: ["dungeon leave"]
info:
lift: 1.2
scale: 1.0

NPC roles are named by [npc] signs; board settings apply to [info] signs. See Marker signs.

Commands run as the player who clicked. Prefix one with console: to run it as the server, which is needed for anything a player should not have permission to do themselves. %player% and %run% are substituted.

clicks is how many right-clicks before the commands run and confirm-seconds is how long the first one counts for. The exit NPC uses two, since leaving ends the run and today’s daily is already spent.

info.lift exists because those signs are placed on the floor. A tile has three blocks of vertical space counting the sign’s own block, so a board has to fit in the two above it: at scale 1.2 a five-line board pushed its top rows into the ceiling, where they are hidden.

spawns:
auto-grunt-chance: 0.45

A stopgap for a tileset with no [mob] signs in it yet. It stands one grunt in 45% of rooms so a dungeon is playable at all.

A room with a [mob] marker is left exactly as authored, so this switches itself off room by room as the tileset gets built out. Set to 0 to turn it off.

loot.tiers maps a tier name to stars, colour, draw count and item list. loot.themes holds each element’s trinkets and gear pools, and a tier says which half it pulls from with theme-pool.

Each line is <id> <weight> <min>-<max>. Weights are relative rather than probabilities. Ids are MythicMobs item names first and vanilla materials second. %theme% becomes the day’s element, so one tier serves all five.

A chest draws its rolls lines without replacement, so it can never be three stacks of the same thing.

Adding a tier here means a builder can use it the same day, with no plugin release.

dungeon-power:
faction: dungeon
items:
fire_quench: 1.5
fire_*: 1.15

MythicMobs item id to damage multiplier, applied only against mobs in that faction. A trailing * matches by prefix and the longest match wins, so a specific rule beats a blanket one.

Matching is on the mob’s faction rather than on the plugin’s own spawn tag. A boss’s summoned adds are spawned by MythicMobs rather than by the dungeon, so they never carry the tag, though they do inherit the faction. Tagging would have made every dungeon weapon ordinary against the monsters a boss fight throws at you most.