Voxel Shop beta is live. Expect occasional bugs. Learn more
Simplified version of ClothesPlus, working directly with a self-hosted website for character creator

Video showcase below
https://www.youtube.com/watch?v=kZMh7giToLI
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.
[LIST=1]Drop WardrobePanel-V1.3.1.jar in your plugins folderStart your server once to generate config files, then stopConfigure config.yml — set your IP, port, and MineSkin API keyUnzip setup.zip directly into plugins/WardrobePanel/ — adds overlays and skins into web/Unzip assets.zip into plugins/WardrobePanel/web/ — adds icons, background, cursors, fontsChoose a layout from layouts.zip or set web.layout in configOpen your port in your hosting firewallStart the server and run /webchar editor in-game!
[/LIST]
Config Example:
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"
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:
web:
layout: "theater"Then run /webchar reload in-game.
Or manually copy index.html and style.css from your chosen layout folder into plugins/WardrobePanel/web/ and set layout to "custom" in config.
All 6 layouts support all 12 themes.
Player Commands:
/webchar — Open editor (default profile)
/webchar editor [profile] — Open editor for specific profile
/webchar create — Create new profile
/webchar delete — Delete profile
/webchar list — List all profiles
/webchar load — Load/apply profile skin in-game
/webchar apply — Alias for load
/webchar rename — Rename a profile
/webchar copy — Duplicate a profile
/webchar setskin — Set active skin
/webchar resetskin — Reset to original MC skin
/webchar help — Show help
Admin Commands:
/webchar loadfor — Apply profile to another player
/webchar link [profile] — Generate editor link for another player
/webchar give all — Give all owned items
/webchar give category — Give all in a category
/webchar give overlay — Give specific overlay
/webchar revoke all — Revoke all owned items
/webchar revoke category — Revoke category
/webchar revoke overlay — 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:
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:
wardrobepanel.bypass — See all items (bypass filtering)
wardrobepanel.skin. — Access a specific base skin
wardrobepanel.overlay.. — Access a specific overlay
wardrobepanel.overlay..* — All overlays in a category
wardrobepanel.overlay.* — All overlays
Profile Placeholders:
%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
Outfit Placeholders:
%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
Web, Session and Stats Placeholders:
%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_% — Owned in a category
%wardrobepanel_owns_all% — true/false
%wardrobepanel_total_skins_applied% — Total skin applications
%wardrobepanel_last_skin_change% — Last skin change timestamp
Navigate to plugins/WardrobePanel/web/assets/ and replace:
Keep the same filenames — just replace the PNGs. Run /webchar reload after.
Folder Structure:
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:
[LIST=1]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 automaticallyNew overlay appears in the editor immediately
[/LIST]
Profiles — multiple character slots per player:
Saved Outfits — named presets within each profile:
[LIST=1]Customise your character in the web editorClick the + button in the sidebarEnter a name for the outfitClick any saved outfit to load it anytimeHover and click the X to delete
[/LIST]
Enable a shop-like system where players must "own" items to use them:
Config:
owned-items:
enabled: true
starter-categories:
- "eyes"
starter-overlays: []
combine-with-permissions: true
Admin give/revoke commands:
/webchar give all
/webchar give category
/webchar give overlay
/webchar revoke all
/webchar revoke category
/webchar revoke overlay
Control which items players can see in the editor:
Config:
permissions:
enabled: true
default-allowed: true
bypass-permission: "wardrobepanel.bypass"
Permission nodes:
wardrobepanel.skin. — Specific base skin
wardrobepanel.overlay.. — Specific overlay
wardrobepanel.overlay..* — All in a category
wardrobepanel.overlay.* — All overlays
wardrobepanel.bypass — See everything
"ERR_CONNECTION_REFUSED" / Site can't be reached
"BindException: Cannot assign requested address"
You put your server IP in the host field. Change it to "0.0.0.0".
Skin not applying in-game
Web editor shows "Session invalid"
Overlays not showing after adding new files