CancelBlockUpdate
Per-world block update suppression plugin for Paper servers, with Multiverse support, LuckPerms-compatible permissions, YAML config, i18n, and /cbu commands.
CancelBlockUpdate
CancelBlockUpdate
CancelBlockUpdate is a Paper server plugin that lets administrators suppress selected block updates on a per-world basis.
It is designed for servers that need finer control over block physics, block spread, fluid movement, redstone updates, piston movement, and other common update-related mechanics without globally affecting every world.
Features
- Per-world block update control - Suppress updates only for configured block types - Compatible with Multiverse-style multi-world servers - LuckPerms-compatible permission nodes - YAML configuration - `/cbu` command system - Smart tab completion - Runtime reload support - Configurable chat message prefix - English and Chinese language files - Player messages follow the player's Minecraft client language - Console messages default to English
Requirements
- Paper `26.1.1` - Java `25`
Optional integrations:
- Multiverse-Core - LuckPerms
CancelBlockUpdate does not require Multiverse-Core or LuckPerms to run, but it is designed to work cleanly alongside them.
How It Works
The plugin keeps normal block updates enabled by default.
When you run:
```text /cbu world disable ```
the current world will start suppressing updates for the block types listed in the configuration.
When you run:
```text /cbu world enable ```
the current world returns to normal block update behavior.
This means you can disable selected block updates in one world while leaving other worlds untouched.
Commands
| Command | Description | | --- | --- | | `/cbu help` | Shows the command help menu. | | `/cbu reload` | Reloads the config and locale files. | | `/cbu world disable` | Disables configured block updates in your current world. | | `/cbu world enable` | Enables normal block updates in your current world. | | `/cbu block add <ID>` | Adds a block material ID to the suppression list. | | `/cbu block add` | Adds the non-air block you are looking at. |
Examples:
```text /cbu block add GRASS_BLOCK /cbu block add SAND /cbu block add REDSTONE_WIRE /cbu world disable ```
Permissions
| Permission | Description | | --- | --- | | `cbu.admin` | Grants all CancelBlockUpdate permissions. | | `cbu.help` | Allows `/cbu help`. | | `cbu.reload` | Allows `/cbu reload`. | | `cbu.world` | Allows `/cbu world enable` and `/cbu world disable`. | | `cbu.block.add` | Allows `/cbu block add`. |
All permissions use Bukkit's standard permission system, so they can be managed directly through LuckPerms.
Configuration
Default config:
```yaml messages: prefix: "&bCBU &7>> &r"
default-block-updates-enabled: true max-target-distance: 8
suppressed-blocks: - GRASS_BLOCK
worlds: {} ```
Example world configuration:
```yaml worlds: world: block-updates-enabled: false world_nether: block-updates-enabled: true ```
`block-updates-enabled: false` means configured block updates will be cancelled in that world.
Locale Support
Locale files are stored in:
```text plugins/CancelBlockUpdate/locals/ ```
Included languages:
- `en_US.yml` - `zh_CN.yml`
Chinese clients receive Chinese messages. Other clients and the console use English fallback messages.
Notes
CancelBlockUpdate targets common block update paths exposed through the Paper/Bukkit API, including physics, spread, growth, fading, forming, fluid flow, piston movement, redstone current changes, leaf decay, burning, and entity-driven block changes.
Some very specific internal Minecraft update behavior may depend on what the server exposes through events.