Installation
Install ClothesPlus, set the license, configure MineSkin, and load the resource pack.
Requirements
| Requirement | Current expectation |
|---|---|
| Server | Paper 1.21.x recommended |
| Java | Java 21 runtime for current Paper 1.21.x builds |
| PacketEvents | Required dependency |
| Optional hooks | LuckPerms, Vault, ItemsAdder, Nexo, CraftEngine, Oraxen |
| MineSkin key | Recommended for reliable live skin generation |
If the plugin fails with UnsupportedClassVersionError, the server Java runtime is older than the jar was compiled for, or the jar was built with the wrong local JDK. Current ClothesPlus builds target Java 21; run Paper with Java 21 and use a Java 21-built ClothesPlus jar.
Install steps
Put PacketEvents in the server plugins/ folder. Install optional hooks only if your server uses them.
Put ClothesPlus-3.1.4.jar in plugins/, then start the server once.
Paste the license key into:
plugins/ClothesPlus/licensing/clothesplus-license.keyThe legacy root file plugins/ClothesPlus/clothesplus-license.key is accepted and copied into the canonical licensing/ folder on startup.
Use the in-game or console command:
/clothes apikey <mineskin-api-key>You can also edit:
mineskin:
api-key: "your-key"
Run:
/clothes extractThis extracts bundled overlays.zip, reloads overlay data, regenerates cursor overlay configs, and reports extracted/skipped files.
For standalone pack hosting, set resourcepack.public-url, then run:
/clothes pack applyFor ItemsAdder, Nexo, Oraxen, or CraftEngine, use resourcepack.provider: auto or set the provider directly.
MineSkin testing keys
If mineskin.api-key is blank or still a placeholder such as urapikey, ClothesPlus rotates bundled testing keys. These are only for getting a test server working from first boot. They can be rate-limited.
Set your own key with /clothes apikey to stop using the bundled testing keys.
Quick smoke test
/clothes info
/clothes model
/ccreator
/wardrobe
/clothes pack applyIf /wardrobe opens but the avatar or cursor is purple/black, the resource pack is not loaded or accepted by the client.