Skip to content

menus.yml

BeestoXd edited this page Aug 15, 2026 · 1 revision

menus.yml

Every GUI layout: sizes, slots, materials, titles and lore.

All of it reloads with /spawner reload. Players with a menu open when you reload should close and reopen it.

Rules

  • SLOT numbers are 0-indexed. Top-left is 0; in a 54-slot inventory the bottom row is 45–53.
  • SIZE must be a multiple of 9, up to 54. Invalid values are normalised to the nearest legal size.
  • Colour codes work in every title and lore line: &a legacy, &#RRGGBB hex, <#RRGGBB>text</#RRGGBB> gradient.
  • Materials are Bukkit material names. An unrecognised name falls back to the packaged default rather than breaking the menu.

Slot map for a 54-slot inventory

 0  1  2  3  4  5  6  7  8
 9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26
27 28 29 30 31 32 33 34 35
36 37 38 39 40 41 42 43 44
45 46 47 48 49 50 51 52 53

Placeholders

Each menu accepts its own set:

Menu Placeholders
MAIN-MENU {stack} {mob} {percentage} {xp} {amount} {material} {count}
STORAGE-MENU {mob} {page} {max_page} {material} {filter_status} {prev_page} {next_page}
FILTER-MENU {mob} {material} {filter_status} {chance}
SELL-CONFIRM-MENU {price} {multiplier} {item_count} {total_items} {mob}
PANEL-MENU {world}

PlaceholderAPI placeholders also resolve here when PlaceholderAPI is installed.


MAIN-MENU

SPAWNER-MENUS:
  MAIN-MENU:
    TITLE: '{stack} {mob}'
    SIZE: 27
    FILLER-MATERIAL: GRAY_STAINED_GLASS_PANE
    STORAGE-BUTTON:
      SLOT: 11
      MATERIAL: CHEST
      TITLE: '&6Spawner Storage'
      NO-ITEMS-LORE:
      - '&7No items stored.'
      ITEM-SUMMARY-FORMAT: '&6{amount} &f{material}'
      MORE-ITEMS-FORMAT: '&7+ {count} more item types...'
      FOOTER-LORE:
      - ''
      - '&eClick to view & collect spawner storage'
    MOB-HEAD-BUTTON:
      SLOT: 13
      TITLE: '&e{stack} {mob} SPAWNERS'
      LORE:
      - '&e• &fClick to sell items and collect xp'
      - '&7Storage: &e{percentage}% Filled.'
    COLLECT-XP-BUTTON:
      ENABLED: true
      SLOT: 15
      MATERIAL: EXPERIENCE_BOTTLE
      TITLE: '&aCollect XP'
      LORE:
      - '&a{xp} &fXP Points'
      - ''
      - '&eClick to claim XP points'
Key Purpose
FILLER-MATERIAL Fills every unused slot.
STORAGE-BUTTON.ITEM-SUMMARY-FORMAT One line per stored material, repeated.
STORAGE-BUTTON.MORE-ITEMS-FORMAT Shown when there are more materials than fit.
STORAGE-BUTTON.NO-ITEMS-LORE Replaces the summary when storage is empty.
STORAGE-BUTTON.FOOTER-LORE Appended after the summary.
MOB-HEAD-BUTTON Uses the type's HEAD_TEXTURE, falling back to ICON_MATERIAL. Clicking sells everything and claims XP.
COLLECT-XP-BUTTON.ENABLED false hides the button. It is also hidden while SETTINGS.XP_ENABLED is false.

STORAGE-MENU

  STORAGE-MENU:
    TITLE: '&8{mob} Spawners - {page}/{max_page}'
    SIZE: 54
    ITEMS-PER-PAGE: 45
    ITEM-META:
      TITLE: '&b{material}'
      LORE:
      - '&7Filter Status: {filter_status}'
      - ''
      - '&eLeft-Click &7to pick up'
      - '&eRight-Click &7to pick up half / place 1'
      - '&eShift-Left &7to collect to inventory'
      - '&eShift-Right &7to toggle filter'
      FILTER-ENABLED: '&aEnabled &7(Storing)'
      FILTER-DISABLED: '&cDisabled &7(Not Storing)'
    BACK-BUTTON:            { SLOT: 45, MATERIAL: BARRIER }
    FILTER-SETTINGS-BUTTON: { SLOT: 46, MATERIAL: HOPPER }
    COLLECT-ALL-BUTTON:     { SLOT: 48, MATERIAL: SPECTRAL_ARROW }
    PREVIOUS-PAGE-BUTTON:   { SLOT: 49, MATERIAL: ARROW }
    NEXT-PAGE-BUTTON:       { SLOT: 51, MATERIAL: ARROW }
    DROP-LOOT-BUTTON:       { SLOT: 52, MATERIAL: DROPPER }
    SELL-ALL-BUTTON:        { SLOT: 53, MATERIAL: GOLD_INGOT }

