Arenas & map generation
Create an arena, generate a volcanic basin from a seed, read the quality report, preview it and lock it in.
An arena is one entry in arenas.yml. Its map is either generated by the plugin from a seed, or copied from a template folder you provide.
The setup flow
/lr admin map create <id> volcanic_basin 192 generate the map (+ optional seed)
/lr admin map report <id> quality report
/lr admin map preview <id> open a preview world and walk it
/lr admin map accept <id> freeze the seed + spawn points
/lr admin setlobby <id> stand in your hub, run this
/lr admin map preview <id> go back into the arena…
/lr admin setspectator <id> …and set the spectator point
/lr admin map preview <id> close
/lr admin validate <id>
/lr admin enable <id>
Reading the quality report
/lr admin map report does not scan a loaded world — it replays the generator’s own maths, so it runs off the main thread, never stalls a tick, and the report always describes exactly the map you will get.
It grades six things against the thresholds in config.yml under map-quality:
| Metric | Default threshold | What it means |
|---|---|---|
min-safe-spawns | 16 | How many valid, flat, standable spawn points exist. |
max-rich-poor-ratio | 1.5 | Resource balance between the richest and poorest quadrant. |
min-high-ground-blocks | 400 | Standable area at Y ≥ 118 — the endgame ground. |
max-dominant-high-ground-share | 0.60 | Stops one corner owning all of the high ground. |
max-wood-distance | 24 | Longest walk from a spawn to the nearest tree. |
min-upward-routes | 2 | Distinct climbable routes out of the basin. |
If a seed fails, generate another one — /lr admin map regenerate <id> — and report again. Accept only what passes.
Arena settings
arenas:
volcanic_valley:
display-name: "<gradient:#f9e000:#ff0000>Volcanic Valley</gradient>"
enabled: false
source:
type: GENERATED # GENERATED or TEMPLATE
generator: VOLCANIC_BASIN
template: "" # folder under plugins/LavaRises/templates/
size: 192
seed: 436545 # 0 = pick a new seed on create
min-players: 2
max-players: 24
border-size: 192
lava-start-y: 40
lava-end-y: 180
build-max-y: 180
grace-seconds: 480
countdown-seconds: 30
rise:
interval-seconds: 5
blocks-per-rise: 1
replace-mode: AIR_LIKE # AIR_LIKE or DESTRUCTIVE
pvp:
mode: SECONDS_AFTER_RISE # SECONDS_AFTER_RISE or LAVA_Y
value: 60
sudden-death:
enabled: true
require: false # true = always pass through sudden death
final-border-size: 32
shrink-seconds: 180
max-match-seconds: 1800
profile: CLASSIC # CLASSIC | QUICK | CHAOS
Rise modes
AIR_LIKE— lava only replaces air and the blocks listed underlava.extra-replaceable(snow, vines, lily pads by default). Player builds survive.DESTRUCTIVE— lava replaces everything except the protected list (OBSIDIAN,CRYING_OBSIDIAN,ANCIENT_DEBRIS, plus bedrock and barriers which are always safe).
PvP unlock
SECONDS_AFTER_RISE—valueseconds after the lava starts rising.LAVA_Y— the moment the lava level reaches Y =value.
Templates instead of generation
Set source.type: TEMPLATE and put your world folder in plugins/LavaRises/templates/<name>, then point source.template at it. The folder is copied for each match on an async thread, so a large template never blocks a tick.
Next: Match flow & profiles.