🗂️How to configure and setup guis.yml

ClothesPlus – GUI Configuration (guis.yml)

This page dissects plugins/ClothesPlus/guis.yml line‑by‑line so you can reskin or re‑layout every built‑in menu without touching Java.

Commands:

/overlays
/outfits

Basic rule of thumb
• Anything under wardrobe: affects the overlay‑selection GUIs.
• Anything under gui: (bottom of the file) belongs to the Outfits manager.
• If a value is missing, the plugin falls back to the nearest parent (→ no mandatory keys).


1. Wardrobe Section

wardrobe:
overlay-item:
material: PAPER
custom-model-data: 0
name: "&b{overlay}"
glow-enchant: unbreaking

1.1 overlay-item  (global available icon)

Key

What it does

material

Bukkit Material used when the overlay can be equipped.

custom-model-data

Integer sent to the client – hook for resource‑pack models. 0 = vanilla.

name

DisplayName for the icon. Supports colour codes and place‑holders → {overlay} ⇢ file‑name only (no path, no extension).

glow-enchant

(Optional) Fake enchantment forcibly applied to equipped overlays so they glow. Use any Bukkit enchant key (unbreaking, luck_of_the_sea, â€Ś).

overlay-unequip-item:
material: BARRIER
custom-model-data: 0
name: "&cUnequip {overlay}"

1.2 overlay-unequip-item

Fallback icon for the big red “unequip” button that shows on the first slot when you are wearing something inside a category.


1.3 Optional Tool‑tips

overlay-lore:
- "&7Click to equip"
overlay-lore-locked:
- "&cYou don’t own this overlay"
unequip-lore:
- "&7Remove current overlay"

1.4 Navigation Bar

Placed on navigation-row (0 = top). The row itself and the amount of rows define the inventory size.

Each button block shares the same structure:

prev:
slot: 0 # column (0‑8) inside navigation‑row
material: PAPER
custom-model-data: 550002
name: "&6Previous" # display when enabled
material-disabled: PAPER
custom-model-data-disabled: 550000

Keys ending in -disabled are used automatically when the button would do nothing – e.g. first page ⇒ prev is disabled.

Available buttons: prev, next, outfits, back, search. (All optional – remove a block to hide it.)

The Search button enters a chat‑based filter; set material-disabled or name-disabled if you want a greyed‑out state while a filter is active.


1.5 Window Titles

titles:
categories: "&f<shift:-11><glyph:wardrobecategory>"
overlays: "&f<shift:-11><glyph:wardrobe_2>"

1.6 Categories

categories:
shirts:
title: "&f<shift:-11><glyph:wardrobe_2>"
slots: [0, 1, 2, 9, 10, 11] # where THIS tile appears in the index GUI
item: # icon for the tile itself
material: PAPER
custom-model-data: 550000
name: "&aShirts"

1.6.1 Category keys

Key

Purpose

title

Overrides titles.overlays for this category only. Supports placeholders.

slots

List of slot indexes (0–53) where the tile appears in the categories menu. Use slot: single if you only need one.

item

Standard icon block (same keys as overlay‑item).

overlay-icons

Per‑state overrides that shadow the global defaults just for this category.

1.6.2 overlay-icons

Blocks: availablelockedunequipequipped. Any missing key falls back up the chain → category → wardrobe → hard‑coded default.

overlay-icons:
available:
material: PAPER
custom-model-data: 500000
locked:
material: PAPER
custom-model-data: 500002
unequip:
material: PAPER
custom-model-data: 500001
equipped:
material: PAPER
custom-model-data: 500012

Tip  You can delete the whole overlay-icons section if you only want to swap the tile icon but keep global overlay materials.


2. Outfits GUI (gui:)

Same idea but fewer moving parts. All keys live under gui:.

2.1 Behaviour flags

2.2 Dynamic Titles

titles:
no_buttons: '&f<shift:-29>搚'
left_button: '&f<shift:-29>ꐝ'
right_button:'&f<shift:-29>ꐛ'
both_buttons:'&f<shift:-29>搜'

The GUI picks one depending on whether a Previous/Next page exists.

2.3 Button / Item blocks

Structure identical to wardrobe items:

add_button:
material: PAPER
custom_model_data: 550000
display_name: '&aAdd Outfit'

All strings use Spigot colour codes (& Â§). List values become lore lines.

Button IDs (all optional): outfit_item • add_button • delete_button • load_button • prev_page_button • next_page_button • sign_button • tokens_display

2.4 Sign Search

sign_button adds an in‑game sign prompt; inside it you can theme:

sign_button:
sign:
material: OAK_SIGN
lines:
- '%search%'
- '----------------'
- 'Please enter a'
- 'search result.'

%search% becomes the typed query when the GUI re‑opens.


3. Placeholders & Colour Codes

Code / Placeholder

Meaning

& colour codes

Legacy RGB / format codes used by Spigot (&6Gold, &lBold).

{overlay}

Resolved at runtime → just the PNG name (red_beanie).

<shift:x>

MiniMessage shift; moves glyphs horizontally.

<glyph:name>

MiniMessage custom glyph (needs RP font).

%search%

Current search query (Outfits GUI).


4. Debugging Checklist

  1. Resource‑pack – verify every custom‑model‑data actually exists.

  2. Material names – must match Spigot API 1.18+ (PAPER, not paper).

  3. YAML syntax – spaces, not tabs; use online YAML validator if in doubt.

  4. Hot reload – /clothes reload or full server restart to apply edits.

Published with Nuclino