Category Menu
Category Menu Configuration
Configures the menu for a specific quest category via declarative layout pools. Place a "SORT_SLOT" placeholder in your layout pool to have the sort button automatically injected at that position with per-mode display customization.
Fields
| Field | Type | Default | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
category | String | — | Category this menu configuration applies to. Leave empty for main menu. | ||||||||||||||||||||
title | String | — | Menu title shown to the player. Supports MiniMessage and PlaceholderAPI.PlaceholdersColors | ||||||||||||||||||||
rows | Int | 4 | Number of inventory rows (3-6). | ||||||||||||||||||||
menu | Ref<OpenGuiActionEntry> | — | GUI entry providing the layout pool, main layout, type and audio configuration. | ||||||||||||||||||||
sortDisplay | List<SortDisplayConfig> | empty | Per-mode display overrides for the sort button. Define one entry per sort mode.
|
| Field | Type | Default | Description |
|---|---|---|---|
mode | SortModeConfig | ALL | Sort mode this display applies to.Values:ALLNOT_STARTEDACTIVECOMPLETED |
item | Item? | — | Item shown when this sort mode is active. |
label | String | — | Label shown when this sort mode is active. Supports MiniMessage.PlaceholdersColors |
lore | List<String> | empty | Additional lore lines. Supports MiniMessage and PlaceholderAPI.PlaceholdersColors |
viewsList<MenuViewData>emptydefaultViewIdString?breadcrumbSeparatorStringDEFAULT_BREADCRUMB_SEPARATORbaseMenuIdStringpushHistoryOnViewSwitchBooleanfalseCommon TypeWriter fields (criteria, modifiers, triggers)
| Field | Type | Default | Description |
|---|---|---|---|
criteria | List<Criteria> | empty | — |
modifiers | List<Modifier> | empty | — |
triggers | List<Ref<TriggerableEntry>> | empty | — |
How to use it
A Category Menu is the entry that opens a codex screen, and it can also be fired as an action from a quest, an NPC or a button. What it opens depends on category:
category | Opens | Marker the layout needs |
|---|---|---|
| empty | The main menu, listing root categories | CATEGORY_SLOT |
| a category name | The quests of that category | QUEST_SLOT |
@tracked | The quests the player tracks | TRACKED_QUEST_SLOT |
menu references an Open GUI that is used only for its layoutPool, mainLayoutId, guiType and audio. Markers are items with buttonPrefix codex_button: and buttonType set to the marker, placed in simple layouts of that Open GUI.
rowsmust equal the height of the Open GUI, otherwise slots below the smaller height are dropped.sortDisplaycustomizes the sort button, one element permode(ALL,NOT_STARTED,ACTIVE,COMPLETED) with its ownitem,labelandlore.baseMenuId,views,defaultViewId,breadcrumbSeparatorandpushHistoryOnViewSwitchturn the menu into a tab of a shared chassis, as in Views, tabs and inheritance. Keep the markers in the layouts of the Open GUI named bymenu, not in the shared chassis.
The console lists every menu that cannot draw at startup, with the fix. See Building Codex menus.