DOCUMENTATION · UPDATED 21 OCTOBER 2026
Complete user guide
GeoVeyra X user guide
Create editable Unreal Engine landscapes from geographic data, refine their appearance and configure mapped roads, buildings and water.
Start here
- Install the plugin and open Tools > GeoVeyra X.
- Follow Your first landscape with a small area.
- Explore Appearance and surfaces and Foliage compatibility.
- Use Troubleshooting if a download or generation fails.
Understand the workspace
- Create: Location, Terrain, Appearance, Features, then Review.
- Edit: targeted updates to an existing generated landscape and its saved recipe.
- World Manager: neighboring-region selection and expansion.
- Map: location and bounds; Shaping: terrain comparison; Masks: coverage; Surface: reduced material preview.
What a preview tells you
The Surface panel shows a reduced estimate of pending appearance. It is not a live capture of the editor world and does not demonstrate final foliage, satellite imagery, displacement or arbitrary custom materials. Use the applied level to judge the complete result.
What is included in this guide
Installation, provider connections, a first import, terrain resolution, surface rules, roads, buildings, water, editing, expansion, saving, performance, error recovery and the bundled Porto Santo example.
The public documentation does not include plugin source, binaries, credentials, downloadable satellite datasets or third-party asset packs.
Install and update
Requirements
- Windows 64-bit and the Unreal Engine build supported by your downloaded package. The current qualification used UE 5.8 with D3D12 SM6, with Substrate and Virtual Shadow Maps enabled for the example.
- Unreal's PCG plugin remains an internal compatibility dependency for projects created with earlier previews. This release does not expose PCG or generate vegetation.
- Internet access for online elevation, imagery and map downloads. Selected providers may require an account or API key.
- Enough memory and disk space for your chosen area, imagery, generated assets and Unreal's derived-data cache. No universal minimum RAM or GPU specification is certified by this guide.
Explicit analysis setup and security
Native GIS uses the active engine’s bundled Python. Before the first satellite/WorldCover analysis, open GeoVeyra X > Settings > Connections > Open analysis setup & preview and click Install analysis dependencies (download). This is an explicit download from PyPI; generation never installs packages automatically. Missing dependencies stop analysis with setup instructions. Read setup, allowed providers, and security logging details.
Install a downloaded archive
- Save your project and close Unreal Editor.
- Back up your project before installing or upgrading.
- Extract the complete GeoVeyraX folder into
YourProject/Plugins/GeoVeyraX. - Check that
GeoVeyraX.upluginis directly inside that folder; avoid an extra nested GeoVeyraX folder. - Keep the package's Content, Resources, Tools, Source and binary files together. Copying just the DLL can break analysis or asset loading.
- Open the project. In Edit > Plugins, enable GeoVeyra X and PCG if needed; restart when prompted.
- Open Tools > GeoVeyra X.
Installing from Fab
Use the installation method supplied with the published engine-version package. Avoid maintaining an engine-installed copy and a project-installed copy simultaneously. This guide does not establish that an unpublished preview has already passed Fab review.
Update safely
Close Unreal before replacing plugin binaries. Keep a backup of the previous plugin folder and your project. Replace the complete plugin folder; preserve project Content and Saved data. Reopen a copy first, inspect a generated landscape, and verify materials and vegetation before continuing production work.
Missing modules or incompatible engine
Check the engine version and the package build first. Do not copy binaries between unrelated engine builds. A source build requires an appropriate Unreal C++ toolchain; recompilation is not an automatic guarantee of compatibility.
Your first landscape
Start with a small region and modest resolution so you can confirm the workflow before requesting a large world.
First import
- Open a test level with working lighting. GeoVeyra's removed lighting presets do not create your scene lighting.
- Open Tools > GeoVeyra X and choose Create. If an existing landscape is selected, use Create a new landscape instead when you intend a separate import.
- In Location, search for a place or coordinates, zoom in, and draw the area. Read the displayed extent; panning the map is not the same as changing import bounds.
- In Terrain, choose an available elevation provider and start with 1009 or 2017 resolution. Use Geographic intent for an unchanged geographic starting point.
- In Appearance, choose GeoVeyra automatic, then a surface preset. Inspect the Surface preview. Configure satellite imagery if you want it in the final material.
- In Features, enable only what you need. For a first connection test, you can disable mapped features and mapped land cover to generate terrain only. Add those features in a separate test once the provider connection succeeds.
- In Review, check area, resolution and enabled features, then generate. Expand the status message if an operation fails.
- Inspect the actual landscape, then save the level and all generated assets.
Check the result
Confirm terrain scale, material assignment, sea level and requested features in the editor. A successful terrain-only test does not validate OSM roads or buildings. An aerial satellite photo of a road or building is not proof that a mesh or spline was generated there.
Repeatable settings
Save a preset after a successful setup. Presets restore settings and selected area; they do not guarantee future provider availability or identical external data. Save the generated level and assets separately.
Data sources and connections
Choose a provider
- Global terrain / AWS: an elevation option for the geographic workflow; availability and source detail vary by region.
- OpenTopography: choose a dataset for which your account and key have access. A valid account does not automatically grant every dataset entitlement.
- Mapbox: requires an appropriate access token for requested services.
- Local heightmap: use a supported local input with correct dimensions and geographic bounds when alignment is required.
- Synthetic preview terrain: useful for testing settings; it is not measured geographic data.
Satellite imagery and elevation are separate sources. Higher satellite resolution does not increase terrain height accuracy. OpenStreetMap provides mapped feature evidence, not complete coverage of every road or building.
Save your connections
Open the connection controls from setup or Settings, enter your provider credentials and save them. On Windows, the current implementation uses Windows Credential Manager. Credentials do not automatically move to another computer with a copied project.
Never put API keys into public presets, documentation screenshots or bug reports. Remove secrets from any logs you share.
Account and download failures
For an API-key or dataset-access rejection, verify the chosen provider, key, dataset entitlement and quota in the provider account. Retry after correcting the connection. Changing terrain resolution does not repair authorization.
For network or provider-service failures, retry later or use another available source. Cached data may reduce repeated downloads but does not make every operation offline.
Provider terms
Your plugin purchase does not grant unlimited downloads or ownership of third-party data. Review source terms for your intended use and preserve required attribution. Relevant starting points: OpenTopography, Mapbox, OpenStreetMap attribution, Esri World Imagery.
Provider eligibility, pricing and quotas can change; consult their current terms rather than relying on a fixed allowance in this guide.
Location, resolution and shaping
Select the area
Search a place or coordinates and use Draw area. Confirm the selected bounds and area readout. The map grid is a visual aid; a large selection can contain substantial ocean or unmapped terrain.
Choose landscape resolution
The current dropdown offers 505, 1009, 2017, 4033 and 8129 square vertex layouts. Earlier Overview/Roads/Paths spacing presets are obsolete.
Approximate vertex spacing is selected side length divided by resolution minus one. A 4 km side at 2017 vertices has about 1.98 m spacing. Narrow roads may span too few vertices even when a landscape looks detailed from above.
Higher density improves sculpting and paint placement but increases memory and processing requirements. It cannot restore missing source elevation detail. Existing landscapes retain their created layout; changing a setting does not silently rebuild their geometry resolution.
Terrain intent
- Geographic: preserves source heights rather than applying artistic shaping.
- Enhanced: limits individual shaping operations to small changes; the current workflow caps each operation at 2 m.
- Art Directed: uses the selected shaping strengths for more creative variation.
Shaping operations
Choose a starting recipe or add shaping steps. Steps run in order. Maximum change controls vertical influence; feature size controls the horizontal scale of the pattern. They are different controls.
Use a saved seed for repeatability. New noise variation changes the seed, for terrain shaping. Inspect Before shaping, After shaping and Where did it change? before applying.
Preview navigation
Use Fit terrain and the corner axis buttons to frame the terrain or choose a view. Shaping and Surface are inspection previews with controlled navigation, not full editor viewports. Small features may not be resolved by the reduced preview mesh.
Height stamps and protection
Advanced operations support imported height patterns. Use a supported grayscale texture with sRGB off; retain the source texture in your project. Protected areas and shared-border handling constrain changes. Reanalyse surfaces after changing terrain geometry, then review the applied material.
Appearance and surfaces
Apply a surface
- Select a generated landscape or continue a new import to Appearance.
- Choose GeoVeyra automatic or Use my material.
- For the built-in system, choose Green hills, Coasts, Desert or Mountains as a starting point.
- Add or adjust surface rules. Review the reduced Surface preview and coverage masks.
- Run Analyse & preview when terrain, evidence or rule analysis needs refreshing.
- Enable Apply analyzed weights to an editable layer when you want the analyzed coverage committed to landscape paint.
- Use Apply Surface for an existing target, or finish generation for a new landscape. Save the resulting assets.
Eight ground families
Grass, Soil, Forest floor, Rock, Scree, Sand, Mud and Snow are ground material families. Their native paint names include Dirt for Soil and Forest for Forest floor. A Forest material does not spawn trees; use your own foliage workflow if needed.
You can adjust supported textures, scale, tint, normals and roughness. Custom landscape materials need compatible layer mappings; arbitrary custom shaders are not reproduced in the draft preview.
Rule order and blending
Rules are evaluated in order. Changing blend strength, enabling a rule or moving it changes the combined recommendation. Preset photographs illustrate a style; they are not promised generated results.
Preview updates do not by themselves commit paint to the actual landscape. If the preview changes but the level does not, check the target landscape, analysis freshness, editable-weight option and Apply Surface.
Satellite versus surface preview
Satellite imagery supplies geographic colour/context. Built-in PBR ground textures supply surface appearance. The isolated Surface preview does not include the full satellite, geographic paint, foliage, displacement or custom-material result; judge those in the applied level.
Manual painting
Use the manual-paint preparation controls before editing the owned artist layer. The Override_ targets provide explicit artist overrides. Keep artist work on its intended edit layer. After sculpting, analyse again before applying derived coverage.
Relief and quality
Start with normal-map detail and displacement off. Triplanar projection, anti-tiling and near/far blending can add GPU cost. Optional Nanite tessellation requires a supported configuration and a successful rebuild; shader relief does not alter collision or vegetation traces. Displacement combined with RVT output is unsupported in this qualified workflow.
Roads, buildings and water
Roads and paths
Enable Roads and, when needed, Include paths. Choose the road output and terrain behaviour. Shape Terrain cuts/fills a roadbed; Follow Terrain leaves ground shape unchanged. Bundled RoadPack defaults can be replaced by your own supported road/path meshes and materials in road settings.
Inspect at ground level as well as from above. A narrow road on a coarse landscape may lack enough vertices for a clean roadbed. Reduce area or increase resolution for a new import, or author a suitable local solution. Nanite does not add sculpting vertices.
Bridges, tunnels and complex junctions can require authored geometry. Do not interpret a mapped route as a complete bridge asset. When terrain changes, update roads through the targeted Edit tools and inspect their alignment.
Buildings
Enable Buildings to generate supported mapped footprints. These are blockouts/extrusions, not detailed architectural reconstructions. OSM omissions, clipping and configured budgets affect the output. Satellite photographs can show structures that do not exist in the downloaded footprint dataset.
Water and elevation
Mapped water, estimated lake beds, river-bank carving and sea-level water are distinct options. Estimated bed shaping is not surveyed bathymetry. A water coverage mask is not a visible water mesh.
For new terrain intended to use sea level at world Z=0, leave elevation centring off. Existing terrain retains its saved elevation reference. The landscape actor transform being zero does not mean every landscape vertex lies at zero.
Select the generated landscape to read its sea level. Use Align selected water plane to sea level when adding a plane, or the generated-region sea-level alignment operation when appropriate. Load the region before moving it. Custom actors are not automatically moved with plugin-owned features; inspect and save the result.
Lighting
Lighting presets were removed. Set up Unreal lighting or your own sky system in the level. A dark level can make a correct material appear black. Ultra Dynamic Sky is a separate product and is not included with GeoVeyra X.
Foliage compatibility
Release scope
GeoVeyra X V1 (1.0.0) does not include a vegetation preset browser, automatic scattering or a PCG creation workflow. Features contains Roads, Buildings and Water.
Grass and Forest floor in Appearance are ground materials. They do not spawn grass meshes or trees.
Existing projects
Existing vegetation actors and saved recipe data are retained. Legacy data classes and Unreal's PCG dependency remain so earlier projects can still load. New terrain generation ignores legacy vegetation settings and creates no GeoVeyra PCG or scatter actors.
Your own foliage workflow
You can work with the generated Unreal landscape using your own foliage tools. Such tools, their mesh libraries and their support are separate from this release. Check their requirements and results in your own project.
Edit, expand and save
Target an existing landscape
Select the intended generated landscape and open Edit. Verify the target shown in the panel before applying surface, shaping or road changes. Saved recipes retain generation settings; separate artist layers should be preserved through supported updates.
Recommended update order
- Update terrain geometry if needed.
- Analyse surfaces again to refresh geometry-derived inputs.
- Apply the desired appearance and paint weights.
- Update dependent roads or water as required and inspect the result.
- Save the updated level and generated assets; review any foliage placed with external tools separately.
- Save the level and generated assets.
Expand neighboring regions
In World Manager, select the generated region, choose the neighborhood size, then select missing cells. Review the requested area and use Expand selected regions. Use compatible geographic online sources for batch expansion.
Local inputs need adjacent files and matching bounds; a single local heightmap cannot supply unseen neighboring terrain. If offered, the online-map-data option lets expansion request imagery/vector data instead of reusing incompatible local sources.
A selected cell is a planned region, not proof of completed generation. Check status, downloaded coverage and imported cells. Load relevant World Partition actors before edits. Large multi-region streaming remains a qualification boundary.
Save and move a project
Save all generated materials, graphs, textures, recipes, the level and external actors. Back up the project before replacing plugins or substantial regeneration. Copy the complete project when moving machines; provider credentials stored on the original machine must be configured again.
Do not distribute the entire working project as a plugin package. Saved logs, downloaded imagery, local paths and unrelated assets need separate review before sharing.
Performance and shader preparation
Start small
Test a modest region before increasing resolution or adding many mapped features. Landscape vertices, imagery resolution, mask resolution, road geometry and building counts have separate costs. Choosing the largest value for all of them can exhaust memory.
Preparing shaders
New materials and shader permutations can trigger compilation. Initial pipeline-state and distance-field preparation can also cause stalls. Repeated parameter edits can reuse cached material parents, but new texture/sampler configurations or engine updates may require new work.
Let initial preparation finish, save, then compare a warm reopen with the first run. Do not clear the derived-data cache as a routine performance fix; doing so can force recompilation.
Practical reductions
- Lower unnecessary imagery or mask sizes before reducing geographic extent you actually need.
- Keep mapped feature counts appropriate to the area and use sensible mesh complexity.
- Start with displacement off and modest material quality.
- Load only the regions needed for the current operation, while satisfying editing requirements.
- Allow sufficient local disk space for project data, cook output and Unreal caches.
Measure honestly
Record CPU/GPU, RAM, engine build, area, resolution and enabled features. Measure cold startup, warm startup and interactive frame time separately. An automation pass or fixed-frame benchmark is not a measured gameplay FPS result.
Troubleshooting
OpenTopography rejected the API key or dataset access
Check the key, provider account, chosen dataset entitlement and quota. Save the corrected connection and retry. Provider access is independent of your plugin license. Try another authorized elevation source to isolate the problem.
OSM coverage is incomplete
Generation can stop rather than silently omit requested mapped features. Retry Generate to reuse available cached elevation/imagery, try a smaller area, or retry when the provider recovers. If you intentionally want terrain only, disable mapped feature requirements and mapped land cover. This changes the requested output; it is not a repair to missing OSM data.
GIS import failed: feature limit exceeded
Reduce the area or adjust Max Vector Features under Features > Map data & regional downloads > Geographic datasets & road settings > OpenStreetMap. New settings use 50,000 supported features; older presets may retain 20,000. The adjustable limit is bounded at 200,000, with a separate raw-record ceiling. Increasing it increases memory/time and does not bypass every safety limit. Oversized imports are not silently truncated.
Automatic analysis failed
Expand the diagnostic message and inspect the project log. Verify that the complete matching plugin package, especially Tools and Resources, is installed. A missing analysis dependency, provider failure and invalid input require different fixes. Reinstall the complete package in a backed-up project if files are missing; do not copy a DLL alone.
Landscape exists but mapped features are absent
Confirm those features were enabled for that import and inspect the import report. Check whether data was available, filtered, outside bounds or excluded by budgets. A road visible in satellite imagery may have no corresponding OSM feature. Do not report a terrain-only result as a successful mapped-feature import.
Preview looks different from the level
The reduced Surface preview omits final-world features and does not capture the editor viewport. Check analysis freshness, selected landscape, paint-application setting and Apply Surface. Inspect full materials, satellite imagery and foliage in the actual level.
Roads float or deform badly
Check terrain spacing relative to road width, road terrain behaviour, mesh alignment and whether the road was rebuilt after terrain changes. Inspect bridges/tunnels separately. Increasing Nanite detail does not repair a coarse sculpting grid.
A water plane covers the land
Read the generated landscape's saved sea level. Align the plane to that level, or use the supported generated-region alignment operation after loading the affected region. Actor Z=0 and sea-level Z=0 are not interchangeable assumptions.
Expand selected does nothing
Confirm missing cells are selected, an existing generated region is targeted, required actors are loaded, and data sources can supply neighboring bounds. Local heightmaps need adjacent data. Expand the status message for provider or input errors.
Missing modules, white controls or stale UI
Verify the installed plugin version and matching engine build. Keep one plugin installation, close Unreal before updating, and install the complete package. Capture the affected control and log if the issue persists; do not delete project Content as a UI repair.
Collect a useful report
Include plugin version, exact Unreal build, OS, reproduction steps, area/coordinates if shareable, resolution, source/dataset, enabled features, expected versus actual result and the complete error text. Attach a relevant excerpt from Saved/Logs and the import report. Redact API keys, credentials and private project information.
Porto Santo example
Included map
Enable Show Plugin Content in the Content Browser, then open GeoVeyra X Content / Examples / PortoSanto / Maps / Porto_Santo.
The package path is /GeoVeyraX/Examples/PortoSanto/Maps/Porto_Santo. Landscape, imagery, materials, geometry and saved settings are bundled. See the bundled source credits for third-party terms. The saved map opens without downloading provider data or entering credentials.
Explore safely
- Duplicate the map into your project before experimenting.
- Select the landscape and inspect its saved settings.
- Try a surface preset, inspect the preview and apply the surface.
- Inspect mapped roads, buildings and simple water in the level.
- Save, close and reopen your duplicate to verify your changes.
Scope
The Porto Santo example now includes the integrated ocean. Native Unreal Water integration remains reverted. No vegetation creation feature or external forest mesh collection is included. Existing provider attribution and data terms apply.
Version notes and support
V1 (1.0.0)
- PCG and vegetation controls removed from the public workflow.
- New terrain generation ignores legacy vegetation settings and creates no scatter or PCG actors.
- Existing vegetation actors and serialized recipes are preserved for compatibility.
- Roads, buildings, simple water, terrain shaping, Surface materials and world expansion remain available.
- Documentation and release messaging updated to match this scope.
Validation scope
See the build's launch-validation.json for the measured test, cook and sample-map results. User testing and automated checks do not guarantee every provider, location or project configuration.
Scope and limitations
Native Unreal Water integration and lighting presets remain removed. PCG creation, automatic RVT setup, every large-world streaming/data-layer combination, all engine/platform versions and full bridge/tunnel authoring are not qualified by this release.
Provider availability, API quotas and map completeness vary. Higher landscape resolution does not increase measured source accuracy. Surface preview is a reduced draft; judge the final appearance in the applied level.
Support
Publisher: Unreal Dojo. Email: c.animostdioz@gmail.com. Discord: https://discord.com/invite/8qkh5AhmQ. See Troubleshooting for the details to include in a report. Never post API keys or tokens in a public report.
FAQ
Do I need a GeoVeyra account? No separate GeoVeyra login is required. Online providers may require their own credentials.
Can I use my own materials and road meshes? Yes, through compatible landscape material mappings and road mesh settings. Preview support differs from final-level rendering.
Does Forest floor spawn trees? No. It is a ground material family.
Is Ultra Dynamic Sky included? No. It is a separate product used in some promotional captures.
Can I redistribute downloaded imagery? Check the applicable provider terms and attribution requirements for your intended use.
Credits and data licences
Publisher
GeoVeyra X V1 (1.0.0) is published by Unreal Dojo. Copyright 2026 Unreal Dojo. Third-party components retain their original licences. Unreal Dojo is an independent publisher; the plugin is not an Epic Games product.
Included materials and geometry
Built-in ground textures include ambientCG assets under CC0 1.0. Asset identifiers are recorded in Resources/Surfaces/SOURCES.json. https://docs.ambientcg.com/license/
Existing decorative grass assets originate from Poly Haven grass_medium_01, by Rico Cilliers and Rob Tuytel, under CC0. https://polyhaven.com/license
GeoVeyra road starter assets originate from TDS-ROADPACK and are included with redistribution permission confirmed by the publisher. That permission does not transfer ownership of the original assets to Unreal Dojo.
Preset illustrations are AI-generated visual guides, not screenshots of measured generation results.
Porto Santo example
The saved example contains Esri satellite imagery; the publisher has confirmed explicit redistribution permission. Retain the applicable imagery credits and permission terms. Terrain settings identify OpenTopography as the elevation provider. Porto Santo sample elevation: Copernicus GLO-30 (COP30), accessed through OpenTopography, as recorded in the saved import recipes.
Produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved.
The organisations in charge of the Copernicus programme by law or by delegation do not incur any liability for any use of the Copernicus WorldDEM-30.
Source and licence: https://dataspace.copernicus.eu/explore-data/data-collections/copernicus-contributing-missions/collections-description/COP-DEM
Mapped geographic features: © OpenStreetMap contributors, available under ODbL. https://www.openstreetmap.org/copyright
Native GIS software
The GIS reader uses GDAL and its documented dependency closure. Full upstream notices are included in Source/ThirdParty/GDAL/Licenses. DEPENDENCIES.json records the distributed binaries. The reader DLL contains no Unreal Engine code.
Online services
Provider keys belong to each user. No shared OpenTopography or Mapbox key is supplied. Online services have separate terms, quotas, coverage and possible fees.
OpenTopography confirmed that individual user keys within the standard account limit do not require an Enterprise key for this workflow. Each dataset has separate citation and redistribution terms. A landscape can consume multiple requests.
Consult https://opentopography.org/usageterms and https://opentopography.org/citations before publishing downloaded data.
Mapbox: https://www.mapbox.com/legal/tos
Esri: https://www.esri.com/en-us/legal/terms/full-master-agreement
Other configured services, imagery suppliers and local files retain their own terms. The plugin licence does not grant additional rights to downloaded datasets.
Support
Email: c.animostdioz@gmail.com
Discord: https://discord.com/invite/8qkh5AhmQ
Never share API keys in support screenshots or logs.
Coastal ocean
GeoVeyra X V1 includes its own coast-aware ocean actor. It does not require the Unreal Water plugin or a third-party water plugin.
Create an ocean
- Generate a coastal landscape with sea-level water enabled. Advanced ocean is enabled by default for new sea surfaces; disable it to use simple sea water.
- For an existing GeoVeyra landscape, select it and use Features > Water > Water options > Build ocean on selected landscape.
- Load every landscape tile first. Ocean generation supports square, unrotated landscapes with equal XY scale, up to 8129 vertices per side. Coast data is sampled at up to 2049 vertices.
- Select GeoVeyra Ocean in the Outliner to adjust the ocean. Save the map and generated assets.
Appearance and material instances
In Ocean > Materials, assign Ocean Material (Balanced) and Refractive Material. High Quality Refraction chooses the refractive surface; Balanced costs less. Turn Override Material Appearance OFF to use your material instance values. Duplicate an instance before changing it, assign your copy, then click Refresh Ocean.
The example instances are under GeoVeyraX/Examples/PortoSanto/Ocean/Instances. Generated oceans store their assets in your project's GeoVeyraX/Ocean folder. Relevant parameters are ShallowColor, DeepColor, TransitionDepth, Absorption, Scattering, Clarity, Roughness, Specular, DetailScale, DetailStrength, FoamColor, FoamStrength, FoamCoverage, FoamPatchScale and Whitecaps. Parameters vary by material; underwater and caustics use separate materials.
Motion and shore
Actor controls set wave amplitude, wind direction, wave speed, surf height, wavelength, speed, foam width and shore fade. FFT enables the built-in spectral wave path; deterministic spectrum seed controls variation. The ocean uses camera-following concentric geometry with lower geometric density at distance. It provides a horizon-scale surface, not a simulation of an unlimited ocean volume.
Curling Breakers adds instanced, shader-animated shore strips. These are a visual approximation, not physically simulated overturning fluid. Disable them for lower cost or coastlines where the strips do not suit the scene. Shoreline accuracy depends on terrain resolution and coast sampling.
Underwater and caustics
Underwater enables the depth-dependent underwater effect. Adjust density and color on the actor. Caustics enables an animated seabed projection with strength, scale, speed and depth controls. These are artistic effects, not photon-traced caustics. Test both above and below the surface under your project's lighting.
Seabed and terrain
Ocean building does not automatically repair a DEM's flat sea-level ground. The optional console command GeoVeyra.Ocean.PrepareSeabed 24 180 creates a named, generated landscape edit layer, using estimated depth (metres) and transition distance (metres). Work on a duplicated map. It supports square landscapes up to 2049 vertices with edit layers enabled. This is artistic bathymetry, not measured seabed data. Delete the generated layer to restore it, then use GeoVeyra.Ocean.Upgrade to refresh the ocean coast data.
Playback and performance
Follow Camera keeps surface geometry near the view. Animate in Editor previews motion. Manual Time and Simulation Time Seconds support repeatable cinematic timing. The buoyancy component can sample the wave height for physics-driven actors; it is not a complete boat or swimming system.
Use Balanced first, then enable refraction, breakers, underwater and caustics as required. Measure GPU frame time in your target scene. Shader Complexity is a diagnostic view, not a frame-time measurement. The selected-actor Details performance fix is included; generated breaker instances are not expanded inline.
Limitations
No fluid solver, river-flow simulation, measured bathymetry, guaranteed competitor parity, or universal platform support is advertised. The ocean release is qualified for UE 5.8 / Windows x64. Source assets saved in UE 5.8 are not promised to load in older engines. Surface detail does not increase the underlying landscape resolution.