(The button sections are written out in full in the real file, each with SLOT, MATERIAL, TITLE and LORE.)

Key Purpose
ITEMS-PER-PAGE Loot slots per page. Clamped between 9 and SIZE - 9, so the bottom row always stays free for buttons.
ITEM-META.TITLE / LORE Applied to every stored item. This is where the click hints live.
ITEM-META.FILTER-ENABLED / FILTER-DISABLED Substituted into {filter_status}.

The item lore is documentation for your players — if you change the click behaviour hints, make sure they still match what Storage and Filters describes.

To remove a button, move it to a slot inside the loot area (below ITEMS-PER-PAGE) — it then becomes a normal storage slot. Cleaner: leave the layout alone and disable the underlying feature instead (for example SELL.ENABLED: false).


FILTER-MENU

  FILTER-MENU:
    TITLE: '&8{mob} Filter Settings'
    SIZE: 27
    ITEM-META:
      TITLE: '&b{material}'
      LORE:
      - '&7Filter Status: {filter_status}'
      - '&7Drop Chance: &e{chance}%'
      - ''
      - '&eClick &7to toggle filter'
      FILTER-ENABLED: '&aEnabled &7(Storing)'
      FILTER-DISABLED: '&cDisabled &7(Not Storing)'
    BACK-BUTTON:        { SLOT: 18, MATERIAL: BARRIER }
    ENABLE-ALL-BUTTON:  { SLOT: 25, MATERIAL: LIME_DYE }
    DISABLE-ALL-BUTTON: { SLOT: 26, MATERIAL: RED_DYE }

Content slots start at 0 and run up to the button row. {chance} is the drop chance as a percentage with one decimal — 5.0 for CHANCE: 0.05.

A type with many drops needs a bigger SIZE: with SIZE: 27 the buttons sit at 18, 25 and 26, leaving 18 content slots. Raise SIZE to 36 or 54 and move the buttons down if you configure types with more drops than that.


SELL-CONFIRM-MENU

  SELL-CONFIRM-MENU:
    TITLE: '&8Confirm Sell'
    SIZE: 27
    CONFIRM-BUTTON:
      SLOT: 11
      MATERIAL: LIME_STAINED_GLASS_PANE
      TITLE: '&aConfirm Sell'
      LORE:
      - '&fTotal Value: &a${price}'
      - '&7Category Multiplier: &e{multiplier}x'
      - ''
      - '&eClick to confirm sale!'
    CANCEL-BUTTON:
      SLOT: 15
      MATERIAL: RED_STAINED_GLASS_PANE
      TITLE: '&cCancel'
      LORE:
      - '&7Cancel transaction and return to storage.'
    INFO-ICON:
      SLOT: 13
      MATERIAL: GOLD_INGOT
      TITLE: '&eSell Summary'
      LORE:
      - '&fEstimated Total: &a${price}'
      - '&7Total Items: &f{item_count}'

{price} is the number only — the $ in the default lore is literal text. If you changed ECONOMY.CURRENCY_SYMBOL, change it here too.


PANEL-MENU and WORLD-LIST-MENU

  PANEL-MENU:
    TITLE: '&8Spawners'
    SIZE: 54
  WORLD-LIST-MENU:
    TITLE: '&8Spawners Panel'
    SIZE: 27

Only the title and size are configurable; the contents are generated. PANEL-MENU always shows 45 spawners per page, so keep its SIZE at 54. See Admin Panel.


Recipes

Compact main menu (9 slots)

  MAIN-MENU:
    SIZE: 9
    STORAGE-BUTTON:    { SLOT: 2 }
    MOB-HEAD-BUTTON:   { SLOT: 4 }
    COLLECT-XP-BUTTON: { SLOT: 6 }

Server-branded titles

  MAIN-MENU:
    TITLE: '<#00E5FF>{stack} {mob}</#0066FF>'

Hide the XP button

  COLLECT-XP-BUTTON:
    ENABLED: false

Smaller storage pages

  STORAGE-MENU:
    SIZE: 36
    ITEMS-PER-PAGE: 27

Move the bottom-row buttons to 27–35 to match.

Troubleshooting

Symptom Cause
Menu opens empty SIZE too small for the configured slots, or every button sits on the same slot
A button does nothing Its SLOT overlaps the loot area, so the click is treated as a storage click
Placeholder shows literally Wrong menu — check the table at the top of this page
Colour codes visible as text Missing quotes around a value starting with &

See also

Clone this wiki locally