Skip to main content

Hidden Gems: Features You Might Not Know About

ยท 4 min read
Galidar
Founder, Galidar Studio

Our plugins have many features that even experienced users sometimes miss. Let's uncover them!

๐Ÿ”ฎ Hidden Gem #1: Blueprint Wave Accessโ€‹

You can query wave data from anywhere in your game!

Get Water Heightโ€‹

// In any Blueprint
float Height = OceanologyManager->GetWaterHeightAtLocation(MyLocation);

Use cases:

  • AI navigation around water
  • Spawning objects at water level
  • Camera clipping prevention
  • Dynamic audio (splash sounds)

Get Wave Direction & Velocityโ€‹

FVector WaveVelocity = OceanologyManager->GetWaveVelocityAtLocation(Location);
FVector FlowDirection = WaveVelocity.GetSafeNormal();
float WaveSpeed = WaveVelocity.Size();

Use cases:

  • Align boat wakes with waves
  • Particle system directions
  • Floating debris movement

๐ŸŽจ Hidden Gem #2: Dynamic Water Colorsโ€‹

Change water color in real-time for gameplay effects!

Blueprint Methodโ€‹

// Reference your Ocean actor
OceanActor->SetWaterColor(FLinearColor(0.1, 0.3, 0.8, 1.0));
OceanActor->SetFoamColor(FLinearColor(1.0, 1.0, 1.0, 1.0));

Ideas:

  • ๐Ÿฉธ Blood red during combat
  • ๐Ÿงช Toxic green for pollution
  • ๐ŸŒ… Golden during sunset
  • ๐ŸŒŠ Stormy dark during events

Smooth Transitionsโ€‹

// Lerp between colors over time
CurrentColor = FMath::Lerp(CurrentColor, TargetColor, DeltaTime * TransitionSpeed);
OceanActor->SetWaterColor(CurrentColor);

๐ŸŒง๏ธ Hidden Gem #3: Weather Integrationโ€‹

Link weather systems to water behavior:

Storm Modeโ€‹

// Gradually increase wave intensity
OceanActor->SetWaveScale(FMath::Lerp(1.0, 2.5, StormIntensity));
OceanActor->SetWindSpeed(FMath::Lerp(5.0, 25.0, StormIntensity));
OceanActor->SetFoamAmount(FMath::Lerp(0.2, 0.8, StormIntensity));

Rain Ripplesโ€‹

// Enable rain ripples effect
OceanActor->SetRainIntensity(RainAmount); // 0.0 to 1.0

๐Ÿ”Š Hidden Gem #4: Spatial Audio Hooksโ€‹

Our audio system provides events you can hook into:

Available Eventsโ€‹

EventTrigger
OnWaveCrestWave peak passes location
OnEnterWaterActor enters water
OnExitWaterActor exits water
OnSubmergeActor fully underwater
OnSurfaceActor emerges

Example: Dynamic Ocean Soundsโ€‹

// In your audio manager
OnWaveCrest -> Play(WaveCrashSound, WaveLocation);
OnEnterWater -> Play(SplashSound, ActorLocation);

๐Ÿ—บ๏ธ Hidden Gem #5: Level Streaming Supportโ€‹

Our plugins work with World Partition!

Setupโ€‹

  1. Place OceanologyManager in Persistent Level
  2. Ocean actor can be in any streaming level
  3. Water queries work across level boundaries

Best Practiceโ€‹

Persistent Level:
โ”œโ”€โ”€ OceanologyManager
โ”œโ”€โ”€ Lighting
โ””โ”€โ”€ Global Systems

Streaming Levels:
โ”œโ”€โ”€ Level_Ocean_North (contains ocean chunk)
โ”œโ”€โ”€ Level_Ocean_South (contains ocean chunk)
โ””โ”€โ”€ Level_Island_1 (no water)

๐Ÿ“ธ Hidden Gem #6: Screenshot Modeโ€‹

Get cinematic-quality captures:

Enable High Quality Modeโ€‹

// Console command
Oceanology.HighQualityMode 1

// Or in Blueprint
OceanActor->SetHighQualityScreenshotMode(true);

What it does:

  • Maximum FFT resolution
  • Full tessellation
  • Enhanced reflections
  • No LOD reduction
