All Mods Resource Packs Data Packs Shaders Modpacks Plugins
PerPlayerKit

PerPlayerKit

by noah32 • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

PerPlayerKit

Every player builds their very own PvP kits

Documentation · Discord · Source

The PerPlayerKit main menu

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 autosetup fills 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 /rg to 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.

The kit editor

Public kits

Server-wide preset kits anyone can load from /publickit. Declare them in config, hold the inventory you want, and run /savepublickit <id>.

The public kits menu

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 /copykit for 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

  1. Install it. Drop the jar in plugins/, restart, pick a database if you are not happy with SQLite.
  2. Stock the kit room. Or run /perplayerkit autosetup and skip straight to playing.
  3. Give out permissions. perplayerkit.use for players, perplayerkit.staff for moderators, perplayerkit.admin for 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.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2 26.1.x 1.21.x +2
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21 1.20 1.19
Paper Spigot
6h ago 1
1.21.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Bukkit Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21 1.20 1.19.x
Paper Purpur Spigot
6h ago 1
1.21 1.20 1.19.x
Paper Purpur Spigot
6h ago 1
1.21 1.20 1.19.x
Paper Purpur Spigot
6h ago 1
1.21 1.20 1.19
Paper Purpur Spigot
6h ago 1
1.19.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20 1.19
Paper Purpur Spigot
6h ago 1
# 1.8.0

