Icon attributes

As seen in the menu icons section, attributes modify the appearance and behaviour of icons.
Strictly required attributes are:

  • MATERIAL
  • POSITION-X
  • POSITION-Y



MATERIAL

Type: string

The material type of the icon. It can be air to make the item invisible but still clickable.

Names of materials in Spigot are different than vanilla Minecraft ones.

Valid materials lists for each version (don't use the ones prefixed with LEGACY_):

Example:

MATERIAL: diamond sword

POSITION-X and POSITION-Y

Type: integer

These attributes are used as coordinates to set the position of the icon inside the menu.
POSITION-X is the column (from left to right, values between 1 to 9) and POSITION-Y is the row (from top to bottom, values between 1 and the number of rows of the menu).

You can easily find the coordinates with this table:

Coordinates table

Example:

POSITION-X: 5
POSITION-Y: 1

ACTIONS

Type: list

A list of actions executed after the player clicks on the icon. By default, an action makes the player run a command, as if they typed in the chat. There are many types of actions, like sending a message in chat or playing a sound: read more on the page dedicated to click actions.

Example:

ACTIONS: 
  - 'spawn'

NAME

Type: string

The display name is the first line that appears in the tooltip when hovering over the icon. You can use colors, symbols and placeholders.

Example:

NAME: '&6This is a colored name!'

LORE

Type: list

Additional lines that appear below the name in the tooltip. You can use colors, symbols and placeholders.

Example:

LORE:
- 'Description of the item'
- 'on multiple lines'

DURABILITY

Type: integer

Alias: DURABILITY

Sets the durability of a tool, weapon or armor. Before Minecraft 1.13 it was also known as "data value", it was used to obtain variants of the same block or item (for example, colored wool).

Example (damaged armor):

MATERIAL: diamond helmet
DURABILITY: 150

Example for Minecraft 1.12 and earlier (yellow wool):

MATERIAL: wool
DURABILITY: 4

AMOUNT

Type: integer

Sets the amount displayed on the icon.

Example:

AMOUNT: 12

NBT-DATA

Type: string

Applies arbitrary NBT data to an icon (more info about NBT). This attribute is a powerful tool and allows to set any vanilla NBT tag that is currently not covered by existing icon attributes.

Example (icon must be a player head):

# (Minecraft 1.16+)
NBT-DATA: '{SkullOwner:{Id:[I;-2118090499,36390780,-1625030656,16135986],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGFlNTJhZThjOThhYzE5ZmQwNzYzN2E0NjlmZmEyNTZhYjBiM2IxMGVjZTYyNDMxODYxODhiYTM4ZGYxNTQifX19"}]}}}'

# (Minecraft 1.8 - 1.15)
NBT-DATA: '{SkullOwner:{Id:"81c080fd-022b-477c-9f24-f63732",Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGFlNTJhZThjOThhYzE5ZmQwNzYzN2E0NjlmZmEyNTZhYjBiM2IxMGVjZTYyNDMxODYxODhiYTM4ZGYxNTQifX19"}]}}}'

Example (you can set the enchantments through NBT instead of ENCHANTMENTS attribute):

NBT-DATA: '{Enchantments:[{id:"minecraft:sharpness",lvl:3}],HideFlags:62}'

ENCHANTMENTS

Type: list

Adds enchantments (list of valid enchantments) to the icon, mostly used just for the glowing effect.
Format of each element: <enchantment>, [level] where only <enchantment> is strictly required.

Example:

ENCHANTMENTS:
  - sharpness, 5
  - silk touch
  - durability, 10

COLOR

Type: string

Used for coloring leather armor.
Format: <red>, <green>, <blue> where each color is a number between 0 and 255 (RGB color picker).

Example:

COLOR: '255, 0, 0'

SKULL-OWNER

Type: string

Sets the skull owner of an icon (it must be a player head). You can use the {player} placeholder as a value to display the head of the player viewing the menu. If you want to display a custom texture you should use NBT-DATA instead.

Example (icon must be a player head):

SKULL-OWNER: '{player}'

BANNER-COLOR

Type: string

Sets the base color of a banner. Value must be a dye color (list of valid dye colors).

This attribute only works in Minecraft 1.12 and earlier, when there wasn't a separate material for each banner color.

Example (icon must be a banner):

BANNER-COLOR: 'light_blue'

BANNER-PATTERNS

Type: list

Sets the patterns of a banner, in the order they are listed.
Format of each element: <pattern>:<color> where <pattern> is a pattern type (list of valid pattern types) and <color> is a dye color (list of valid dye colors).

Example (icon must be a banner):

BANNER-PATTERNS:
  - 'cross:yellow'
  - 'border:red'

PRICE

Type: decimal

Money required to execute the actions of the icon. The money will be removed before running any action. Requires a valid economy setup.

Example:

PRICE: 100.0

LEVELS

Type: integer

Cost in experience levels to execute the actions of the icon. The levels will be removed before running any action.

Example:

LEVELS: 5

REQUIRED-ITEMS

Type: list

Sets a list of required items (as a cost) to execute the actions of the icon. The items will be removed before running any action.
Format of each element: <material>:[durability], [amount] where only <material> is stricly required.

Example for Minecraft 1.13 and newer (30 yellow wool):

REQUIRED-ITEMS:
  - 'yellow wool, 30'

Example for Minecraft 1.12 and earlier (30 yellow wool):

REQUIRED-ITEMS:
  - 'wool:4, 30'

KEEP-OPEN

Type: boolean

Sets if the menu should be closed after clicking on the icon. The default value is false (the menu closes after clicking).

Example:

KEEP-OPEN: true

PERMISSION

Type: string

Sets a custom permission, required for players to be able to click on the icon and execute the actions. You can negate it with a minus - at the start: only players that don't have the permission will be able to use the icon.

Example:

PERMISSION: 'my.custom.permission'

Example (negated):

PERMISSION: '-my.custom.permission'

VIEW-PERMISSION

Type: string

Sets a custom permission, required for players to be able to see the icon. Can be negated like PERMISSION.

Example:

VIEW-PERMISSION: 'my.custom.permission'

PERMISSION-MESSAGE

Type: string

This attribute customizes the error message sent to a player that doesn't have the PERMISSION when clicking on the icon. If not set, the default message in config.yml will be used.

Example:

PERMISSION-MESSAGE: '&cYou must be VIP to use this.'