# 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.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }