-
Notifications
You must be signed in to change notification settings - Fork 0
GUI Customization
Every menu in CelestialCosmetics — the main menu, category browsers, the Actions menu, the Auction House, and the Crates menu — is rebuildable from configuration. Nothing is hardcoded: any button or icon can be moved, restyled, or hidden entirely.
Almost every configurable element follows the same structure:
some.button.path:
enabled: true # false = hide it completely (and disables the click too)
slot: 22 # move it to this slot (validated against the menu's real size)
material: GRAY_DYE
custom-model-data: 0
name: "&7Some Text"
lore:
- "&8An extra line"
texture: "eyJ0..." # only used if material: PLAYER_HEADenabled: false doesn't just hide the item visually — clicking that slot does nothing, because the same resolved slot is used both to place the button and to detect the click. Moving a button in config automatically moves where clicks are handled too; there's no way for them to desync.
If a configured slot doesn't fit the menu it's being drawn in (for example, a slot of 45 configured for a menu that's only 27 slots big), the plugin safely falls back to a sensible default position instead of throwing an error.
menu:
main-title: "&8Cosmetics"
main-size: 27
filler:
enabled: true
material: BLACK_STAINED_GLASS_PANE
categories:
tag:
slot: 10
material: NAME_TAG
name: "&#F5F537&lTags"
rebirth:
slot: 11
material: END_CRYSTAL
name: "&#F5F537&lRebirth Color"
# ...namecolor, rankcolor, chatcolor, emoji, set
empty:
enabled: true
material: GRAY_DYE
name: "&7You don't own any of these yet"Each category button supports enabled: false to remove a whole category from the menu (and from the click-routing) if you don't want players accessing it — for example, disabling Chat Color entirely on a server that doesn't wire that placeholder into chat.
The Auction House and Crates buttons on the main menu are configured under auction.menu and crates-menu respectively, following the exact same pattern (slot, enabled, material, name, lore, texture).
menu:
category-size: 54
category-title: "&8Cosmetics » {category}"
content-slots: [] # [] = automatic layout (rows 1-4, columns 1-7)
# or specify exact slots: [10,11,12,13,14,15,16, 19,20,...]
buttons:
back:
slot: 45
material: ARROW
previous:
slot: 48
next:
slot: 50
clear:
slot: 49
material: BARRIERcontent-slots controls both where cosmetics appear and how many fit per page — set it to a custom list to build a 2-row compact layout, a diamond shape, or anything else your resource pack's menu texture calls for.
Opened when a player clicks a cosmetic in their vault.
menu:
actions-buttons:
item:
slot: 13
equip:
slot: 11
withdraw:
enabled: true
slot: 15
auction:
enabled: true
slot: 20
back:
slot: 22Used for both "confirm Auction House purchase" and "confirm paying to open a crate" — same config keys, shared behavior:
menu:
confirm-buttons:
item:
slot: 13
confirm:
slot: 11
material: LIME_CONCRETE
cancel:
slot: 15
material: RED_CONCRETEmenu:
preview-buttons:
open-key:
slot: 48
buy:
slot: 50The crate list itself uses the same content-slots system as category submenus.
If you're building menus entirely out of custom textures (ItemsAdder/Oraxen/Nexo), turn off the glass-pane background entirely:
menu:
filler:
enabled: falseCombine this with custom-model-data on every button and a fully custom content-slots layout to recreate any menu design your resource pack defines.
All static lore lines shown in menus (category descriptions, "you own Nx", "click to equip", etc.) are editable in messages.yml under menu-lore:
messages:
menu-lore:
category:
- "&7Selected: {selected}"
- "&7Unlocked: &f{unlocked}&7/&f{total}"
cosmetic-owned:
- "&7You own: &#F5F537{quantity}x"
cosmetic-access-only:
- "&7Access granted by your rank or a set"Next: Admin Tools
CelestialCosmetics
Getting Started
Cosmetics
Economy & Items
Customization
Reference