
Wiki
Kits Crates Plus Wiki
Public setup, commands, permissions, kit/crate authoring, previews, placed blocks, and troubleshooting for Kits Crates Plus.
Getting Started
Start here for install, generated files, commands, and the permission rules that decide whether the plugin actually works for players.
Reward Design
Use the shared reward engine intentionally instead of treating kits and crates like disconnected systems.
Runtime and Support
Check the real reasons a reward system looks broken on live servers before you blame the whole plugin.
Kits Crates Plus is much easier to run if you treat the file set as separate lanes instead of one big YAML pile.
Core files and what they own
config.yml
Use this for the plugin-wide runtime:
- engine limits like
engine.maxDepth - text formatting mode
- example bootstrap policy
- first-join kit behavior
- crate reveal defaults
- crate preview defaults
- placed-crate block behavior
/kitsmenu layout and theme selection
messages.yml
Use this for the global chat layer:
- the Kits+ prefix
- prefix hover text and click URL
- default kit and crate messages
- prompt copy
- GUI feedback copy
This is where the normal default kit receive message lives.
data/kit-menu.yml
Use this for per-kit presentation and per-kit overrides:
- custom
/kitsdisplay name - custom
/kitsdescription - custom
/kitsicon - per-kit crate reveal override when a kit is opened as a crate
- per-kit receive-message settings
- per-kit receive-message prefix toggle
That means this file now matters for more than just the /kits menu.
theme-packs.yml
Use this for reusable /kits menu themes that can be applied through /kcp.
kits/*.yml
Each file is a real kit definition.
This is where the actual reward logic lives for kits:
- inventory kits
- container kits
- cooldown
- one-time state
- permission
- item layout or reward pool
crates/*.yml
Each file is a real crate definition.
This is where the actual reward logic lives for crates:
- tier
- permission
- root reward pool
- crate-specific animation settings
Files you should edit for different goals
I want to change who can use a kit
Change the kit file in kits/*.yml or the permission through the kit settings GUI.
I want to change who can use a crate
Change the crate file in crates/*.yml or the permission through the crate settings GUI.
I want to change the default text every player sees
Edit messages.yml.
I want one specific kit to send a different message
Use the Kit Settings -> Receive Message flow, which stores the override in data/kit-menu.yml.
I want to change how kits look in /kits
Use data/kit-menu.yml and the /kcp menu theme path.
Important generated-data behavior
Example content does not have to keep respawning
The plugin supports a one-time bootstrap flow so deleted examples can stay deleted.
MiniMessage fallback is configurable
config.yml controls whether MiniMessage formatting is enabled globally or whether the plugin should strip MiniMessage tags and fall back to legacy color behavior.
First-join kits are global runtime, not per-file magic
firstJoinKit.* in config.yml controls whether one kit is auto-granted to new players.

