Skip to content
Brass Orrery

Orrery Terrain · module

OrreryTerrain

A runtime module: in the editor and in packaged games. 29 public headers.

Build.cs
PublicDependencyModuleNames.Add("OrreryTerrain");
Type
Runtime

Net/OrreryTerrainEditPolicy.h

Experimental

The game's say over client edit requests.

#include "Net/OrreryTerrainEditPolicy.h"

Experimental

The per-connection actor that carries terrain replication.

#include "Net/OrreryTerrainNetLink.h"

  • AOrreryTerrainNetLink class

    One client's terrain link: its own actor channel, so terrain traffic never fills the PlayerController's reliable window.

Net/OrreryTerrainNetSubsystem.h

Experimental

Terrain replication for the built-in UE networking.

#include "Net/OrreryTerrainNetSubsystem.h"

  • FOnOrreryTerrainNetResult delegate

    A request's outcome, as OnRequestResultBP gives it, for C++.

  • UOrreryTerrainNetSubsystem class

    Replicates one world's terrain edits: the server keeps one ordered log of authoritative records and serves a link per client; each client applies the records as a replica and sends its edits as requests.

Net/TerrainNetTransport.h

Experimental

The transport seam of terrain replication: what the net hub sends over one link, in each direction.

#include "Net/TerrainNetTransport.h"

  • ITerrainNetToClient class

    The server's side of one link: what it sends that client.

  • ITerrainNetToServer class

    A client's side of its link: what it sends the server.

  • kTerrainNetMaxPartBytes constant

    No RPC carries more than this, half of net.MaxConstructedPartialBunchSizeBytes.

Net/TerrainNetTypes.h

Experimental

Blueprint-facing types of terrain multiplayer: the one ordered record stream, the handshake, request outcomes, the network settings and the net statistics.

#include "Net/TerrainNetTypes.h"

OrreryTerrainActor.h

Terrain actor holding the source asset, material and settings; creates and destroys the world terrain on play and in editor worlds.

#include "OrreryTerrainActor.h"

  • AOrreryTerrainActor class

    A terrain in a level: names its natural-ground source, its material and its runtime settings, and hosts the chunk components (Tier 3).

OrreryTerrainAsyncActions.h

Latent Blueprint nodes of the terrain: wait for ground to stream in, sample it exactly, sample a batch off the game thread, commit and undo constructions once their ground is resident.

#include "OrreryTerrainAsyncActions.h"

  • FOrreryTerrainWaitDelegate delegate

    The outputs of Wait For Terrain Ground and Wait For Terrain Editable: Reason is None on OnReady, why on OnFailed.

  • FOrreryTerrainSampleDelegate delegate

    The outputs of Sample Ground Exact (Async): the sample and None on OnCompleted; an empty sample and why on OnFailed.

  • FOrreryTerrainSamplesDelegate delegate

    The outputs of Sample Ground Batch (Async): the samples and None on OnCompleted; no samples and why on OnFailed.

  • FOrreryTerrainCommitDelegate delegate

    The outputs of the commit, rebuild and undo nodes: the committed result (bOk true) and None on OnCompleted; on OnFailed a refused result (bOk false, its Reason text when the terrain gave one) and why the node gave up.

  • FOrreryTerrainSaveDelegate delegate

    The outputs of Save Terrain To Slot (Async), the fields of FOrreryTerrainSlotSaveResult: Ref is the save on OnCompleted (Result Ok); on OnFailed Ref is empty and Result, LostCodes and Message say why.

  • FOrreryTerrainLoadDelegate delegate

    The outputs of Load Terrain From Slot (Async): Result is Ok on OnCompleted, why on OnFailed.

  • FOrreryTerrainStampDelegate delegate

    The outputs of Stamp Terrain (Async).

  • UOrreryTerrainAsyncBase class

    Common machinery of the latent terrain nodes: a game-thread ticker that polls once per frame, a timeout in real seconds, and a root reference that keeps the node alive until it finishes.

  • UOrreryTerrainWaitForGround class

    Wait until the full-resolution ground around some locations is resident and its collision is built.

  • UOrreryTerrainWaitForEditable class

    Wait until a brush over one circle would be applied: the answer to "can I edit here now?" after a load, a teleport or a spawn in a streamed or paged world, without polling.

  • UOrreryTerrainSampleExactAsync class

    Sample one position exactly, waiting for its ground to stream in first.

  • UOrreryTerrainSampleBatchAsync class

    Sample a large batch off the game thread: the snapshot is taken now, the work runs on the task system, and the samples arrive on the game thread.

  • UOrreryTerrainCommitAsync class

    Commit a plate or a corridor as soon as the ground under it is resident: streams the footprint plus 300 m around it (the terrain bakes in blocks wider than the footprint), tries every frame, and gives up at the timeout.

  • UOrreryTerrainRebuildSplineFeatureAsync classExperimental

    Rebuild a spline feature as soon as the ground under it is resident: the spline is sampled once, when the node starts; the node streams the footprint plus 300 m, tries every frame, and gives up at the timeout, as Commit Corridor (Async) does.

  • UOrreryTerrainUndoAsync class

    Undo or redo a construction.

  • UOrreryTerrainSaveAsync class

    Save the terrain beside a game's save slot (UOrreryTerrainSubsystem::SaveTerrainAsync): fires OnCompleted with the reference to keep in the game's USaveGame, or OnFailed with the result, the lost-code count and a message.

  • UOrreryTerrainLoadAsync class

    Load the terrain from a save a reference names (UOrreryTerrainSubsystem::LoadTerrainAsync): fires OnCompleted, or OnFailed with why (NotFound for a missing file, Corrupt for a file that is not the recorded save).

  • UOrreryTerrainStampAsync class

    Wait until the ground under one brush is editable, then apply it once as a one-dab stroke: a stamp.

