You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Lianas Surviving Reload: Fixed creepvines breaking apart and floating to the surface after leaving and rejoining a world. Their topology (which segment anchors to the seabed, parent/child links, attached fruits) was never actually persisted — the spawn-time block-entity lookup silently failed, so nothing survived a reload. The full chain layout is now saved to a dedicated registry and every physics joint is rebuilt deterministically on load.
No More Self-Fighting Lianas: Fixed lianas jittering, folding and collapsing when bumped into after a reload. Each stacked liana block was running its own physics and stacking buoyancy/player forces several times over; only the segment's centre block now drives the simulation.
Fruits Staying Attached: Fixed creepvine fruits randomly dropping off on reload depending on chunk load order. Each fruit's rest position is now remembered and the fruit is snapped back into place before its joint is rebuilt, so it always reattaches where it belongs.
Configuration & User Interface
Configurable Ocean Depth: The Deeper Oceans feature is no longer locked to a fixed 10 blocks — a new deeperOceansDepth option (default 10, up to 256) lets you choose how far below vanilla the sea floor sits, with an in-config warning that large values can badly hurt world-generation and rendering performance.
Deep Seas Welcome Screen: Added a one-time welcome screen shown in front of the main menu, recommending you set up your Deep Seas preferences before diving in. It offers a button straight to the mod configuration and a "maybe later" button; either choice is remembered in the config TOML so it never shows again.
Under the Hood
Reusable Plant Persistence: Generalized the liana save system into a plant-agnostic PlantPhysicsRegistry that will back future physical plants, made it the single source of truth for segment topology, and dropped the redundant (and unreliable) block-entity NBT copy.
Abyss Dimension: Reintroduced the custom deep-ocean Abyss dimension with dedicated biome configs and custom worldgen.
Physical Lianas & Seeds: Added creepvines (submarine lianas) and creepvine seeds that grow, flow with water currents, and simulate realistic physics inside sublevels.
PDA & Sound Effects: Added a custom PDA menu overlay and registered new ambient/warning audio cues for Leviathans (roars and class detection warnings).
New Diagnostics Command: Added the /submarine info command to inspect current hull integrity, depth, crack counts, and whether your sub is hermetically sealed or breached.
Spawning Command: Added /submarineliana spawnradius to spawn creepvines inside a radius with custom density/probabilities.
Client RAM Boost: Allocated 20 GB of RAM for the game client config to handle large sublevel structures smoothly.
Performance & Optimizations
Global LOD System: Added a new LOD Optimizer (LianaLODOptimizer) that automatically pauses/freezes physics and ticking on distant creepvines to save CPU/FPS.
Spawning Queue: Spawning multiple lianas in a radius is now staggered (closest to the player first) and freezes other lianas during creation to prevent lag spikes.
Bug Fixes
Liana Sublevel Lighting: Fixed an issue where lianas in Sable sublevels rendered pitch black. They now dynamically fetch and reflect the real-world block light values (torches, glowstones, shaders) around them.
Precise Pressure Calculations: Completely reworked pressure depth logic to measure depth block-by-block relative to the actual water surface rather than checking the center of the sub globally.
Sinking & Crash Handling: Added a limit to how many blocks can implode at once to prevent audio/particle lag spikes, and ensured oxygen/life-support blocks are immediately destroyed when a sub sinks.
Stability Fixes: Resolved rare NullPointerException and chunk-loading issues in the leak/compartment scanner, and fixed a concurrency deadlock in the Sable snapshot queue.