Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
Most kit plugins hand everyone the same loadout. PerPlayerKit gives every player nine kit slots and nine enderchest slots of their own, built from a kit room you stock with the items you approve. Players arrange their kit once, then load it with /k1 mid-warmup and get straight back to fighting.
It is the kit system behind many crystal, pot, UHC, and sword practice servers, and it runs on Paper or Spigot 1.19+.
Why servers pick it
- Players own their kits. Nine kits and nine enderchest kits per player by default, up to 99. Saved to a database, so they survive restarts and follow the player across your network.
- You keep control. The kit room is the only source of items. Optional item filtering caps enchantment levels, potion levels and durations, and blocks unbreakable items, custom attributes, and illegal NBT.
- Playable in one command.
/perplayerkit autosetupfills the kit room and nine public kits with a ready-made crystal, mace, netherite, pot, UHC, sword, axe, FFA, and cart setup. - Built for fights. Rekit on respawn, rekit the killer after every kill, and
/rgto restock pearls, crystals, and potions from the loaded kit without opening a menu. - No lock-in. Free, open source under AGPL-3.0, with an importer for KitsX and export/import of all kit data between servers.
Features
Kits and enderchest kits
Players open /kit, take items from the kit room, arrange a full inventory including armor and off-hand, and close the editor to save. /k1 through /k9 load kits instantly. /ec1 through /ec9 do the same for enderchest kits. Swap slots, delete slots, and optionally heal, feed, saturate, or clear effects on every load.
Public kits
Server-wide preset kits anyone can load from /publickit. Declare them in config, hold the inventory you want, and run /savepublickit <id>.
Automatic rekit
Give the last loaded kit back on respawn, with a configurable delay. Turn on rekit-on-kill to regear the killer instantly after every kill. Either trigger can instead pick a public kit by world, or by WorldGuard region, so the Nether arena hands out crystal kits and the sword arena hands out sword kits.
Regear
/rg and /regear restock whitelisted items from the player's loaded kit. Run them as instant commands or hand out a regear shulker box. Damage timers, cooldowns, and an elytra check stop it being abused mid-combo.
Sharing and transfers
/sharekit <slot> <player>sends a kit. They click [ACCEPT] in chat./sharekit <slot>prints a share code anyone can redeem with/copykitfor 15 minutes./transferkits <player>copies every kit to a new account.
Item filtering and anti-exploit
Off by default, on in one block of config. Limit kits to kit room items only, cap enchantment levels per enchantment, reject over-levelled or incompatible enchantments, cap potion effect level and duration, and block unbreakable items and custom attribute modifiers. Rules apply on load, on save, on import, and on regear, and per-material overrides let Protection V through on chestplates while everything else stays at vanilla limits. Shulkers and bundles are checked recursively.
Staff tools
/inspectkit <player> and /inspectec <player> open any player's kits. /purgeitem deletes every copy of an item from every stored kit, across all 99 slots, when something slips through.
Storage
SQLite out of the box. MySQL, MariaDB, PostgreSQL, or Redis for networks that share kits between servers. Switch later with /perplayerkit migrate <from> <to>. Export and import kit rooms, public kits, or player data as portable .ppk files.
Everything else
- Menu accent color and filler glass are configurable, and titles accept MiniMessage.
- Every message lives in a language file. Fourteen languages ship bundled: English, Chinese, Spanish, Portuguese, French, Ukrainian, Danish, Italian, Polish, Romanian, Dutch, German, Swedish, and Finnish.
- Per-world and per-region rules for every feature, with optional WorldGuard support.
- PlaceholderAPI placeholders in messages.
- Sounds, join messages, and scheduled broadcasts.
- A small Java API for listing public kits and applying one to a player.
Get started
- Install it. Drop the jar in
plugins/, restart, pick a database if you are not happy with SQLite. - Stock the kit room. Or run
/perplayerkit autosetupand skip straight to playing. - Give out permissions.
perplayerkit.usefor players,perplayerkit.stafffor moderators,perplayerkit.adminfor you.
About five minutes. Requires Paper or Spigot 1.19+ and Java 17+.
Documentation
Everything is at perplayerkit.com.
| Player commands | Every command a player can run |
| Admin commands | Kit room, public kits, purge, export, migrate |
| Permissions | Every node, plus LuckPerms recipes |
| config.yml reference | Every setting and what it does |
| Storage and databases | SQLite, MySQL, PostgreSQL, Redis |
| Upgrading | What to check before updating |
| Troubleshooting | Fixes for the problems people hit most |
| FAQ | Short answers to common questions |
| Java API | For plugin developers |
Support
Ask in the Discord. Report bugs on the issue tracker.
Dev builds of every commit are on Jenkins. They are compiled, not tested. Back up your kit data before running one on a live server.
Open source
PerPlayerKit is licensed under the AGPL-3.0. The code is on GitHub.


