Biome Asset Reference
Every editable field of the Agentic Biome data asset (UAgenticBiome) and the structs, enums and generator asset it nests, with types, defaults and backend notes
Biome Asset Reference
UAgenticBiome (shown in Unreal as Agentic Biome) is a UPrimaryDataAsset with primary asset type AgenticBiome. One asset holds a biome's identity, its offline species rows, its runtime ground-cover entries and its landscape layer. This page lists every editable property, one table per struct. For the workflow, see Biome Assets.
Labels and names. The Details panel shows each C++ name with spaces inserted and the b prefix of a boolean dropped (bSolo shows as Solo). Tables give the C++ name. The eighteen BiomeCore fields of a species row use BiomeCore's own names and spellings, carried verbatim, including SelfPrunIngExtentsMultiplier and the enumerator that shows as Additiive. Descriptions of BiomeCore-defined fields follow BiomeCore's own field descriptions. Advanced in a table marks a field the plugin flags as advanced, one you rarely need to change.
Metadata only. DisplayName and Description are labels for people. DisplayName appears in the Output Log lines of sector builds, and nothing reads Description. Neither changes placement, ground cover or any other behaviour of the biome.
Agentic Biome (UAgenticBiome)
The Details panel orders the categories: Validation (a live issue list, see Biome Assets), Identity, Species, Ground cover, Landscape, Provenance.
Identity
| Property | Type | Default | Meaning |
|---|---|---|---|
DisplayName | FText | empty | Human-readable label. Metadata only: it appears in the Output Log lines of sector builds and nothing else reads it. |
Description | FText (multi-line) | empty | Free-text note for the people who open the asset, shown as metadata. Nothing reads it. |
Definition | FAgenticBiomeDefinition | see Definition | Name, map colour and priority. Copied onto each region built from this biome as its default definition. It is the only place the biome's colour lives. |
Species
| Property | Type | Default | Meaning |
|---|---|---|---|
Species | TArray<FAgenticSpeciesRow> | empty | Offline (placed) species: trees, rocks, shrubs and props. Written inline onto each region's LocalAssets. Each element is one species row; the array element title is the row's SpeciesId. |
Ground cover
| Property | Type | Default | Meaning |
|---|---|---|---|
RuntimeAssetEntries | TArray<FAgenticRuntimeAssetEntry> | empty | The list of GPU runtime ground-cover templates (RT_*) the biome uses, each with a per-backend mask. This is the list a build reads. Element title is Asset. See Runtime asset entry. |
RuntimeAssets | TArray<TSoftObjectPtr<UObject>> | empty | Legacy list, shown under Advanced. A build never reads it. When the asset loads with RuntimeAssetEntries empty, every non-empty element here is moved into RuntimeAssetEntries with both backends ticked, and this array is cleared. Use RuntimeAssetEntries. |
Landscape
| Property | Type | Default | Meaning |
|---|---|---|---|
LandscapeLayerName | FName | None | Name of the Landscape paint layer this biome follows. Used where masks are baked from Landscape weightmaps and by the paint-to-biome-map tool. Read from Landscape weightmaps only: on MeshTerrain the weight layers cannot be read by this path. A biome with None here is skipped by those paths. |
Provenance
| Property | Type | Default | Meaning |
|---|---|---|---|
Revision | int32 | 0 | Read-only in Details. Increases by one on every property edit of the asset, including edits to Description. A region stores the value it was built from as SpawnedFromRevision. It is a label, not the staleness test: a region is stale when the hash of the rows the biome emits, or of its runtime entries, differs from the hash stored when the region was built. |
Definition (FAgenticBiomeDefinition)
| Property | Type | Default | Meaning |
|---|---|---|---|
BiomeName | FName | None | The biome's identity. The Terraformer's palette check warns when two palette biomes share a name. |
BiomeColor | FLinearColor | white (1, 1, 1) | The colour this biome claims in a biome map. Alpha is hidden and not used. It must not be black, which a map reads as "no biome", and it must differ from every other palette colour by more than the Terraformer's Biome Color Tolerance (default 0.01) in at least one of R, G or B. |
BiomePriority | int32 | 0 | Higher wins where two biomes claim the same ground. Note the opposite polarity of a generator's GeneratorPriority. |
Runtime asset entry (FAgenticRuntimeAssetEntry)
| Property | Type | Default | Meaning |
|---|---|---|---|
Asset | TSoftObjectPtr<UObject> | none | A runtime ground-cover template (an RT_* asset). A template that fails to load is skipped with a warning in the log. |
Backends | int32 bitmask | 3 (both) | Which terrain backends use this entry. The Details checkboxes are Landscape (value 1) and Mesh Terrain (value 2). With neither ticked the entry is never carried to a region. |
Species row (FAgenticSpeciesRow)
A row has four fields of its own plus the eighteen BiomeCore fields of its base struct. Only the BiomeCore fields reach BiomeCore; the four authoring fields stay on the biome asset.
The Details panel gives each row a header: the Enabled checkbox, the SpeciesId (or the mesh name when the id is empty), the mesh, the weight, the generator with its sub-type, a backend readout such as [L|M], and SOLO or ISO when set. The body is grouped as Placement, Filters, Mesh rendering, Backends, Runtime scatter, Children & assemblies, and Debug. Enabled appears only in the header.
Authoring fields
| Property | Type | Default | Meaning |
|---|---|---|---|
SpeciesId | FName | None | Stable key for the row. Tools address a row by it, and an upsert replaces the row with the same id. Required, and unique within the biome. |
bSolo | bool | false | Authoring solo. When any enabled row in the biome has it set, only soloed enabled rows are emitted. Details label: "Solo (authoring) - only soloed rows are emitted". A soloed row that is itself disabled does not trigger solo mode. |
Backends | int32 bitmask | 3 (both) | Which terrain backends this row serves: Landscape (1), Mesh Terrain (2). A row that excludes the resolved backend is not emitted. With neither ticked the row is never emitted. |
BackendOverrides | TMap<EAgenticTerrainBackend, FAgenticBackendOverride> | empty | Sparse per-backend replacement of Generator and ChildAssets. Advanced. See Backend override. |
BiomeCore fields
| Property | Type | Default | Meaning |
|---|---|---|---|
Enabled | bool | true | Whether the row is used. An unticked row is dropped before BiomeCore sees it. |
AssetType | FName | None | Label identifying the asset type. Shipped rows use Tree, Rock and Clutter. Advanced. |
Weight | double | 1.0 | Distribution weight among the rows that share a generator. Minimum 0. A weight of 0 or less is a validator error. |
Generator | TSoftObjectPtr<UObject> | none | The generator asset whose points this species is placed on. The picker accepts an Agentic Biome Generator asset or a BiomeCore generator Blueprint asset. Required. |
GeneratorSubType | FName | None | Restricts the species to a subset of the generator's points. A comma-separated list is accepted, which lets one generator serve several species. Sub-types are defined in the generator's graph. |
TransformGraph | TSoftObjectPtr<UPCGGraphInterface> | none | Optional PCG graph that modifies or produces points, for example to scatter secondary points around a tree. When unset, the incoming point is used as is. Advanced. |
Mesh | TSoftObjectPtr<UStaticMesh> | none | Static mesh spawned into an instanced mesh component. |
SkeletalMesh | TSoftObjectPtr<USkeletalMesh> | none | Skeletal mesh to spawn. Advanced. |
Assembly | TSoftObjectPtr<UObject> | none | PCG Data Asset assembly to spawn. Advanced. |
Actor | FSoftClassPath | none | Actor class to spawn. Class picker limited to Actor. Advanced. |
ChildAssets | TSoftObjectPtr<UObject> | none | A BiomeCore biome-asset Blueprint asset (the shipped Child_* assets) that spawns further assets on this row's points, recursively. |
DebugOptions | FAgenticBiomeDebugOptions | see below | BiomeCore render isolation. Details label: "BiomeCore render isolation - does not change what is emitted". |
AssetOptions | FAgenticBiomeAssetOptions | see below | Per-instance transform and pruning policy. |
MeshOptionsPreset | TSoftObjectPtr<UObject> | none | A BiomeCore mesh-options preset Blueprint asset. When set, it replaces all of MeshOptions, and Details hides MeshOptions and shows "MeshOptions is not read: preset '...' replaces all 20 values." Advanced. |
MeshOptions | FAgenticBiomeMeshOptions | see below | Settings forwarded onto the spawned instanced mesh component. Ignored when MeshOptionsPreset is set. |
AssemblyOptions | FAgenticBiomeAssemblyOptions | see below | Options for assembly spawns. Advanced. |
FilterOptions | FAgenticBiomeFilterOptions | see below | Culls generated points before the asset is placed on them. |
RuntimeOptions | FAgenticBiomeRuntimeOptions | see below | Options for BiomeCore's runtime generation. Advanced. |
A row with Mesh, SkeletalMesh, Assembly and Actor all empty has nothing to spawn. The SetSpecies tool refuses such a row ("Row spawns nothing"); the validator does not check for it, and the shipped Tree and Tree_MT rows are examples.
Backend override (FAgenticBackendOverride)
Both fields are optional. An unset field means "use the row's own value". A set field replaces the row's value for that backend and outranks it.
| Property | Type | Default | Meaning |
|---|---|---|---|
Generator | TSoftObjectPtr<UObject> | none | Generator used instead of the row's Generator on this backend. |
ChildAssets | TSoftObjectPtr<UObject> | none | Child asset used instead of the row's ChildAssets on this backend. |
The map key is EAgenticTerrainBackend. A build looks up only the Landscape and MeshTerrain keys.
Filter options (FAgenticBiomeFilterOptions)
Shown in the row's Filters group. The first four fields are BiomeCore's own; the other six are sample-tier fields.
| Property | Type | Default | Meaning |
|---|---|---|---|
DensityMin | double | 0.0 | Reject points whose density is below this. Range 0 to 1. |
DensityMax | double | 1.0 | Reject points whose density is above this. Range 0 to 1. |
HeightMin | double (cm) | -100000.0 | World-Z floor in centimetres. |
HeightMax | double (cm) | 100000.0 | World-Z ceiling in centimetres. |
FlowMin | double | 0.0 | Reject points whose flow (drainage accumulation) is below this. Range 0 to 1. Landscape only. |
FlowMax | double | 1.0 | Reject points whose flow is above this. Range 0 to 1. Landscape only. |
SunExposureMin | double | 0.0 | Reject points whose sun exposure is below this. Range 0 to 1. Landscape only. |
SunExposureMax | double | 1.0 | Reject points whose sun exposure is above this. Range 0 to 1. Landscape only. |
WaterDistanceMin | double (cm) | 0.0 | Reject points closer to water than this. No water-distance producer ships, so it does not change placement. |
WaterDistanceMax | double (cm) | 100000.0 | Reject points further from water than this. No water-distance producer ships, so it does not change placement. |
Backend notes for the six sample-tier fields:
- On Landscape, flow and sun exposure are read from two textures that ship with the plugin (
T_AT_Flow_TerraformerandT_AT_SunExposure_Terraformer), installed through the filter chainAT_Filters_Inst. They were baked for the terrain of the showcase levels. - On MeshTerrain there is no flow or sun-exposure source. The validator reports
SampleFilterOnMeshTerrainfor any of the six fields set away from its default on a row that serves MeshTerrain. - The filter chain installs no water-distance filter, so
WaterDistanceMinandWaterDistanceMaxhave no effect on either backend. The validator still checks them on MeshTerrain rows.
Asset options (FAgenticBiomeAssetOptions)
Shown in the row's Placement group.
| Property | Type | Default | Meaning |
|---|---|---|---|
OverlapWithChildren | bool | false | Allow overlapping with child assets. Advanced. |
ForceAssetScale | bool | false | Ignore the scale set by the transform graph. Advanced. |
ExtentsMultiplier | FVector | (1, 1, 1) | Scales the asset's bounds. Advanced. |
BoundsOffset | FVector (cm) | (0, 0, 0) | Offset applied to the bounds computed from the asset. Advanced. |
Translation | FVector | (0, 0, 0) | Position offset applied over the generator point's position. |
Rotation | FRotator | (0, 0, 0) | Rotation offset applied over the generator point's rotation. |
Scale | FVector | (1, 1, 1) | Scale factor applied over the generator point's scale. |
OrientUpward | double | 0.0 | Range 0 to 1. 0 keeps the surface normal, 1 forces world up; values between blend from the generator point's normal to world Z up. |
SelfPrune | bool | false | Remove overlapping points of this asset. The checkbox sits inline with the next field. |
SelfPrunIngExtentsMultiplier | double | 1.0 | Scale applied to extents to change self-pruning behaviour. Shown only while SelfPrune is on. The capital I in the name is BiomeCore's spelling and is the real property name. |
Mesh options (FAgenticBiomeMeshOptions)
Shown in the row's Mesh rendering group. Forwarded onto the spawned instanced mesh component. Ignored entirely when the row sets MeshOptionsPreset.
| Property | Type | Default | Meaning |
|---|---|---|---|
Material | TSoftObjectPtr<UMaterialInterface> | none | Material override for the mesh. Advanced. |
AllowCollision | bool | false | BiomeCore describes it as "Use Default Mesh Collision settings". |
Visible | bool | true | Whether the mesh component is visible. Advanced. |
CastShadow | bool | true | Whether the mesh casts shadows. |
CastHiddenShadow | bool | false | Whether the mesh casts shadows when hidden. Advanced. |
CastDynamicShadow | bool | true | Whether the mesh casts shadows in the case of non-precomputed shadowing. Advanced. |
AffectDistanceFieldLighting | bool | true | Whether the mesh affects distance-field lighting methods. Only used when CastShadow is true. Advanced. |
AffectDynamicIndirectLighting | bool | true | Whether the mesh influences indirect lighting. Advanced. |
VisibleInRayTracing | bool | true | Whether the mesh is visible in ray-traced reflections and shadows. Advanced. |
DetailMode | int32 | 0 | Required detail level of the mesh. Advanced. |
StartCullDistance | double (cm) | 0.0 | Distance from the camera at which each instance starts to fade out. |
EndCullDistance | double (cm) | 0.0 | Distance from the camera at which each instance has completely faded out. |
EvaluateWorldPositionOffset | bool | true | Whether to evaluate world position offset. The checkbox sits inline with the next field. Advanced. |
WorldPositionOffsetDisableDistance | double (cm) | 0.0 | Distance at which world position offset is disabled for an instance. 0 means never disable. Editable only while EvaluateWorldPositionOffset is on. Advanced. |
IncludeInHLOD | bool | false | Include the mesh in HLOD. The checkbox sits inline with the next field. Advanced. |
HLODLayer | TSoftObjectPtr<UHLODLayer> | none | HLOD layer the mesh is assigned to. Shown only while IncludeInHLOD is on. Advanced. |
CanEverAffectNavigation | bool | true | Whether the mesh can influence navigation. Advanced. |
RasterizeAsFilledConvexVolume | bool | false | Whether navigation geometry from the mesh is converted into a filled vertical convex volume. Advanced. |
IsSpatiallyLoaded | bool | true | Whether the mesh is spawned on an actor that is spatially loaded in a partitioned world. Advanced. |
ComponentTags | FString | empty | Comma-separated values applied as additional component tags. A single string, not an array. Advanced. |
Runtime options (FAgenticBiomeRuntimeOptions)
Shown in the row's Runtime scatter group; the struct is Advanced on the row. These are BiomeCore's runtime-generation options for a root row. The Details panel notes that they are inert on an offline row and that the runtime tier is fed by the biome's RuntimeAssetEntries list. An enabled row whose GenerationMethod is not None still makes the biome count as having runtime cover (for the validator's EmptyBiome check and the Terraformer's palette check).
| Property | Type | Default | Meaning |
|---|---|---|---|
GenerationMethod | EAgenticGenerationMethod | None | None, AutoResolveRuntimeAssembly, RuntimeAssembly or OutputPoints. The names are BiomeCore's. The shipped biomes use RuntimeAssembly together with a RuntimeAssembly asset. |
RuntimeAssembly | TSoftObjectPtr<UObject> | none | The assembly used by runtime generation. The shipped biomes point at the L_*MicroScattering_PCG assets under Sample/PCGAssemblies. |
MeshSamplingRadius | double | 5.0 | Asset mesh sampling parameter for runtime generation. |
InheritAssetScale | bool | false | Inherit the asset's scale. BiomeCore gives no further description. |
ScaleMultiplier | double | 1.0 | Scales the sampled mesh points. |
NormalOffset | double | 1.0 | BiomeCore describes it as removing sampled mesh points based on normals. |
ZMin | double (cm) | 0.0 | Removes sampled mesh points based on height. |
ZMax | double (cm) | 500.0 | Removes sampled mesh points based on height. |
InfluenceType | EAgenticInfluenceType | None | Asset influence behaviour at runtime: None, Additive (shown as Additiive, BiomeCore's spelling) or Subtractive. |
InfluenceRadius | double (cm) | 100.0 | Asset influence radius at runtime. |
Tags | FString | empty | Comma-separated tags. A single string, not an array. |
Debug options (FAgenticBiomeDebugOptions)
| Property | Type | Default | Meaning |
|---|---|---|---|
Isolate | bool | false | Render only this row, hiding every other species in the biome. This is BiomeCore's per-row isolation and does not change which rows are emitted. For authoring, use the row's bSolo, which filters the list before BiomeCore sees it. |
ShowBounds | bool | false | Display the asset's bounds for debugging. Advanced. |
Assembly options (FAgenticBiomeAssemblyOptions)
| Property | Type | Default | Meaning |
|---|---|---|---|
AllowCollision | bool | false | Whether collisions are allowed or forced off on all assembly inner points. |
Generator asset (UAgenticBiomeGenerator)
An Agentic Biome Generator is the asset a species row's Generator points at. It is a UPrimaryDataAsset with one property, Generator (FAgenticGeneratorDefinition), and it is read by BiomeCore the same way as BiomeCore's own generator Blueprint asset. The shipped generators are listed in Biome Assets.
| Property | Type | Default | Meaning |
|---|---|---|---|
GeneratorType | FName | None | Optional generator name. Shipped generators use it as a family label such as Shared_Trees. |
GeneratorGroups | FName | None | Comma-separated list of groups that constrain priority-based difference between generators. |
GeneratorPriority | int32 | 0 | Priority over other generators. Smaller number means higher priority, the opposite of BiomePriority. BiomeCore's own authored range is -1 to 1; the validator reports a value outside it. |
GeneratorAllowOverlap | bool | false | Bypass priority-based difference with overlapping points from other generators. |
GeneratorGraph | TSoftObjectPtr<UPCGGraphInterface> | none | The PCG graph that generates all root points onto which the rows referencing this generator are assigned. |
GeneratorSpatialNoiseSettings | TSoftObjectPtr<UPCGSettingsInterface> | none | Optional spatial noise that controls the weighted distribution of assets. Point it at a saved spatial-noise settings asset. |
Enums
| Enum | Values | Used by |
|---|---|---|
EAgenticBackendMask | Landscape = 1, MeshTerrain = 2 (bit flags; 3 is both) | Backends on a species row and on a runtime asset entry |
EAgenticTerrainBackend | Auto, Landscape, MeshTerrain | Key of BackendOverrides; the Terraformer's Terrain Backend |
EAgenticGenerationMethod | None, AutoResolveRuntimeAssembly, RuntimeAssembly, OutputPoints | GenerationMethod |
EAgenticInfluenceType | None, Additive (displayed Additiive), Subtractive | InfluenceType |
Continue with the authoring guide, placement, or support.
Terraformer and Placement Actors
Every property, button, and default on the Terraformer, Terraform Sector, Agentic Biome Region, Terraform Excluder, and Road Component actors
PCG nodes
Reference for the six custom PCG nodes Agentic Biomes adds - pins, every setting with its default and range, exact behaviour, and which shipped graphs use each node.