DungeonRooms lets server owners build guided dungeon runs where players unlock each room by defeating the required Mythi
DungeonRooms
Guided dungeon runs powered by WorldGuard & MythicMobs
Overview
DungeonRooms lets server owners build guided dungeon runs where players unlock each room by defeating the required MythicMobs. Create dungeon areas with WorldGuard, set a safe spawn point, choose how many mobs each room requires, and let the plugin handle room locks, progress tracking, dungeon death returns, admin bypasses, and optional particle borders.
Compatibility
| Component | Required Version |
|---|---|
| Paper | 1.21.1+ |
| Java | 21 |
| WorldGuard | 7.0+ |
| WorldEdit | Required by WorldGuard |
| MythicMobs | 5.6+ |
| Player Data | Gson JSON (bundled in Paper — no extra dependency) |
Features
- Dungeon boundaries — Register a full dungeon WorldGuard region with
/dr create. - Spawn regions — Register a spawn region per dungeon before rooms can be added.
- Dungeon death override — Fatal dungeon damage is intercepted and the player is returned to the dungeon spawn.
- Per-dungeon progression — Room sequence is scoped to each dungeon.
- MythicMobs kill tracking — Only MythicMobs kills count toward room completion.
- JSON player data — Player kills and room unlocks stored in a flat Gson JSON file.
- Lightweight storage — Gson is provided by Paper. No database library is bundled.
- Atomic async saves — Writes use temp files before replacing JSON data. Safe on crash.
- Reset toggles — Death, dungeon exit, world change, and teleport resets can be toggled independently.
- Teleport pass-through protection — Ender pearls, chorus fruit, and other teleports cannot bypass locked rooms.
- Border visualization — Show current room, spawn region, or all dungeon/room borders privately via particles.
- Admin bypass — Bypass all rooms or specific dungeon rooms with permissions.
Installation
- Download
DungeonRooms-2.0.3.jar. - Place it in your server's
plugins/folder. - Install required dependencies:
- Start or restart the server.
- Edit
plugins/DungeonRooms/config.ymlif needed. - Run
/dr reloadafter configuration changes.
Commands
| Command | Permission | Default | Description |
|---|---|---|---|
/dr create <world> <region> <dungeonName> |
dungeonrooms.admin |
OP | Register a dungeon boundary. |
/dr add spawn <world> <region> <dungeonName> |
dungeonrooms.admin |
OP | Register a spawn region for a dungeon. |
/dr setspawn <dungeonName> |
dungeonrooms.admin |
OP | Store current location as the dungeon return point. |
/dr add room <dungeonName> <region> <kills> |
dungeonrooms.admin |
OP | Register a room. Requires spawn region first. |
/dr remove <dungeonName> |
dungeonrooms.admin |
OP | Remove a dungeon and all its rooms. |
/dr remove room <dungeonName> <region> |
dungeonrooms.admin |
OP | Remove one room from a dungeon. |
/dr edit kills <dungeonName> <region> <kills> |
dungeonrooms.admin |
OP | Update a room's required kills. |
/dr list |
dungeonrooms.admin |
OP | List all registered dungeons and rooms. |
/dr status [player] |
dungeonrooms.status |
TRUE | Show your own progress. |
/dr status <other> |
dungeonrooms.status.others |
OP | Show another player's progress. |
/dr reset <player> [dungeon] |
dungeonrooms.reset |
OP | Reset all or one dungeon's progress. |
/dr reload |
dungeonrooms.admin |
OP | Reload config and refresh cached dungeon data. |
/dr showborder |
dungeonrooms.showborder |
TRUE | Toggle room border for the room you are inside. |
/dr showborder spawn |
dungeonrooms.showborder |
TRUE | Toggle spawn region border for the current dungeon. |
/dr showborder all |
dungeonrooms.showborder |
TRUE | Toggle all dungeon and room borders. |
/dr version |
None | TRUE | Display plugin version, author, and GitHub link. |
Permissions
| Permission | Default | Description |
|---|---|---|
dungeonrooms.admin |
OP | Dungeon setup, editing, removal, list, reload, and spawn setup. |
dungeonrooms.status |
TRUE | Check your own progress. |
dungeonrooms.status.others |
OP | Check another player's progress. |
dungeonrooms.reset |
OP | Reset player progress. |
dungeonrooms.showborder |
TRUE | Toggle border visualization. |
dungeonrooms.bypass |
OP | Bypass all room progression requirements. |
dungeonrooms.bypass.<dungeon>.<region> |
OP | Bypass one specific dungeon room. |
Scoped bypass example:
dungeonrooms.bypass.sample.room_2
Setup Guide
- Create a WorldGuard region for the whole dungeon boundary.
- Register it:
/dr create <world> <region> <dungeonName> - Create a WorldGuard region for the dungeon spawn area.
- Register the spawn region:
/dr add spawn <world> <region> <dungeonName> - Stand inside the spawn region and run:
/dr setspawn <dungeonName> - Create WorldGuard regions for each room.
- Add rooms in progression order:
/dr add room <dungeonName> <region> <kills> - Spawn MythicMobs inside rooms.
- Use
/dr statusto verify kill progress and unlocks.
Example:
/dr create dungeon_world sample_boundary sample /dr add spawn dungeon_world sample_spawn sample /dr setspawn sample /dr add room sample room1 10 /dr add room sample room2 15 /dr add room sample boss_room 1
Region Layout
+--------------------------------------------------+ | WorldGuard region: sample_boundary | | Dungeon name: sample | | | | +--------------+ | | | sample_spawn | <- /dr add spawn ... | | | spawn point | <- /dr setspawn sample | | +--------------+ | | | | | v | | +--------------+ +--------------+ | | | room1 | -> | room2 | | | | 10 kills | | 15 kills | | | +--------------+ +--------------+ | | | | | v | | +--------------+ | | | boss_room | | | | 1 kill | | | +--------------+ | +--------------------------------------------------+
| Region Type | Example | Registered With |
|---|---|---|
| Dungeon boundary | sample_boundary |
/dr create dungeon_world sample_boundary sample |
| Spawn region | sample_spawn |
/dr add spawn dungeon_world sample_spawn sample |
| Room | room1 |
/dr add room sample room1 10 |
| Room | room2 |
/dr add room sample room2 15 |
| Boss room | boss_room |
/dr add room sample boss_room 1 |
Progression Logic
| Rule | Behavior |
|---|---|
| First room | Sequence 0 is always freely accessible. |
| Later rooms | Require completion of the previous sequence in the same dungeon. |
| Completion | Current kills reach requiredKills. |
| Unlocks | Completed rooms stay unlocked until reset. |
| Exit | Exiting rooms is never blocked. |
| Teleports | Same-world teleports are checked before entering locked rooms. |
| Bypass | dungeonrooms.bypass or scoped permission allows free entry. |
Example flow:
Spawn → Room 1 → Room 2 → Boss Room
Reset Triggers
| Trigger | Config Key | Default |
|---|---|---|
| Player fake-dies inside dungeon | progress-reset.death |
false |
| Player exits dungeon boundary | progress-reset.dungeon-exit |
true |
| Player changes world from dungeon world | progress-reset.world-change |
true |
| Player teleports out of dungeon | progress-reset.teleport |
true |
Border Visualizer
/dr showborder— Renders the current room border only./dr showborder spawn— Renders the spawn region border for the current dungeon./dr showborder all— Renders all registered dungeon boundaries and room borders simultaneously.
Only the toggling player sees particles. DungeonRooms uses
player.spawnParticle().
| Border Type | Config Key |
|---|---|
| Room regions | border-visualizer.room-particle-type |
| Dungeon boundaries | border-visualizer.dungeon-particle-type |
| Spawn regions | border-visualizer.spawn-particle-type |
Storage
plugins/DungeonRooms/ config.yml dungeons.json playerdata.json
No external database. Gson comes from Paper — DungeonRooms does not shade any storage library. All data loads synchronously on startup. Runtime writes are async and atomic using temp file replacement.
Information
Pinned Versions
- R1.21–26.2
Pages
Members
1Owner