Skip to main content
← Roadmap
🌊 Oceanology ProIn Progress6.0.0

Debug tools and console variables

The console variables and in-viewport visualisers shipped for diagnosing water, all namespaced so they never collide with anything else loaded in the same process.


Everything the plugin can be asked about at runtime goes through the console, and every name it registers sits under an Oceanology namespace. That matters more than it sounds: a project can have several water-capable systems loaded at once, and a colliding console variable name is a startup failure rather than a nuisance. 116 console variables and commands are registered across the runtime and editor modules, split by the usual engine prefixes - r for rendering, p for physics, a for animation, fx for Niagara.

Water mesh and LOD

  • r.Oceanology.WaterMesh.ShowWireframe - forces wireframe rendering on the water surface.
  • r.Oceanology.WaterMesh.ShowWireframeAtBaseHeight - draws that wireframe with no displacement, so you see the tessellation grid rather than the waves.
  • r.Oceanology.WaterMesh.ShowLODLevels - draws concentric rings at each LOD distance around the observer position.
  • r.Oceanology.WaterMesh.ShowTileBounds - 0 disabled, 1 colour by water body type, 2 by LOD, 3 by density index. ShowTileBounds.DrawForeground draws them over the scene.
  • r.Oceanology.WaterMesh.ShowTileGenerationGeometry - draws the boxes and polygons used to intersect the water grid and generate tiles.
  • r.Oceanology.WaterMesh.ForceRebuildMeshPerFrame - rebuilds the quadtree every frame while you edit geometry.
  • r.Oceanology.WaterMesh.Enabled and r.Oceanology.WaterMesh.EnableRendering - the two off switches, both on by default, one killing tile generation as well as rendering.

Waves and time

  • r.Oceanology.FreezeWaves - any non-zero value freezes wave time. Cheat-flagged.
  • r.Oceanology.OverrideWavesTime - forces a specific wave time when set to zero or above; -1 by default means no override. Cheat-flagged.
  • r.Oceanology.BreakingWaves.CPUPhysics - on by default, read at startup. Turns off analytic breaking wave evaluation for CPU surface queries and buoyancy, which is the fastest way to tell whether a buoyancy oddity comes from the breaking wave leaf or the primary spectrum.

Buoyancy and swimming

  • r.Oceanology.DebugBuoyancy - debug drawing for water interactions. BuoyancyDebugPoints and BuoyancyDebugSize control the sampled grid.
  • r.Oceanology.BuoyancyDebugNearestSplinePoint and r.Oceanology.BuoyancyDebugAttenuationFactor - draw the spline projection and the wave attenuation factor used at each sample.
  • p.Oceanology.Buoyancy.DebugDraw - Chaos debug draw for the physics-thread buoyancy solver.
  • p.Oceanology.Buoyancy.LogMemory - a console command that logs the buoyancy subsystem's allocated size.
  • p.Oceanology.Swimming.Debug - prints state, movement mode, physics volume, immersion, submersion, surface Z, breath, drown countdown and the live tag containers on screen every tick.
  • p.Oceanology.Swimming.ShowVoxels - draws the swimmer's voxel stack with per-voxel submersion, cyan for wet and red for dry. Local only, never on a dedicated server.
  • a.Oceanology.Swimming.DebugABPState - prints the animation-facing swimming state every animation update.

Underwater and the water info texture

  • r.Oceanology.VisualizeActiveUnderwaterPostProcess - shows which water body is currently being picked up for the underwater post process. Above 1 it additionally computes depth, location and wave data for a fuller readout.
  • r.Oceanology.EnableUnderwaterPostProcessVisualLogger - routes the underwater collision detection through the Visual Logger.
  • r.Oceanology.WaterInfo.ShowSceneProxies - 0 off, 1 the info mesh, 2 the dilated info mesh, 3 both, shown in the main viewport.
  • r.Oceanology.WaterInfo.DrawPerViewDebugInfo - draws water zone info per view.
  • r.Oceanology.WaterInfo.RenderCaptureNextWaterInfoDraws - captures the next N water info draws for frame-capture inspection.
  • r.Oceanology.WaterInfo.ForceUpdateWaterInfoNextFrames - forces regeneration for N frames; a negative value forces it every frame.
  • The underwater feature switches - Underwater.Enable, Underwater.VolumeFog, Underwater.LightShafts, Underwater.ExcludeByTag, Underwater.LightShaftWaterSunSeed - all default to -1, meaning defer to project settings, with 0 and 1 forcing off and on.

Shallow water

  • r.Oceanology.ShallowWater.DebugRender and r.Oceanology.ShallowWater.DrawSurfaceProjection - on and off toggles on the shallow water subsystem, both off by default.
  • r.Oceanology.ShallowWater2D.VolumeLogInterval - frames between conservation-probe readbacks, logging total wet volume and wet cell count. With sources, sinks and drains inactive the total must stay still, which makes this the falsifier for any transport change. 0 disables it.
  • r.Oceanology.ShallowWater2D.CellSizeOverride and ResolutionOverride - override every simulation component's grid for live testing; 0 uses the per-component property.
  • r.Oceanology.ShallowWater2D.MaxLiveVRAMMB and MaxTotalLiveVRAMMB - the per-simulation and shared memory ceilings for transient render targets.
  • r.Oceanology.ShallowWater.FadeOutWait - how long a simulation keeps running after the last collision so ripples can die out naturally.

Namespacing

BeforeOceanology Pro
Console variable prefixUnprefixed, generic namesEvery name registered under r.Oceanology, p.Oceanology, a.Oceanology or fx.Niagara.OceanologyWater
Niagara depth query switchA generic name another loaded system may register identically in the same processfx.Niagara.OceanologyWater.DepthQuerySupported
Water info resolution capThe engine's r.Water.WaterInfo.RenderTargetResolutionMaxr.Oceanology.WaterInfo.RenderTargetResolutionMax, 0 meaning uncapped
Console variables and commands registered116
Rendering, under r.Oceanology94
Physics, under p.Oceanology19
PlusOne each for animation, Niagara and ray tracing geometry
Buoyancy debug grid10 points per side over 1000 units, both adjustable
Underwater trace distances100 cm coarse, 10 cm precise
Depth fallbacks3000 cm, both generic and ocean-specific
Max encoded flow velocity1024 cm/s
Shallow water fade-out15 seconds after the last collision
Shallow water 2D shared VRAM ceiling256 MiB, per-simulation clamp 16 to 512 MiB
Water info render method2 by default - custom render passes; 1 selects the direct-on-view path

This is one entry on the Galidar roadmap. For what already shipped in each release, see the Changelog.