Upgrade guide: [https://perplayerkit.com/upgrading](https://perplayerkit.com/upgrading)

## Breaking

  • Config v3. Existing v1 and v2 configs are backed up and migrated automatically. Everything below is converted for you unless noted.
  • Player-facing messages moved from config.yml to lang/<code>.yml. Custom messages are carried over.
  • Message placeholders %player% and %kitname% renamed to {player} and {kitname}. Existing messages are rewritten.
  • max-kits renamed to kits.max-slots.
  • disabled-command-worlds and rekit-on-kill world lists replaced by locations rules.
  • Kit room material and import filters replaced by item-filter.
  • World names and storage type values are now case-insensitive. Review world entries that previously relied on exact case.
  • perplayerkit.admin now includes kit room editing and staff inspection.
  • Remembered kit selections are stored in the database. Load a kit once after upgrading to save your selection.



## Added

  • PostgreSQL storage backend.
  • 14 bundled languages.
  • WorldGuard support (optional).
  • Configurable kit limit, 1 to 99, with a paginated /kit menu and /k10../k99, /ec10../ec99.
  • Up to 99 kit room pages with grouped page navigation.
  • locations rules: allow or deny any feature per world or WorldGuard region.
  • Per-world and per-region public kits for rekit-on-kill and rekit-on-respawn.
  • rekit-on-respawn delay in ticks.
  • item-filter rules: unbreakable items, custom attributes, item flags, enchantment level caps, incompatible enchantments, potion level and duration caps, per-material overrides. Applies inside shulkers, containers, bundles, and enchanted books.
  • Remembered kit selections persist across reconnects, restarts, and server switches. Optional restore-enderchest.
  • Bundled starter kit room pages and public kits.
  • /perplayerkit autosetup to fill an empty kit room and public kits. add-kits and reset confirm variants.
  • /perplayerkit location [feature] to check which world and region rules apply.
  • /sharekit <slot> <player> and /shareec <slot> <player> with /shareaccept and /sharedecline.
  • /transferkits <player> to copy all kits and enderchests to another player.
  • /deleteec <slot>.
  • /purgeitem to remove an item type from all stored kits.
  • /kitdata export and /kitdata import for .ppk files.
  • {kitname} placeholder in kit load broadcasts.
  • Permissions perplayerkit.staff, perplayerkit.editkitroom, perplayerkit.kitnotify, perplayerkit.deleteenderchest.
  • Documentation site at [https://perplayerkit.com](https://perplayerkit.com)



## Changed

  • Update checks run asynchronously, cache for one hour, and retry after one minute on failure.
  • SQLite backups use VACUUM INTO for a consistent snapshot instead of copying the live file.
  • Storage failures are reported so queued saves can retry.
  • Players with unloaded or failed kit data get a message instead of an empty kit.
  • Item filtering now applies to accepted shares and transfers.
  • Clearing a personal kit editor and closing it deletes the kit.
  • Public kits with an unknown icon material are skipped instead of preventing plugin enable.
  • Failed WorldGuard lookups block the action instead of falling back to a world-wide kit.
  • Chat is sent through Paper's Adventure API when available.
  • Redis errors are logged as errors with stack traces.
  • Dependency updates: Adventure 4.26, Jedis 6.2, HikariCP 6.3.3, PostgreSQL driver 42.7.13, SQLite 3.53, bStats 3.2, okhttp2 replaced with okhttp3.



## Fixed

  • Restricted items could bypass the regear filter inside a shulker box.
  • Ghost offhand item after kit load or regear.
  • /inspectkit and /inspectec lag and failures for offline players.
  • /inspectec opened the inspector's enderchest instead of the target's.
  • Kit editor changes lost during menu redraws.
  • Item name formatting in menus.
  • /deletekit and /swapkit accepted out-of-range slots.
  • KitsX import continued after reporting missing files.
  • HikariCP idleTimeout warning on startup with SQLite.
  • Kits loaded on the main thread when the plugin was re-enabled.
  • Duplicate save on player quit.
  • Pending respawn restoration not cancelled on disconnect or a second respawn.


Small updates and support for newer versions
## New Features
  • MiniMessage Formatting Support** - Messages now support modern MiniMessage format with RGB colors, named colors, and text formatting (bold, italic, underline, etc.). Old & color codes are no longer used.
  • Configurable Regear Behavior** - /rg and /regear commands are now more configurable

## Config Changes
  • New Messages Section** - Added messages config section with granular control over kit action broadcasts, plus a disable-kit-messages toggle to suppress all kit messages at once
  • MiniMessage Format** - All color/text formatting in config now uses MiniMessage format with examples and documentation in CONFIG.md

## Fixes & Improvements
  • Fixed item filter bug affecting shulkers, bundles, and NBT chests
  • Fixed sound and GUI bugs
  • Improved notification management

Bug fixes and config option to clear potion effects on heal!
## 1.6.0 Update

This update introduces a variety of new features, essential bug fixes, and quality-of-life improvements.

  • New Features:**
  • PlaceholderAPI Integration:** Added support for PlaceholderAPI in the messages section of the configuration, allowing for more dynamic and personalized messages.
  • Enhanced Kit Management:** Implemented a display name option for the %player% placeholder, offering greater customization.
  • Interactive UI/UX:** Incorporated new sounds for saving kitroom items and enhanced the kit GUI with more interactive sound feedback.
  • Improved Regear Shulker:** Introduced new features for the regear shulker, including an option to prevent players from placing items into the regear inventory.
  • Setup Guide:** A new setup guide has been added to assist with initial configuration and usage.

  • Bug Fixes & Improvements:**
  • Connection Stability:** Resolved a critical connection leak in SQLStorage.java and improved SQL resource management by implementing try-with-resources.
  • Visual Corrections:** Fixed a visual bug where inventories were not updating correctly on repair and addressed an issue with fill items in view-only ender chests.
  • Command Enhancements:** The /inspectkit command has been significantly improved, now allowing administrators to change player kits. The /enderchest1-9 command also received a fix.
  • Performance & Reliability:** Added a CI pipeline to improve development consistency, and implemented measures to prevent public kit load spam. Configuration options for maximumPoolSize have been added for both MySQL and SQLite to enhance database connection management.
  • Configuration & Reverts:** Clarified button functionality and updated the default regear item whitelist. Reverted changes related to Hikari for SQLite and sqlite maximumPoolSize setting to ensure stability.
  • Minor Adjustments:** Included a DisabledCommand check to RegearCommand.java and made various minor code and configuration updates to refine functionality.
Update default config
bug fix
shulker/command regear modes, old-death-drops feature, testing import feature, bug fixes
Public kit editor, feature configs, automatically upgrade config, update checker, minor bug fixes, added build metadata, bstats
Added regear command and other anti-exploit features
Lots of refactors and general improvements. See Github for details.
Fixed spigot support
PerPlayerKit Icon
Download PerPlayerKit
Select game version
Select platform