OrreryTerrainAuthoringData.h

The terrain editor's authoring layer: the author's sculpt and features as one save payload beside the map.

#include "OrreryTerrainAuthoringData.h"

  • UOrreryTerrainAuthoringData class

    What the author made in the terrain editor, kept beside the map until a bake folds it into a tile store (Tier 3).

OrreryTerrainBrushAsset.h

Brush masks for the shell: the brush asset that holds a baked mask, the set that groups them, and the bake that turns a texture, raw pixels or a 16-bit TIFF into the mask's canonical bytes.

#include "OrreryTerrainBrushAsset.h"

  • EOrreryTerrainBrushChannel enum

    Which channel of a source texture becomes the mask.

  • EOrreryTerrainBrushUsage enum

    What a mask is for.

  • EOrreryTerrainBrushDepth enum

    The bit depth of a baked mask.

  • EOrreryTerrainBrushBake enum

    How a bake ended.

  • kMaxSourceSide constant

    Source image sizes above this many pixels a side are refused (BadSize).

  • FBakeSpec struct

    What the bake does to its pixels; the asset's bake settings.

  • NearestSide function in OrreryTerrain::BrushBake

    The nearest power of two to Side in 8 to 2048 (a tie goes up).

  • ResolveSide function in OrreryTerrain::BrushBake

    The side a spec bakes to: Side rounded by NearestSide, or 256 (Strength) or 1024 (Height) when Side is 0.

  • ResolveBits function in OrreryTerrain::BrushBake

    The bits a spec bakes to: 8 or 16.

  • FromPlane function in OrreryTerrain::BrushBake

    Bake one 16-bit plane: resample to the spec's side, invert, quantise to its depth and make the mask.

  • FromPixels function in OrreryTerrain::BrushBake

    Bake raw single-channel pixels from game code.

  • FromTiff function in OrreryTerrain::BrushBake

    Bake a 16-bit (or 8-bit or floating point) single-band TIFF.

  • FromTexture function in OrreryTerrain::BrushBake

    Bake a texture.

  • kSplatChannels constant

    Channels a splat image holds: red, green, blue, alpha, in that order.

  • FromSplatRgba16 function in OrreryTerrain::BrushBake

    Bake an RGBA image into up to four step masks, one per used channel (splat paint).

  • FromSplatPixels function in OrreryTerrain::BrushBake

    Bake raw 8-bit RGBA pixels from game code, as FromSplatRgba16 does.

  • FromSplatTexture function in OrreryTerrain::BrushBake

    Bake a texture's four channels, as FromSplatRgba16 does; the texture is read as FromTexture reads it (the editor's untouched source, else a CPU copy; never a GPU readback).

  • UOrreryTerrainBrushAsset class

    A brush mask as an asset: a baked, content-hashed grid that scales a brush per post or shapes a height Stamp.

  • UOrreryTerrainBrushSet class

    A group of brush assets: a palette a game or the editor lists, and registers in one call (UOrreryTerrainSubsystem::RegisterBrushSet).

  • UOrreryTerrainSplatAsset class

    A splat brush as an asset: one RGBA image that paints up to four terrain paint layers in one dab.

OrreryTerrainFeatures.h

Builders from Blueprint-unit plates and corridors to Tier 1 features (world cm in, millimetres from the terrain origin out), so C++ callers never convert by hand.

#include "OrreryTerrainFeatures.h"

  • FOrreryTerrainFeatures struct

    Turns Blueprint-unit descriptions into Tier 1 features through the terrain's contract frame.

