Content generated with AI — it may contain mistakes.

Getting started

Installation

Dependencies, the files it writes on first start, the wardrobe table, and what updating covers.

Installing

Drop in the jars

ExyliaArmorSkin.jar, plus ExyliaLib and packetevents, into plugins/. PlaceholderAPI is optional: it is only used to resolve %placeholders% written in the item names and lore.

Start the server

It writes config.yml, skins.yml and animations.yml under plugins/ExyliaArmorSkin/. While the wardrobe is on it also writes menus/wardrobe.yml, opens database.yml and creates its table.

Give yourself a skin

/armorskinsadmin give <you> galaxy, then drag the item onto a chestplate in your inventory.

Edit the files

Add or change skins in skins.yml and animations in animations.yml, then /armorskinsadmin reload.

packetevents is a hard dependency

It is declared as depend, so the server refuses to enable this plugin without it. The whole plugin is a packet rewrite — there is nothing it can do without it. ExyliaLib is declared as softdepend for load ordering, but the plugin is built on it and will not work without it either.

Requirements

RequirementNotes
Minecraft 1.21+api-version: '1.21', built against the Paper 1.21.4 API.
Java 21The jar is compiled for 21.
Paper, or FoliaIt uses Paper's armour-change event and sendEquipmentChange. Folia is supported (folia-supported: true).
ExyliaLibConfiguration, text, items, effects and tasks.
packeteventsRequired. Equipment, set-slot and window-items packets are rewritten through it.
PlaceholderAPIOptional. Only for %placeholders% inside the item name and lore.

Files

FileContents
config.ymlThe skin item, the remover item, the lore added to skinned armour, the wardrobe wording, the behaviour switches and every message.
skins.ymlThe skins themselves, keyed by id.
animations.ymlNamed animations a skin can refer to.
menus/wardrobe.ymlThe wardrobe screen: the armour row, the skin grid, its templates and buttons. Written only while the wardrobe is on.
database.ymlWhere wardrobes are stored. H2 by default.

The table

armorskin_wardrobe, one row per player: the uuid and one column per piece — helmet, chestplate, leggings, boots — each holding a skin id or nothing.

It is only read and written while the wardrobe is on (behaviour.mode is wardrobe or both). On an item server the only thing written outside the files is the skin id on the armour itself.

A skin id in a column that skins.yml no longer declares simply draws nothing — the row is left alone, and the look returns if the skin comes back.

Messages live in config.yml

Unlike most Exylia plugins, this one has no messages.yml. Every line it sends is under messages: in config.yml.

Updating

Replace the jar and restart. /armorskinsadmin reload re-reads those files, rebuilds every skin and redraws everyone online, so a colour change is visible without anybody re-equipping.

Something missing on this page? Tell us on Discord