Content generated with AI — it may contain mistakes.

Reference

Permissions

The wardrobe node, the admin node, the per-skin and per-piece nodes, and the two switches that decide whether they are enforced.

The nodes

PermissionDefaultGrants
exyliaarmorskin.wardrobe—/wardrobe.
exyliaarmorskin.adminopEvery subcommand of /armorskinsadmin: give, remover, list, refresh, wardrobe open, wardrobe clear and reload.
exyliaarmorskin.skin.<id>—Applying and wearing that one skin, on every piece it fits.
exyliaarmorskin.skin.<id>.<piece>—That skin on one slot only: helmet, chestplate, leggings or boots.
exyliaarmorskin.skin.*opEvery skin.

Both fixed nodes are declared in plugin.yml with default: op, so an operator owns every skin out of the box and everybody else owns none until you say otherwise.

The per-skin node

There is no permission key in skins.yml: the node is derived from the id, lowercased, so the skin galaxy is always exyliaarmorskin.skin.galaxy. Add a skin and its node exists; rename it and the node renames with it.

Selling half a skin

Each slot has a node of its own, exyliaarmorskin.skin.<id>.<piece>. The whole-skin node covers all four; a piece node covers exactly one.

/lp group vip permission set exyliaarmorskin.skin.celestial.helmet true

In the wardrobe a skin the player owns for one piece is offered on that piece, and dressing the full set dresses only the pieces they are allowed to wear — a rank holding one piece still gets it rather than being refused outright.

/lp group default permission set exyliaarmorskin.wardrobe true
/lp group vip     permission set exyliaarmorskin.skin.galaxy true
/lp group mvp     permission set exyliaarmorskin.skin.* true

What the node is checked for

Applying

Dragging a skin item onto armour, or wearing one in the wardrobe, without the node is refused with the no-permission message. Nothing is written and nothing is consumed. Governed by behaviour.require-permission.

Wearing

A piece whose skin the wearer may not use is drawn as the real armour — to them and to everyone else — and it plays no effects. The id stays on the item, untouched. Governed by behaviour.hide-without-permission.

The wearing check runs whenever the piece is reconciled: on equip, on join, on respawn, on /armorskinsadmin refresh and on /armorskinsadmin reload. Revoking a node mid-session therefore takes effect on the next of those — /armorskinsadmin refresh <player> makes it immediate. Granting it back and refreshing brings the skin straight back, because nothing was ever removed from the item.

The two switches

config.yml
behaviour:
  require-permission: true
  hide-without-permission: true
CombinationResult
Both true (default)A skin is owned: you need the node to apply it and to be seen wearing it.
require-permission: falseAnybody holding the item can apply it, but a wearer without the node is still shown the real armour.
hide-without-permission: falseThe node is needed to apply, but once applied the skin is shown to everyone forever — a permission that only gates the purchase.
Both falseNobody is checked. This is how the plugin behaved before per-skin permissions existed.
Commands and the API are never gated

/armorskinsadmin give hands out any skin item to any player, and apply() in the API writes any skin onto any piece, regardless of the node or of require-permission — those are the tools you use to grant a skin. What the wearer lacks the node for is the display, which hide-without-permission governs.

Selling skins

Because a skin travels as an item and carries a node, you can sell either half:

You wantDo
A consumable a player buys onceGive the item and grant the node with it.
A rank perkGrant exyliaarmorskin.skin.galaxy to the rank; hand the item out freely.
A skin anyone may useGrant its node to default, or turn both switches off.
A skin that stops working when a rank expiresGrant only the node, leave hide-without-permission: true. The armour keeps the id — or the wardrobe keeps the row — and the look returns the day the rank does.
A skin on one slot onlyGrant exyliaarmorskin.skin.<id>.<piece> instead of the whole node.
consume-skin-item decides whether a skin is single-use

With consume-skin-item: true — the default — applying eats the item, so a skin is a consumable. Turn it off and one item skins an unlimited number of pieces.

Something missing on this page? Tell us on Discord