guis/
One YAML per inventory menu layout.
The guis/ folder holds one YAML per inventory menu. Splitting
the layouts out means you can re-skin a single menu without
touching the others, and the layouts themselves can be diffed and
version-controlled cleanly.
Anatomy of a GUI file
Every GUI file follows the same shape: a title, a size, and an
items: map keyed by a unique id.
title: "<#4DA6E8>Vote Menu</>"
size: 27 # rows * 9: 9, 18, 27, 36, 45, 54
items:
filler:
material: GRAY_STAINED_GLASS_PANE
name: " "
slots: [0, 1, 2, 3, 5, 6, 7, 8, 9, 17, 18, 26]
vote-now:
material: PAPER
name: "<#4DA6E8><b>Vote Now</b></>"
lore:
- "<gray>Click to open the site list."
slot: 11
action: open-sites
my-stats:
material: PLAYER_HEAD
name: "<#FFD700>%player%'s Stats</>"
lore:
- "<gray>Total votes: <white>%total_votes%</white>"
- "<gray>This month: <white>%monthly_votes%</white>"
- "<gray>Streak: <white>%streak%</white> day(s)"
slot: 13
action: open-my-stats
leaderboard:
material: NETHER_STAR
name: "<#FF9D5E><b>Leaderboard</b></>"
lore:
- "<gray>See the top voters this month."
slot: 15
action: open-leaderboardPer-item keys
| Key | Type | Notes |
|---|---|---|
material | string | Bukkit material name. PLAYER_HEAD resolves to the viewing player's head. |
name | string | MiniMessage. Item display name. |
lore | list | MiniMessage lines under the name. |
slot | int | A single slot index. Mutually exclusive with slots. |
slots | list | A list of slot indices (e.g. for filler items spanning many cells). |
action | string | One of: open-sites, open-leaderboard, open-milestones, open-party, open-my-stats, vote-claim, vote-remind, close, command:<command>. |
glow | boolean | Adds an enchant-glow effect without showing the enchant. |
custom-model-data | int | Custom model data for resource-pack icons. |
Custom actions
action: command:/spawn runs /spawn as the viewing player when
they click the item. This lets you put server-navigation shortcuts
right inside the vote menu without writing a single line of code.
Slots are 0-indexed. A 27-slot menu has slots 0..26 — top-left is 0, bottom-right is 26. If you're laying out a complex menu, sketch it on graph paper before counting slots; it's faster than guessing and reloading.