# SkinStudio
**Token-based cosmetic skin system for Paper 1.21+**
Apply custom model skins to weapons and armor using collectible tokens. No mods required — works with any server resource pack.
---
## ✨ Features
### 🎨 Skin Token System
- Players apply skins by combining a **Skin Token** + their item in a simple 3-slot GUI
- Remove skins anytime with a **Change Token** — the original skin token is returned
- Original item stats, enchantments, and NBT are fully preserved
- Supports **all weapon and armor types**: swords, axes, bows, crossbows, tridents, scythes (hoes), helmets, chestplates, leggings, boots, and elytra
### 🛡️ Equipment Texture Support
- Armor skins display custom textures on the player model (not just in inventory)
- Uses the modern `equippable` component — no outdated workarounds
- Works for helmets, chestplates, leggings, and boots
### 📂 Tier System
- Organize skins into configurable tiers (e.g., Bronze, Living, Corrupted, Palladium, Ultimatium)
- Each tier has its own tab in the Admin GUI with a custom icon
- Skins auto-sort into tiers based on their ID prefix
- Special **Unique** tab for one-of-a-kind skins
### 🔍 Resource Pack Auto-Scanner
- Run `/skintoken scan` to automatically detect new skin models from your resource pack
- Scans `ResourcePackManager/mixer/*.zip` files
- Auto-detects **EliteMobs** and **FreeMineCraftModels** item packs
- Infers item types and tiers from filenames — no manual config needed for supported packs
### 🖥️ Admin GUI
- Visual admin panel with tabbed tier navigation
- Left-click any skin to give yourself a token
- Right-click for custom amounts (1–64)
- Built-in language switcher and token management
### 🌐 Multi-Language
- Full **English** and **Polish** localization out of the box
- Hot-swap language in-game via command or GUI button
- All messages, GUI titles, and lore are translatable
---
## 📋 Commands
| Command | Description | Permission |
|---|---|---|
| `/skinstudio` (or `/ss`) | Open the Skin Studio GUI | `skinstudio.use` |
| `/skinstudio admin` | Open the Admin panel | `skinstudio.admin` |
| `/skintoken give <player> <skin> [amount]` | Give a skin token | `skinstudio.admin` |
| `/skintoken giveremove <player> [amount]` | Give a change token | `skinstudio.admin` |
| `/skintoken list` | List all skins by tier | `skinstudio.admin` |
| `/skintoken scan` | Auto-scan resource packs for new skins | `skinstudio.admin` |
| `/skintoken reload` | Reload config and language files | `skinstudio.admin` |
| `/skintoken language [en\|pl]` | View or change language | `skinstudio.admin` |
---
## 🔑 Permissions
| Permission | Default | Description |
|---|---|---|
| `skinstudio.use` | Everyone | Use `/skinstudio` to apply/remove skins |
| `skinstudio.admin` | OP | Access admin commands and GUI |
---
## ⚙️ Configuration
- Define custom **tiers** with display names and GUI icons
- Add skins with `item-model`, `equipment-asset`, and supported `item-types`
- Configure **Change Token** appearance (material, name, lore)
- Set **Skin Token material** (default: Paper)
- Mark special skins as **Unique**
---
## 📦 Requirements
- **Paper 1.21+** (or forks: Purpur, Folia)
- **Java 21**
- A server resource pack with custom item models
---
## 🔗 Compatible With
- **EliteMobs** — auto-detects gear skin models
- **FreeMineCraftModels (FMM)** — auto-detects display models
- **ResourcePackManager** — scans mixer packs automatically
- Any custom resource pack using the `item-model` format
---
## 🚀 Quick Start
1. Drop `SkinStudio.jar` into your `plugins/` folder
2. Add your skin models to the resource pack
3. Run `/skintoken scan` or configure skins manually in `config.yml`
4. Give tokens with `/skintoken give <player> <skin>`
5. Players open `/ss` and combine token + item to apply the skin
---
## 📸 How It Works
1. **Admin** gives a Skin Token to a player (via command or loot)
2. **Player** opens `/ss` → places their weapon/armor + the Skin Token
3. Click **Apply** — the item gets a custom model while keeping all stats
4. To revert: use a **Change Token** — skin is removed, token returned
---
##💬 How It Works
Discord:
https://discord.gg/3V5beq8eAF
---
*Made with ❤️ by Bell · Part of the Bell Plugin Ecosystem*