JMH Icon Data¶
Quick Start: Pick your goal.
Every icon field in JManhunt accepts JMH Icon Data: a material name with
optional bracket attributes that paint the menu item. It works the same in
cosmetic meta.icon values, modifier and preset visibility.icon values,
setting-definition icons, and lobby toolbar items.
icon: POTION[color, ff0000]
icon: WHITE_BANNER[[BLACK, BRICKS], [LIME, CREEPER]]
icon: PLAYER_HEAD[head, eyJ0ZXh0dXJlcyI6...]
icon: NETHERITE_CHESTPLATE[GOLD, VEX]
Attribute names and values match case-insensitively, so color and COLOR
both parse; the recommended style stays UPPERCASE for readability.
Attributes¶
color¶
POTION[color, ffffff] paints potion, splash potion, lingering potion, and
leather armor icons. The value is a six-digit hex color without the #.
banner¶
WHITE_BANNER[BLACK, BRICKS]stacks one banner pattern layer. Nest layers for more:WHITE_BANNER[[BLACK, BRICKS], [LIME, CREEPER]].- Colors are the vanilla banner dyes (
BLACK,RED,LIME, and so on); patterns are the vanilla pattern ids (BASE,BORDER,BRICKS,CIRCLE,CREEPER,FLOWER, and so on). - Java Edition supports up to 16 layers: extras log a console error and only the first 16 render.
head¶
PLAYER_HEAD[head, red]paints a solid-color head from the internal palette, matched case-insensitively:WHITE,LIGHT_GRAY,GRAY,BLACK,BROWN,RED,ORANGE,YELLOW,LIME,GREEN,CYAN,LIGHT_BLUE,BLUE,PURPLE,MAGENTA,PINK(writeLIGHT_BLUEorlight blue, both hit).- A base64 value overrides the head skin with that texture instead. Find texture values at minecraft-heads.com.
- A value of 16 chars or fewer that reads as a player name renders
that player's head (
PLAYER_HEAD[head, Stevee]); anything longer reads as a player UUID, dashed or trimmed (PLAYER_HEAD[head, 5663d1ab-276f-4b49-ab18-b2e6d8baa919]). - Without this attribute,
PLAYER_HEADalways renders the viewing player's own head. A value that is none of palette name, player name, UUID, or valid texture warns and falls back to the viewer's head.
trim¶
NETHERITE_CHESTPLATE[GOLD, VEX] applies an armor trim, as
MATERIAL[trim-material, trim-pattern]. Both entries use the vanilla trim
ids (GOLD, VEX, SENTRY, and so on).
Fallbacks¶
Icon Data only paints what the item can show. An attribute the material does not support logs a console warning and the naked material renders instead; a malformed value warns once and likewise renders plain. Names, lore, and glow stay owned by their own fields and the menu itself, never by Icon Data.
When editing an icon in the modifier or preset GUIs, the icon dialog lists these attributes with examples, so authors never have to leave the game.
Settings validation¶
Icon entries in the settings GUI (the Material type rows, such as the
spectator and lounge toolbar items) validate before they save, in the GUI
and in /mh config alike:
- A value must name a real item material; when it carries brackets, the brackets must open and close, hold a key plus a value, name a known attribute, fit the material (a potion cannot take banner layers), and hold a valid value for the attribute (a real dye, pattern, trim, hex color, or head texture).
- Rejected values explain the first problem found, and nothing saves until the value passes.
- Comma-separated toolbar item lists (like the after-match toolbar) stay free text and keep the warn-and-skip fallbacks above.