Performance

Only use for screenshots/cinematics. Not for gameplay!


๐Ÿ”ฌ Hidden Gem #7: Debug Visualizationโ€‹

See what's happening under the hood:

Console Commandsโ€‹

Oceanology.ShowPontoons 1       // Visualize buoyancy points
Oceanology.ShowWaveVectors 1 // Show wave directions
Oceanology.ShowQuadTree 1 // Display LOD grid
Oceanology.ShowWaterPlane 1 // Show water height plane

In Editorโ€‹

  • Select Ocean actor
  • Check Debug category in Details
  • Enable visualizations you need

๐ŸŽญ Hidden Gem #8: Custom Surface Materialsโ€‹

Override the default water material per-area:

Material Zonesโ€‹

// Create water zone with custom material
WaterZone->SetOverrideMaterial(SwampMaterial);
WaterZone->SetBounds(SwampBounds);

Examples:

  • Swamp areas (murky, green)
  • Hot springs (steamy, blue)
  • Oil spills (black, less reflective)
  • Magical water (glowing, particles)

๐ŸŒŠ Hidden Gem #9: Riverology Flow Paintingโ€‹

Paint flow directions directly in editor!

How to Useโ€‹

  1. Select your river spline
  2. Enable Flow Painting Mode
  3. Use brush to paint flow vectors
  4. Adjust strength and direction

Use cases:

  • Whirlpools
  • Split currents around rocks
  • Eddies behind obstacles
  • Custom waterfalls

โšก Hidden Gem #10: Async Everythingโ€‹

Enable async operations for better performance:

Async Water Queriesโ€‹

// In your game settings
OceanologyManager->SetAsyncQueries(true);
OceanologyManager->SetQueryBatchSize(100);

Async Buoyancyโ€‹

// Per buoyancy component
BuoyancyComponent->SetAsyncMode(true);
BuoyancyComponent->SetUpdateFrequency(0.02f); // 50Hz instead of every frame

๐ŸŽฎ Hidden Gem #11: Preset Interpolationโ€‹

Smoothly blend between presets:

Transition Between Presetsโ€‹

// Calm to Storm transition
OceanActor->InterpolateToPreset("Storm", 5.0f); // 5 second transition

Time-of-Day Integrationโ€‹

// In your day/night cycle
if (TimeOfDay == Dawn)
OceanActor->InterpolateToPreset("CalmMorning", 60.0f);
else if (TimeOfDay == Dusk)
OceanActor->InterpolateToPreset("GoldenHour", 60.0f);

๐Ÿ”— Hidden Gem #12: Actor Interaction Tagsโ€‹

Mark actors for special water behavior:

Available Tagsโ€‹

TagBehavior
OceanFloaterAuto-adds buoyancy
OceanIgnoreNo water interaction
OceanRippleCreates surface ripples
OceanSplashSpawns splash effects

Usageโ€‹

// In your actor's construction
Tags.Add("OceanFloater");
Tags.Add("OceanSplash");

๐Ÿ’ก Bonus Tipsโ€‹

Quick Preset Switch (Runtime)โ€‹

// Number keys for testing (development only)
1 โ†’ Calm Ocean
2 โ†’ Moderate Waves
3 โ†’ Storm
4 โ†’ Tsunami (extreme)

Water Volume Queryโ€‹

// Check if location is in water
bool InWater = OceanologyManager->IsInWaterVolume(Location);
float Depth = OceanologyManager->GetWaterDepth(Location);

Network Optimizationโ€‹

// Only sync essential data
Deterministic: true
SyncPrecision: Low (for large games)
LocalSimulation: true (clients simulate visuals)

๐Ÿ“š Where to Learn Moreโ€‹

  • Full API Reference: Check the plugin's Documentation/ folder
  • Example Blueprints: Plugins/Oceanology/Examples/
  • Discord Community: Share discoveries in #tips-tricks

๐Ÿค Share Your Discoveries!โ€‹

Found a hidden feature we didn't cover? Share it in our Discord!

The community frequently discovers creative uses we never anticipated. Your tip might end up in a future roadmap post!

Happy exploring! ๐Ÿ”