Sueta

Keep Illegal Blocks

1.4.3-mc1.20.6

Prevent illegal blocks from breaking/updating when a player right-clicks on an adjacent block — KIB scans and restores blocks to avoid destroying your build

·Plugin
  1. 1.4.3-mc1.20.6latestAug 1, 2026
    #### Overview * Added chiseled-booshelves interactable block category (putting and taking books can break adjacent reactive blocks).
    Pull request: https://github.com/Atrimilan/KeepIllegalBlocks/pull/4
    40 downloads
  2. 1.4.2-mc1.20.6Jul 26, 2026
    #### Overview * Added the [ConfigUpdater](https://github.com/tchristofferson/Config-Updater) library to improve the auto-updating of the config.yml file when KIB is updated. Compared to the previous approach, this allows old section values to be removed and new comments to be added, while preserving all user changes.
    Pull request: https://github.com/Atrimilan/KeepIllegalBlocks/pull/3
    19 downloads
  3. 1.4.1-mc1.20.6Jul 13, 2026
    #### Overview * Added support for Minecraft 26.2. * Added speleothems reactive block category, which includes POINTED_DRIPSTONE and the new SULFUR_SPIKE. * Removed pointed-dripstones category. * Updated the PacketEvents optional dependency to 2.13.0+spigot. * Added FAQ section to the README.
    13 downloads
  4. 1.4.0-mc1.20.6Jun 5, 2026
    #### Overview * Added support for Minecraft 26.1.x (1.20.6 to 1.21.11 are still supported). * Consolidated "fragile" and "connectable" into the new "reactive" type. "Connectable" is now a property of reactive blocks. Documentation is updated accordingly. * Reworked the restoration service to fix issues where connectable reactive blocks were not always properly restored. _Some edge cases may still (rarely) occur in very specific situations, as the restoration system implemented is still fairly lightweight. Advanced chunk management would have been overkill for what the plugin does._ * Added leaf-litters as a reactive block. * Added propagation of material classifications to their placement materials, to prevent duplication when items and blocks have different materials. For example, Material.REDSTONE becomes Material.REDSTONE_WIRE once placed. * Added Material.AMETHYST_SHARD to the amethyst-clusters category (to prevent item duplication). * Added Material.CHORUS_FRUIT to the chorus-plants category (to prevent item duplication).
    Pull request: https://github.com/Atrimilan/KeepIllegalBlocks/pull/1
    29 downloads
  5. 1.3.0-mc1.20.6May 17, 2026
    #### 1. Overview Updated the restoration system to support connectable blocks*, preventing unwanted block updates for glass-panes, walls and fences (fences, iron bars and copper bars). * Fixed blacklisted fragile blocks items not being dropped when they are broken (only blacklisted ones, not blocks being broken due to getting over the max-blocks limit). * Added redstone-wires as fragile blocks. * Removed support for CHORUS_FLOWER as fragile blocks because their restoration doesn't work properly. Note that CHORUS_PLANT is still supported. * Completely reworked material loading process on server start (or plugin reload), to improve performance and allow non-block materials to be loaded (such as redstone-wires). * Split and heavily refactored the main configuration class. * Updated the PacketEvents optional dependency to 2.12.1+spigot. #### 2. Connectable blocks A connectable block is a block that automatically connects to its adjacent blocks. This includes the following categories: * fences (fences, iron bars and copper bars) * glass-panes * walls Connectable blocks behave in a similar way to fragile blocks: * Their connections can be modified illegally with a Debug Stick, or plugins like Axiom or WorldEdit. * A connectable block will revert to its normal state when a physics update is triggered on one of its adjacent blocks. This is why the restoration system has been made compatible with connectable blocks. Connectable block updates are removed from network packets when they are restored (if the PacketEvents plugin is present). However, in most cases, they are still rendered by the client before the related network packet is received, which causes flickering for a fraction of a second.
    23 downloads
  6. 1.2.0-mc1.20.6Feb 23, 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 switches with stone-buttons, wooden-buttons and levers. * Added cave-vines (CAVE_VINES + CAVE_VINES_PLANT) and sweet-berry-bushes as 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-buttons and 30 ticks for wooden-buttons). A second restoration is therefore automatically performed at that moment. This is why the switches interactable block category had to be separated into stone-buttons, wooden-buttons and levers categories. * KIB no longer waits for items to spawn before deleting them. Their spawning event is now intercepted and immediately canceled. In addition, the SPAWN_ENTITY network packet is no longer canceled by the [PacketEvents](https://modrinth.com/plugin/packetevents) plugin (if present), as this packet is no longer sent when fragile blocks break.
    21 downloads
  7. 1.1.2-mc1.20.6Feb 10, 2026
    #### Overview * Fix some MULTI_BLOCK_CHANGE packets 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](https://github.com/marketplace/actions/mc-publish) GitHub action has been replaced by the Modrinth's [Minotaur](https://github.com/modrinth/minotaur) Gradle task.
    16 downloads
  8. 1.1.1-mc1.20.6Feb 3, 2026
    #### Overview Add support for versions 1.21 → 1.21.11* * Replace MaterialTags.SIGNS (deprecated since 1.21.8) with Tag.ALL_SIGNS * Fix version in plugin.yml * Fix error message about org.bukkit.entity.Player.getWorld() failure when com.github.retrooper.packetevents.event.PacketSendEvent.getPlayer() is null
    17 downloads
  9. 1.1.0-mc1.20.6Feb 2, 2026
    #### 1. Overview * KIB now automatically removes items dropped from fragile blocks when they are broken. * [PacketEvents](https://modrinth.com/plugin/packetevents) is now supported to improve client-side rendering when restoring fragile blocks. It is optional but highly recommended. * Added bamboos as fragile blocks (BAMBOO and BAMBOO_SAPLING). * Updated the corals fragile block category to add all implementations of CoralWallFan. * 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](https://modrinth.com/plugin/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.
    16 downloads
  10. 1.0.0-mc1.20.6Jan 19, 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). <details> <summary><b>🔵 Click to see the list of fragile block categories</b></summary> * amethyst-clusters * banners * beds * bells * cactus * cakes * carpets * cave-vines * chorus-plants * cocoa * comparators * corals _(does not apply to waterlogged corals)_ * crops * dead-bushes * doors * dripleaves * ferns * flowers * frogspawn * fungus * glow-lichens * grass * hanging-roots * hanging-signs * ladders * lanterns * lily-pads * mangrove-propagules * mushrooms * nether-roots * nether-sprouts * nether-warts * pointed-dripstones * pressure-plates * rails * redstone-wires * repeaters * saplings * scaffolding * sculk-veins * sea-pickles * signs * snow * sugar-canes * sweet-berry-bushes * switches _(levers and buttons)_ * torches * tripwire-hooks * twisting-vines * vines * weeping-vines </details> <details> <summary><b>🔴 Click to see the list of interactable block categories</b></summary> * campfires * candles * cauldrons * comparators * composters * copper-blocks _(non-plain copper blocks that can be waxed or scraped)_ * daylight-detectors * doors * end-portal-frames * gates * lecterns _(putting a book on them)_ * repeaters * switches _(levers and buttons)_ * trap-doors </details> #### 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.
    21 downloads

Similar projects

Plugin →