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:

  • material
  • item-model
  • name
  • lore
  • hide-tooltip
  • item-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_ATTRIBUTES
  • HIDE_ENCHANTS
  • HIDE_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-model falls back to material handling
  • invalid icon.material falls back to CHEST
  • invalid icon.item-flags are 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