Hidden Gems: Features You Might Not Know About
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โ
| Event | Trigger |
|---|---|
OnWaveCrest | Wave peak passes location |
OnEnterWater | Actor enters water |
OnExitWater | Actor exits water |
OnSubmerge | Actor fully underwater |
OnSurface | Actor 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โ
- Place OceanologyManager in Persistent Level
- Ocean actor can be in any streaming level
- 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
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โ
- Select your river spline
- Enable Flow Painting Mode
- Use brush to paint flow vectors
- 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โ
| Tag | Behavior |
|---|---|
OceanFloater | Auto-adds buoyancy |
OceanIgnore | No water interaction |
OceanRipple | Creates surface ripples |
OceanSplash | Spawns 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! ๐