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.

souls:
shards-per-soul: 4
shard-chance: 0.16
guest-entry: 1
cap: 5
shards-per-clear: 0
shard-item: ECHO_SHARD

shard-chance is the fraction of chests holding a Soul Shard, and it is the whole faucet as shipped. About 35 chests at 0.16 pays five or six shards, which is a Soul and change per run.

shards-per-clear is a bonus in shards for putting the boss down, on top of the chests, and ships at zero so the reward sits where the exploring is. A tileset with no [loot] sign in it and no clear bonus is a tileset on which a Soul cannot be earned at all, which /dungeon dryrun says in red.

cap counts Souls rather than shards, so five is twenty shards. Nothing accrues offline, which is what makes a cap safe: it turns hoarders into spenders and creates no reason to log in.

shard-item is what a shard looks like in the chest. The item is identified by a hidden marker rather than by its material or name, so changing this cannot be used to launder an ordinary echo shard into currency, and a material name that does not exist falls back to ECHO_SHARD rather than throwing while somebody is mid-click.

Two rules are in code rather than here. A Soul buys a seat in somebody else’s run and never a run of your own, and only a free entry earns shards. Both are decisions the daily limit rests on, and a config key for either is a way to switch the limit off by accident.

shard-chance and shard-item are read at the moment a chest is opened. The rest are read at startup and at /dungeon reload.

mobs:
elite-leash: 24
loot:
contribution: 0.10

contribution is the share of a monster’s damage you have to deal for the kill to count as partly yours, which is what @locked and @boss chests ask for. It is a share of the damage players dealt rather than of the monster’s health, because party scaling divides incoming damage instead of raising health, so a fraction of health would get harder to reach with every extra player. Lava and fall damage stay out of the total. 0 credits anyone who landed a hit.

It is read at every death, so /dungeon reload moves it mid-run.

elite-leash is how far in blocks an elite may get from where it spawned before it is teleported back, checked every two seconds. About 24 is two rooms: far enough to chase somebody out of the doorway, near enough that the guardians a @locked chest names are in the room it is in. 0 turns it off, and costs nothing when off.

loot:
unlock:
radius: 24
sound: block.vault.open_shutter
volume: 0.9
pitch: 1.1
particle: VAULT_CONNECTION
count: 24
spread: 0.35
speed: 0.02

The floating text over a locked chest is per player and flips to the ordinary star line wherever the chest is. The burst of sound and light fires only within radius, because killing the boss opens every @boss chest in the maze at once and thirty vault sounds from rooms nobody can see is noise. radius: 0 leaves the text and drops the burst.

The sound is Minecraft’s own spelling, dotted and lowercase, rather than the Bukkit constant. An unknown name falls back to the vault shutter. The particle is deliberately not END_ROD, since that is the unlooted sparkle and the two signals should not look alike.

These are numbers to adjust from inside a room rather than to pick out of a file, and /dungeon reload moves them between attempts.

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 is the only thing an NPC here does that cannot be undone, and today’s entry has already been spent on the run it ends.

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>, with the maximum included. Weights are relative rather than probabilities. Ids are MythicMobs item names first and vanilla materials second. A tier serves all five elements by naming a theme-pool rather than by naming items per element.

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

upgrades under a tier is a weighted draw over other tier names, which is what makes a [loot] sign a floor rather than an exact value. It is one hop, and rolled once per chest. epic and boss name none, so five stars stay with the boss.

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.