Features
Instanced Worlds
Dedicated worlds created per dungeon run with template-based generation.
Rooms & Triggers
Polygon-based rooms with onEnter/onLeave triggers, priority, and criteria.
Menu System
Global dungeon browser + party lobby with full GUI layout customization.
Loot Chests
Randomized chests with NPC anchors, manual triggers, and virtual client-side blocks.
Party System
Built-in lobby with ready/not-ready states. Optional adapters for MMOCore, Parties.
Room Editor
Visual in-game room editor with particle edges, node manipulation, and toolbar.
Dependencies
| Extension | Required | Usage |
|---|---|---|
| GUI Extension | Required | All menus use the GUI layout system (layoutPool, mainLayoutId). Without it, no menu will open. |
| QuestExtension | Required | Runtime dependency for quest integration (Ref<QuestEntry>). |
| PartyExtension | Optional | External party plugin (Parties, MMOCore). Dungeon has a built-in lobby that works standalone. |
| PlaceholderAPI | Optional | For @Placeholder placeholder resolution in messages. |
build.gradle.kts Setup
Architecture
Entries
Definitions
Dungeon Instance: Rules, costs, and party config.
Category: Groups dungeons in menus.
Room: Polygon footprint with enter/leave triggers.
Room Config: Room set + spawn point.
Loot Chest: Randomized reward containers.
Category: Groups dungeons in menus.
Room: Polygon footprint with enter/leave triggers.
Room Config: Room set + spawn point.
Loot Chest: Randomized reward containers.
Actions
Global Menu: Browse all dungeons.
Party Menu: Lobby coordination.
Enter: Player join logic.
Leave: Player exit logic.
Close: Shutdown instance.
Loot Chest Trigger: Manual chest activation.
Party Menu: Lobby coordination.
Enter: Player join logic.
Leave: Player exit logic.
Close: Shutdown instance.
Loot Chest Trigger: Manual chest activation.
Facts
InDungeon Fact: Check if player is inside a dungeon.
InDungeonInstance Fact: Check specific dungeon.
InDungeonInstance Fact: Check specific dungeon.
Quick Start Guide
Step 1 — Define a Room
Use/dungeon room my_room edit to enter the visual room editor. Place nodes to form a polygon boundary. Save with Lime Dye.
Step 2 — Group Rooms in a Config
Step 3 — Define the Dungeon Instance
Step 4 — Create a Category and Menu
Step 5 — Trigger the Menu
From any action, command, NPC dialog, or entry trigger:/dungeon global-menu main_dungeons
Commands
| Command | Description |
|---|---|
/dungeon global-menu <category> | Open the global dungeon browser |
/dungeon party-menu <instance> | Open the party lobby for a specific instance |
/dungeon room <room> edit | Enter the visual room editor |
/dungeon room <room> addvertex | Add node at target block |
/dungeon room <room> removevertexat <index> | Remove node by index |
/dungeon room <room> save | Save room and exit editor |
/dungeon room <room> cancel | Cancel editing |
Placeholders
All placeholders use the prefix%typewriter_dungeon_%.
| Placeholder | Description |
|---|---|
%typewriter_dungeon_players% | Number of players in the current dungeon. |
%typewriter_dungeon_attempts% | Total attempts on this dungeon (per-player artifact). |
%typewriter_dungeon_completions% | Completion count (per-player artifact). |
%typewriter_dungeon_best_time% | Best completion time formatted (per-player artifact). |