Configuring an ItemStack

Where you’ll use this:

What it does:

Defines the ItemStack’s material, name, lore, visual flags and custom model data

Names and lore support MiniMessage formatting and Placeholders


Field reference

Field Type Default Notes
material Material EGG Any valid Bukkit Material for your server version (e.g., BOOK, PAPER, COD)
displayName String "" Supports MiniMessage (e.g., <gold>Notes) or legacy color codes (if enabled by your text pipeline)
lore List<String> null Each list entry is one line. Supports MiniMessage/legacy like displayName
loreMergeMode LoreMergeMode (plugin default, usually REPLACE) How lore merges with any existing lore. Typical values: REPLACE, APPEND, PREPEND
glint boolean false Forces enchantment glint visual without needing an enchant
customModelData (pre-1.20.5) Integer null For versions before 1.20.5
flags List<ItemFlag> null Standard Bukkit flags, e.g. HIDE_ATTRIBUTES, HIDE_ENCHANTS, HIDE_UNBREAKABLE
skullTexture String null (Optional) Base64/player texture for skulls. (NOT FULLY SUPPORTED)
itemComponents (1.20.5+) NOT FULLY IMPLEMENTED Map<String,Object> null New Item Component system keys/values for modern packs (e.g., custom model component)
lineWrap LineWrapOptions null Optional wrapping rules for long names/lore (width/soft wrap) (NOT FULLY SUPPORTED)

Placeholders: Names/lore (and any text fields your pipeline supports) are passed through the PlaceholderService, so tokens like {player} or custom placeholders can be resolved when a player context is available


Minimal examples

Simple icon

material: BOOK
displayName: "<gold>Notes"

With lore and glint

material: PAPER
displayName: "<white>Torn Page"
lore:
  - "<gray>An old, fragile piece of parchment."
glint: true

Version-specific examples