OrreryTerrainFollowSettings.h

The project's settings for placed foliage and actors that follow the ground: whether foliage follows, and the per-foliage-type overrides.

#include "OrreryTerrainFollowSettings.h"

OrreryTerrainFollowSubsystem.h

The world subsystem that keeps placed foliage and actors on the ground as it is edited.

#include "OrreryTerrainFollowSubsystem.h"

OrreryTerrainGroundFollowComponent.h

The actor component that makes a placed actor follow the terrain.

#include "OrreryTerrainGroundFollowComponent.h"

OrreryTerrainLayerSet.h

The terrain's paint layer table: names and material slices for up to 256 paint layers.

#include "OrreryTerrainLayerSet.h"

  • FOrreryTerrainLayerGrass struct

    One grass entry of a paint layer: which ULandscapeGrassType grows where.

  • FOrreryTerrainLayerEntry struct

    One paint layer: what the player calls it and which slice of the material's layer textures it draws.

  • UOrreryTerrainLayerSet class

    The paint layer table of a terrain (Tier 3 data asset): entry N is paint layer N, up to 256.

OrreryTerrainLibrary.h

The Blueprint function library of OrreryTerrain: sampling, construction and ownership in Unreal units.

#include "OrreryTerrainLibrary.h"

  • UOrreryTerrainLibrary class

    Static Blueprint API over the world terrain: read the ground, preview and commit earthworks, undo them.

OrreryTerrainLibraryTypes.h

The value types of UOrreryTerrainLibrary and the async nodes: sample requests and answers, corridor parameters, earthworks, commit results and the undo token.

#include "OrreryTerrainLibraryTypes.h"

OrreryTerrainQuality.h

The terrain quality profiles, one per engine scalability level (Low, Medium, High, Epic, Cinematic), the console variable r.OrreryTerrain.Quality, and how the profile follows sg.LandscapeQuality.

