Content generated with AI — it may contain mistakes.

Getting started

Introduction

What ExyliaArmorSkin is: a colour and a trim drawn over any armour piece with packets, while the real item keeps everything it had.

ExyliaArmorSkin puts a skin on a piece of armour. A skin is a colour, an optional trim and an optional animation, and it is drawn on the way to the client: the netherite chestplate stays a netherite chestplate on the server, and everyone sees blue leather with a vex trim.

The armour itself is never converted. Applying a skin writes one value into the item's data — exyliaarmorskin:skin, the skin id — and nothing else changes. Enchantments, attributes, durability, custom model data and any other plugin's data stay exactly where they were.

What the client is shown

On the real itemOn the visual
Netherite chestplateThe leather piece of the same slot, in the skin's colour
Its trim, or noneThe skin's trim, when the skin sets one
Its display nameThe same name, or the vanilla name of the real material
Its loreThe same lore, then a blank line, then the armor-lore lines
Its enchantmentsHidden, but the glint is kept
Its durabilityThe real damage and the real maximum, so the bar reads true
Its attributesHidden, and never replaced by leather's

Who sees a skin

ViewerSees
Everyone tracking the wearerThe skin, on the body
The wearer, in their own inventory and paper dollThe skin
The wearer in creativeThe real armour — a creative client echoes its slots back to the server, so it must be shown the truth
Anyone looking at a skinned piece in a chest, hotbar or on the cursorThe real item with the skin's lore lines added
Everyone, when the wearer lacks that skin's permissionThe real armour — the id stays on the item, or the row stays in the wardrobe, and the look returns with the node
Anyone looking at an elytraThe elytra. It sits in the chest slot but is not armour, and dressing it as a chestplate would cost the wearer their flight

What ships

Twenty skins in skins.yml — every one of them animated — and twenty-one animations in animations.yml, built from seven animation types: rainbow, pulse, frames, wave, sweep, bloom and flicker. Each skin also carries a set bonus: particles around the body, a line when the set closes and another when it breaks, once every piece it fits is worn with it.

Each skin owns a permission derived from its id, exyliaarmorskin.skin.<id>, with a node per slot underneath it (…skin.<id>.helmet), and by default a player needs it both to wear the skin and to be seen wearing it.

Two ways a skin gets worn

WayWhose it isWhich server it suits
A skin itemThe armour's: one value is written onto the piece and travels with it through chests, trades and deaths.Survival, economy
The wardrobeThe player's: stored per player and per slot in a table, and it lands on whatever they equip.Practice, PvP

behaviour.mode decides which is read — item, wardrobe or both — and is covered in The wardrobe.

A skin item is used by dragging: drop it onto a piece of armour in your own inventory and it is applied; drop a remover onto skinned armour and the skin comes off and is handed back as the item again. The wardrobe is /wardrobe: one screen, click a slot, click a skin.

The armour is never rewritten

An applied skin item writes a single value onto the piece; a wardrobe choice writes nothing at all. Everything else is packets, so what any other plugin reads from that armour is exactly what it had.

Something missing on this page? Tell us on Discord