🖼️ guis.yml Guide
The guis.yml file defines the layout and behavior of all graphical interfaces used by the plugin. It allows full customization of menus such as gravestone info, decoration selection, and item recovery.
Each GUI is defined under a named section (personal-gui, selector-gui, grave) and includes a layout and ingredients.
🔠 Layout System
The layout is defined using character mapping. Each character corresponds to a specific ingredient type defined in the ingredients section.
Example layout:
- "x x x x x x x x x"
- "x x x x x x x x x"
- "x x x x x x x x x"
- "x x x x x x x x x"
- "# # y y y y y # #"
- "Q E # # # # # # C"
🧩 Ingredient Types (Overview)
Each ingredient type defines the behavior of a slot in the GUI. These are parsed internally and linked to specific logic:
Common Types
Item: Static visual item (e.g. border or filler). UsesDadaItemBuilderto define material, name, and lore.close: Closes the GUI. Uses aCloseItemobject with optional lore and styling.
🧍 Section: personal-gui
This section configures the interface shown to players when viewing their gravestone info.
Ingredient types:
Selected: Highlights the current decorationItem: Used for borders and fillers
Supports dynamic lore with %decoration% and conditional formatting.
🧩 Section: selector-gui
Used to let players browse and select available decorations.
Ingredient types:
Item: For borders and backgroundBack,Forward: For page navigation
Placeholders:
%decoration%: Decoration name%currentpage%,%maxpage%: Pagination info
⚰️ Section: grave
This GUI is shown when a player interacts with their gravestone. It allows them to recover items, XP, and view decorations.
Ingredient types:
QuickAccess: Retrieves all stored items. Supportsempty-itemfallback and updates GUI state.xp: Retrieves stored experience. Also supports empty fallback and GUI updates.Item: Used for borders
Behavior Notes
QuickAccessandxpsupport left-click and right-click actions:- Left-click: Take all
- Right-click: Drop everything
- GUI updates are handled via internal lists (
updategui) to refresh content dynamically. %owner%placeholder is available in the GUI title.
🧱 Default Items
Defined at the top level of guis.yml:
default-decoration-item:
material: PAPER
default-not-unlocked-item:
material: GRAY_STAINED_GLASS_PANE
Used as fallback visuals when no decoration is selected or when a decoration is locked.
📝 Tips for Beginners
- Every character in the layout must be defined in
ingredients, or it will be ignored. - Use
<gold>,<gray>,<br>for styled text and lore. - If you're unsure what a type does, start with
Itemandclose, then experiment withselected,back,forward,QuickAccess, andxp. - You can preview GUI behavior by testing with a single slot and expanding gradually.