Saltar al contenido principal

Dungeon Global Menu

Action entry that opens a global dungeon menu showing instances from a category. Uses the GUI extension's layout system (layoutPool + mainLayoutId) for the visual structure.

Dungeon instance slots are injected at positions marked with buttonType: "DUNGEON_INSTANCE_SLOT" in the layout pool. Each marker is replaced by the next instance from the category, preserving the exact (x, y) position.

Layout System

The menu uses the GUI extension's layout engine. Define your visual structure in layoutPool (Simple, Paginated, Scrollable, Frame layouts). Mark positions for dungeon instances with buttonType: DUNGEON_INSTANCE_SLOT, and the extension automatically replaces those markers with dungeon items sorted by priority.

Buttons use virtual coordinates (x, y). (0, 0) is top-left, (8, 5) is bottom-right for a standard 6-row inventory.

Buttons System

Use the buttons list to configure interactive buttons. Each entry defines a type (enum), x/y position, and visual overrides (item, name, lore). If a button type is absent from buttons, no button of that type appears.

TypeDescriptionDefault Position
INFOInformation button — shows dungeon details(4, 0)
FIND_PARTYDual-state: "Find Party" (not in party) / "Leave Party" (in party)(4, 5)

Uses DungeonGlobalButtonType enum. Party lobby buttons use the separate DungeonPartyButtonType.

Placeholders

PlaceholderContextDescription
{dungeon_name}Instance item name/loreName of the dungeon instance
{players}Instance item name/loreCurrent player count in lobby
{max}Instance item name/loreMaximum party size
{player}Button name/loreCurrent player name

Configuration

dungeon_global_menuMap

Configuration for the dungeon global menu.

Properties

category

"> Category to display in this menu. inventoryTitle

"> Title of the inventory. Supports placeholders. inventoryRowsInt

Number of rows in the inventory (1-6).

buttons

"> Button configurations. Position and visuals are fully customizable via x/y. Each type appears at most once.

DungeonGlobalButtonSlot

type

Button type: INFO or FIND_PARTY. xInt?

X position in the virtual grid (0-8). Uses default if null. yInt?

Y position in the virtual grid (0-5). Uses default if null. itemItem?

Override item. Falls back to hardcoded default if null. name

?"> Display name with placeholders. lore

?"> Lore lines with placeholders.

guiTypeGuiType

GUI type (CUSTOM, BOOK, FURNACE, etc.). layoutPool

"> Pool of layout definitions (Simple, Paginated, Scrollable, Frame). Items with buttonType: DUNGEON_INSTANCE_SLOT are replaced by dungeon instances. mainLayoutId

"> ID of the main layout to display from the pool. audioGuiAudioData

Audio configuration (onOpen, onClose, onScroll, onClick).

Example

dungeon_global_menu:
id: "dungeon_hub"
category: "main_dungeons"
inventoryTitle: "<gold>⚔ Dungeons</gold>"
inventoryRows: 6
guiType: CUSTOM
mainLayoutId: "main_frame"
layoutPool:
- id: "main_frame"
type: frame
frames:
- id: "dungeon_list"
x: 0
y: 1
width: 9
height: 4
layoutId: "dungeon_scroll"
- id: "dungeon_scroll"
type: scrollable
innerId: "dungeon_items"
virtualWidth: 9
virtualHeight: 12
showDefaultButtons: false
buttons:
- item:
item: ARROW
name: "<green>▼ Scroll"
direction: DOWN
step: 1
- id: "dungeon_items"
type: simple
items:
- item: STONE
x: 0
y: 0
buttonType: "DUNGEON_INSTANCE_SLOT"
name: "<gold>{dungeon_name}"
- item: STONE
x: 0
y: 2
buttonType: "DUNGEON_INSTANCE_SLOT"
name: "<gold>{dungeon_name}"
buttons:
- type: INFO
x: 4
y: 0
item: BOOK
name: "<gold>⚡ Info</gold>"
lore:
- "<gray>Select a dungeon to start"