22 KiB
Living World — Big Plan
A complete roadmap of every natural phenomenon to implement. Organised into phases by theme and dependency order. Each phase builds on the systems already in place without requiring the previous phase to be 100% complete.
Current State (implemented)
- 9-module ecosystem pipeline: Pollution → Soil → Water → Vegetation → ResourceDepletion → Recovery → Ecosystem → WorldEffects → Atmosphere
- Succession stages: BARREN → SPARSE_GRASS → GRASSLAND → SCRUBLAND → YOUNG_WOODLAND → MATURE_FOREST
- Tides with moon-phase amplitude (spring/neap cycle)
- River currents + hydraulic erosion
- Groundwater aquifer + springs
- Mountain volcanoes (lava flow, ash deposit, fertile phase)
- Ocean/submarine volcanoes (seafloor buildup → island formation)
- World-wide simulation via ChunkEvent.Load (all loaded chunks, not just player-adjacent)
/lwcommand suite: status, region, atmosphere, climate, wind, speed, events, volcanoes
Phase 1 — Ocean Ecosystem
Completes the ocean as a living system. Builds directly on submarine volcanism already implemented.
1.1 Coral Reefs
- Trigger: Clean ocean region (pollution < 20) with shallow floor (OCEAN_FLOOR heightmap y > 48)
- Growth: Place coral blocks and coral fans on seafloor over many cycles; species diversity scales with ecosystem health
- Bleaching: Pollution 20–50 turns coral to dead coral; pollution > 50 removes coral entirely
- New WorldEffectType:
CORAL_GROWTH,CORAL_BLEACHING - Feedback: Healthy reef boosts hydration and water quality scores for the region
1.2 Kelp Forests
- Trigger: Clean, cold ocean region (temp < 0.5, pollution < 30)
- Growth: Place kelp column from OCEAN_FLOOR upward, max 8 blocks high; grows one block per fertile cycle
- Death: High pollution converts kelp to dead bush / removes it
- New WorldEffectType:
KELP_GROWTH,KELP_DIE
1.3 Algae Blooms & Dead Zones
- Trigger: Ocean pollution > 60 sustained for 10+ cycles
- Bloom: Green-tinted water (place green stained glass? or particles), kelp overgrowth forced at high rate
- Die-off: After bloom peaks, mass die-off deposits dirt/gravel on seafloor, spikes pollution further
- Dead zone: Suppress all aquatic mob spawning (Cod, Salmon, Squid, Glow Squid, Dolphin) while active
- New WorldEffectType:
ALGAE_BLOOM,DEAD_ZONE - New ClimateEventType:
ALGAE_BLOOM
1.4 Bioluminescence
- Trigger: Clean deep ocean region (pollution < 15, depth > 32 below sea level)
- Effect: Glow squid particle bursts at night only (check
dayTime > 12000) - No new WorldEffectType needed — purely particle, handled in LivingWorldMod tick
1.5 Hydrothermal Vent Fields
- Trigger: Oceanic volcanic regions in COOLING or FERTILE phase
- Effect: Permanent seafloor feature: magma blocks and soul sand form around vent opening; continuous bubble/smoke particles; small pollution spike kept constant
- New WorldEffectType:
HYDROTHERMAL_VENT
Phase 2 — Atmospheric Events
Weather phenomena driven by the existing Atmosphere module. Most are purely additive — new WorldEffectTypes using existing block change infrastructure.
2.1 Acid Rain
- Trigger: Regional air pollution > 70 during a rain event
- Effect: Stone/cobblestone on exposed surface → gravel; grass → dirt; surface plants die; soil contamination +5 per cycle during event
- Duration: Lasts as long as raining + pollution remains high
- New WorldEffectType:
ACID_RAIN_DAMAGE - New ClimateEventType:
ACID_RAIN
2.2 Blizzards
- Trigger: Cold biome (temp < 0.15), high precipitation, wind speed above threshold
- Effect: Snow layers accumulate on exposed surfaces each cycle (up to depth 4); standing water freezes to ice; mobs and players get slowness-equivalent push-back from wind
- Melt: When temperature rises above 0 in same region, snow layers reduce one per cycle
- New WorldEffectType:
SNOW_ACCUMULATION,WATER_FREEZES - New ClimateEventType:
BLIZZARD
2.3 Sandstorms
- Trigger: Desert biome, low humidity, high wind
- Effect: Sand deposits on exposed surfaces (place sand one block above lowest surrounding blocks); surface plants stripped; minor soil contamination (airborne particles)
- New WorldEffectType:
SAND_DEPOSIT - New ClimateEventType:
SANDSTORM
2.4 Lightning Strikes
- Trigger: Storm climate event, dry region (humidity < 30)
- Effect: Single ignition point (one fire block) placed on a flammable surface block; spreads naturally via Minecraft fire tick — distinct from the existing area-wide WILDFIRE
- Implementation: Use
ServerLevel.lightning()or place fire directly; 1–3 strikes per storm cycle - New ClimateEventType:
LIGHTNING_STORM(already partially covered by WILDFIRE; make it a separate trigger)
2.5 Fog Banks
- Trigger: Coastal or wetland biome, humidity > 70, calm wind (low speed)
- Effect: Dense particle fog at ground level (CLOUD particles in a 64×64 area); no block changes; purely visual + ambience
- Implementation: LivingWorldMod tick, no new WorldEffectType needed
2.6 Heat Shimmer
- Trigger: Desert biome OR pollution > 60, daytime only
- Effect: Flame particles at very low count (0.01 speed) near ground; no block changes; visual indicator of heat stress
- Implementation: LivingWorldMod tick, no new WorldEffectType needed
2.7 Auroras
- Trigger: Cold/polar biome, clear night (no rain, time > 13000), atmosphere pollution < 10
- Effect: Coloured enchantment-glyph or end rod particles high in the sky (y > 180); purely cosmetic
- Implementation: LivingWorldMod tick, no new WorldEffectType needed
Phase 3 — Geological Activity
Ground-rupturing events. Require careful throttling — these permanently reshape terrain.
3.1 Geysers
- Trigger: Volcanic-adjacent region OR high geothermal elevation OR dripstone-cave biome below
- Registration: Like volcanoes, geyser sites are registered on first encounter and persist
- Cycle: 5-minute dormant → 30-second active → 5-minute dormant
- Effect (active): Column of water source blocks shoots upward (place 3–5 blocks of water at geyser X,Z at increasing Y each tick, then remove after 2 seconds); BUBBLE_COLUMN particles; travertine ring (calcite/tuff) grows 1 block wider each active cycle
- New WorldEffectType:
GEYSER_ERUPT,TRAVERTINE_DEPOSIT - New field in bootstrap:
Map<RegionCoordinate, GeyserSite>(location + cooldown)
3.2 Earthquakes
- Trigger: Volcanic region in BUILDING/ERUPTING phase (3× frequency), or any high-elevation region (1× base)
- Magnitude: Low (1–3) = surface cracks only; High (4–5) = fissures + landslide trigger
- Effect: Low magnitude — remove 3–5 random surface blocks in a line (creates crack pattern); replace with air + expose layer beneath. High magnitude — carve a fissure 2 blocks wide, 8–15 blocks deep in a random direction from region centre
- Player feedback: Screen shake analogue — apply velocity impulse to nearby players/mobs
- New WorldEffectType:
GROUND_CRACK,FISSURE_OPENS - New ClimateEventType:
EARTHQUAKE
3.3 Sinkholes
- Trigger: Sustained high groundwater (> 80) + shallow cave system below surface (detected via downward scan for air pockets)
- Effect: Surface collapses — remove a 3×3 to 5×5 area of blocks at surface, creating a sudden pit 5–15 blocks deep; water may flood the pit if groundwater is at max
- Rarity: Very rare, ~0.05% chance per cycle when conditions met
- New WorldEffectType:
SINKHOLE_COLLAPSES - New ClimateEventType:
SINKHOLE
3.4 Landslides
- Trigger: Steep slope (elevation delta > 15 between adjacent regions) + high precipitation OR earthquake
- Effect: Gravel/sand/dirt on steep surface "falls" — remove top 2 blocks of highest surface point in the region, place them at the lowest adjacent surface point (gravity simulation)
- New WorldEffectType:
LANDSLIDE
3.5 Lava Tubes
- Trigger: Volcanic region COOLING phase, stochastic (~0.1% per cycle)
- Effect: Scan downward from surface to find a lava-adjacent air pocket; remove the ceiling block, creating a visible opening to the lava below
- New WorldEffectType:
LAVA_TUBE_COLLAPSE
Phase 4 — Hydrology Expansion
Extends the existing river/groundwater/tidal systems with longer-timescale water dynamics.
4.1 Flash Floods
- Trigger: High precipitation (> 80) on barren/low-succession region (BARREN or SPARSE_GRASS) with high slope
- Effect: Temporary surge of water source blocks placed along lowest terrain path through region; blocks removed after 5 minutes (track flood blocks in a
Map<RegionCoordinate, List<BlockPos>>) - New WorldEffectType:
FLASH_FLOOD - New ClimateEventType:
FLASH_FLOOD
4.2 Spring Melt
- Trigger: Cold region that transitions from freezing to thawing (temperature crosses 0.15 threshold)
- Effect: Ice blocks → water, snow layers removed top-down one per cycle; groundwater spikes; briefly triggers GROUND_SPRING_EMERGES in adjacent lower-elevation regions
- New WorldEffectType:
ICE_MELTS,SNOW_MELTS
4.3 Drought Cycles
- Trigger: Atmosphere module humidity < 15 sustained for 20+ cycles
- Effect: River water sources removed (RIVER_CARVE in reverse); exposed riverbeds turn to coarse dirt / cracked stone (using existing GRASS_DEGRADES chain); groundwater level drops 2 per cycle
- New WorldEffectType:
RIVERBED_DRIES - New ClimateEventType:
DROUGHT(probably already exists — extend it)
4.4 Sedimentation & Delta Formation
- Trigger: River-carrying region (high riverFlowIntensity) meets an ocean-adjacent region
- Effect: Each cycle, place sand or gravel blocks at the mouth of the river just below sea level; over dozens of cycles these accumulate into a visible delta fan
- Elevation resample: Queue
pendingElevationResampleafter delta grows to trigger island-check logic - New WorldEffectType:
SEDIMENT_DEPOSIT
4.5 Sea Level Change
- Mechanism: New
seaLevelconfig value (default 62) that can drift ±3 blocks over very long timeframes - Trigger: Global sustained rainfall (average precipitation across all active regions > 65) raises sea level by 1 block every 500 cycles; sustained drought lowers it
- Effect: Use existing
applyTideBlockslogic as the block-change driver, but shift the baseline permanently - Broadcast: Server message when sea level changes by 1 block
4.6 Glaciers
- Trigger: Cold high-elevation region (temp < 0, elev > 90) with sustained blizzard history
- Effect: Glacier "toe" (lowest point of snowfield) pushes gravel/stone blocks one position downhill per 50 cycles; leaves a trail of polished andesite (glacier-polished rock) behind
- New WorldEffectType:
GLACIER_ADVANCE,GLACIER_POLISH
4.7 pH Cascade
- Trigger: Acid rain event in region with river flowing to ocean
- Effect: Ocean pollution in downstream region spikes; if dripstone cave biome detected below region, neutralisation bonus applied (limestone buffer)
- Salmon/fish spawning in affected regions suppressed while pH is acidic (pollution > 50)
- No new WorldEffectType — uses existing pollution data
4.8 Waterfalls Carving Plunge Pools
- Trigger: River-carve region with large elevation drop to adjacent region (delta > 10)
- Effect: At the drop point, scan the base of the waterfall for a small depression; deepen it one block per cycle (remove stone/gravel at base, replace with water)
- New WorldEffectType:
PLUNGE_POOL_DEEPENS
Phase 5 — Ecology
Biological systems — mobs responding to ecosystem state. Most are spawn suppression/boost mechanics using existing NeoForge spawn events.
5.1 Migration Patterns
- Mechanism: Track
Map<RegionCoordinate, Integer> passiveMobPressure— incremented each time a passive mob spawns in a region, decremented each time one is killed or despawns - Effect: High-vegetation, low-pollution regions attract passive mobs (boost spawn rate 50%); barren/polluted regions suppress them (same logic as existing health-based suppression, but add directional bias toward healthy neighbours)
- Visible result: Herds naturally congregate in meadows and forests; wastelands are empty of animals
5.2 Predator–Prey Pressure
- Mechanism: If passive mob pressure in a region is high, hostile mob spawn rate is boosted (prey attracts predators); if passive mob pressure is very low, hostile mobs also suppress (no prey = predators leave)
- Uses existing FinalizeSpawnEvent hook — add predator-prey calculation alongside ecosystem health check
5.3 Local Extinction
- Mechanism: Track
Set<RegionCoordinate> extinctRegions; a region enters this set if passive mob pressure = 0 for 100+ consecutive cycles - Effect: No passive mob spawning allowed until succession reaches YOUNG_WOODLAND or higher
- Recovery: On reaching threshold, remove from set and broadcast "Wildlife returning to region (x,z)"
5.4 Pollinator Collapse
- Trigger: Pollution > 50 in a region that contains bee nests or has flowering vegetation
- Effect: Bee spawning suppressed; flower spread (VEGETATION_SPREADS placing flowers) disabled; crop growth rate feedback reduces fertility gain by 50%
- Recovery: Pollution drops below 20 → bee spawning resumes, flower spread re-enables
5.5 Rewilding
- Trigger: Player plants 10+ saplings in a BARREN or SPARSE_GRASS region within a single game day
- Effect: Bootstrap detects this via a new sapling-placement counter; if threshold met, grant a one-time succession boost (+2 stages over next 20 cycles) and rapid pollution decay
- Broadcast: "Rewilding effort detected in region (x,z) — ecosystem recovering!"
5.6 Peat Bogs
- Trigger: Wetland/swamp biome, waterlogged for 30+ consecutive cycles, low succession pressure
- Effect: Grass/dirt on waterlogged surface slowly converts to mud blocks; over time mud → packed mud → a distinct "peat" layer (use brown terracotta or existing mud); permanently lowers succession cap for the region (bogs stay boggy)
- New WorldEffectType:
PEAT_FORMS
Phase 6 — Seasons & Long Cycles
Multi-cycle temporal patterns that give the world a rhythm players notice over days of play.
6.1 Leaf Colour Change
- Trigger: Temperature crossing cold threshold (< 0.2) after a period of warmth; occurs once per seasonal cycle
- Effect: Oak and birch leaves on surface trees swap to orange/brown terracotta for 5–10 cycles, then leaves are removed (leaf fall); particles simulate leaf scatter
- New WorldEffectType:
LEAVES_CHANGE_COLOUR,LEAVES_FALL
6.2 Soil Crust
- Trigger: Drought cycle + bare exposed dirt (no plant cover) for 15+ consecutive cycles
- Effect: Exposed dirt/coarse dirt → terracotta (baked clay); water no longer pools on it (hydration score penalised); crack visual (particles)
- Breaking: Heavy rain event removes terracotta → reverts to gravel first, then dirt over time
- New WorldEffectType:
SOIL_CRUSTS
6.3 Permafrost Thaw
- Trigger: Cold region (temp < 0) that experiences sustained temperature rise (climate warming event or neighbouring pollution heat)
- Effect: Subsurface stone/gravel → mud; surface depression forms; groundwater spikes (permafrost melt adds water); region permanently shifts to higher succession cap
- New WorldEffectType:
PERMAFROST_THAWS
Phase 7 — Player Feedback Loops
Systems that make player actions have visible, lasting consequences on the world.
7.1 Deforestation Cascade
- Mechanism: When tree pressure drops below 5 for 10+ consecutive cycles (logging pressure), trigger cascade:
- Soil erosion rate ×2 (faster contamination rise)
- River silt (gravel replaces sand blocks in river channel)
- Flash flood risk doubles (lower threshold for trigger)
- Succession cap locked at SPARSE_GRASS until tree pressure recovers
- Broadcast: "Deforestation detected at (x,z) — soil erosion accelerating"
7.2 Crop Exhaustion
- Trigger: Farmland blocks detected in region (scan during water body scan cycle) with soil fertility < 20 AND contamination > 40
- Effect: Farmland → coarse dirt over time; crop growth suppressed; broadcast warning to nearby players
- Recovery: Player uses bone meal OR region is left fallow (no farming activity for 50 cycles) → fertility slowly recovers
7.3 Soundscape Degradation
- Mechanism: Existing
tryPlayRegionAmbience()is already in place — extend it:- MATURE_FOREST + low pollution → full bird/insect ambience (BIRD_AMBIENT or custom sound)
- GRASSLAND → lighter ambience
- BARREN + high pollution → dead silence (suppress all ambient sounds)
- Transition is gradual — blend based on health score
Phase 8 — Underground Systems
Block changes below the surface — rare but dramatic.
8.1 Cave Flooding
- Trigger: Groundwater level > 80 AND a natural cave opening (air block) detected within 10 blocks below surface
- Effect: Place water source at the cave opening; water spreads naturally via Minecraft physics into the cave system
- New WorldEffectType:
CAVE_FLOODS
8.2 Mineral Vein Shifting
- Trigger: Volcanic FERTILE phase
- Effect: Scan 5–20 blocks below surface for ore blocks adjacent to stone; convert surrounding stone → basalt/tuff (burying the ore); simultaneously, scan shallow depth (5–10 blocks) for stone with no adjacent ore and convert some to raw gold block or copper ore (new vein exposure)
- New WorldEffectType:
VEIN_SHIFTS
8.3 Stalactite Growth
- Trigger: Wet cave biome (dripstone caves) in a high-groundwater region
- Effect: Scan cave ceilings (air block with solid block above); place one pointed dripstone block hanging downward per many cycles; extremely slow — one block per 100 cycles
- New WorldEffectType:
STALACTITE_GROWS
Phase 9 — Sound & Ambience Polish
No block changes — purely audio-visual reinforcement of existing systems.
9.1 Eruption Rumble
- Play
BLAZE_AMBIENTorBASALT_DELTAS_MOODlooped for players within 3 regions of a BUILDING or ERUPTING volcano — already partially implemented; extend range and vary pitch by phase
9.2 Storm Pressure Drop
- When a ClimateEventType storm is incoming (1–2 cycles before trigger), play
WEATHER_RAINat low volume as a warning cue
9.3 Ocean Current Drift
- Items dropped in ocean source blocks get a velocity nudge matching the existing tidal current direction; uses the
ItemEntitytick event - Boats and floating players already affected by current system; extend to dropped item entities
9.4 Soundscape Biome Blending
- Extend soundscape degradation (7.3) to blend between multiple ambient tracks rather than binary on/off; use a weighted selection based on health + succession stage
Phase 10 — Fantastical / Minecraft-Specific Extensions
Not real-world but fits Minecraft's universe and makes each dimension feel alive.
10.1 Nether Bleed
- Trigger: Region within 3 chunks of an active Nether portal for 50+ cycles
- Effect: Netherrack patches appear on surface; crimson fungi / warped fungi spread; soul sand appears in depressions; ambient fire sound increases
- New WorldEffectType:
NETHER_BLEED
10.2 End Corruption
- Trigger: Region within 3 chunks of an End portal frame
- Effect: Chorus plant shoots appear on high ground; end stone patches replace stone on surface; obsidian pillars slowly grow (place one block per many cycles)
- New WorldEffectType:
END_CORRUPTION
10.3 Ancient Site Exposure
- Trigger: Sustained hydraulic erosion (HYDRAULIC_EROSION WorldEffect, high intensity) OR earthquake (magnitude 4+) in a region with buried structure blocks detected below surface (scan for mossy cobblestone, chiselled stone bricks, deepslate tiles within 10 blocks of surface)
- Effect: Remove the surface blocks above the buried structure to expose it; place torch/lantern inside to signal the discovery; broadcast "Ancient ruins uncovered at (x,z)!"
- New WorldEffectType:
RUINS_EXPOSED
Implementation Notes
Adding a new WorldEffectType
- Add enum constant + Javadoc to
WorldEffectType.java - Add switch case in
NeoForgeWorldEffectExecutor.consume() - Write the private handler method
Adding a new ClimateEventType
- Add enum constant to
ClimateEventType.java - Add trigger logic in
LivingWorldBootstrap(usually inrunPostSimHooks()) - Add to
getEventsStatusFor()display if needed
Adding a new per-region data field
- Store in
LivingWorldBootstrapasMap<RegionCoordinate, T> - Clear in
onServerStopping() - Expose via public getter if needed by
LivingWorldMod
Throttling rules
- Block-placing effects: always gate with
random.nextDouble() > thresholdto prevent performance spikes - Scan loops: cap at
REGION_BLOCKSsamples, never unbounded - Elevation resamples: use
pendingElevationResamplepattern — don't re-read heightmaps on every tick
Performance budget
- Each new phase should add no more than ~0.1ms per tick to the simulation cycle
- Particle effects: max 5 per region per tick
- Block writes: max 10 per region per WorldEffectRequest execution
Rough Priority / Effort Matrix
| Feature | Player Impact | Effort | Dependency |
|---|---|---|---|
| Coral reefs | High | Low | Phase 1 |
| Kelp forests | Medium | Low | Phase 1 |
| Algae blooms | High | Medium | Phase 1 |
| Acid rain | High | Low | Phase 2 |
| Blizzards | High | Medium | Phase 2 |
| Geysers | High | Medium | Phase 3 |
| Earthquakes | High | Medium | Phase 3 |
| Sinkholes | High | Low | Phase 3 |
| Landslides | Medium | Low | Phase 3 |
| Flash floods | High | Medium | Phase 4 |
| Drought cycles | High | Low | Phase 4 |
| Migration patterns | Very High | Medium | Phase 5 |
| Pollinator collapse | High | Low | Phase 5 |
| Deforestation cascade | Very High | Low | Phase 7 |
| Leaf colour change | High | Low | Phase 6 |
| Sea level change | Very High | High | Phase 4 |
| Delta formation | High | Medium | Phase 4 |
| Cave flooding | High | Low | Phase 8 |
| Nether bleed | Medium | Low | Phase 10 |
| Ancient site exposure | High | Medium | Phase 10 |