Content generated with AI — it may contain mistakes.

Configuring

The wardrobe

One screen that dresses the player rather than the armour: focus, wear, clear, and every template menus/wardrobe.yml declares.

The wardrobe is the second way to wear a skin. A skin item writes onto the armour; the wardrobe stores the choice against the player, so it survives death, trading and a change of gear — and the armour is never written to at all.

/wardrobe opens one window of 54 slots.

The three modes

behaviour.mode decides where a piece's skin comes from:

ModeWhere it comes fromWhat it implies
itemOnly what a skin item wrote onto the armour.The skin is traded, dropped and lost with the piece. No wardrobe, no database.
wardrobeOnly what the player picked in /wardrobe.It follows the player and lands on whatever they equip. Skin items do nothing.
bothThe armour's own skin, and the wardrobe for armour that carries none.The default.

In both the armour wins: a skinned piece is drawn with its own skin, and the wardrobe only covers bare pieces.

The two lists

SectionSlotsWhat it holds
targets2,3,4,5,6What is being dressed: the full set, then helmet, chestplate, leggings and boots.
skins10-16,19-25,28-34,37-43Every skin, paged with the buttons at slots 48 and 50.

UNDRESS sits at slot 45 and clears everything; CLOSE at 49.

Each armour row is drawn in the leather piece of its own slot, tinted with the skin worn there, so the top of the screen is what the player currently looks like. A grid row is drawn in the piece being dressed, so the skin is previewed where it is going to end up; a skin that does not fit the focused piece is drawn in a piece it does fit.

What a click does

ClickOnResult
LeftAn armour rowFocuses it — the grid now dresses that piece.
RightAn armour rowClears that piece.
LeftThe full-set rowFocuses every piece at once.
RightThe full-set rowClears the whole wardrobe.
Any clickA skinWears it on whatever is focused, or takes it off when it is already the one worn.
Dressing the whole set dresses what you are allowed to wear

With the full set focused, a skin is applied to every piece the player has permission for — so a rank that owns one piece of a skin still gets that piece rather than being refused outright.

Templates

SectionTemplateUsed when
targetsitem_templateAn armour slot that is not focused.
focused_templateThe armour slot being dressed.
set_templateThe full-set row, not focused.
focused_set_templateThe full-set row while it is focused.
skinsitem_templateA skin the player may use and that fits.
selected_templateThe skin worn on the focused piece — or on every piece the skin fits, with the set focused.
unsupported_templateA skin whose pieces do not include the focused slot.
no_permissions_templateA skin the player does not own.

item_template is the plain state and must stay first in each list. The locked and unsupported rows carry no action of their own: clicking one does nothing.

Placeholders

These are the wardrobe's own tokens, filled in while the screen is drawn. They are not PlaceholderAPI placeholders and only work inside this file.

The targets list holds two kinds of row — the full-set row first, then one row per piece — and each kind carries its own tokens.

PlaceholderWhereWhat it draws
%target%targetsWhat the row dresses: a piece key, or set on the full-set row.
%target_name%targetsIts name from wardrobe: full-set, or the piece's own name.
%dressed%targets, full-set rowHow many of the four pieces carry a skin.
%pieces%targets, full-set rowHow many pieces there are in total — four.
%piece%targets, piece rowsThe piece's key: helmet, chestplate, leggings or boots.
%piece_material%targets, piece rowsThe leather material of that slot, to draw the row with.
%skin_name%targets, piece rowsThe skin worn on that piece, or wardrobe.empty.
%skin_color%targets, piece rowsThat skin's hex colour, or undyed leather when it has none.
%skin_trim_pattern%targets, piece rowsThat skin's trim pattern, empty when it has no trim.
%skin_trim_material%targets, piece rowsThat skin's trim metal, empty when it has no trim.
%skin_id%skinsThe skin's id.
%skin_name%skinsIts display name.
%skin_icon%skinsIts icon, or the default skin item's material.
%skin_preview%skinsThe armor piece it is previewed in — the one being dressed when the skin fits it.
%skin_color%skinsIts hex colour, or undyed leather when it has none.
%skin_trim_pattern%skinsIts trim pattern, empty when it has no trim.
%skin_trim_material%skinsIts trim metal, empty when it has no trim.
%skin_pieces%skinsThe pieces it fits.
%skin_worn%skinsThe pieces the player is wearing it on, empty when none.
%skin_worn_name%skinsThe same, but wardrobe.empty when none.

Actions

ActionWhat it does
armorskin:wardrobeOpens the screen.
armorskin:focus <target>Dresses one piece, or set for all four.
armorskin:wear <skin>Wears a skin on the focus, or takes it off when it is already worn.
armorskin:clear <target>Clears one piece, or set for the whole wardrobe.

Wording

The few strings one template draws for every row live in config.yml:

config.yml
wardrobe:
  full-set: "{primary}&lFULL SET"
  helmet: "{primary}&lHELMET"
  chestplate: "{primary}&lCHESTPLATE"
  leggings: "{primary}&lLEGGINGS"
  boots: "{primary}&lBOOTS"
  empty: "{muted}Nothing"

Where it is stored

One row per player in armorskin_wardrobe: the uuid, and one column per piece holding a skin id. Reads never block — a wardrobe still coming back from the database answers "no skin yet", and the player is redrawn as soon as it lands.

Nothing has to be given back

Clearing a wardrobe hands out no item, because none was ever consumed: a wardrobe choice is a row, not an item. Skin items and removers belong to item and both.

Something missing on this page? Tell us on Discord