Enable the checks you need
This uses normal enchantment limits, blocks unbreakable items, and caps potion effects at level II and three minutes:config.yml
kit-room-only: false lets you limit enchantments and potions without stocking every allowed material in the kit room.
Where rules apply
Public kit and kit room administration, and
/kitdata imports, preserve source definitions. Admins editing the kit room can see its raw contents.
The filter covers PerPlayerKit workflows. It does not remove items from world pickups or inventories managed by other plugins.
What happens to rejected items?
Rejected items are removed from the filtered copy. A rejected item inside a shulker or bundle is removed from that container’s copy. If a filter removes every item from a kit, loading or importing that kit leaves the destination inventory or editor unchanged. New saves containing no allowed items are rejected. Existing stored definitions are preserved when viewed or loaded. Closing an unchanged filtered editor does not rewrite its original definition. Saving changes withfilter-saves enabled stores the filtered result.
Containers and bundles are checked recursively. Items nested more than 16 container levels are removed.
Use different rules for a material
Keys insideoverrides are Bukkit material names. This permits Protection V on diamond chestplates and sets stricter limits on Strength splash potions:
config.yml
item-filter block. Material overrides replace the specified rule values; omitted values inherit the defaults above them. Limit maps merge by enchantment or effect ID. An empty override map changes nothing.
These rules match the material, regardless of the item’s display name. Use Minecraft IDs such as protection and strength inside limit maps. Custom namespaces use namespace:id.
Settings
Material overrides can contain the three
allow-* settings above, enchantments, and potions. The workflow switches stay at the top level.
With kit-room-only enabled, an empty kit room blocks kit loading rather than replacing inventories with empty copies. Hidden pages do not supply allowed materials. Stack amounts must be positive and within the item’s maximum stack size.
Enchantments
Explicit limits take precedence over the normal maximum and
allow-over-levelled. Applied enchantments and enchantments stored in books are both checked. Stored book enchantments do not need to be applicable to the book itself.
For example, Protection X is rejected by the normal level-IV limit. A material override setting protection: 10 allows it on that material.
Potions and tipped arrows
Level
1 means level I, and level 2 means level II. A positive duration cap rejects infinite effects too.
Base potion effects and custom effects are both checked. Duration limits use the stored duration, before splash or lingering-potion adjustments.
An effect must pass both the general potion caps and its effect-specific caps. A specific cap cannot increase the general cap. Set the relevant general cap higher, or to 0, if you want a larger effect-specific limit.
Upgrading existing filter settings
The oldanti-exploit.only-allow-kitroom-items and anti-exploit.import-filter settings are converted automatically, with a config backup.
Migrated configs retain their existing switches, including filtering on use rather than on save. Enable item-filter.filter-saves to filter new saves too. Review allow-unbreakable, allow-item-flags, and allow-incompatible to opt into stricter checks.
Enchanted books and nested items receive the same checks as ordinary kit items. Existing definitions are not automatically rewritten.
Other exploit settings
Use Purge items to permanently remove a material from stored kits. See Kit room setup for stocking allowed materials.