- Radiation Wand — admin tool. Left-click block = pos1, right-click block = pos2.
- Cuboid radiation zones with level 1–5 (configurable up to 20).
- Per-player boss bar showing zone level and grace-period countdown; turns red and starts inflicting radiation damage when the timer runs out.
- Hostile mobs are buffed in zones — extra max health, movement speed, attack damage, scaled by zone level.
- Lugol's Potion — drinkable item that grants temporary immunity to radiation. Craftable in survival, or hand it out via
/lugols give. - Gas Mask — craftable head-slot helmet with three swappable filter tiers (Basic / Industrial / Hazmat). Right-click to install a filter, sneak + right-click to eject it. While worn in a zone, the filter takes the radiation hit instead of the player; the mask itself wears down very slowly. Lugol's still wins if both are active.
- All zones persist per-world to
<world>/data/radiationzones.json. - All values tunable in
config/radiationzones-common.toml.
| Command | Description |
|---|---|
/radiationwand give [player] |
Gives the Radiation Wand. |
/radiationzone create <name> <level> |
Creates a hazard zone (radiation INSIDE) using your wand selection. |
/radiationzone createsafe <name> <level> <square|circle> <size> [x y z] |
Creates a safe zone (radiation OUTSIDE the bounds, world-border style). size = full side length for square, radius for circle. Defaults to player position when coords omitted. |
/radiationzone remove <name> |
Deletes a zone. |
/radiationzone list |
Lists all zones with bounds, level, and dynamic settings. |
/radiationzone setspread <name> <blocks/min> |
Zone bounds expand outward at this rate. |
/radiationzone setdecay <name> <blocks/min> |
Zone bounds shrink inward at this rate. Net effect = spread − decay. |
/radiationzone setleveldecay <name> <minutes> |
Reduce zone level by 1 every N minutes. Any zone (INSIDE or OUTSIDE) is removed when its level reaches 0. |
/radiationzone setmaxradius <name> <blocks> |
Cap how far the zone can spread from its original bounds (0 = unlimited). |
/radiationzone setdrift <name> <dx> <dy> <dz> |
Drift the bounds through the world at dx,dy,dz blocks/minute on each axis. |
/radiationzone setmode <name> <inside|outside> |
Flip an existing zone between hazard (inside) and safe-bubble (outside) modes. |
/lugols give <player> [count] |
Gives Lugol's Potion(s). |
A safe zone behaves like Minecraft's world border but for radiation: anyone outside the bounds in that dimension takes damage. Combine with setdrift, setspread, and setdecay to make the safe area slide, expand, or close in over time.
# 1000-block safe square centered on spawn, level 3
/radiationzone createsafe spawn 3 square 1000 0 64 0 # explicit center; omit coords to use the executor's position
# Closes in by 1 block/min toward the center
/radiationzone setdecay spawn 1
# Drifts ~100 blocks east per day (100 / (24*60) ≈ 0.0694 blocks/min on +X)
/radiationzone setdrift spawn 0.0694 0 0
# 200-block safe circle centered on (0, 64, 0), level 5
/radiationzone createsafe oasis 5 circle 200 0 64 0
# Flip a normal hazard zone into a safe bubble (and back)
/radiationzone setmode reactor outside
/radiationzone setmode reactor inside
Safe zones support both square (cuboid) and circle (vertical cylinder, full world height) shapes. Drift and shrink/expand survive server restarts — the system uses wall-clock time deltas, not tick counts. When a safe zone shrinks below 1×1 it's left in place at zero size, meaning the entire dimension is irradiated (admin "scorched earth" end state). To clean up a fully decayed safe zone, give it a level decay so its level eventually reaches 0 and it removes itself, or use /radiationzone remove.
Multiple overlapping safe zones combine via union: a player is irradiated by safe-zone logic only when standing outside every OUTSIDE zone in that dimension.
Zones can be made dynamic so they grow, shrink, or weaken over time — useful for nuclear-accident scenarios and cleanup gameplay.
/radiationzone create reactor 5
/radiationzone setspread reactor 2 # grows by 2 blocks/min in every direction
/radiationzone setmaxradius reactor 64 # cap spread at +64 blocks from origin
/radiationzone setleveldecay reactor 30 # drop one level every 30 min (auto-cleans up at level 0)
/radiationzone setdecay reactor 1 # shrinks by 1 block/min (slower than spread => still net-growing)
A scheduled task ticks zones once per second on the server. Updates are time-based (uses wall clock since last update), so spread/decay survives server restarts and lag correctly.

