⬥ WardrobePanel ⬥
Web-Based Character Creator for Minecraft
Version 1.3.1 · Paper 1.21+ · Java 21+
What is WardrobePanel?
WardrobePanel lets your players open a web-based character editor directly from in-game. They mix and match base skins, hairstyles, eye colours, clothing, accessories, beards, and markings — all rendered live in a 3D skin viewer — then apply their custom skin in-game with one click.
No mods required. Players just click a link.
Web-Based Editor — Players click a link, customise in their browser, done
Live 3D Preview — Powered by skinview3d with idle animation and zoom
Layered Overlays — Hair, eyes, shirts, pants, jackets, shoes, accessories, beards, markings
Full Colour Customisation — Skin tone palettes, eye colour, hair colour, clothing colours with sliders
Multiple Profiles — Players create multiple character slots (configurable max)
Saved Outfits — Name and save outfit presets, load from sidebar or commands
Permission-Based Items — Control which items players see per category or individually
Owned Items System — Give/revoke items per player for shop integration
PlaceholderAPI — 25+ placeholders for scoreboards, holograms, NPCs
12 Colour Themes — default, midnight, ocean, forest, sunset, cherry, nether, end, royal, steampunk, pastel, arctic
6 Website Layouts — classic, centered, compact, stacked, theater, minimal
Auto Skin Apply — Applied automatically on save and on join
Full Command Suite — 19 commands with tab completion
Customisable Assets — Swap background, cursor, icons, and fonts easily
- Server: Paper / Purpur 1.21+
- Java: 21+
- MineSkin API Key: Free at mineskin.org/apikey
- SkinsRestorer: Recommended (for skin application)
- PlaceholderAPI: Optional (for placeholders)
- Drop WardrobePanel-V1.3.1.jar in your plugins folder
- Start your server once to generate config files, then stop
- Configure config.yml — set your IP, port, and MineSkin API key
- Unzip setup.zip directly into plugins/WardrobePanel/ — adds overlays and skins into web/
- Unzip assets.zip into plugins/WardrobePanel/web/ — adds icons, background, cursors, fonts
- Choose a layout from layouts.zip or set web.layout in config
- Open your port in your hosting firewall
- Start the server and run /webchar editor in-game!
YAML:
web:
host: "0.0.0.0" # ALWAYS leave as 0.0.0.0
port: 50424 # Pick an open port
public-url: "http://YOUR_SERVER_IP:50424" # Your real IP here
theme: "default" # Any of 12 themes
layout: "classic" # Any of 6 layouts
mineskin:
api-key: "YOUR_MINESKIN_API_KEY"
Choose the look that fits your server
- Classic
— 3-column: sidebar | viewer | panel - Centered — Full-screen viewer with floating glass panels
- Compact — Top bar + two-column
- Stacked — Sidebar + vertical split
- Theater — Full-screen viewer with slide-out drawers
- Minimal — Bottom bar + slide-out customiser
Switch via config:
YAML:
web:
layout: "theater"
Or manually copy index.html and style.css from your chosen layout folder into plugins/WardrobePanel/web/ and set layout to "custom" in config.
- default — Dark charcoal with teal accents
- midnight — Deep navy blue
- ocean — Ocean blue tones
- forest — Dark green woodland
- sunset — Warm amber and orange
- cherry — Deep magenta / cherry blossom
- nether — Fiery red and dark crimson
- end — Purple and dark void
- royal — Deep purple and gold
- steampunk — Bronze and copper tones
- pastel — Soft pastel colours
- arctic — Icy blue and white
All 6 layouts support all 12 themes.
Aliases: /wc, /character
Code:
/webchar — Open editor (default profile)
/webchar editor [profile] — Open editor for specific profile
/webchar create <name> — Create new profile
/webchar delete <name> — Delete profile
/webchar list — List all profiles
/webchar load <profile> — Load/apply profile skin in-game
/webchar apply <profile> — Alias for load
/webchar rename <old> <new> — Rename a profile
/webchar copy <src> <new> — Duplicate a profile
/webchar setskin <profile> — Set active skin
/webchar resetskin — Reset to original MC skin
/webchar help — Show help
Code:
/webchar loadfor <player> <profile> — Apply profile to another player
/webchar link <player> [profile] — Generate editor link for another player
/webchar give <player> all — Give all owned items
/webchar give <player> category <n> — Give all in a category
/webchar give <player> overlay <id> — Give specific overlay
/webchar revoke <player> all — Revoke all owned items
/webchar revoke <player> category <n>— Revoke category
/webchar revoke <player> overlay <id>— Revoke specific overlay
/webchar reload — Reload config and rescan overlays
/webchar status — Plugin and web server status
/webchar sessions — List all active sessions
Basic Permissions:
Item Filtering:
Code:
webchar.use — Basic access (default: true)
webchar.admin — Admin commands (default: op)
webchar.reload — Reload config (default: op)
webchar.link.others — Generate links for others (default: op)
Item Filtering:
Code:
wardrobepanel.bypass — See all items (bypass filtering)
wardrobepanel.skin.<id> — Access a specific base skin
wardrobepanel.overlay.<category>.<id> — Access a specific overlay
wardrobepanel.overlay.<category>.* — All overlays in a category
wardrobepanel.overlay.* — All overlays
25+ placeholders — requires PlaceholderAPI
Code:
%wardrobepanel_profile_count% — Number of profiles
%wardrobepanel_profile_current% — Active profile name
%wardrobepanel_profile_list% — All profiles (comma-separated)
%wardrobepanel_profile_max% — Max profiles allowed
%wardrobepanel_profile_name_0% — Profile by index (0, 1, 2...)
%wardrobepanel_last_profile% — Last used profile
Code:
%wardrobepanel_outfit_skin% — Current base skin ID
%wardrobepanel_outfit_skin_color% — Current skin palette
%wardrobepanel_outfit_hair% — Current hairstyle
%wardrobepanel_outfit_hair_color% — Current hair colour
%wardrobepanel_outfit_eye% — Current eye overlay
%wardrobepanel_outfit_eye_color% — Current eye colour
%wardrobepanel_outfit_shirt% — Current shirt
%wardrobepanel_outfit_pants% — Current pants
%wardrobepanel_outfit_shoes% — Current shoes
%wardrobepanel_outfit_jacket% — Current jacket
%wardrobepanel_outfit_accessory% — Current accessory
%wardrobepanel_outfit_beard% — Current beard
%wardrobepanel_outfit_marking% — Current marking
Code:
%wardrobepanel_web_url% — Editor public URL
%wardrobepanel_skin_url% — Saved skin image URL
%wardrobepanel_theme% — Active theme name
%wardrobepanel_session_active% — true/false
%wardrobepanel_session_expires% — Minutes until expiry
%wardrobepanel_cooldown_remaining% — Cooldown seconds left
%wardrobepanel_owned_count% — Total owned items
%wardrobepanel_owned_<category>% — Owned in a category
%wardrobepanel_owns_all% — true/false
%wardrobepanel_total_skins_applied% — Total skin applications
%wardrobepanel_last_skin_change% — Last skin change timestamp
Swap visuals without touching code
Navigate to plugins/WardrobePanel/web/assets/ and replace:
- bg/bg.png — Background image (any resolution)
- cursor/mouse.png — Default cursor
- cursor/mouse_click.png — Click cursor
- cursor/mousedraghover.png — Hover on 3D viewer
- cursor/mouse_drag.png — Dragging the 3D viewer
- icons/*.png — Category icons (eyes.png, hairs.png, shirts.png, etc.)
- font/minecraft.woff2 — Font file
Keep the same filenames — just replace the PNGs. Run /webchar reload after.
Code:
web/assets/
├── overlays/
│ ├── accessories/
│ ├── beards/
│ ├── eyes/
│ ├── hairs/
│ ├── jackets/
│ ├── markings/
│ ├── pants/
│ ├── shirts/
│ ├── shoes/
│ └── skin-colours/
├── skins/
├── manifest.json — Auto-generated (don't edit)
└── catalog.json — Category definitions and palettes
To add new overlays:
- Create your overlay as a 64x64 PNG (standard MC skin template, 2nd layer only)
- Drop the PNG into the appropriate folder (e.g. web/assets/overlays/hairs/)
- Run /webchar reload — manifest regenerates automatically
- New overlay appears in the editor immediately
Profiles — multiple character slots per player:
- /webchar create MyWarrior — Create
- /webchar editor MyWarrior — Open web editor
- /webchar load MyWarrior — Apply skin in-game
- /webchar rename MyWarrior MyKnight — Rename
- /webchar copy MyWarrior MyBackup — Duplicate
- /webchar delete MyWarrior — Delete
- /webchar list — List all profiles
Saved Outfits — named presets within each profile:
- Customise your character in the web editor
- Click the + button in the sidebar
- Enter a name for the outfit
- Click any saved outfit to load it anytime
- Hover and click the X to delete
Enable a shop-like system where players must "own" items to use them:
YAML:
owned-items:
enabled: true
starter-categories:
- "eyes"
starter-overlays: []
combine-with-permissions: true
Admin give/revoke commands:
Code:
/webchar give <player> all
/webchar give <player> category <name>
/webchar give <player> overlay <category/id>
/webchar revoke <player> all
/webchar revoke <player> category <name>
/webchar revoke <player> overlay <category/id>
Control which items players can see in the editor:
YAML:
permissions:
enabled: true
default-allowed: true
bypass-permission: "wardrobepanel.bypass"
Permission nodes:
Code:
wardrobepanel.skin.<id> — Specific base skin
wardrobepanel.overlay.<category>.<id> — Specific overlay
wardrobepanel.overlay.<category>.* — All in a category
wardrobepanel.overlay.* — All overlays
wardrobepanel.bypass — See everything
- Make sure host is "0.0.0.0" in config.yml — NOT your IP
- Make sure the port is open in your hosting firewall
- Make sure public-url has http:// prefix
- Check console for "Web server started on 0.0.0.0: PORT"
You put your server IP in the host field. Change it to "0.0.0.0".
- Check your MineSkin API key is valid
- Make sure SkinsRestorer is installed
- Try /webchar load <profile> manually
- Check console for MineSkin API errors
- Make sure public-url matches the URL you're visiting
- Use a fresh link from /webchar editor
- Sessions expire after configured time (default: 24h)
- Run /webchar reload to regenerate the manifest
- Overlays must be 64x64 PNG files
- Check the file is in the correct category folder
