Keep Illegal Blocks
KIB is a Paper plugin that prevents illegal blocks from breaking when a player interacts with an adjacent block.
![]() | ![]() |
🖼️ Click to see more examples
There you go 😎:
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
So what's the point?
"Fragile blocks" are illegal blocks that cannot normally be placed and are automatically broken by Minecraft physics. These fragile blocks can be placed using a Debug Stick or plugins such as WorldEdit or Axiom.
"Interactable blocks" are blocks that can be directly interacted with (using right-click), and can cause fragile blocks to break.
Interacting with an interactable block triggers a physical update that propagates through all chained fragile blocks, causing them to break.
--> This plugin prevents this behavior to protect your illegal builds, by restoring broken blocks.
🔵 List of fragile block categories
List of fragile block categories that are automatically restored by KIB when broken:
amethyst-clustersbamboosbannersbedsbellscactuscakescarpetscave-vineschorus-plantscocoacomparatorscorals(does not apply to waterlogged corals)cropsdead-bushesdoorsdripleavesfernsflowersfrogspawnfungusglow-lichensgrasshanging-rootshanging-signsladderslanternslily-padsmangrove-propagulesmushroomsnether-rootsnether-sproutsnether-wartspointed-dripstonespressure-platesrailsredstone-wiresrepeaterssaplingsscaffoldingsculk-veinssea-picklessignssnowsugar-canessweet-berry-bushesswitches(levers and buttons)torchestripwire-hookstwisting-vinesvinesweeping-vines
🔴 List of interactable block categories
List of interactable blocks categories recorded by KIB:
campfirescandlescauldronscomparatorscomposterscopper-blocks(non-plain copper blocks that can be waxed or scraped)daylight-detectorsdoorsend-portal-framesgateslecterns(putting a book on them)repeatersswitches(levers and buttons)trap-doors
NOTE - KIB does not support underwater restorations. This is why
seagrassandkelpare not included in the fragile block list.
WARNING - Even after being restored by KIB, some fragile block will still update naturally, such as cactus breaking as they grow, or coral dying when not waterlogged. This is the default behavior of the game, KIB will NOT prevent this, even if they were initially placed using plugins like WorldEdit or Axiom (which rely on advanced chunk management systems).
Why would I need it?
This may seem niche, but it can be very useful for specific builds made using plugins like WorldEdit or Axiom, especially when using custom resource packs that significantly change block textures and models.
This may also interest you if other players come onto your map and are likely to interact with your builds and break everything accidentally... 😅
How do I configure?
In your server directory, you can edit ./plugins/KeepIllegalBlocks/config.yml to:
- Blacklist some fragile or interactable blocks (everything is enabled by default)
- Change the maximum number of fragile blocks to restore (default: 500)
- Only allow KIB in creative mode (default: true)
- Use PacketEvents if it is detected (default: true)
To reload your configuration, use the /kib reload command (it requires the kib.reload permission for a non-op
player).
Can the restoration be any smoother?
Yes, PacketEvents is highly recommended to improve client-side rendering and performance.
It is supported by KIB to tweak network packets and make fragile block restoration completely transparent by hiding their break particles, break animation, break sound and item drops.











