TDXPlugins
TDX VotePlusConfiguration

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.

main.yml
leaderboard.yml
milestones.yml
party.yml
my-stats.yml

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.

plugins/TDXVotePlus/guis/main.yml
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-leaderboard

Per-item keys

KeyTypeNotes
materialstringBukkit material name. PLAYER_HEAD resolves to the viewing player's head.
namestringMiniMessage. Item display name.
lorelistMiniMessage lines under the name.
slotintA single slot index. Mutually exclusive with slots.
slotslistA list of slot indices (e.g. for filler items spanning many cells).
actionstringOne of: open-sites, open-leaderboard, open-milestones, open-party, open-my-stats, vote-claim, vote-remind, close, command:<command>.
glowbooleanAdds an enchant-glow effect without showing the enchant.
custom-model-dataintCustom 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.