Menus
Players browse their collections in three GUI menus (four when a collection has subcategories). Layout is set in menus.yml; the
wording is set in the language files (see Layout versus text below).
The three menus
- Main menu lists every collection. It arranges them into the
content-slotsyou set and adds a second page automatically when they overflow. A collection set toinlineshows its resources here directly instead of a single icon. - Category menu opens when a player clicks a collection. It lists every resource in that collection, with pages if there are too many to fit. If the collection has subcategories, their icons come first: greyed out and inert until the player discovers something inside, then clickable.
- Subcategory menu opens when a player clicks an unlocked subcategory. It lists that group's
resources, laid out by the
subcategory-menusection, and Back returns to the collection. - Resource menu opens when a player clicks a discovered resource. It shows every tier of that resource, its rewards, and your progress, and is where rewards are claimed.

Locked resources show a hidden name and a hint. Discovered resources show progress, the current tier, and the next reward. See Progression for how those states work, and Tiers and Rewards for claiming.

Layout versus text
menus.yml controls layout only: which slots hold what, item materials, and how many
rows each menu has. All menu text (titles, button names, lore, tier labels) lives in the
language files under lang/, so it follows the language: setting and can be translated. To
change wording, edit the lang file; to move things around, edit menus.yml. See
Messages and Language.
Opening a menu
Players run /collection to open the main menu. See Commands.
Layout settings
Each menu is defined in menus.yml. You set the number of rows, the filler item, and where
the buttons and items go. The button names and menu titles come from the lang files.
Main menu
| Setting | What it controls |
|---|---|
rows | Menu height, 1 to 6 rows |
filler | The item shown in empty slots |
content-slots | The list of slots collections (or inline resources) are placed in, filled in order |
next-page and prev-page | The pagination buttons, shown only when entries overflow one page |
claim-all-button | The Claim All button, shown in claim reward mode |
close-button | The slot and item of the close button. Set enabled: false to hide it |
The main menu fills content-slots in order: one entry per collection, or one entry per
resource for a collection set to inline: true in
categories.yml. When the entries do not all fit, a Next Page
button appears; otherwise there are no page buttons. Give a collection a slot (and page) in
categories.yml to pin it to an exact spot instead of auto-filling;
an inline collection's resources can each take their own slot the same way.
Category menu
| Setting | What it controls |
|---|---|
rows | Menu height |
filler | The item shown in empty slots |
back-button | Returns to the main menu |
close-button | Closes the menu. Set enabled: false to hide it |
resource-slots | The list of slots resources are placed in, filled in order |
next-page and prev-page | The pagination buttons, used when resources overflow |
Subcategory menu
Same keys as the category menu, under subcategory-menu. back-button returns to the collection
menu (or to the main menu when the collection is inline). Its wording lives under
menu.subcategory-menu in the language files; the title accepts {subcategory} and {category}.
Resource menu
| Setting | What it controls |
|---|---|
rows | Menu height |
filler | The item shown in empty slots |
tier-slots | The list of slots tiers are placed in, lowest tier first |
tier | The item material for each tier state: locked, claimable, island-locked (reached, but waiting on an island membership clock), and claimed |
back-button | Returns to the previous menu: the subcategory menu for a grouped resource, the category menu otherwise, or the main menu for an inline collection |
close-button | Closes the menu. Set enabled: false to hide it |
Slots are counted from 0 in the top-left, going left to right, top to bottom. A six-row menu has slots 0 to 53.
Example
main-menu:
rows: 6
filler:
material: BLACK_STAINED_GLASS_PANE
name: ' '
content-slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25]
prev-page:
slot: 45
material: ARROW
next-page:
slot: 53
material: ARROW
claim-all-button:
slot: 48
material: HOPPER
close-button:
enabled: true
slot: 49
material: BARRIER
resource-menu:
rows: 6
tier-slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25]
tier:
locked:
material: GRAY_STAINED_GLASS_PANE
claimable:
material: LIME_STAINED_GLASS_PANE
island-locked:
material: ORANGE_STAINED_GLASS_PANE
claimed:
material: LIME_DYE
The wording (titles, button names, tier labels) is set in the language file, where colors
use the & code format, including hex colors like FFD700 and gradients. See
Colors for every code you can use.