Prevents high altitude lava placement to stop lava casting on Paper 1.21.x.
- Cancels lava bucket placement, flow or both if it is more than the configured height above natural ground.
- Uses CoreProtect history (when available) to identify player-placed blocks for accurate ground detection.
- Logs a server alert when a placement is blocked.
- Supports live config reload and runtime toggling.
- Lava casting attribution, optional logs will tell you who tried to place lava and where.
- Maintains natural world lava flow.
[AntiLavaCast] Blocked lava placement by CevAPI at -85,164,-29 (heightAboveGround=96, groundY=68)
- Paper 1.21.x
- Java 21+
./gradlew buildOutput jar:
build/libs/AntiLavaCast-1.x.x.jar
- Build the jar.
- Drop the jar into your server
pluginsfolder. - Start the server to generate the config.
/lavacast reload/lavacast enable/lavacast disable/lavacast setheight <blocks>/lavacast drop <on|off>on allows dropping/lavacast flow <on|off>on allows flowing/lavacast logs <on|off>on logs blocked placements/lavacast coreprotect <on|off>toggles CoreProtect integration/lavacast coreprotectlookback <seconds|1m|2h|7d|4w>sets how far back CoreProtect history is searched/lavacast mark <radius>marks nearby blocks as player-placed for height checks (max radius 100)
lavacast.admin (default: op)
plugins/AntiLavaCast/config.yml
max-height-above-ground: 20
enabled: true
allow-lava-drop: false
allow-lava-flow: false
log-blocked-placements: true
coreprotect-enabled: true
coreprotect-lookback-seconds: 31536000- The ground scan ignores player-placed blocks; when CoreProtect is available it will also treat historical placements as player-placed.
- Use
/lavacast mark <radius>around old builds to mark them as player-placed if CoreProtect is not available. - Marked blocks are stored on disk in
plugins/AntiLavaCast/marksand persist across restarts. - When CoreProtect is enabled and detected, mark storage is disabled and lookups rely on CoreProtect instead.