GUI Template
The accessory panel is described by plugins/EmakiAccessory/gui/accessory_gui.yml.
Slots Must Declare type Explicitly
Accessory cells must declare type: "accessory_slot" explicitly. A cell without type is nothing but decoration.
Available Types
type | Purpose |
|---|---|
accessory_slot | An accessory cell. The key name must equal a slot instance id. |
orphan_slot | An orphan cell showing accessories from slots the page no longer declares, for retrieval. |
page_enable | An enable cell. Clicking makes the current page the active one; only the active page's accessories take effect. |
page_switch | A switch cell. The key name must equal the target page's page_id; clicking opens that page. |
One layout can be shared by several pages: gui_template in pages/*.yml points at a layout id. When sharing, note that a placed slot instance must be declared in that page's parts, otherwise the cell is unusable for the page.
accessory_slot
The key name must equal a slot instance id in the form <partId>_<index>, with the index starting at 1 and matching that part's count in parts.yml.
For a ring part with count: 2, place both ring_1 and ring_2:
slots:
ring_1:
slots: [12]
type: "accessory_slot"
item:
source: "LIGHT_GRAY_STAINED_GLASS_PANE"
components:
custom_name: "<gray>Ring</gray>"
lore:
- "<dark_gray>Insert an accessory to activate</dark_gray>"
ring_2:
slots: [13]
type: "accessory_slot"Each accessory_slot may occupy only one cell. When several are written, only the first takes effect and the rest are logged as warnings.
Slots declared in parts.yml but not placed here are likewise logged as warnings, and the player cannot use them.
A slot's item section defines the placeholder shown while the slot is empty; it is replaced by the real item once an accessory is inserted.
orphan_slot
Accessories in slots the page no longer declares appear here for the player to retrieve, and cannot be put back once retrieved. Shrinking count in parts.yml, deleting a part, or removing a part from a page's parts all produce orphans.
slots:
orphan:
slots: "37-43"
type: "orphan_slot"
item:
source: "GRAY_STAINED_GLASS_PANE"
components:
custom_name: "<gray>"
tooltip_display:
hide_tooltip: trueAn orphan area may occupy several cells. The check is based on whether the owning page declares the slot, so accessories on other pages are never treated as orphans.
Not placing an orphan area loses nothing: the data stays in the file, but players have no in-GUI retrieval entry point and depend on /eacc retrieve <page> or on the configuration being restored.
page_enable
Clicking makes the currently open page the active one. Only the active page's accessories provide attributes, skills, and set piece counts; other pages keep their data without contributing.
slots:
page_enable:
slots: [8]
type: "page_enable"
item:
source: "lime_dye"page_switch
The key name must equal the target page's page_id; clicking opens that page. Switching only changes the view, not the active page — clicking page_enable is still required to activate the new page.
slots:
main:
slots: [0]
type: "page_switch"
item:
source: "gold_ingot"
secondary:
slots: [1]
type: "page_switch"
item:
source: "iron_ingot"When the target page declares a permission the player lacks, the switch is refused.
Decorative Cells
Cells without type are pure decoration, such as a frame:
slots:
frame:
slots: "0-8,45-53"
item:
source: "BLACK_STAINED_GLASS_PANE"
components:
custom_name: "<gray>"
tooltip_display:
hide_tooltip: trueTop-Level Keys
| Key | Example | Description |
|---|---|---|
id | "accessory_gui" | Template id, referenced by gui_template in pages/*.yml. |
gui_type | CHEST | Window type. |
title | "<dark_gray>Accessories</dark_gray>" | Window title; MiniMessage is supported. |
rows | 6 | Row count. |
slots | — | Slot definitions. |