Item Definitions and Sets
Item files are stored under items/*.yml; set files are stored under sets/*.yml. Item definitions determine how a stable item ID generates an ItemStack. Set definitions determine bonuses when multiple set pieces are equipped.
Item definition fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | Yes | — | Unique item ID used by other modules. |
material | string | Yes | — | Vanilla material (Bukkit Material enum name). |
display_name | string | No | — | Display name (MiniMessage format, supports %variable% placeholders). |
item_name | string | No | — | Internal item name (1.21+ item component name, cannot be changed by anvil). |
lore | list<string> | No | [] | Lore text list (MiniMessage format, supports %variable% placeholders). |
effects | list | No | — | Item effects list (unified format, see below). |
components | object | No | — | Item component configuration (see below). |
set | object | No | — | Set membership info (id and piece). |
conditions | object | No | — | Equipment conditions. |
repair | object | No | — | Repair configuration. |
update | object | No | — | Auto-update configuration. |
actions | object | No | — | Trigger action configuration. |
Effects system
Item effects use a unified effects list with a type field:
| type | Description |
|---|---|
variables | Expression engine variables for display_name and lore placeholder rendering. |
ea_attribute | EmakiAttribute PDC attributes written to item PDC. |
es_skill | EmakiSkills skill attachment, granted when equipped; payload uses the es_skills list. |
yaml
effects:
- type: "variables"
variables:
physical_attack: 12
physical_crit_rate: 5
- type: "ea_attribute"
ea_attributes:
physical_attack: 12.0
physical_crit_rate: 5.0
- type: "es_skill"
es_skills:
- "fireball"
- "flame_dash"Current configs no longer use ea_attribute_meta. Put real attribute output in explicit ea_attributes. variables are only text/placeholder context and do not automatically become Attribute PDC attributes.
Components
| Component | Type | Description |
|---|---|---|
custom_model_data | object/integer | Custom model data (1.21.4+ supports floats/flags/strings/colors). |
item_model | string | Item model NamespacedKey (1.21+ item model system). |
tooltip_style | string | Tooltip style NamespacedKey. |
enchantments | map/list | Enchantment config. Format {enchant_id: level} or ["enchant_id:level"]. |
item_flags | list<string> | Item flags (e.g. HIDE_ENCHANTS, HIDE_ATTRIBUTES). |
hide_tooltip | boolean | Hide entire tooltip. |
unbreakable | boolean | Unbreakable. |
enchantment_glint_override | boolean | Force show/hide enchantment glint. |
max_stack_size | integer | Max stack size (1–99). |
rarity | string | Item rarity (COMMON, UNCOMMON, RARE, EPIC). |
damage | integer | Current durability damage. |
max_damage | integer | Max durability. |
enchantable | integer | Enchantment level weight. |
attribute_modifiers | list | Vanilla attribute modifier list. |
Set definitions
Set files (sets/*.yml) define:
| Field | Description |
|---|---|
id | Set ID. |
display_name | Set display name. |
pieces | Map of piece IDs to their item sources. |
thresholds | List of piece-count thresholds with effects. |
lore_config | Lore rendering configuration for set status display. |
Set bonuses are refreshed based on config.yml > set_bonus.refresh_triggers.