Compatibility
Minecraft: Java Edition
Platforms
Links
Creators
Details
BridgeFalls
BridgeFalls is a Minecraft plugin that adds structural stability rules to placed and nearby blocks. If a block has no valid support, it can be denied on placement or marked unstable and made to fall later.
It is designed for Paper/Folia-style servers and includes configurable support rules, visual instability feedback, and in-game admin commands.
Features
- Support simulation for placed/broken blocks (vertical, horizontal, top support, and anchor checks)
- Anchor validation with 3D connectivity (including diagonals)
- Unstable block lifecycle: mark, warn, persist, and optionally convert to
FallingBlock - Visual feedback with configurable particle colors and warning sounds
- Large material rule lists for:
- non-supporting vertical blocks
- non-supporting horizontal blocks
- always-stable blocks
- always-stable-but-no-support blocks
- floating-on-water support blocks
- Gamemode exclusions (for example Creative/Spectator)
- Runtime configuration commands (
/bf config ...) with validation and reload - Folia-compatible scheduling (
GlobalRegionScheduler+ per-region execution) - Persistence of unstable blocks to
unstable-blocks.yml
Compatibility
- Java: 21
- API target: Paper API
1.21.11-R0.1-SNAPSHOT - Declared supported Minecraft versions:
1.20 - 1.21.11 folia-supported: trueinplugin.yml
Installation
- Build or download the plugin jar.
- Put the jar in your server
plugins/folder. - Start the server once to generate default files.
- Edit:
plugins/BridgeFalls/config.ymlplugins/BridgeFalls/messages.yml
- Use
/bf reloador restart the server.
Commands
Main aliases:
/bf/bridgeFalls/bfCommand/bridgeFallsCommand
Permission:
bridgefalls.admin(default: op)
Core:
/bf help/bf enable/bf disable/bf reload
Config commands:
- Radius
/bf config support-radius <value>/bf config top-support-radius <value>/bf config anchor-support-radius <value>
- Behavior
/bf config fall-delay-minutes <minutes>/bf config time-to-check <ticks>/bf config debug [true|false]/bf config allow-placing-unstable-blocks [true|false]/bf config falling-block [enable|disable]/bf config falling-block drop-item [true|false]/bf config falling-block hurt-entities [true|false]
- Lists (
list,add,remove)no-rest-verticalno-rest-horizontalalways-stablealways-stable-no-supportfloating-supportinstability-colorsdisabled-gamemodes
How support works (high level)
BridgeFalls evaluates support from several angles:
- Direct vertical support
- checks the 3x3 area below a block
- excludes air and materials listed in
no-rest-blocks-vertical
- Horizontal support
- BFS-style search up to
support-radius - only traverses blocks allowed as horizontal support providers
- BFS-style search up to
- Top support
- optional upward check up to
top-support-radius
- optional upward check up to
- Anchor check
- connectivity test within
anchor-support-radius - uses 3D neighboring blocks including diagonals
- connectivity test within
If support is missing:
- placement can be denied, or
- block is accepted but marked unstable (depending on config)
Marked unstable blocks are periodically re-evaluated. If still unstable after fall-delay-minutes, they can fall as FallingBlock entities.
Configuration notes
Important keys in config.yml:
support-radiustop-support-radiusanchor-support-radiusfall-delay-minutes(0means immediate fall)time-to-check(task interval in ticks)allow-placing-unstable-blocksfalling-blockfalling-block-drop-itemfalling-block-hurt-entitiesdisabled-gamemodesinstability-colorsinstable-color(default outline when falling mode is disabled)
Messages are customizable in messages.yml with placeholders (for example {block}, {radius}, {count}, {minutes}).
Folia behavior
BridgeFalls uses a global repeating task only as a dispatcher. All block/world reads are executed per location on the region scheduler, which is the safe model for Folia region threading.
Build from source
# Unix/macOS
./gradlew clean shadowJar
# Windows
./gradlew.bat clean shadowJar
Output jar:
build/libs/BridgeFalls-<version>.jar
Local Folia run task (project configured with run-paper):
# Unix/macOS
./gradlew runFolia
# Windows
./gradlew.bat runFolia
Development quality tools
The project is configured with:
- Checkstyle
- PMD
- SonarQube plugin
License
See LICENSE.md.


