Pack Metadata
Pack Metadata
This page explains pack.yml.
pack.yml defines how a pack appears inside the SkinEngine GUI. It is the pack header, not the place where actual skin content is defined.
Example
display:
name: "<aqua>Frostfall</aqua>"
description:
- "<gray>A cold-themed cosmetic pack.</gray>"
icon:
material: PAPER
item-model: "{$decorative:frostfall_info}"
name: "<aqua>Frostfall</aqua>"
lore:
- "<gray>Open the Frostfall pack.</gray>"
hide-tooltip: false
item-flags:
- HIDE_ATTRIBUTES
Pack id
The real pack id is the folder name.
So this folder:
/plugins/SkinEngine/packs/frostfall/
creates the pack id frostfall.
Do not rely on a separate id: field in pack.yml.
display
display.name
The visible pack name in the GUI.
display.description
Description lines for the pack. These are used as the pack's base description and can also be reused in pack lore rendering.
icon
The icon block controls the item shown for the pack in the packs menu.
Supported fields:
materialitem-modelnamelorehide-tooltipitem-flags
icon.material
Fallback Bukkit material for the pack icon.
If icon.item-model points to a decorative token, SkinEngine uses that decorative item's material automatically.
If icon.material is invalid, the pack still loads and SkinEngine falls back to CHEST.
icon.item-model
Optional model override for the icon.
This can be:
- a normal namespaced model key
- a decorative token like
{$decorative:frostfall_info}
If icon.item-model is invalid, the pack still loads and SkinEngine falls back to the icon material logic instead of skipping the whole pack.
icon.name
Optional custom icon name.
If omitted, the pack display name is used.
icon.lore
Optional custom icon lore.
If omitted, SkinEngine falls back to the pack description and the translated pack lore template from translations/<language>/guis.yml.
icon.hide-tooltip
Optional boolean flag for hiding the vanilla item tooltip on the pack icon.
icon.item-flags
Optional item flags applied to the pack icon.
Use normal Bukkit ItemFlag names such as:
HIDE_ATTRIBUTESHIDE_ENCHANTSHIDE_ADDITIONAL_TOOLTIP
If a flag is invalid, SkinEngine ignores just that flag and keeps loading the pack.
Loader behavior
Pack icons are validated field by field.
That means:
- a broken icon no longer causes the whole pack to be skipped
- invalid
icon.item-modelfalls back to material handling - invalid
icon.materialfalls back toCHEST - invalid
icon.item-flagsare ignored individually
Good practice
- keep pack names short and readable
- use the description for the pack itself, not for per-skin details
- use decorative items for custom-looking pack icons instead of stuffing image logic into the wrong place