CancelBlockUpdate
Per-world block update suppression plugin for Paper servers, with Multiverse support, LuckPerms-compatible permissions, YAML config, i18n, and /cbu commands.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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.