Menu Items
Each entry under items: in a menu YAML defines a MenuItem — a slot configuration that controls what appears where and what happens when a player interacts with it.
Field Reference
Field | Type | Required | Description |
|---|---|---|---|
| int | No* | Single fixed slot index (0-based). |
| List | No* | Multiple fixed slot indices or placeholder strings. |
| String | No* | A placeholder expression resolving to an integer slot at runtime. |
| int | No | Render priority when multiple items target the same slot. Higher wins. Default |
| WrappedItemStack | No | Item appearance definition. |
|
| No | Tags used by layouts to filter which items they render. |
| boolean | No | Allow the player to move this item with their cursor. Default |
|
| No | All must pass for the item to be visible. |
|
| No | Requirements per click type before actions fire. |
|
| No | Actions to execute on click, keyed by click type. |
*At least one of slot, slots, or placeholder should be provided.
Slot Types
Single slot
Multiple fixed slots
Slots can also be quoted strings — useful when the value comes from a YAML anchor:
Placeholder slot
The placeholder is resolved at compute-time via PlaceholderAPI or internal processors and must evaluate to an integer:
item-stack
Field | Type | Description |
|---|---|---|
| String | Bukkit Material name (e.g. |
| String (MiniMessage) | Item display name. Supports all menu placeholders. |
|
| Each entry is a MiniMessage lore line. |
| boolean | When |
| String | Placeholder resolving to another item to copy as the base (e.g. |
Custom item providers
Prefix the material value with a namespace to use a registered ItemStackSupplier:
Built-in namespaces:
Namespace | Provider | Example |
|---|---|---|
(none) | Vanilla Minecraft material |
|
| ItemsAdder |
|
| HeadDatabase |
|
| CraftEngine |
|
Click Types
Standard Bukkit ClickType values used as keys in actions and clicks-requirements:
Key | Description |
|---|---|
| Left mouse button |
| Right mouse button |
| Shift + left click |
| Shift + right click |
| Middle mouse button |
| Drop key (Q) |
| Ctrl + drop |
| Double left click |
| Fallback — matches any click type not explicitly listed |
The UNKNOWN key acts as a wildcard fallback. If a player clicks with a type that has no dedicated entry, the UNKNOWN entry is used instead.
Priority
When two items target the same slot, the one with the higher priority value wins. View requirements are evaluated before priority comparison — an item that fails its view-requirements is treated as absent.
Taints
Taints are string tags that link items to layouts. A layout with taint: "shop-item" will only populate its slots with items that have "shop-item" in their taints list.