1.2.0-mc1.20.6
release23 февраля 2026 г.1. Overview
- Improved cancellation of item spawning events when fragile blocks are broken and restored.
- Improved the second restoration triggered by buttons due to their second physical update.
- Fixed interactable blocks breaking is specific cases.
- Replaced interactable block categories
switcheswithstone-buttons,wooden-buttonsandlevers. - Added
cave-vines(CAVE_VINES+CAVE_VINES_PLANT) andsweet-berry-bushesas interactable block categories.
2. Overhaul of the restoration system
The restoration system has been reworked to fix all known issues:
- Interactable blocks no longer break when they are also fragile. For example, a lever on a trapdoor could break because a lever is also fragile.
- When the interactable block is a button, a second update occurs a few ticks later (the delay is 20 ticks for
stone-buttonsand 30 ticks forwooden-buttons). A second restoration is therefore automatically performed at that moment. This is why theswitchesinteractable block category had to be separated intostone-buttons,wooden-buttonsandleverscategories. - KIB no longer waits for items to spawn before deleting them. Their spawning event is now intercepted and immediately
canceled. In addition, the
SPAWN_ENTITYnetwork packet is no longer canceled by the PacketEvents plugin (if present), as this packet is no longer sent when fragile blocks break.
1.1.2-mc1.20.6
beta10 февраля 2026 г.Overview
- Fix some
MULTI_BLOCK_CHANGEpackets that were not being sent correctly. They are now tweaked to only disable packets that replace fragile blocks with air.- This fixes redstone and rails (and probably other fragile blocks) that weren't updating on client sides.
- This also fixes fragile doors from flickering.
- Change the Modrinth publishing system.
- The mc-publish GitHub action has been replaced by the Modrinth's Minotaur Gradle task.
1.1.1-mc1.20.6
beta3 февраля 2026 г.Overview
- Add support for versions 1.21 → 1.21.11
- Replace
MaterialTags.SIGNS(deprecated since 1.21.8) withTag.ALL_SIGNS - Fix
versionin plugin.yml - Fix error message about
org.bukkit.entity.Player.getWorld()failure whencom.github.retrooper.packetevents.event.PacketSendEvent.getPlayer()is null
1.1.0-mc1.20.6
beta2 февраля 2026 г.1. Overview
- KIB now automatically removes items dropped from fragile blocks when they are broken.
- PacketEvents is now supported to improve client-side rendering when restoring fragile blocks. It is optional but highly recommended.
- Added
bamboosas fragile blocks (BAMBOOandBAMBOO_SAPLING). - Updated the
coralsfragile block category to add all implementations ofCoralWallFan. - Added bStats for plugin metrics.
2. Auto-removal of items dropped from fragile blocks
When fragile blocks are broken, KIB automatically removes items dropped from them. Note that they may be visible for a few milliseconds before being removed, as one server tick is required to detect them.
However, if you are using PacketEvents, they are not visible at all, as the packets related to fragile block item drops are canceled.
3. PacketEvents support
If the PacketEvents plugin is detected on the server, it will be used to cancel certain packets events in order to improve client-side visuals and performance. PacketEvents is optional but highly recommended for a smoother experience.
For any fragile block that is restored, KIB uses PacketEvents to:
- Hide break particles.
- Cancel break sounds.
- Hide block item drops (they are automatically deleted by KIB anyway).
- Cancel break animation.
Note that the break animation is not canceled for doors. Interacting with a door would otherwise cause it to appear half-open if the corresponding packet event was canceled. This is also why fragile doors may flicker.
⚠️ Please also note that this may not always be flawless. The client appears to anticipate some packets from the server, which can occasionally cause a few fragile blocks to be displayed as broken and restored. In most cases, however, this does not occur.
1.0.0-mc1.20.6
beta19 января 2026 г.Overview:
This is the first version of the plugin.
It contains all the logic necessary to restore fragile blocks that may be broken when a player interacts with an interactable block (see the project description for more context).
🔵 Click to see the list of fragile block categories
amethyst-clustersbannersbedsbellscactuscakescarpetscave-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
🔴 Click to see the list of interactable block categories
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
Configuration:
This version also includes the ability to blacklist blocks (fragile or interactable) by disabling their category or
specifying the materials to be ignored in the config.yml file.
The maximum number of blocks to restore is set to 500 by default, but it can also be changed in the config.yml file.
The configuration can be reloaded with /keepillegalblocks reload (or /kib reload), which requires the kib.reload
permission for non-op players.
