menus
Every menu is a file in guis/. You can retheme any of them freely - change materials, names, lore,
sizes and slots. After editing, run /cosmeticsadmin reload.
| File | Menu |
|---|---|
cosmetics-menu.yml |
The /cosmetics menu. |
equip-menu.yml |
Equip / unequip / sell confirmation for one cosmetic. |
cosmetics-market.yml |
The /cosmetics market menu. |
market-confirm.yml |
Market purchase confirmation. |
case-confirm.yml |
Case opening confirmation. |
How a menu file works
Section titled “How a menu file works”The file root is the menu itself: Title, Size (a multiple of 9), an Items section, and one or
more slot lists depending on the menu (below). Inside Items, there are two kinds of entry:
- Filler / decoration - any entry named
Filler-Item(orFiller-Item2, …) with aSlotslist and noActions. Painted into its slots as background. - Action items - any entry with an
Actionslist. The menu dispatches on the action, not the item’s key, so you can rename and move these items anywhere. Give a button a different job by changing itsActions.
Slots use either Slot: (a single number) or Slots: (a list where each entry is a number or an
a-b inclusive range, e.g. [10-16, 19-25]).
Title: "&8Cosmetics"Size: 54Cosmetic-Slots: [10-16, 19-25, 28-34, 37-43]
Items: Filler-Item: Material: BLACK_STAINED_GLASS_PANE Name: "&r" Slots: [0-9, 17-18, 26-27, 35-36, 44, 47, 49, 51, 52]
Filter: Material: HOPPER Slot: 45 Name: "&3&lFilter: &b{category}" Lore: - "{print-categories}" - "" - "&e➥ Click to cycle!" Actions: - "[cycle-filter]"Slot roles
Section titled “Slot roles”| Key | Menu | Fills with |
|---|---|---|
Cosmetic-Slots |
cosmetics-menu | The paged cosmetic icons. |
Listing-Slots |
cosmetics-market | The paged market listings. |
Preview-Slot |
equip-menu, confirm menus | The single item being equipped / bought. |
Built-in actions
Section titled “Built-in actions”Each menu understands its own actions. Any item can carry them.
Cosmetics menu (cosmetics-menu.yml):
[cycle-filter], [cycle-sort], [previous-page], [next-page], [open-market]. Clicking a
cosmetic opens the equip menu if owned, otherwise flashes the Locked icon.
Equip menu (equip-menu.yml):
[equip], [unequip], [sell]. The [equip] item is shown only while the cosmetic is unequipped
and [unequip] only while equipped - give each its own item and the menu swaps them automatically.
Market menu (cosmetics-market.yml):
[cycle-filter], [cycle-sort], [previous-page], [next-page], [search], and the pair
[my-listings] / [all-listings] (toggles between your listings and everyone’s - each shows only in
the opposite view).
Confirmation menus (market-confirm.yml, case-confirm.yml):
[confirm] completes the purchase / case open, [cancel] returns without buying.
Generic actions
Section titled “Generic actions”Available on any menu item, run when the click isn’t a built-in action:
[command]/[console]<cmd>- run as console[player]<cmd>- run as the player[message]<text>- send a chat message[close]- close the menu[open-cosmetics]- open the cosmetics menu[open-market]- open the market
The argument is the text after ]; {player} and PlaceholderAPI %...% are resolved.
Filter & sort buttons
Section titled “Filter & sort buttons”The filter and sort buttons print the list of options in their lore via these tokens, and show the current choice:
| Token | Shows |
|---|---|
{category} |
Current filter category. |
{print-categories} |
One line per category. |
{sort} / {print-sort-types} |
Current / all menu sort options. |
{sort-market} / {print-sort-types-market} |
Current / all market sort options. |
Each printed line is styled by the selection formats in config.yml. Left-click cycles forward, right-click cycles backward. The list of categories and sort options themselves is set in config.yml.
Confirmation menus
Section titled “Confirmation menus”market-confirm.yml and case-confirm.yml share the same layout: Title, Size, an optional
Preview-Slot (the item being bought/opened), and [confirm] / [cancel] buttons. A confirm button
can occupy several slots via Slots.
Title: "&8Confirm Purchase"Size: 27Preview-Slot: 13
Items: Confirm: Material: LIME_DYE Slot: 10 Name: "&a&lConfirm Purchase" Actions: - "[confirm]" Cancel: Material: RED_DYE Slot: 16 Name: "&c&lCancel Purchase" Actions: - "[cancel]"Page-limit feedback icons (No-Previous-Page, No-Next-Page, Locked, Insufficient-Funds,
Already-Owned) and the menu sounds live in
config.yml, not in these files.