A Paper minigame plugin. After a short build phase, a flood level climbs one step at a time on a timer. Stay above it or die. Last player standing wins — or, solo, outlast the flood until it peaks.
- Rising flood of
LAVAorWATER, filled block-by-block so it's visible. - Nuclear water mode: sickly-green particle haze, rising smoke, and poison / wither / blindness / hunger on contact.
- Difficulty presets —
/lf start <chill|classic|frenzy|insane>bundles the interval, acceleration, damage, grace time, drop rate and PvP into one pick. - Editable / accelerating rise timer —
/lf setinterval <seconds>live, andflood.acceleration-per-stepshaves the interval down each step so games never stalemate. - Building kit + supply drops — a kit at the start, then glowing crates that fall near a random survivor, sometimes carrying a power-up.
- Power-ups (right-click): Pocket Platform, Launch Pad, Updraft, Bulwark, Glider, and a Cryo Charge that freezes the flood for everyone.
- PvP shove (preset- or config-gated) — knock rivals into the flood; kills are credited ("shoved into the lava by …").
- Live HUD — a personal altitude boss bar, a sidebar scoreboard, a tab-list header/footer, an action-bar gauge, height/player-count milestone shouts and a danger heartbeat.
- Persistent stats (
stats.yml) — wins, games, win rate, best survival time, best climb, shoves, a/lf statsleaderboard and personal-best callouts. - Reward commands run per winner on game end.
- Grace period, spectator elimination, fireworks for winners, and full arena + inventory restore when the game ends.
| Command | Description |
|---|---|
/lf start [preset] |
Start a game — chill, classic, frenzy, insane, or the configured default. |
/lf stop |
Stop the game and rebuild the arena. |
/lf pos1 / /lf pos2 |
Set the arena corners from where you stand. |
/lf preset <name> |
Set the default preset used by a bare /lf start. |
/lf setinterval <sec> |
Seconds between each rise step (live-editable). |
/lf riseamount <n> |
Blocks the flood climbs per step. |
/lf settype <lava|water> |
Choose the fluid. |
/lf nuclear <on|off> |
Toggle the nuclear-water dressing. |
/lf status |
State, flood Y, next rise, preset, PvP, players alive. |
/lf stats [player] |
Personal stats + the win leaderboard. |
/lf reload |
Reload config.yml. |
/lf about |
Plugin info. |
/lf stats is open to everyone; the rest need lavafloor.admin.
| Preset | Interval | Accel | Rise | Damage/s | Grace | Drops | PvP |
|---|---|---|---|---|---|---|---|
| Chill | 12s | — | 1 | 4 | 30s | 30s | off |
| Classic | 8s | 0.1 | 1 | 6 | 20s | 25s | off |
| Frenzy | 6s | 0.2 | 1 | 8 | 15s | 18s | on |
| Insane | 4s | 0.35 | 2 | 20 | 10s | 14s | on |
default-preset: NONE in config.yml means "use the raw flood: / game:
values"; set it to a preset name to make bare /lf start use that.
- Starting kit (
supply.kit) — a configurable stack of building blocks (dirt, cobble, scaffolding, a water bucket vs. lava). Withclear-inventory: truethe player's real inventory (main + armor + offhand) is saved and handed back intact at the end. - Supply drops (
supply.drops) — everyinterval-secondsa glowing crate falls near a random survivor.powerup-chancedecides if it also carries a power-up. The sidebar shows a countdown to the next drop. - Power-ups (
powerups:) — each has anenabledflag and aweightfor how often it's the one that spawns:- Pocket Platform — drops a 5×5 pad under you that vanishes after ~20s.
- Launch Pad — flings you upward.
- Updraft — levitation then a long slow-fall.
- Bulwark — absorption + resistance + fire immunity for a few seconds.
- Glider — 30s slow falling.
- Cryo Charge — freezes the flood rise for everyone for
freeze.seconds.
The flood only fills a rectangular region:
- Set two corners with
/lf pos1and/lf pos2(stored inconfig.yml). - If either corner is unset, a cube around the world spawn is used
(
arena.default-radius/default-floor-y/default-ceiling-y). arena.max-arearefuses to start on a footprint bigger than N columns — a guard against filling millions of blocks. Raise it, shrink the arena, or setflood.place-blocks: falsefor a huge arena (invisible kill-line only).
Every block the flood (or a Pocket Platform) replaces is snapshotted and rebuilt
when the game ends (game.restore-arena: true). Fluid is placed with
block-physics disabled to limit flow, but an enclosed arena (walls up to the
ceiling) still behaves best. Keep arenas modest — a 40-radius cube is ~6.5k
columns.
game:
grace-period-seconds: 20
time-limit-seconds: 0 # 0 = none; if it expires, survivors win
default-preset: NONE # or CHILL / CLASSIC / FRENZY / INSANE
flood:
type: LAVA # or WATER
nuclear: true
rise-interval-seconds: 8 # editable live with /lf setinterval
acceleration-per-step: 0.1 # interval shrinks each step...
min-interval-seconds: 2 # ...down to this
rise-amount: 1
destroy-blocks: true # classic mode — no dirt bunkers
place-blocks: true # false = invisible kill-line, nothing to restore
damage-per-second: 6.0
supply:
kit: { enabled: true, clear-inventory: true, items: [ "DIRT:64", ... ] }
drops: { enabled: true, interval-seconds: 25, powerup-chance: 0.5, bundles: [...] }
powerups:
platform: { enabled: true, weight: 3, block: MOSS_BLOCK, radius: 2, seconds: 20 }
freeze: { enabled: true, weight: 1, seconds: 5 }
pvp: { enabled: false }
rewards: { win-commands: [ "give {player} diamond 3" ] }
hud: { boss-bar: true, action-bar: true, sidebar: true, height-milestone: 10 }Kotlin + Paper, Gradle with the Shadow plugin. Open in IntelliJ and run the
build (or shadowJar) task; the plugin jar lands in build/libs/.
runServer launches a test Paper server on the version in build.gradle.kts.
Requires Gradle 9.7+ (the wrapper is pinned to 9.7.1).