Skip to content

Commands

Commands are registered through Brigadier, so tab completion knows which tilesets exist and which players you can invite.

Node Grants Default
dungeon.use entering a dungeon at all op
dungeon.admin creating, destroying and inspecting dungeon worlds op
mazegen.use generating and undoing mazes op

dungeon.use defaults to op. Opening a new feature to the whole server at once risks somebody spending their one daily on a broken dungeon, which they cannot get back until tomorrow. Grant it in LuckPerms or permissions.yml when you are ready.

Command Does
/dungeon where you stand: daily, shards, current run
/dungeon run [tileset] build today’s dungeon and go in
/dungeon leave end your run
/dungeon party who is with you
/dungeon invite <player> ask somebody to come
/dungeon knock <player> ask to be let into theirs
/dungeon accept [player] confirm an invite or a knock
/dungeon join <player> enter a run already in progress, until its lever is pulled

Everything here needs dungeon.admin.

Command Does
/dungeon dryrun <tileset> [days] build a whole dungeon with no player, report it, throw it away
/dungeon loot <tier> [theme] roll one chest and print what came out
/dungeon grant <player> <shards> add or remove shards, −16 to 16
/dungeon close <run> force a run to end
/dungeon reload re-read config.yml
/dungeon world create <id> make an empty dungeon world
/dungeon world destroy <id> delete one
/dungeon world list list them
/dungeon world bench <count> time world creation, 1–64
/dungeon dryrun v1
/dungeon dryrun v1 7

It builds the day’s dungeon from the console with nobody in it, reports the room count, the monsters by kind, the chests, the boss room’s bounds, the lever, the floating sign’s text, the exit portal’s block, every NPC it stood up, both info boards’ contents and the boss spawning, then deletes the world.

The optional day count runs it for a date in the future, which is how you find out whether a change works on all five elements rather than just the one today happens to be.

If you add a feature, add a line to the dryrun. Everything in this project that broke silently broke because nothing printed it.

/dungeon reload re-reads config.yml: loot tiers, NPC roles, board settings and shard numbers. It does not touch the ledger, which is state rather than configuration, and reloading it would roll back everybody’s day.

The generator underneath. Builders mostly need savetile and the rest is tileset plumbing.

Command Does
/maze savetile <set> <name> save the current selection as a tile
/maze select / frame selection helpers
/maze tiles / newset / deletetile / deleteset manage tilesets
/maze gen / preview / auto generate a maze
/maze undo / cancel take one back, or stop one mid-paste
/maze daily what today’s maze would be
/maze weights tile frequency
/maze convert / export schematic import and export
/maze modes generator algorithms
/maze reload re-read config

/maze reload does not reload tilesets and says so when you run it. To force one, use /maze tiles <name>, which reloads from disk. savetile re-reads the set as it writes.