#include "OrreryTerrainQuality.h"

  • EOrreryTerrainQuality enum

    A terrain quality profile, one per engine scalability level: the value is the sg.LandscapeQuality level it follows and r.OrreryTerrain.Quality's value for it.

  • EOrreryTerrainQualityMode enum

    Where the project's terrain quality profile comes from (Project Settings, Plugins, Orrery Terrain, Quality Profile).

  • FOrreryTerrainQualityRow struct

    One console variable the profiles write, with its value under each profile.

  • FromScalability function in OrreryTerrainQuality

    The profile for an engine scalability level (sg.LandscapeQuality): 0 Low, 1 Medium, 2 High, 3 Epic, 4 Cinematic; below 0 Low, above 4 Cinematic.

  • FarDetailOf function in OrreryTerrainQuality

    The far ring preset a profile brings: Balanced from Low to Epic, High at Cinematic.

  • FarNormalsOf function in OrreryTerrainQuality

    The normal-only far level a profile brings: none at Low (the preset's own), level 2 to 4 km at Medium, level 2 to 8 km at High and Epic, level 1 to 8 km at Cinematic.

  • ModeFromLegacy function in OrreryTerrainQuality

    The profile source a project stored by earlier versions, under the key QualityProfile, read in the five-level scheme: Scalability, Low and Manual keep their meaning, Balanced becomes High and High becomes Cinematic, so a project keeps the far ring, sub-post detail and grass it had (UOrreryTerrainSettings reads the old key when the new one is absent).

  • GetRows function in OrreryTerrainQuality

    The rows every profile writes, in a fixed order.

  • GetActive function in OrreryTerrainQuality

    The profile in force.

  • Set function in OrreryTerrainQuality

    Sets r.OrreryTerrain.Quality to Profile and applies it at once.

  • Clear function in OrreryTerrainQuality

    Sets r.OrreryTerrain.Quality to -1, so the project's Quality Profile is in force again.

  • Apply function in OrreryTerrainQuality

    Writes Profile's rows at SetBy, skipping each row whose variable was set at a stronger priority or does not exist (its module is not loaded).

  • Matches function in OrreryTerrainQuality

    Whether Profile is in force and every row that exists holds its value.

  • ResolveFarDetail function in OrreryTerrainQuality

    The far detail a terrain with these render settings draws: its own FarDetail when bOverrideFarDetail is on or when no profile is in force, else the profile's.

  • ResolveFarNormals function in OrreryTerrainQuality

    The normal-only far level in force: the profile's (FarNormalsOf), or the preset's own (Level -1) when no profile is in force.

  • Refresh function in OrreryTerrainQuality

    Re-reads the profile's sources and writes its rows when the profile or its priority changed, or always with bForce.

  • Startup function in OrreryTerrainQuality

    Hooks the console variables and engine init; the OrreryTerrain module calls it at startup.

  • Shutdown function in OrreryTerrainQuality

    Unhooks what Startup hooked; the module calls it at shutdown.

OrreryTerrainSculptComponent.h

Player sculpt input component that resolves the cursor and applies brush steps at a fixed step rate.

#include "OrreryTerrainSculptComponent.h"

OrreryTerrainSculptTypes.h

Sculpt cursor-source and sculpt-result enums, and the sculpt tool state, volume and limit structs.

#include "OrreryTerrainSculptTypes.h"

OrreryTerrainSettings.h

Project-wide terrain defaults (Project Settings, Plugins, Orrery Terrain).

#include "OrreryTerrainSettings.h"

  • UOrreryTerrainSettings class

    The project's defaults for every terrain: the material, the quality profile, the residency radius, the sculpt undo depth and whether to register the ground provider (Tier 3 configuration).

OrreryTerrainSourceAsset.h

Data assets describing the natural ground (grid origin, base cell size, subdivision), baked into a Tier 1 tile source when a terrain is created.

#include "OrreryTerrainSourceAsset.h"

OrreryTerrainSplineFeatureComponent.h

Experimental

Live spline features: a component on a spline's actor owns one terrain feature, a corridor along an open spline or a plate inside a closed one, and replaces it in place when asked to rebuild.

#include "OrreryTerrainSplineFeatureComponent.h"

OrreryTerrainSubsystem.h

Per-world terrain owner with streaming statistics, streaming invokers, sampling, editing and ground-changed delegates.

#include "OrreryTerrainSubsystem.h"

OrreryTerrainTileStoreAsset.h

Experimental

The tile store asset: a source's baked tiles as one packed payload, and its index.

#include "OrreryTerrainTileStoreAsset.h"

TerrainBlueprintTypes.h

Blueprint-facing value types of the terrain subsystem: surfaces, precision, change causes, brushes, plates, the ground-changed payload, edit access, save results and slot references, and the per-terrain runtime settings.

#include "TerrainBlueprintTypes.h"

TerrainChunkPosts.h

Immutable per-chunk heights and ground class built from a ground query, with the paint held as the Tier 1 planes; heights in cm relative to the chunk origin, stored as whole millimetres.

#include "TerrainChunkPosts.h"

  • kTerrainHoleClass constant

    Ground-class value that marks a hole in Channels::GroundClass (collision and navigation skip it): Chaos skips the cell (TNumericLimits<uint8>::Max()).

  • FTerrainChunkPosts struct

    The heights of one chunk, read once from a published snapshot and shared, immutable, by everything downstream of the ground: the chunk's collision field and its render chunk.

  • FOnTerrainChunkPostsReady delegate

    A chunk's heights are ready, or changed.

  • FOnTerrainChunkEvicted delegate

    A chunk left the residency set; drop everything built for it.

TerrainRenderSettings.h

Terrain render tier, far-detail and runtime-virtual-texture mode enums, and the render settings struct for LOD, far field and shadows.

#include "TerrainRenderSettings.h"

  • EOrreryTerrainRenderTier enum

    Which renderer draws a terrain.

  • EOrreryTerrainFarDetail enum

    How much terrain detail the far field keeps between the near chunks and the distant atlases.

  • FOrreryTerrainFarNormals struct

    The far ring's normal-only level and its radius: finer slopes for the lighting of the distant ground, on top of the far detail preset, without more triangles.

  • EOrreryTerrainRvtMode enum

    How the heightfield tier's near chunks get their colour: the layer blend per pixel, or a runtime virtual texture.

  • FOrreryTerrainRenderSettings struct

    How a terrain renders: tier, LOD, far field and shadow invalidation (Tier 3 authoring data).

Tools/OrreryTerrainBrushFalloff.h

The brush falloff curve as the runtime brush tool draws it (HUD profile plot and ground contour rings).

#include "Tools/OrreryTerrainBrushFalloff.h"

  • EvaluateFalloff function in OrreryTerrain::Tool

    Brush strength factor at a normalised distance, 0 to 1.

  • SolveFalloffContour function in OrreryTerrain::Tool

    Normalised distance at which the brush strength factor falls to Level.

  • FFalloffContour struct

    One contour of the falloff on the ground.

  • ComputeFalloffContours function in OrreryTerrain::Tool

    The radii of the strength contours inside a brush.

Tools/OrreryTerrainBrushToolComponent.h

The runtime brush tool: input, brush state, HUD and cursor ring over the sculpt component.

#include "Tools/OrreryTerrainBrushToolComponent.h"