BlazeBans/Configuration
Menus
Every in-game interface BlazeBans shows is defined in `menus.yml`: the items, their names and lore, the titles, the sizes, and the sounds. Nothing is hard-coded.
These are chest inventories, with native dialogs used for text input where the client supports them.
Item format
Every item takes the same four fields:
material: "PLAYER_HEAD"
amount: 1
name: "<color:{color_positive}>{victim_name}</color>"
lore:
- "<color:{color_text}>UUID:</color> <color:{color_accent}>{victim_uuid}</color>"
- "<color:{color_text}>Last seen:</color> <color:{color_accent}>{last_seen}</color>"material is a vanilla material name. Names and lore are MiniMessage and support that menu's placeholders. lore is a list, one entry per line.
Items reused across menus are defined once:
shared:
text-input:
chat-hint: "{meta_prefix_short}<color:{color_text}>Type your answer in chat, or type</color> <color:{color_accent}>cancel</color> <color:{color_text}>to go back.</color>"
filler:
material: "GRAY_STAINED_GLASS_PANE"
amount: 1
name: "<gray> </gray>"
lore: []
profile-head:
material: "PLAYER_HEAD"
amount: 1
name: "<color:{color_positive}>{victim_name}</color>"chat-hint is the fallback prompt shown when a native dialog is unavailable, which happens on servers running 1.21.0 to 1.21.5 and for clients older than 1.21.6.
Reference a shared item elsewhere by path:
fill:
enabled: true
item: "shared.filler"Sounds
sounds:
click:
enabled: true
key: "minecraft:block.wooden_button.click_on"
volume: 1.0
pitch: 1.0
error:
enabled: true
key: "minecraft:block.note_block.bass"
toggle-on:
enabled: true
toggle-off:
enabled: trueSet enabled: false on any of them to silence it. key is a vanilla sound identifier.
The profile menus place each panel at a specific slot:
menus:
profile:
inventory:
title: "<color:{color_accent}>{victim_name}</color> <color:{color_text}>Profile</color>"
size: 27
fill:
enabled: false
item: "shared.filler"
items:
identity:
slot: 4
material: "PLAYER_HEAD"
summary:
slot: 10
material: "RECOVERY_COMPASS"
counts:
slot: 12
material: "WRITABLE_BOOK"Slots are zero-indexed. In a 27-slot inventory, 0 to 8 is the top row, 9 to 17 the middle, 18 to 26 the bottom. Sizes must be multiples of nine.
Turning fill.enabled on pads every unused slot with the filler item, which gives a cleaner look at the cost of a busier inventory.
The punish GUI has three steps with their own sizes:
menus:
punishgui:
inventory:
type-size: 27
reason-size: 45
confirm-size: 27The reason step is larger because it holds one item per template. Increase it if you have many.
Paginated lists
The five list menus share a structure:
menus:
banlist:
title: "<color:{color_text}>Banlist</color> <color:{color_subtle}>({count})</color> <color:{color_accent}>Page {page}/{pages}</color>"
searching-title: "<color:{color_text}>Searching:</color> <color:{color_accent}>\"{search_query}\"</color>"
search:
name: "<color:{color_accent}>Search & Filter</color>"
filters:
title: "<color:{color_text}>Filter Banlist</color>"
previous:
name: "<color:#ff262a>Previous page</color>"
next:
name: "<color:#3ddc57>Next page</color>"
record:
name: "<color:{color_negative}>{victim_name}</color> <color:{color_subtle}>({punishment_id})</color>"
lore:
- "<color:{color_text}>Type:</color> <color:{color_accent}>{type}</color>"
- "<color:{color_text}>Staff:</color> <color:{color_accent}>{staff_name}</color>"
- "<color:{color_text}>Reason:</color> <color:{color_detail}>{punishment_reason}</color>"record is the item drawn for each entry in the list. The title uses {count}, {page}, and {pages}; the searching title uses {search_query}.
Staff can search by player, staff, reason, ID, type, status, or server, and the advanced filter panel adds type, status, duration, age, proof, and silent state. {filter_summary} shows what is currently applied.
The theme values ({color_*}, {meta_prefix_*}) work in every menu.
Player heads
Titles can embed a player's head:
title: "{meta_prefix_short}<head:{victim_name}> <color:{color_accent}>{victim_name}</color>"The <head:> tag renders the player's skin inline. It resolves by name, so it works for anyone the server knows.
Applying changes
/blazebans reload menus.ymlMenus rebuild from the new configuration the next time they are opened. Anyone with a menu already open keeps the old one until they close it.

