Home
Embedded Techno

Procedural Root & Vine Generator — Version 2.0 (UE 5.6 - 5.7)

In general, Root and Vine actors are the main authoring tools. Barrier adds strand-based seal/barrier generation, Attraction adds deterministic attraction-point sampling, and Runtime Growth Actors consume exported growth data for playback.

Installation

  1. Close Unreal Editor.
  2. Copy the ProceduralRootGenerator folder into your project's Plugins directory.
  3. Open the .uproject in Unreal Engine 5.6 - 5.7.
  4. Verify the plugin is enabled in Edit > Plugins.

What’s New in Version 2.0

  • Dedicated actors for Roots, Vines, and Barriers.
  • A dedicated Attraction Actor for scattering and sampling attraction points.
  • A shared PRG editor utility tab with actor-aware filters and actions.
  • Unified static and runtime export workflows.
  • Runtime playback through UPRG_GrowthData and Runtime Growth Actors.
  • Flow-aligned shading/data-encoding workflows for custom materials and custom textures.

Quick Start

  1. Place an actor: Add a Root, Vine, or Barrier actor to the level.
  2. Choose a workflow: Use the actor's built-in spline/placement setup, or assign an external spline where supported.
  3. Select a preset: Start from a preset for fast iteration, then move into Expert Mode if you need deeper control.
  4. Build: Use Build All / Build Now to generate the current result.
  5. Refine: Adjust category-specific settings such as branching, shaping, surface interaction, or export behavior.
  6. Export: Bake to Static Mesh for final environment use, or export runtime growth data for animated playback.

Workflow & Exports

Static Mesh Export

Use Static Mesh export when you want final environment geometry. This is the normal production path for non-animated results. Depending on actor type, you can export the full generated result or a selected scope such as a branch, tier, or strand subset.

Runtime Growth Export

Use runtime export when you want reveal, spread, regrowth, seal, or reverse-growth animation. The authoring actor exports growth data into UPRG_GrowthData, then spawns or updates a runtime playback actor that consumes that data.

Performance note: Runtime Growth Actors work correctly, but they are the most performance-heavy part of the toolset on dense setups. Use them when you need animated growth, and prefer baked Static Meshes for final non-animated environment work.

PRG Editor Utility Tab

Version 2.0 includes a dedicated PRG editor utility tab. The tab is selection-driven and changes its filters and details view based on the currently selected Root, Vine, or Barrier actor. It is meant to make day-to-day iteration faster than working from the full Details panel alone.

SettingDescription
Selection-aware mode switchingThe tab automatically swaps between Root, Vine, and Barrier layouts based on the currently selected actor.
Category filtersQuick, Mesh, Branch, Shape, Surface, Simulation, Animation, and Debug-style filters help you focus on one part of the tool at a time.
Shared workflowThe main build, mesh refresh, export, and documentation actions stay consistent across actor types.
Faster iterationUseful when you are repeatedly tweaking presets, branch settings, or export options during look development.

Materials & Data Encoding

PRG-generated meshes are built for a flow-aligned material workflow. This is not the older triplanar setup. Instead, the mesh generator writes directional payload data that can be used by custom materials and custom texture sets for roots, vines, and barriers. The goal is to keep bark/vine flow aligned to the authored growth direction while preserving seam and twist continuity across curved branches and welded connections.

Practical takeaway: If you use the included materials or build your own, think of the mesh as carrying both standard tube UVs and extra directional data for flow-aware shading.
SettingDescription
UV0 / UV1Primary tube mapping. These channels carry the usual radial and along-spline information used for the base material layout.
UV2High-precision encoded forward/flow direction used by flow-aligned material functions.
Vertex ColorFallback directional and twist/orientation support for material graph decoding.
UV3 / Growth PayloadWhen growth export is enabled, authored animation/runtime data is baked for flow-aligned growth playback workflows.

The included material workflow is intended for custom root, vine, and barrier textures. You can use the provided instances as a starting point, or build your own materials that decode the stored directional data for better along-growth texture flow.

Root Actor Reference

The Root Actor is the main authoring tool for procedural root systems. It supports preset-driven setup, expert controls, multi-tier branching, mesh export, and runtime growth export.

Main Actions

SettingDescription
Build AllBuild all generated content from the current settings.
Build MeshRegenerate the generated mesh from existing spline points.
Generate Static MeshGenerates a static mesh actor from the current procedural mesh
Generate Runtime ActorExport spline data to a runtime growth actor for growth playback.
Open DocumentationOpen the Procedural Root Generator documentation.
Reset to DefaultsResets all settings to their default values
Overwrite Preset From Current SettingsSelect an existing preset row and replace it with the current actor settings. If the preset table is missing, it will be created first.

Components

SettingDescription
RootRoot scene component for the actor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Parent Spline ContainerContainer component that owns generated or authored parent/root splines. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Generated Mesh ComponentPrimary dynamic mesh component used to display the generated result in-editor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Primary ContainerContainer for generated primary branches. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Secondary ContainerContainer for generated secondary branches. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Tertiary ContainerContainer for generated tertiary branches. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

Components / Preview

SettingDescription
Preview Proc Mesh ComponentEditor preview procedural mesh component used for preview and solo export visualization. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

Components / Debug

SettingDescription
Hub Debug SphereEditor/debug sphere used to visualize the hub or placement origin. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Placement Preview BillboardBillboard used to show actor placement/orientation in the editor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

General

SettingDescription
PresetSelect a preset row from DT_RootPresets. Includes custom presets created with New.
Growth TypeOverall root growth behavior. Surface favors lateral spread, Buttress emphasizes flared roots, and Burrowing favors subterranean growth.
Expert ModeShow advanced/expert controls throughout the root generator details panel.
Use External SplineUse a spline from another actor as the parent root path instead of the built-in spline
External Spline ActorThe actor containing the spline component to use as the parent root
External Spline ComponentThe specific spline component from the external actor to use

General / Presets

SettingDescription
Root Presets TableDataTable containing root presets (row type: FRootPresetData).
Apply Preset On ChangeAutomatically apply preset values when the preset selection changes
Auto Set Preset To Custom On EditAutomatically set preset to 'Custom' when any parameter is manually edited

General / Advanced

SettingDescription
Preview ModeChoose which root hierarchy levels to preview: None, Parent only, Parent + Primary, or All.
Random SeedSeed for random number generation. Change this to get different root patterns with the same settings
Master ScaleGlobal scale multiplier for the entire root system
Min Generated RadiusMinimum radius threshold for generating roots. Roots thinner than this will not be generated
Flat Hub Merge Diameter (cm)Diameter of the hidden hub merge zone. Mesh geometry within this radius from the hub center will not be generated. Useful for creating a cleaner flat merge into a trunk or planter.

Mesh

SettingDescription
Root MaterialMaterial to apply to the generated root mesh

Mesh / Tube

SettingDescription
Tube Axial SubdivisionsMultiplier for axial sample density along each root segment (1 = baseline)
RM Frames Max Samples Per SplinePer-spline cap for rotation-minimizing frame samples used during meshing/debug sampling. Hard ceiling is 16384.
Tube Radial SegmentsNumber of radial subdivisions around the root tube
Cap Tube EndsClose the ends of root tubes with cap geometry
Tube End Cap TaperHow much to taper/narrow the end caps
Tube Terminal Taper Length ScaleLength scale of the terminal taper stub ring appended before each non-welded cap.
Tube Terminal Taper Radius ScaleRadius scale of the terminal taper stub ring appended before each non-welded cap.

Mesh / Spline

SettingDescription
Enable Single Point Kink RegularizationRun a local point-chain regularization pass before spline assembly to target single-point kinks (smooth/merge/average) without global smoothing.
Commit Guard Radius ScaleCommit-guard allowance scale applied to local crawl sphere radius. Higher values allow larger commit deviations on thick roots.
Commit Guard Root Radius ScaleAdditional commit-guard allowance scale applied to start radius. Use for large-tier roots that need extra local commit freedom.
Enable Final Committed Step ClampApply a separate post-commit clamp to final committed step distance so growth keeps intended step density even with looser commit guard tolerance.
Final Committed Step Length ScaleMultiplier on intended Step used by the final committed step-length cap.
Final Committed Step Length Max CmOptional absolute cap for final committed step distance in cm. 0 disables the absolute cap and uses Step scale only.
Use Directional Projection For Final Step ClampWhen final step clamp triggers, prefer the intended growth direction for projection when stable.
Always Run Broad Post Growth SmoothingAlways run a mild broad sharp-corner smoothing pass after single-point kink regularization.
Enable Adaptive Bend SubdivisionEnable local adaptive bend subdivision on the generated point chain before spline assembly.
Adaptive Bend Dot ThresholdCorner direction-dot threshold below which interior turns start receiving adaptive point subdivision.
Adaptive Bend Severe Dot ThresholdSevere corner direction-dot threshold used to increase inserted points for very tight bends.
Adaptive Bend Max Inserted PointsMaximum number of points inserted around a single sharp bend corner during adaptive subdivision.
Adaptive Bend Min Segment Length ScaleMinimum allowed local sub-segment length as a fraction of Step when inserting bend refinement points.
Adaptive Bend Arc BiasHow strongly inserted bend-refinement points bow toward a rounded arc target instead of linear corner interpolation.
Run Adaptive Bend Subdivision After Kink PassRun adaptive bend subdivision after kink cleanup (and broad post-growth smoothing) before spline assembly.
Broad Post Growth Smoothing PassesNumber of light broad post-growth smoothing passes over interior points.
Broad Post Growth Sharp Corner Dot ThresholdSegment-direction dot threshold below which interior points are treated as sharp for broad post-growth smoothing.
Broad Post Growth Blend MinMinimum blend toward neighbor midpoint when broad post-growth smoothing detects a sharp interior corner.
Broad Post Growth Blend MaxMaximum blend toward neighbor midpoint for severe sharp interior corners in broad post-growth smoothing.

Mesh / Smoothing

SettingDescription
Smoothing TypeType of mesh smoothing algorithm to apply
Smoothing IterationsNumber of smoothing passes to apply
Smoothing StrengthStrength of the smoothing effect
Smooth Boundary VerticesApply smoothing to vertices on mesh boundaries
Preserve Junction VerticesProtect vertices at branch junctions from smoothing

Mesh / Welding

SettingDescription
Weld Branch JunctionsMerge vertices at branch connection points
Weld ToleranceDistance threshold for welding vertices at junctions
Use Organic Junction BlendAfter welding a child to its parent, reshape the junction into a softer collar.
Weld Coincident EdgesWeld vertices that lie on the same edge
Edge Weld ToleranceDistance threshold for welding coincident edge vertices

Mesh / Static Mesh Export

SettingDescription
Enable NaniteEnable Nanite virtualized geometry
Recenter Pivot To Bounds CenterMove the mesh pivot to the center of its bounding box
Place Static MeshPlace the generated static mesh into the level
Export ScopeSelects which spline scope is used for export and solo preview.
Export Tier SelectionTier used when export scope is set to Selected Tier.
Export Spline SelectionOptional single spline selection for export. 'All Splines' exports the full generated mesh.
Export Ancestor Chain As Combined AssetWhen exporting branch + ancestors, also produce one combined asset for the full chain.
Export Ancestor Chain As Separate AssetsWhen exporting branch + ancestors, also produce one separate asset per spline in the chain.
Preview Selected Export SplineIf enabled, selecting a single spline for export will also preview only that spline in the editor viewport.
Show Non Selected Splines In Solo PreviewWhen solo export preview is active, keep non-selected splines visible as thin editor debug splines.
Generated Asset FolderFolder path where generated static mesh assets will be saved

Mesh / Static Mesh Export / Collision

SettingDescription
Generate CollisionGenerate collision geometry
Hull CountTarget number of convex hull pieces when generating collision for the exported static mesh.
Max Hull VertsMaximum vertex count allowed per generated convex hull. Higher values preserve more shape detail but cost more collision complexity.
Hull PrecisionPrecision used by convex decomposition. Higher values improve fit at higher generation cost.

Mesh / Interior Face Removal

SettingDescription
Remove Interior FacesRemove mesh triangles whose centroids are inside another root's tube volume.
Interior Removal ModeRemoveAll: remove any face inside another tube. RemoveSmaller: only remove from the thinner root at intersections (preserves the dominant root's surface).
Interior Test Radius ScaleScale factor for the containment test radius. 0.85 means a face must be within 85% of the enclosing tube's radius to be removed.
Preserve Junction FacesPreserve faces near branch junction points even if they are technically inside another tube.
Junction Preserve Radius MultiplierRadius around junction points within which faces are preserved, as a multiplier of the local root radius at the junction.
Interior Test Sample SpacingSpacing (in cm) between centerline samples used for containment testing.
Junction Start Exclusion FractionFraction of child spline length (from its start) where faces are NEVER removed.

Branching / Parent

SettingDescription
Parent CountNumber of synthetic parent splines generated in internal mode.
Parent LengthTarget length (cm) of each synthetic internal parent spline.
Parent ThicknessStarting thickness/radius used for parent splines.
Parent Spread Angle DegAngular spread used when distributing synthetic internal parent launch directions around the hub.
Parent Launch Stub LengthMinimum launch stub length (cm) applied from the shared hub before synthetic parents are allowed to curve.
Parent Min Angular Separation DegMinimum angular separation between synthetic internal parent launch directions.
Parent TaperRate at which parent splines taper from base to tip. Lower values taper more gradually.
Parent Tip Taper MultiplierAdditional taper multiplier applied near the tip of parent splines.
Parent Target Segment LengthTarget segment length used when processing parent splines. Smaller values increase detail.
Parent Spline Smoothing PassesSmoothing passes applied when processing parent splines.
Parents Use Surface ProjectionProject synthetic internal parent splines onto nearby surfaces while they are generated.
Parents Participate In AvoidanceSample synthetic internal parent splines into shared avoidance state so other splines can react to them.
Loop Branch Side ConstraintRestrict which side of the parent spline branches can generate on. Useful for loop splines where you only want exterior or interior roots.

Branching / Primary

SettingDescription
Enable PrimaryEnable generation of primary root branches
Primary per ParentNumber of primary branches generated per parent spline
Primary LengthLength of primary root branches
Primary ThicknessStarting thickness of primary branches
Primary Length VariationHow much branch length varies (0 = all same, 1 = wide range)

Branching / Primary / Advanced

SettingDescription
Primary Spread Angle DegMaximum spread angle from parent direction
Primary Max Child Radius FracMaximum child radius as a fraction of the parent radius at the spawn point. Prevents children from being thicker than their parent.
Primary TaperRate at which primary branches taper
Primary Tip Taper MultiplierAdditional taper near the tip
Primary Target Segment LengthTarget length for each mesh segment
Min Angle Between ConsecutiveMinimum angle between consecutive primary branches
Primary Meander StrengthAmount of random winding/curvature
Primary Direction PreferenceHow much branches prefer their initial direction
Primary Spline Smoothing PassesSmoothing passes for spline paths
Primary Thickness Variation MinMin thickness variation
Primary Thickness Variation MaxMax thickness variation
Primary Taper Variation MinMin taper variation
Primary Taper Variation MaxMax taper variation

Branching / Secondary

SettingDescription
Enable SecondaryEnable secondary branches
Secondary Per PrimaryBranches per primary
Secondary LengthLength of secondary branches
Secondary ThicknessStarting thickness
Secondary Length VariationHow much branch length varies (0 = all same, 1 = wide range)

Branching / Secondary / Advanced

SettingDescription
Secondary Spread Angle DegMaximum spread angle
Secondary Max Child Radius FracMaximum child radius as a fraction of the parent radius at the spawn point.
Secondary TaperRate at which secondary branches taper from base to tip.
Secondary Tip Taper MultiplierAdditional taper multiplier near the secondary branch tip.
Secondary Target Segment LengthTarget segment length for secondary branch mesh generation.
Min Angle Between Consecutive SecondaryMinimum angle between consecutive secondary branches spawned from the same parent.
Secondary Meander StrengthRandom meander strength for secondary branch paths.
Secondary Direction PreferenceHow strongly secondary branches keep their initial launch direction.
Secondary Spline Smoothing PassesSmoothing passes applied to generated secondary spline paths.
Secondary Thickness Variation MinMinimum multiplicative thickness variation for secondary branches.
Secondary Thickness Variation MaxMaximum multiplicative thickness variation for secondary branches.
Secondary Taper Variation MinMinimum taper variation multiplier for secondary branches.
Secondary Taper Variation MaxMaximum taper variation multiplier for secondary branches.

Branching / Tertiary

SettingDescription
Enable TertiaryEnable tertiary branches
Tertiary Per SecondaryBranches per secondary
Tertiary LengthLength of tertiary branches
Tertiary ThicknessStarting thickness
Tertiary Length VariationHow much branch length varies (0 = all same, 1 = wide range)

Branching / Tertiary / Advanced

SettingDescription
Tertiary Spread Angle DegMaximum spread angle
Tertiary Max Child Radius FracMaximum child radius as a fraction of the parent radius at the spawn point.
Tertiary TaperRate at which tertiary branches taper from base to tip.
Tertiary Tip Taper MultiplierAdditional taper multiplier near the tertiary branch tip.
Tertiary Target Segment LengthTarget segment length for tertiary branch mesh generation.
Min Angle Between Consecutive TertiaryMinimum angle between consecutive tertiary branches spawned from the same parent.
Tertiary Meander StrengthRandom meander strength for tertiary branch paths.
Tertiary Direction PreferenceHow strongly tertiary branches keep their initial launch direction.
Tertiary Spline Smoothing PassesSmoothing passes applied to generated tertiary spline paths.
Tertiary Thickness Variation MinMinimum multiplicative thickness variation for tertiary branches.
Tertiary Thickness Variation MaxMaximum multiplicative thickness variation for tertiary branches.
Tertiary Taper Variation MinMinimum taper variation multiplier for tertiary branches.
Tertiary Taper Variation MaxMaximum taper variation multiplier for tertiary branches.

Shape / Variation

SettingDescription
Enable VariationEnable random variation in branch thickness and taper
Variation StrengthGlobal strength multiplier for all variation effects

Shape / Junctions

SettingDescription
Enable Junction BulgingAdd thickness bulges at branch junctions
Junction Bulge StrengthRadius multiplier at branch junctions. 1.0 = no bulge, 1.2 = subtle, 1.5 = pronounced.
Junction Bulge DistanceFalloff distance for junction bulge, as a multiplier of the local radius. Higher = wider bulge zone.

Shape / Thickness

SettingDescription
Enable Organic Thickness VariationAdd procedural noise-based thickness variations
Organic Thickness Noise StrengthAmplitude of organic thickness noise applied along branches.
Organic Thickness Noise FrequencyFrequency of organic thickness noise along each root path.
Use Length Based ThickeningMake longer roots thicker
Length Thickness ScaleStrength of length-based thickening for longer roots.

Shape / Curve

SettingDescription
Use Advanced Taper CurveUse power curve for taper instead of linear
Taper Curve PowerPower exponent for non-linear tapering. Values above 1 preserve thickness longer before narrowing near the tip.

Shape / Organic Cross Section

SettingDescription
Enable Surface Ring FlatteningFlatten and widen surface-contacting root rings so roots are not perfectly circular.
Contact FlatteningFlattening amount for rings classified as surface-contacting.
Exposed FlatteningFlattening amount for rings classified as more exposed above-surface sections.
Cross Slope WideningWidth boost applied when roots traverse across steep surface slope changes.
Base Flare StrengthStrength of trunk-side base flare shaping near branch origins.
Base Flare Distance CmDistance from branch origin over which base flare shaping fades out.
Enable Buttress Lite ShapingEnable supplemental buttress-fin shaping overlays for buttress growth mode.
Buttress Crest Pinch StrengthHow strongly buttress ring crests pinch toward a narrower ridge profile.
Buttress Foot Spread StrengthHow strongly buttress ring feet broaden toward the support-contact side.
Buttress Side Slope StrengthOutward side-slope shaping strength used to bias buttress rings toward wedge-like profiles.
Buttress Trunk Fan Distance CmDistance from branch origin over which buttress fan and fin shaping remains dominant.
Buttress Secondary Blend StrengthBlend strength used to merge buttress secondary branches into parent fin bodies near the trunk.
Bend Deformation Fade Start DegLocal bend angle in degrees where geometry-side surface basis/deformation suppression starts fading in.
Bend Deformation Disable DegLocal bend angle in degrees where geometry-side surface basis/deformation is fully neutralized for tight bends.

Shape / Flow

SettingDescription
Enable Hierarchical Flow InheritanceUse a dedicated shading/UV flow frame and parent-attachment inheritance for bark continuity.
Junction Flow Blend Distance CmDistance from a child branch start over which shading orientation/phase eases from parent-aligned values into local branch values.
Shading Flow History WindowHistory window used only by the shading frame. Larger values produce calmer bark/grain flow.
Shading Flow Max Forward Delta DegMaximum shading-frame forward rotation per ring in degrees. Lower values reduce abrupt flow pivots.
Shading Flow Max Seam Delta DegMaximum seam-phase rotation per ring in degrees for the shading frame.
Shading Flow Surface Blend StrengthSupport-normal blend strength for shading frame orientation. Keep low for stable bark flow.
Bias Seam Toward UndersideBias seam placement toward the local underside direction for root shading/flow continuity.
Seam Underside Follow StrengthPer-ring blend factor from previous seam toward projected underside target. Lower values are more stable.
Seam Vertical Fallback Dot ThresholdIf |dot(forward, world up)| is above this threshold, seam underside-follow is disabled and seam continuity is frozen.
Use Absolute Tree Flow UVEncode UV1.y as absolute accumulated distance across the parent-child root hierarchy instead of restarting per branch.

Surface Interaction

SettingDescription
Ground Trace ChannelCollision channel for ground tracing
Snap To GroundSnap root endpoints to ground/surfaces below them
Snap Parent To GroundSnap the parent source spline to the ground. Disable this if you want the parent source spline to stay exactly where you placed it while children still snap.

Surface Interaction / Placement

SettingDescription
Surface OffsetVertical offset for surface points
Fallback Ground OffsetVertical offset for ground points - when radius-adaptive burial is not being used.
Use Radius-Adaptive OffsetApply the output offset based on the local root radius at each point, maintaining a more consistent burial depth.
Render BurialRender-only burial applied to the final mesh path relative to the authored spline path. This does not control spline snapping; use Snap To Ground for surface snapping.
Trace DistanceMaximum trace distance for ground/surface detection in centimeters.
Use Secondary Ground Trace ChannelEnable a second trace channel fallback when the primary ground trace misses.
Secondary Ground Trace ChannelSecondary collision channel used when fallback ground tracing is enabled.

Surface Interaction / Surface Crawling

SettingDescription
Use Surface CrawlingEnable surface crawling to follow terrain contours
Trace Complex For SurfaceTrace against complex collision geometry for crawl surface queries.
Crawl Sphere Radius MultiplierRadius multiplier for crawl contact tests relative to local root radius.
Max Crawl Iterations Per StepMaximum crawl solve iterations used per generated step.
Conform Parent Spline To SurfaceConform parent spline points to detected surfaces during crawl evaluation.
Post Snap After CrawlApply an additional post-crawl snap to improve final surface adherence.
Line Trace First For CrawlingAttempt a cheaper line trace before sphere crawl traces for each step.
Fast Surface ReacquireUse a fast local reacquire pass to recover surface contact after misses.
Fast Reacquire DistanceMaximum distance in centimeters for fast surface reacquire checks.
Use Separate Query OffsetUse an explicit query offset separate from the output surface offset during crawl traces.
Crawl Query OffsetVertical query offset used only for surface crawl traces when separate query offset is enabled.

Surface Interaction / Edge Handling

SettingDescription
Enable Edge RoundingRound sharp flat-to-wall and wall-to-flat transitions by inserting a point on the angle bisector.
Edge Detection ThresholdWhen the surface normal changes by more than this threshold between surface contexts, insert a bisector rounding point instead of cutting sharply through the corner.
Edge Search IterationsNumber of binary search iterations used to find the edge location for edge rounding.
Edge Roundness ScaleScales how far the inserted edge-rounding point is pushed along the corner bisector.
Wall Child Spawn ProbabilityProbability of allowing child branches (secondary/tertiary) to spawn on wall-like surfaces when encountered.

Surface Interaction / Attraction

SettingDescription
Enable Surface AttractionEnable surface attraction to move roots towards the surface.
Attraction ActorsOptional attraction actors whose distributed points can pull generated roots toward them during spline growth.
Attraction StrengthHow strongly attraction points influence the next growth direction. 0 disables the system.
Attraction RadiusMaximum distance from a point at which attraction can influence growth.
Attraction Falloff ExponentFalloff exponent for attraction weighting. Higher values make the pull more local around each point.

Surface Interaction / Surface Bias

SettingDescription
Downward BiasBias toward downward growth direction
Max Upward Angle DegMaximum upward angle roots can grow
Parent Wall PreferenceBias for parent roots toward vertical wall-like surfaces versus flatter surfaces.
Use Direction-Aware Child Surface SelectionUse parent direction context when selecting crawl surfaces for child branches.
Child Wall PreferenceBias for child branches toward vertical wall-like surfaces during hinted surface selection.

Simulation

SettingDescription
Curvature ResponseControls curvature sensitivity in current adaptive/detail behavior. Higher values respond more strongly to curvature changes.

Simulation / Gravitropism

SettingDescription
Enable Gravitropic BehaviorSimulate gravitropic response
Gravitropic StrengthStrength of gravitropic steering toward downward growth.
Gravitropic MultiplierMultiplier applied to overall gravitropic turning response.

Simulation / Avoidance Behavior

SettingDescription
Enable Root AvoidancePrevent roots from growing too close to each other
Avoidance RadiusLocal neighborhood radius used when evaluating nearby roots for avoidance.
Avoidance StrengthSteering strength used to push growth away from nearby roots.

Simulation / Organic Behavior

SettingDescription
Enable Organic Candidate GrowthUse field-scored candidate growth so roots react to concavity, relief, crease, and exposure.
Organic Growth BlendBlend between the original direction logic and the organic field-scored candidate logic.
Organic Candidate CountNumber of candidate directions scored at each growth step for organic field selection.
Organic Concavity Probe Distance CmProbe distance used for concavity sampling around the current growth point.
Organic Relief Probe Distance CmProbe distance used for relief/height-variation sampling around the growth point.
Organic Selection SharpnessSharpness of candidate score weighting. Higher values favor the best-scoring direction more strongly.
Organic Tip Memory StrengthDirectional memory retained between steps to keep trajectories coherent.
Organic Termination Frustration ThresholdFrustration threshold above which a tip may terminate when no suitable organic direction is found.
Organic Field WeightsRelative weights for concavity, relief, crease, verticality, and exposure in organic candidate scoring.
Use Parent Area BudgetConserve local parent cross-sectional area when spawning child roots.
Area Conservation ExponentExponent controlling how aggressively child area usage is conserved relative to the parent budget.
Parent Budget Resolution CmSampling resolution along parent roots used for local area budget accounting.
Parent Budget Influence Distance CmDistance around a spawn location used when applying parent area budget influence.

Simulation / Organic Behavior / Burrowing

SettingDescription
Burrow Ceiling Traverse Distance CmMinimum travel distance a burrow trunk spends spreading along a ceiling before committing to descent unless very strong wall/interior support appears.
Burrow Wall Descent StrengthStrength multiplier for descent steering once a burrow branch commits to wall descent.
Burrow Lateral Weave StrengthStable lateral shaping applied during burrow wall descent to avoid visually straight vertical drops.
Burrow Floor Runner ChanceChance to assign eligible secondary/tertiary burrow children to floor-runner roles when local floor support is strong.
Burrow Re Burrow StrengthBias strength that keeps burrow branches re-entering enclosed interior support after touching floor-like surfaces.
Burrow Interior Search Radius CmSearch radius used by burrow support classification and continuity checks for interior cave/tunnel support.

Branching / Spawn Spacing

SettingDescription
Enable Spawn Density CheckCheck density at spawn locations and skip branches in crowded areas
Spawn Density Radius MultiplierNeighbor search radius multiplier used for spawn density checks.
Spawn Density Max CountMaximum nearby branch count allowed before skipping a new spawn.
Primary Spawn Dead Zone CmMinimum spacing along parent root before allowing another primary spawn.
Secondary Spawn Dead Zone CmMinimum spacing along primary roots before allowing another secondary spawn.
Tertiary Spawn Dead Zone CmMinimum spacing along secondary roots before allowing another tertiary spawn.

Simulation / Movement Variation

SettingDescription
Enable Enhanced Root NoiseReplace the default sine meander with a multi-layer noise system tuned for root behavior. When disabled, the original sine-based meander is used.
Root Noise Primary WavelengthPrimary undulation wavelength in cm. Controls the main side-to-side sweep. Longer = gentler curves.
Root Noise Secondary WavelengthSecondary undulation wavelength in cm. Adds medium-frequency variation on top of the primary sweep.
Root Noise Tertiary WavelengthTertiary (long-range drift) wavelength in cm. Prevents roots from looking perfectly periodic.
Root Noise Forward Wavelength ScaleForward-axis undulation wavelength multiplier. Higher = longer forward waves.
Root Noise Amplitude ModulationHow much Perlin amplitude modulation affects the meander. 0 = constant (mechanical), 1 = fully modulated (organic).
Root Noise Asymmetric BiasRoots in soil tend to favor one side over long distances before switching. 0 = symmetric, 1 = strong one-sided preference.
Root Noise Asymmetric WavelengthWavelength of the asymmetric bias oscillation. Controls how often the root switches its preferred side.
Root Noise Distance DecayHow much meander amplitude decreases along the root's length. Simulates increasing soil resistance. 0 = no decay, 1 = fades to zero at tip.
Root Noise Thickness CorrelationHow much root thickness affects meander amplitude. Thicker roots meander less (more structural). 0 = no effect, 1 = strong correlation.
Root Noise Depth Seeking StrengthSubtle downward perturbation that increases with distance. Simulates roots seeking deeper soil layers. 0 = none, 1 = strong downward drift at tips.
Root Noise White Noise StrengthWhite noise contribution for irregularity. 0 = pure sine waves, higher = more randomized.

Surface Interaction / Terrain Response

SettingDescription
Enable Concavity ResistanceDetect terrain concavities and steer roots along contour lines
Concavity Resistance StrengthStrength of lateral steering away from concavity traps.
Concavity Detection ThresholdConcavity level required before anti-piling steering engages.
Enable Adaptive Downward BiasReduce downward bias when root has been consistently descending
Adaptive Descent LookbackHistory window length used to detect sustained downward motion.
Adaptive Min Bias MultiplierMinimum fraction of base downward bias retained after adaptive reduction.
Enable Dip EscapeDetect when root is trapped at terrain minimum and force lateral escape
Dip Escape LookbackHistory window used to determine when the tip is trapped in a dip.
Dip Escape Z Threshold MultiplierVertical change threshold (relative to radius) used to classify dip trapping.
Dip Escape Max Up Angle DegMaximum upward steering angle allowed while executing dip escape.
Dip Escape Lateral StrengthLateral steering strength applied during dip escape maneuvers.

Branching / Validation

SettingDescription
Enable Child Orientation Sanity ValidationValidate child branch orientation against sampled surface normals before accepting the branch.
Child Orientation Validation Min SamplesMinimum number of orientation-validation samples taken along each child spline.
Child Orientation Validation Max SamplesMaximum number of orientation-validation samples taken along each child spline.
Child Orientation Validation Reject FractionReject child spline when the fraction of failed orientation samples exceeds this threshold.
Child Orientation Up Surface Min DotA sample is considered suspicious when abs(dot(Frame.Up, SupportNormal)) is below this threshold.
Child Orientation Right Surface Max DotA sample is considered suspicious when abs(dot(Frame.Right, SupportNormal)) is above this threshold.

Simulation / Path Stability

SettingDescription
Enable Anti Double BackPrevent roots from doubling back or coiling
Max Turn Angle Per Segment DegMaximum allowed turn angle per segment before anti-coiling correction triggers.
Min Forward Progress DotMinimum forward progress dot-product required to consider movement valid.
Terminate On Angle ViolationTerminate a branch if repeated angle violations occur.
Min Segments Before TerminationMinimum generated segments required before angle-violation termination is allowed.
Post Crawl Angle ValidationRun angle validation again after surface crawl adjustments.
Post Crawl Angle Leniency MultiplierExtra leniency multiplier for post-crawl angle validation.
Angle Check Smoothing WindowSmoothing window size used when evaluating recent turn angles.

Surface Interaction / Climbing

SettingDescription
Enable Surface ClimbingAllow roots to crawl up vertical and overhanging surfaces
Climbing Surface ThresholdMinimum surface steepness needed to switch into climbing behavior.
Max Climb Height Above StartMaximum climb height above the branch start in centimeters. Use -1 for unlimited.
Stop Climbing At TopStop climbing when the root reaches a flatter top surface.
Top Detection ThresholdFlatness threshold used to detect top-out surfaces during climbing.
Climbing Max Upward Angle DegMaximum upward growth angle allowed while in climbing mode.

Animation

SettingDescription
Bake Growth Animation DataBake Growth Animation data into UV3 for use with Flow-Aligned material
Runtime Export QualityControls authored-frame sample density in runtime export data. Full keeps all authored samples.
Parent Growth FractionFraction of the [0,1] timeline allocated to the parent root growing. The remaining time is split among child tiers.
Primary Growth FractionFraction of the [0,1] timeline allocated to primary branches growing.
Secondary Growth FractionFraction of the [0,1] timeline allocated to secondary branches growing.
Tertiary Growth FractionFraction of the [0,1] timeline allocated to tertiary branches growing. Computed as remainder if 0.

Editor

SettingDescription
Auto Rebuild In EditorAutomatically regenerate roots in the editor when settings change.
Hide Disabled SettingsHides all settings that can only be modified when expert mode is enabled.
Auto Rebuild Debounce SecondsDelay in seconds before auto-rebuild triggers after an editable change.
Draw Debug FramesDraw debug frames/axes along generated spline points in the editor viewport.
Draw Rejected Child ValidationDraw red reject markers and labels for child splines rejected by branch validation.
Draw Debug Shading FlowDraw shading-flow diagnostics (forward/up vectors plus seam/twist/flow labels) from the authored flow cache.
Shading Flow Debug Label StrideLabel stride for shading-flow debug text. Lower values draw more labels.

Editor / Logging

SettingDescription
Enable Generation LoggingMaster toggle for generation logging. When disabled, all per-log toggles are ignored.
Log Generation StatsLog high-level generation statistics after each build.
Log Spline Creation DetailsLog detailed per-segment decisions during spline generation. WARNING: Very verbose.
Log Mesh Generation DetailsLog mesh-generation stage details, including attach/weld diagnostics and per-stage timing.
Log Generation QC DetailsLog post-mesh quality-control diagnostics (QC pass warnings).

Editor / Debug

SettingDescription
Log Burrow Phase DiagnosticsLog per-segment burrow phase/state diagnostics, support-class scores, phase transitions, and role assignments.
Draw Burrow Support DebugDraw lightweight burrow support-class debug vectors/colors at runtime-selected support points during generation.
Log Buttress DiagnosticsLog buttress-lite branch classification and shaping diagnostics during generation and mesh ring preparation.
Draw Buttress Shape DebugDraw buttress local deformation frame axes for sampled rings during mesh preparation.
Debug Disable All Shape SettingsDebug override: disable geometry-side shape modifiers (advanced taper curve, organic thickness variation, length-based thickening, junction bulging, and surface-ring shaping).
Debug Use Base Taper Only For RadiusDebug override: compute radius from base taper only (StartRadius * Lerp(1,Taper,Alpha), then clamp to MinGeneratedRadius). Disables advanced taper, tip taper, length thickening, organic noise, and junction bulging.
Debug Hard Bypass Ring Phase ContinuityDebug override: hard-bypass ring phase continuity. Forces SeamAngleRadians=0, TwistOffset=0, and UV1WrapPhaseOffset=0 so UV1 uses plain cylindrical wrap (UV1.x=BaseU, UV1.y=FlowDistance/100).
Debug Log Ring Continuity ScalarsDebug logging: print ring continuity scalar deltas for the same representative spline per tier used by step-point pipeline reporting (Parent/Primary/Secondary/Tertiary).
Debug Log Step Point PipelineDebug logging: for a single representative spline in each generated tier (Parent/Primary/Secondary/Tertiary), print per-step point pipeline stages (raw crawl reacquire, post-edge-rounding, post-angle-validation, post-surface-offset, final committed).
Debug Disable Append Turn ClampDebug override: disable final append-time per-point turn clamp in TryAppendPointWithSegmentHardCap.
Debug Disable Segment Hard Cap ClampDebug override: disable append-time segment hard-cap clamp/termination in TryAppendPointWithSegmentHardCap.
Debug Disable Edge Rounding Point InsertionDebug override: disable insertion of intermediate edge-rounding points while keeping edge detection active.
Debug Disable Wall Traversal Point InsertionDebug override: disable insertion of wall-traversal intermediate points while keeping wall traversal detection active.
Debug Disable Per Step Surface Offset AdjustmentDebug override: disable per-step surface/ground adaptive offset adjustment used by crawl/non-crawl point state.
Debug Disable Start Surface SnapDebug override: disable start-surface acquisition and initial crawl start snap.
Debug Disable Direction ComputationDebug override: disable per-step direction recomputation (ComputeNextGrowthDirection).
Debug Disable Organic Candidate Direction BlendDebug override: disable organic candidate direction blending and organic frustration termination branch.
Debug Disable Airborne Gravity BiasDebug override: disable persistent airborne gravity bias on desired direction.
Debug Disable Collision Avoidance DeflectionDebug override: disable collision-avoidance deflection of desired direction.
Debug Disable Pre Crawl Anti Double BackDebug override: disable pre-crawl anti-double-back termination check.
Debug Disable Post Crawl Anti Double BackDebug override: disable post-crawl anti-double-back termination checks (crawl and non-crawl paths).
Debug Disable Non Crawl Surface SnapDebug override: disable non-crawl surface snap traces and related airborne accounting.
Debug Disable Crawl Edge SeekingDebug override: disable crawl edge-seeking directional bias.
Debug Disable Concavity ResistanceDebug override: disable concavity-resistance lateral escape adjustments.
Debug Disable Forward Edge DetectionDebug override: disable forward edge detection/lip handling stage before crawl iterations.
Debug Disable Wall Traversal DetectionDebug override: disable wall traversal detection/execution while leaving other miss handling active.
Debug Disable Surface ReacquireDebug override: disable surface reacquire branches after crawl miss cases.
Debug Disable Air Snap RecoveryDebug override: disable air-snap recovery branches after crawl miss/penetration events.
Debug Disable Airborne Surface Validation SnapDebug override: disable airborne surface-validation snap block.
Debug Disable Final Ground CheckDebug override: disable final ground-check block (recovery plus drift evaluation).
Debug Disable Spawn Density Anti PileDebug override: disable wall-base anti-pile deflection/termination logic.
Debug Disable Post Crawl Snap AdjustmentsDebug override: disable post-crawl snap adjustments (both immediate post-snap-after-crawl and later drift-snap correction).
Debug Disable Under Surface CorrectionDebug override: disable final under-surface correction before pre-append vertical lift/noise and append.
Debug Disable Pre Append Vertical LiftDebug override: disable the pre-append crawl vertical-lift micro-noise mutation (CurrOutW.Z lift before append).
Debug Disable Parent Crossing Plane EnforcementDebug override: disable parent crossing plane enforcement during spline growth.
Debug Disable Lip Stop Point InsertionDebug override: disable lip-stop point insertion while preserving lip detection and termination behavior.
Debug Disable Commit GuardDebug override: disable commit-guard clamp that snaps committed point back toward crawl result.
Debug Disable Final Point SmoothingDebug override: disable authored point smoothing pass before final path freeze.
Debug Disable Final Point DeduplicationDebug override: disable point deduplication pass before final path freeze.
Debug Disable Final Surface Conformance PassDebug override: disable final surface-conformance offset pass on authored points.
Debug Disable Single Point Kink RegularizationDebug override: disable single-point kink regularization pass before final path freeze.
Debug Disable Legacy Sharp Corner SmoothingDebug override: disable legacy sharp-corner smoothing fallback pass.
Debug Use UV0 For Tangent ComputationDebug override: compute mesh tangents from UV0 instead of UV1 flow unwrap.
Debug Bypass Final Normals Tangents GenerationDebug override: bypass final mesh normal/tangent generation and use authored ring-frame vectors (UV2 encoded forward + color RG encoded surface normal) for preview shading vectors.
Use Legacy Preview Payload ModeDebug preview mode: use legacy preview-only payload rewrite/material flags instead of production payload/material contract.
Debug Disable Geometry Surface Ring FlatteningTemporary debug toggle: keep ring basis construction enabled but disable geometry-side width/bottom/top surface-ring deformation.
Debug Disable Geometry Ring Transition EasingDebug override: disable geometry-side ring transition easing during pre-mesh frame refinement.
Debug Disable Adaptive Ring ResamplingDebug override: disable adaptive pre-mesh ring resampling/refinement pass.
Debug Disable Geometry Spike RepairDebug override: disable geometry-side spike repair inside rotation-minimizing frame generation.
Debug Use Linearized Centerline For MeshingDebug override: build mesh RM frames from a temporary linearized centerline sampled from authored spline points (bypasses spline interpolation tangents and tangent smoothing/clamping).
Debug Use Raw Central Difference Tangents For MeshingDebug override: for authored-path meshing, use raw central-difference tangents with no extra angular clamp instead of the default tangent smoothing/clamp path.
Debug Disable Geometry History Averaging After RM FramesDebug override: disable geometry ring-basis history averaging after RM frame generation.
Debug Disable Curvature Weighted Distance RedistributionDebug override: disable curvature-weighted distance redistribution inside pre-mesh frame refinement.
Debug Disable Tiny Step SuppressionDebug override: disable tiny-step suppression inside pre-mesh frame refinement.
Debug Disable Neighbor Tangent RecomputeDebug override: disable tangent recompute from neighboring points inside pre-mesh frame refinement.
Debug Disable Late Pass PruningDebug override: disable late-pass child pruning before final meshing.

Vine Actor Reference

The Vine Actor is the dedicated authoring tool for climbing and wrapping vine systems. It follows the same general workflow as the Root Actor, but adds vine-specific surface, hanging, and wrap-around controls.

Main Actions

SettingDescription
Build AllBuild all generated content from the current settings.
Build MeshRegenerate the generated mesh from existing spline points.
Generate Static MeshGenerates a static mesh actor from the current procedural mesh
Generate Runtime ActorExport spline data to a runtime growth actor for growth playback.
Open DocumentationOpen the Procedural Vine Generator documentation.
Reset to DefaultsResets all settings to their default values
Overwrite Preset From Current SettingsSelect an existing preset row and replace it with the current actor settings. If the preset table is missing, it will be created first.

Components

SettingDescription
RootRoot scene component for the vine generator actor <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Parent Vine SplineGuide spline used as the parent path for vine generation <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Generated Mesh ComponentPrimary dynamic mesh component that displays generated vine geometry <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Preview Proc Mesh ComponentEditor preview procedural mesh component used during generation previews <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Placement Preview BillboardBillboard used to preview placement/orientation in the editor <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Primary ContainerScene component parent for generated primary branch splines <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Parent ContainerScene component parent for generated synthetic parent splines <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Secondary ContainerScene component parent for generated secondary branch splines <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Tertiary ContainerScene component parent for generated tertiary branch splines <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

General

SettingDescription
PresetSelect a preset row from DT_VinePresets. Includes custom presets created with New.
Growth TypeOverall vine growth behavior. Climbing favors upward surface growth, Wrapping favors surface wrap-around, and Hanging favors sagging aerial vines.
Expert ModeShow advanced/expert controls throughout the vine generator details panel.
Use External SplineUse a spline from another actor as the parent vine path instead of the built-in spline
External Spline ActorThe actor containing the spline component to use as the parent vine
External Spline ComponentThe specific spline component from the external actor to use

General / Presets

SettingDescription
Vine Presets TableDataTable containing vine presets (row type: FVinePresetData)
Apply Preset On ChangeAutomatically apply preset values when the preset selection changes
Auto Set Preset To Custom On EditAutomatically set preset to 'Custom' when any parameter is manually edited

General / Advanced

SettingDescription
Preview ModeChoose which vine hierarchy levels to preview: None, Parent only, Parent + Primary, or All.
Random SeedSeed for random number generation. Change this to get different vine patterns
Advance Seed On Build NowIf enabled, each Build Now uses RandomSeed plus a transient build counter to reroll topology without mutating RandomSeed.
Last Build Seed UsedDebug/readback of the exact seed used by the most recent Build Now invocation.
Master ScaleGlobal scale multiplier for the entire vine system
Min Generated RadiusMinimum radius threshold. Vines thinner than this will not be generated

Mesh

SettingDescription
Vine MaterialMaterial to apply to the generated vine mesh

Mesh / Nanite

SettingDescription
Enable NaniteEnable Nanite virtualized geometry

Mesh / Tube

SettingDescription
Tube Radial SegmentsNumber of radial subdivisions around the vine tube
Tube Axial SubdivisionsMultiplier for axial sample density along each vine segment (1 = baseline)
Cap Tube EndsClose the ends of vine tubes with cap geometry
Tube End Cap TaperHow much to taper/narrow the end caps
Tube Terminal Taper Length ScaleLength scale of the terminal taper stub ring appended before each non-welded cap.
Tube Terminal Taper Radius ScaleRadius scale of the terminal taper stub ring appended before each non-welded cap.

Mesh / Smoothing

SettingDescription
Smoothing TypeType of mesh smoothing algorithm to apply
Enable Single Point Kink RegularizationRun a local point-chain regularization pass before spline assembly to target single-point kinks (smooth/merge/average) without global smoothing.
Smoothing IterationsNumber of smoothing passes to apply
Smoothing StrengthStrength of the smoothing effect
Smooth Boundary VerticesApply smoothing to vertices on mesh boundaries
Preserve Junction VerticesProtect vertices at branch junctions from smoothing

Mesh / Welding

SettingDescription
Weld Branch JunctionsMerge vertices at branch connection points
Weld Coincident EdgesWeld vertices that lie on the same edge

Mesh / Welding / Advanced

SettingDescription
Weld ToleranceDistance threshold for welding vertices at junctions
Edge Weld ToleranceDistance threshold for welding coincident edge vertices

Mesh / Static Mesh Export / Collision

SettingDescription
Generate CollisionGenerate collision geometry
Hull CountTarget number of convex hull pieces when generating collision for the exported static mesh.
Max Hull VertsMaximum vertex count allowed per generated convex hull. Higher values preserve more shape detail but cost more collision complexity.
Hull PrecisionPrecision used by convex decomposition. Higher values improve fit at higher generation cost.

Mesh / Static Mesh Export / Advanced

SettingDescription
Generated Asset FolderFolder path where generated static mesh assets will be saved

Mesh / Static Mesh Export

SettingDescription
Recenter Pivot To Bounds CenterMove the mesh pivot to the center of its bounding box
Place Static MeshPlace the generated static mesh into the level
Export ScopeSelects which spline scope is used for export and solo preview.
Export Tier SelectionTier used when export scope is set to Selected Tier.
Export Spline SelectionOptional single spline selection for export. 'All Splines' exports the full generated mesh.
Export Ancestor Chain As Combined AssetWhen exporting branch + ancestors, also produce one combined asset for the full chain.
Export Ancestor Chain As Separate AssetsWhen exporting branch + ancestors, also produce one separate asset per spline in the chain.
Preview Selected Export SplineIf enabled, selecting a single spline for export will also preview only that spline in the editor viewport.
Show Non Selected Splines In Solo PreviewWhen solo export preview is active, keep non-selected splines visible as thin editor debug splines.

Animation

SettingDescription
Runtime Export QualityControls authored-frame sample density in runtime export data. Full keeps all authored samples.
Bake Growth Animation DataBake Animation data into UV3 for runtime growth playback
Parent Growth FractionFraction of the [0,1] timeline allocated to parent/guide vine growth.
Primary Growth FractionFraction of the [0,1] timeline allocated to primary branches growing.
Secondary Growth FractionFraction of the [0,1] timeline allocated to secondary branches growing.
Tertiary Growth FractionFraction of the [0,1] timeline allocated to tertiary branches growing. Computed as remainder if 0.

Mesh / Interior Face Removal

SettingDescription
Remove Interior FacesRemove mesh triangles whose centroids are inside another vine's tube volume

Mesh / Interior Face Removal / Advanced

SettingDescription
Interior Removal ModeRemoveAll: remove any face inside another tube. RemoveSmaller: only remove from the thinner vine
Interior Test Radius ScaleScale factor for the containment test radius
Preserve Junction FacesPreserve faces near branch junction points
Junction Preserve Radius MultiplierRadius around junction points within which faces are preserved
Interior Test Sample SpacingSpacing between centerline samples used for containment testing
Junction Start Exclusion FractionFraction of child spline length from start where faces are never removed

Branching / Parent

SettingDescription
Vine Base ThicknessStarting thickness/radius of the Parent vine at its base
Parent CountNumber of synthetic parent splines generated from the guide stub in internal mode.
Parent LengthTarget length (cm) of each synthetic internal parent spline.
Parent ThicknessStarting thickness/radius of synthetic internal parent splines at their base.
Parent Spread Angle DegAngular spread used when distributing synthetic internal parent launch directions around the guide hub.
Parent Target Segment LengthTarget segment length (cm) used when building synthetic internal parent splines.
Parent Spline Smoothing PassesSmoothing passes applied when assembling synthetic internal parent splines.
Parent Launch Stub LengthSprout-length hint (cm) near the guide hub. Higher values slightly extend the soft start region, but do not enforce a rigid straight launch segment.
Parent Min Angular Separation DegMinimum angular separation between synthetic internal parent launch directions.
Parents Use Surface ProjectionProject synthetic internal parents toward nearby support surfaces while preserving the guide-stub hub origin.
Parents Participate In AvoidanceWhen disabled, synthetic internal parent splines are excluded from shared avoidance sample state.
Min Segment FractionMinimum fraction of each branch length that must be represented by crawl/generation segments.

Branching / Parent / Advanced

SettingDescription
Wall Child Spawn ProbabilityProbability that a child branch spawns when the parent vine is on a wall surface.
Transition Zone LookaheadDistance in centimeters used to evaluate dominant surface context near flat-to-wall transitions.
Transition Detection ThresholdDot threshold used to detect a surface transition zone between adjacent samples.

Branching / Primary

SettingDescription
Enable PrimaryEnable generation of primary vine branches
Primary per ParentNumber of primary branches generated per parent spline.
Primary LengthLength of primary vine branches
Primary ThicknessStarting thickness of primary branches

Branching / Primary / Legacy

SettingDescription
Primary DensityDeprecated legacy primary density control kept for backward compatibility.

Branching / Primary / Advanced

SettingDescription
Primary Max Child Radius FracMaximum child radius as a fraction of the parent radius at the spawn point.
Primary TaperRate at which primary branches taper
Primary Tip Taper MultiplierAdditional taper near the tip
Primary Target Segment LengthTarget length for each mesh segment
Primary Meander StrengthAmount of random winding/curvature
Primary Direction PreferenceHow much branches prefer their initial direction
Primary Spline Smoothing PassesSmoothing passes for spline paths
Primary Length VariationRandom length variation for primary branches as a normalized fraction of base length.
Primary Thickness Variation MinMinimum multiplicative thickness variation for primary branches
Primary Thickness Variation MaxMaximum multiplicative thickness variation for primary branches
Primary Taper Variation MinMinimum taper variation multiplier for primary branches
Primary Taper Variation MaxMaximum taper variation multiplier for primary branches

Branching / Secondary

SettingDescription
Enable SecondaryEnable secondary branches
Secondary Per PrimaryNumber of secondary branches to attempt per primary branch
Secondary LengthLength of secondary branches
Secondary ThicknessStarting thickness of secondary branches

Branching / Secondary / Advanced

SettingDescription
Secondary Spread Angle DegMaximum spread angle from the parent direction
Secondary Max Child Radius FracMaximum child radius as a fraction of the parent radius at the spawn point.
Secondary TaperRate at which secondary branches taper from base to tip.
Secondary Tip Taper MultiplierAdditional taper multiplier near the secondary branch tip.
Secondary Target Segment LengthTarget segment length for secondary branch mesh generation.
Secondary Meander StrengthRandom meander strength for secondary branch paths.
Secondary Direction PreferenceHow strongly secondary branches keep their initial launch direction.
Secondary Spline Smoothing PassesSmoothing passes applied to generated secondary spline paths.
Secondary Length VariationRandom length variation for secondary branches as a normalized fraction of base length.
Min Angle Between Consecutive SecondaryMinimum angle in degrees between consecutive secondary branch launch directions around the same parent.
Secondary Thickness Variation MinMinimum multiplicative thickness variation for secondary branches.
Secondary Thickness Variation MaxMaximum multiplicative thickness variation for secondary branches.
Secondary Taper Variation MinMinimum taper variation multiplier for secondary branches.
Secondary Taper Variation MaxMaximum taper variation multiplier for secondary branches.

Branching / Tertiary

SettingDescription
Enable TertiaryEnable tertiary branches
Tertiary Per SecondaryNumber of tertiary branches to attempt per secondary branch
Tertiary LengthLength of tertiary branches
Tertiary ThicknessStarting thickness of tertiary branches

Branching / Tertiary / Advanced

SettingDescription
Tertiary Spread Angle DegMaximum spread angle from the parent direction
Tertiary Max Child Radius FracMaximum child radius as a fraction of the parent radius at the spawn point.
Tertiary TaperRate at which tertiary branches taper from base to tip.
Tertiary Tip Taper MultiplierAdditional taper multiplier near the tertiary branch tip.
Tertiary Target Segment LengthTarget segment length for tertiary branch mesh generation.
Tertiary Meander StrengthRandom meander strength for tertiary branch paths.
Tertiary Direction PreferenceHow strongly tertiary branches keep their initial launch direction.
Tertiary Spline Smoothing PassesSmoothing passes applied to generated tertiary spline paths.
Tertiary Length VariationRandom length variation for tertiary branches as a normalized fraction of base length.
Min Angle Between Consecutive TertiaryMinimum angle in degrees between consecutive tertiary branch launch directions around the same parent.
Tertiary Thickness Variation MinMinimum multiplicative thickness variation for tertiary branches.
Tertiary Thickness Variation MaxMaximum multiplicative thickness variation for tertiary branches.
Tertiary Taper Variation MinMinimum taper variation multiplier for tertiary branches.
Tertiary Taper Variation MaxMaximum taper variation multiplier for tertiary branches.

Shape

SettingDescription
Enable VariationEnable random variation in branch thickness and taper
Variation StrengthGlobal strength multiplier for all variation effects

Shape / Advanced / Thickness

SettingDescription
Enable Organic Thickness VariationAdd procedural noise-based thickness variations
Organic Thickness Noise StrengthStrength of procedural noise-based thickness variation along vines.
Organic Thickness Noise FrequencyFrequency of procedural noise used for thickness variation.
Use Advanced Taper CurveUse a power curve for taper instead of linear interpolation.
Taper Curve PowerExponent used by the advanced taper curve. Higher values keep vines thicker for longer.
Use Length Based ThickeningScale thickness based on branch length.
Length Thickness ScaleStrength of length-based thickness scaling.

Shape / Flow

SettingDescription
Enable Hierarchical Flow InheritanceUse a dedicated shading/UV flow frame and parent-attachment inheritance for bark continuity.
Junction Flow Blend Distance CmDistance from a child branch start over which shading orientation/phase eases from parent-aligned values into local branch values.
Shading Flow History WindowHistory window used only by the shading frame. Larger values produce calmer bark/grain flow.
Shading Flow Max Forward Delta DegMaximum shading-frame forward rotation per ring in degrees. Lower values reduce abrupt flow pivots.
Shading Flow Max Seam Delta DegMaximum seam-phase rotation per ring in degrees for the shading frame.
Shading Flow Surface Blend StrengthSupport-normal blend strength for shading frame orientation. Keep low for stable bark flow.
Use Absolute Tree Flow UVEncode UV1.y as absolute accumulated distance across the parent-child vine hierarchy instead of restarting per branch.
Curvature Adaptive ThresholdCurvature-adaptive sampling threshold used for authored frame and ring placement. Lower values increase samples in curved areas.

Surface Interaction / Surface Seeking / Tracing

SettingDescription
Trace ChannelCollision channel for surface tracing
Use Secondary Trace ChannelUse a secondary trace channel as fallback
Secondary Trace ChannelSecondary collision trace channel used when the primary trace does not hit
Trace ComplexUse complex collision for surface tracing
Trace DistanceMaximum trace distance in centimeters used to find surfaces during crawling.
Surface Seek RadiusRadius to search for nearby surfaces
Surface OffsetOffset from the surface to place spline - This is applied uniformly across all the points regardless of tube radius
Use Radius-Adaptive OffsetApply a radius-adaptive offset at each point to maintain consistent burial depth.
Surface Burial Depth (cm)Surface burial depth offset in centimeters when radius-adaptive offset is enabled.

Surface Interaction / Wall Climbing / Advanced

SettingDescription
Wall Climb Vertical BiasBalance between vertical climbing and lateral spreading on wall surfaces.
Wall Lateral AttenuationMultiplier for lateral spread on wall surfaces. Lower values suppress sideways drift.
Wall Meander AttenuationMultiplier for meander strength while vines are on wall surfaces.
Wall Seeking BiasBias toward nearby walls when launching growth from flat surfaces.
Wall Seeking Search RadiusMaximum wall-search distance used when biasing vine spawn direction toward walls.
Floor Phase Wall Seek SegmentsNumber of early flat-surface segments that actively steer toward the nearest wall.
Floor Phase Wall Seek StrengthSteering strength for floor-phase wall seeking.

Surface Interaction / Edge Handling

SettingDescription
Enable Edge RoundingInsert an edge-rounding point on sharp surface transitions so vines wrap around corners instead of cutting through them.

Surface Interaction / Edge Handling / Advanced

SettingDescription
Edge Detection ThresholdNormal-delta threshold used to detect an edge transition between crawl steps. Lower values detect gentler edges.
Edge Search IterationsBinary search iterations used to locate the edge point more precisely.
Edge Rounding Bisector ScaleScale applied to bisector displacement when placing rounded edge points.

Surface Interaction / Anti-Double-Back

SettingDescription
Enable Anti Double BackPrevent vines from reversing direction or looping back on themselves during crawl growth.
Anti Double Back Max Turn Angle DegMaximum turn angle in degrees allowed per segment before anti-double-back logic intervenes.
Anti Double Back Min Progress DotMinimum forward progress dot threshold for anti-double-back validation.
Anti Double Back Terminate On ViolationTerminate spline generation when anti-double-back rules are violated instead of clamping direction.
Anti Double Back Min Segments Before TerminationMinimum number of segments that must be generated before termination-on-violation can occur.
Anti Double Back Smoothing WindowWindow size used to smooth direction history for anti-double-back checks.
Anti Double Back Post Crawl ValidationRun anti-double-back validation after crawl adjustments as an additional safety check.
Anti Double Back Post Crawl LeniencyLeniency multiplier applied to post-crawl anti-double-back validation.

Surface Interaction / Self-Avoidance

SettingDescription
Enable Self Avoidance During GrowthEnable self-avoidance steering so vines deflect away from their earlier segments.
Self Avoidance RadiusRadius multiplier used when testing proximity to previous segments for self-avoidance.
Self Avoidance StrengthStrength of self-avoidance steering force applied during growth.

Surface Interaction / Surface Crawling / Advanced

SettingDescription
Crawl Sphere Radius MultiplierMultiplier for the crawl sphere radius relative to vine thickness
Max Crawl Iterations Per StepMaximum crawl iterations per growth step
Use Separate Query OffsetUse a separate query offset for crawl sweeps
Crawl Query OffsetOffset distance for crawl query sweeps
Use Curvature-Aware CrawlingShortens crawl step size as the surface normal changes more sharply, producing rounder wall/ledge transitions on faceted collision.
Curvature Crawl Min Step ScaleMinimum crawl step scale used on high-curvature transitions. Lower values hug corners more tightly.
Curvature Normal BlendBlend factor used when interpolating normal estimates for curvature-aware crawling.
Curvature Normal Sample Radius ScaleProbe radius scale used when sampling nearby normals for curvature-aware crawling.
Curvature Normal Samples Per SideNumber of normal probes sampled per side for curvature-aware interpolation.

Simulation

SettingDescription
Upward BiasBias toward upward growth. Higher values make vines climb more aggressively
Max Upward Angle DegMaximum upward angle vines can grow
Max Climb HeightMaximum climb height above start point. -1 = unlimited
Top BehaviorBehavior when a vine reaches the top of a surface
Top Detection ThresholdThreshold for detecting top surfaces (dot product with up vector)
Tip Droop StrengthStrength of downward droop near vine tips
Droop Start FractionFraction along vine length where droop begins
Lateral SpreadAmount of lateral spread/wandering
Vine Meander StrengthStrength of random meandering in vine paths
Stagnation LookbackIf the vine hasn't moved more than StagnationDistanceThreshold in this many consecutive segments, terminate or attempt to climb over
Stagnation Distance ThresholdMinimum distance the vine must travel over StagnationLookback segments. If less, the vine is considered stagnant. 0 = auto (based on step size)
Max Climb Over AttemptsNumber of attempts to climb over an obstacle before terminating

Shape / Junctions

SettingDescription
Enable Junction BulgingAdd thickness bulges at branch junctions
Junction Bulge StrengthRadius multiplier at branch junctions. 1.0 = no bulge, 1.2 = subtle, 1.5 = pronounced.
Junction Bulge DistanceFalloff distance for junction bulge, as a multiplier of the local radius. Higher = wider bulge zone.

Simulation / Avoidance Behavior

SettingDescription
Enable AvoidancePrevent vines from growing too close to each other
Avoidance RadiusDistance multiplier used for inter-vine avoidance checks.
Avoidance StrengthStrength of directional deflection applied by inter-vine avoidance.

Surface Interaction / Off-Surface / Aerial Growth

SettingDescription
Allow Aerial GrowthAllow vines to continue growing when no surface is found
Max Aerial SegmentsMaximum consecutive segments without surface contact

Surface Interaction / Hanging

SettingDescription
Hanging Anchor Traverse DistanceDistance budget (cm) used to establish initial hanging anchor traversal before committing to edge seeking.
Hanging Edge Seek StrengthStrength of edge/lip seeking while hanging support is still surface-adhered.
Hanging Span Gravity StrengthGravity dominance during detached hanging span phase.
Hanging Underside PreferencePreference for underside/ceiling supports when classifying and reacquiring hanging contact.
Hanging Reattach Search Radius ScaleMultiplier applied to hanging support search radius while detached and seeking reattach.
Hanging Lateral Swing StrengthStable low-frequency lateral swing strength applied during hanging spans.
Hanging Initial Anchor Max DistanceMaximum distance from the actor placement that the initial hanging anchor search may move the first committed spline point.

Surface Interaction / Surface Wrap-Around

SettingDescription
Allow Surface Wrap AroundAllow vines to wrap around convex surfaces instead of stopping at the top
Wrap Around SmoothnessSmoothness threshold for wrap-around detection. Higher = more permissive wrapping
Wrap Orbit StrengthStrength of circumferential orbit intent while wrapping around support geometry.
Wrap Inward AdherenceHow strongly wrapping pulls inward toward the detected support during orbit.
Wrap Forward CarryForward carry blended into orbit movement to prevent static looping.
Wrap Support Search RadiusMultiplier for support-frame search radius relative to current crawl seek radius.
Wrap Desired Coverage TurnsDesired number of turns to cover before reducing strict orbit dominance.
Wrap Corner Commit StrengthHow strongly wrapping commits across convex support transitions and edge turns.
Use Wrapping Topology OverridesApply wrapping-only runtime topology and contact overrides without changing stored preset values.
Wrap Parent Count ScaleRuntime scale for internally generated parent count in wrapping mode.
Wrap Primary Count ScaleRuntime scale for primary child count in wrapping mode.
Wrap Secondary Count ScaleRuntime scale for secondary child count in wrapping mode.
Wrap Target Segment Length ScaleRuntime scale for parent/primary/secondary target segment length in wrapping mode.
Wrap Meander ScaleRuntime meander scale in wrapping mode to keep wraps tighter.
Wrap Surface Burial Depth OverrideWrapping-only runtime burial-depth target when burial override is active.
Wrap Disable Burial DepthWhen enabled, wrapping forces effective burial depth to zero for tighter visible support contact.
Wrap Crawl Radius ScaleRuntime scale for crawl/support search radius in wrapping mode.
Wrap Extra Edge Search IterationsAdditional edge-search refinement iterations for wrapping mode.

Branching / Spawn Spacing / Crowding

SettingDescription
Enable Spawn Density CheckCheck density at spawn locations and skip branches in crowded areas
Spawn Density Radius MultiplierRadius multiplier used when counting nearby splines to determine crowding.
Spawn Density Max CountMaximum nearby spline count allowed at a spawn location before the spawn is skipped.

Branching / Validation

SettingDescription
Enable Child Orientation Sanity ValidationValidate child branch orientation against sampled support normals before accepting the branch.
Child Orientation Validation Min SamplesMinimum number of orientation-validation samples taken along each child spline.
Child Orientation Validation Max SamplesMaximum number of orientation-validation samples taken along each child spline.
Child Orientation Validation Reject FractionReject child spline when the fraction of failed orientation samples exceeds this threshold.
Child Orientation Up Surface Min DotA sample is considered suspicious when abs(dot(Frame.Up, SupportNormal)) is below this threshold.
Child Orientation Right Surface Max DotA sample is considered suspicious when abs(dot(Frame.Right, SupportNormal)) is above this threshold.

Editor

SettingDescription
Auto Rebuild In EditorAutomatically regenerate vines in the editor when settings change.
Hide Disabled SettingsHides all settings that can only be modified when expert mode is enabled.
Auto Rebuild Debounce SecondsDelay in seconds before auto-rebuild triggers after an editable change.
Draw Debug FramesDraw debug frames/axes along generated spline points in the editor viewport.
Draw Debug Shading FlowDraw shading-flow diagnostics (forward/up vectors plus seam/twist/flow labels) from the authored flow cache.
Shading Flow Debug Label StrideLabel stride for shading-flow debug text. Lower values draw more labels.

Editor / Logging

SettingDescription
Log Generation StatsLog high-level generation statistics after each build.
Log Spline Creation DetailsLog detailed per-segment decisions during CreateSpline. WARNING: Very verbose.

Editor / Debug

SettingDescription
Debug Use Linearized Centerline For MeshingDebug override: build mesh RM frames from a temporary linearized centerline sampled from authored spline points (bypasses spline interpolation tangents and tangent smoothing/clamping).
Debug Use Base Taper Only For RadiusDebug override: compute radius from base taper only (StartRadius * Lerp(1,Taper,Alpha), then clamp to MinGeneratedRadius). Disables advanced taper, tip taper, length thickening, organic noise, and junction bulging.
Debug Hard Bypass Ring Phase ContinuityDebug override: hard-bypass ring phase continuity. Forces SeamAngleRadians=0, TwistOffset=0, and UV1WrapPhaseOffset=0 so UV1 uses plain cylindrical wrap (UV1.x=BaseU, UV1.y=FlowDistance/100).
Debug Use UV0 For Tangent ComputationDebug override: compute mesh tangents from UV0 instead of UV1 flow unwrap.
Debug Bypass Final Normals Tangents GenerationDebug override: bypass final mesh normal/tangent generation and use authored ring-frame vectors (UV2 encoded forward + color RG encoded surface normal) for preview shading vectors.
Use Legacy Preview Payload ModeDebug preview mode: use legacy preview-only payload rewrite/material flags instead of production payload/material contract.
Debug Disable Append Turn ClampDebug override: disable final append-time per-point turn clamp in TryAppendVinePointWithSegmentHardCap.
Debug Disable Segment Hard Cap ClampDebug override: disable append-time segment hard-cap clamp/termination in TryAppendVinePointWithSegmentHardCap.
Debug Disable Final Vine Point SmoothingDebug override: disable authored vine-point smoothing pass before final path freeze.
Debug Disable Final Vine Point DeduplicationDebug override: disable authored vine-point deduplication pass before final path freeze.
Debug Disable Final Vine Surface Conformance PassDebug override: disable final surface-conformance pass on authored vine points.
Debug Disable Final Vine Kink RegularizationDebug override: disable final single-point kink regularization pass on authored vine points.
Debug Bypass Final Vine Authored QC RejectionDebug override: bypass final authored-point QC rejection and accept splines that would otherwise fail late-stage authored checks.
Debug Disable Late Pass PruningDebug override: run post-mesh QC analysis and logging, but do not prune child splines during the late pass.
Log Wrap DiagnosticsLog wrap runtime diagnostics including phase, confidence, orbit sign, and support reacquire/corner events.
Draw Wrap Support FramesDraw detected wrapping support frames (axis/normal/tangent) with phase color coding.
Log Hanging DiagnosticsLog hanging runtime diagnostics including support classification, phase transitions, detach/reattach reasons, and edge-seek confidence.
Draw Hanging Support DebugDraw hanging support normals, edge-seek direction, detach/reattach points, and per-phase debug colors.

Surface Interaction / Attraction

SettingDescription
Attraction ActorsOptional attraction actors whose distributed points can pull generated vines toward them during growth.
Attraction StrengthHow strongly attraction points influence vine growth. 0 disables the system.
Attraction RadiusMaximum distance from an attraction point at which vines are influenced.

Surface Interaction / Attraction / Advanced

SettingDescription
Attraction Falloff ExponentFalloff exponent for attraction weighting. Higher values make the pull more localized.
Attraction Affects Guide SplineAllow attraction to influence the guide/parent vine during growth in addition to child tiers.

Barrier Actor Reference

The Barrier Actor generates strand-based organic barriers across openings. It includes pattern, anchor, shaping, flow, export, and editor visualization controls.

Main Actions

SettingDescription
Build NowBuild the generated mesh from the current settings.
Regenerate MeshRegenerate the generated mesh from existing barrier spline points.
ClearClears all generated barrier splines and mesh.
Create Runtime Growth ActorExport barrier spline data to a runtime growth actor for seal and unseal playback.
Open DocumentationOpen the Procedural Barrier Generator documentation.

Components

SettingDescription
RootRoot scene component for the actor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Opening VolumeDefines the opening or region used by the barrier generator. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Generated Mesh ComponentPrimary dynamic mesh component used to display the generated result in-editor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Strands ContainerContainer for generated barrier strand splines. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

Components / Preview

SettingDescription
Preview Proc Mesh ComponentEditor preview procedural mesh component used for preview and solo export visualization. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

Components / Debug

SettingDescription
Placement Preview BillboardBillboard used to show actor placement/orientation in the editor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

General

SettingDescription
PatternBarrier strand generation style. Curtain = mostly vertical, Lattice = adds lateral links, Organic = irregular web.
Anchor ModeWhere primary strands are anchored around the opening.
Endpoint ModeHow primary strands choose their targets in the opening.
Expert ModeShow advanced controls throughout the barrier details panel.

General / Advanced

SettingDescription
Random SeedRandom seed for deterministic barrier generation.

Opening

SettingDescription
Seal CoverageOverall blocked coverage. Lower values intentionally leave larger holes.

Opening / Advanced

SettingDescription
Gap NoiseRandomly perturbs strand spacing to create uneven openings and gaps.
Sag AmountDownward sag in cm applied to generated strands.
Strand NoiseRandom point jitter in cm for each generated strand point.

Generation

SettingDescription
Strand CountBase number of primary strands before coverage filtering.

Generation / Advanced

SettingDescription
Cross Link DensityControls how many cross-links connect nearby strands.
Target Segment LengthTarget spacing in cm between generated spline points.

Shape

SettingDescription
Strand ThicknessStarting strand radius in cm.

Shape / Advanced

SettingDescription
Strand TaperPer-strand taper from base to tip.
Strand Tip Taper MultiplierAdditional taper multiplier at strand tips.
Cross Link Thickness ScaleThickness multiplier for cross-link strands relative to primaries.
Min Generated RadiusGlobal minimum radius clamp in cm.
Use Advanced Taper CurveEnable advanced taper curve shaping.
Taper Curve PowerPower for advanced taper shaping.
Enable Organic Thickness VariationEnable organic thickness variation along strands.
Organic Thickness Noise StrengthStrength of organic thickness noise.
Organic Thickness Noise FrequencyFrequency of organic thickness noise along strands.
Use Length Based ThickeningScale strand thickness based on strand length.
Length Thickness ScaleHow much longer strands thicken relative to shorter strands.
Enable Junction BulgingEnable localized bulging near authored junction distances.
Junction Bulge StrengthBulge multiplier around junction zones.
Junction Bulge DistanceDistance in normalized spline space over which bulging fades.

Flow

SettingDescription
Enable Hierarchical Flow InheritanceUse a dedicated shading/UV flow frame and parent-attachment inheritance for strand continuity.
Use Absolute Tree Flow UVEncode UV1.y as absolute accumulated distance across the parent-child strand hierarchy instead of restarting per strand.

Flow / Advanced

SettingDescription
Junction Flow Blend Distance CmDistance from a child strand start over which shading orientation/phase eases from parent-aligned values into local strand values.
Shading Flow History WindowHistory window used only by the shading frame. Larger values produce calmer flow.
Shading Flow Max Forward Delta DegMaximum shading-frame forward rotation per ring in degrees. Lower values reduce abrupt flow pivots.
Shading Flow Max Seam Delta DegMaximum seam-phase rotation per ring in degrees for the shading frame.
Shading Flow Surface Blend StrengthSupport-normal blend strength for shading frame orientation. Keep low for stable flow.
Curvature Adaptive ThresholdCurvature-adaptive sampling threshold used for authored frame and ring placement. Lower values increase samples in curved areas.

Mesh

SettingDescription
Barrier MaterialMaterial assigned to generated barrier mesh.

Mesh / Advanced

SettingDescription
Tube Radial SegmentsRadial subdivisions per tube ring.
Tube Axial SubdivisionsMultiplier for axial sample density per authored spline segment (1 = baseline).
Cap Tube EndsClose strand start/end with cap geometry.
Tube End Cap TaperTip cap taper amount.
Smoothing TypeOptional smoothing for generated barrier mesh.
Smoothing IterationsSmoothing iteration count.
Smoothing StrengthSmoothing strength.
Smooth Boundary VerticesAllow smoothing to move mesh boundary vertices.
Preserve Junction VerticesPreserve attachment/junction vertices during smoothing.

Animation

SettingDescription
Bake Growth Animation DataBake per-vertex growth timing into UV3 for runtime seal/unseal playback.
Runtime Export QualityControls authored-frame sample density in runtime export data. Full keeps all authored samples.

Animation / Advanced

SettingDescription
Primary Growth FractionFraction of timeline allocated to primary strands.
Cross Link Growth FractionFraction of timeline allocated to cross-link strands.

Export

SettingDescription
Generated Asset FolderFolder path where generated growth data assets will be saved.
Export ScopeSelects which strand scope is used for runtime export.
Export Tier SelectionTier used when export scope is set to Selected Tier.
Export Spline SelectionOptional single strand selection for export. 'All Splines' exports the full generated barrier.
Export Ancestor Chain As Combined AssetWhen exporting branch + ancestors, also include one combined runtime export chain.
Export Ancestor Chain As Separate AssetsReserved for parity with root/vine export controls.

Editor

SettingDescription
Auto Rebuild In EditorAutomatically regenerate the barrier in the editor when settings change.
Auto Rebuild Debounce SecondsDelay in seconds before auto-rebuild triggers after an editable change.
Draw Debug FramesDraw debug frames/axes along generated spline points in the editor viewport.
Show Generated Strand Splines After BuildKeep generated strand splines visually emphasized after build for debugging.
Draw Debug Shading FlowDraw shading-flow diagnostics (forward/up vectors plus seam/twist/flow labels) from the authored flow cache.
Shading Flow Debug Label StrideLabel stride for shading-flow debug text. Lower values draw more labels.

Editor / Logging

SettingDescription
Log Generation StatsLogs branch/mesh counts after each build.
Log Spline Creation DetailsLog detailed per-strand flow continuity values during mesh generation. WARNING: Very verbose.

Editor / Debug

SettingDescription
Debug Use Linearized Centerline For MeshingDebug override: build mesh RM frames from a temporary linearized centerline sampled from authored spline points (bypasses spline interpolation tangents and tangent smoothing/clamping).
Debug Use Base Taper Only For RadiusDebug override: compute radius from base taper only (StartRadius * Lerp(1,Taper,Alpha), then clamp to MinGeneratedRadius). Disables advanced taper, tip taper, length thickening, organic noise, and junction bulging.
Debug Hard Bypass Ring Phase ContinuityDebug override: hard-bypass ring phase continuity. Forces SeamAngleRadians=0, TwistOffset=0, and UV1WrapPhaseOffset=0 so UV1 uses plain cylindrical wrap (UV1.x=BaseU, UV1.y=FlowDistance/100).
Debug Use UV0 For Tangent ComputationDebug override: compute mesh tangents from UV0 instead of UV1 flow unwrap.

Attraction Actor Reference

The Attraction Actor scatters attraction points either inside a box volume or across a target actor surface. Root and Vine actors can use those points to bias growth.

Main Actions

SettingDescription
Distribute Attraction PointsGenerate or refresh attraction points using the current scatter settings.
Clear Attraction PointsRemove all generated attraction points from this actor.
Get Attraction PointsGet the generated world-space attraction points.

Components

SettingDescription
RootRoot scene component for the actor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Scatter BoundsBox component used by the Attraction Actor for area scattering. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

Components / Editor

SettingDescription
Placement Preview BillboardBillboard used to show actor placement/orientation in the editor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Point Preview ComponentEditor preview component used to display generated attraction points. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

Scatter

SettingDescription
Scatter ModeHow attraction points are generated: inside this actor's box bounds or sampled from a target actor surface.
Target ActorActor whose static mesh surfaces will be sampled for attraction points.
Point CountIf greater than zero, use this exact point count instead of deriving it from point density.
Point Density Per10k Sq CmFallback density used when PointCount is zero. Units are points per 10,000 cm^2 of sampled surface area.
Box ExtentHalf extents of the box area used by Area / Water Surface mode.
Project Area Points DownwardWhen enabled, random XY samples from the box are projected downward onto the world using line traces. Useful for water bodies and terrain surfaces.
Projection Trace DistanceTrace distance used when projecting area-box points downward.
Surface Offset CmOffset applied along the sampled surface normal after the point is generated.
Random SeedSeed used for deterministic point distribution.
Attraction PointsCurrent world-space attraction points used by PRG generators that reference this actor.

Runtime Growth Actor Reference

Runtime Growth Actors consume exported Growth Data and play authored growth forward or backward in game or in editor preview.

Main Actions

SettingDescription
Play GrowthStart growing forward from current progress.
Play Growth From StartStart growing forward from 0.0.
Reverse GrowthStart shrinking (reversing) from current progress toward 0.0.
Reverse Growth From EndStart shrinking from 1.0 toward 0.0.
Stop GrowthPause playback at the current progress.
Reset GrowthReset progress to 0.0 and stop playback. Mesh becomes invisible.
Set Fully GrownInstantly set growth to 1.0 (fully visible). Stops playback.
Set Growth ProgressDirectly set the growth progress. Stops playback.
Play In DirectionPlay in the specified direction from the current progress.
BuildRebuild runtime preview mesh from GrowthData now, even when automatic editor preview rebuilds are disabled.

Components

SettingDescription
Mesh ComponentPrimary runtime dynamic mesh component for committed grown geometry. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Proc Mesh ComponentProceduralMesh runtime render path for committed grown geometry. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Tip Mesh ComponentSecondary runtime dynamic mesh component used for the active growth tip. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Tip Proc Mesh ComponentProceduralMesh runtime render path for the active growth tip. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>
Proximity TriggerSphere trigger used for proximity-driven playback. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

Components / Editor

SettingDescription
Placement Preview BillboardBillboard used to show actor placement/orientation in the editor. <span class="w3-text-grey">(Read-only, Blueprint read-only)</span>

Data

SettingDescription
Growth DataThe exported growth data asset from the authoring actor (Root, Vine, or Barrier).
Source TypeWhether this growth data was authored from a Root, Vine, or Barrier actor.
Source Actor NameName of the authoring actor that produced the currently assigned growth data.
Total BranchesRead-only branch count contained in the currently assigned growth data.

Timing

SettingDescription
Growth DurationTotal seconds for the full growth animation from 0%% to 100%%.
Playback RateSpeed multiplier applied on top of GrowthDuration. 2.0 = twice as fast.
EasingEasing function applied to the growth timeline.
Custom Easing CurveCustom easing curve. X axis = raw progress (0-1), Y axis = eased progress (0-1).
Start DelaySeconds to wait before the animation begins after PlayGrowth is called.
Auto Play On Begin PlayAutomatically start growth animation on BeginPlay.
LoopAutomatically restart growth when it finishes.
Ping PongWhen looping, reverse direction each cycle (grow then shrink then grow...).
Growth DirectionDirection of growth when using AutoPlay or editor preview scrubbing.

Timing / Advanced

SettingDescription
Use Hierarchical Runtime Branch SchedulingEnable runtime-derived hierarchical branch timing. When disabled, playback uses authored BranchSpawnDelay/BranchGrowthDuration from GrowthData.
Log Runtime Branch SchedulingLog authored and runtime branch scheduling values when playback caches are rebuilt.

Editor / Debug

SettingDescription
Log Branch Schedule DiagnosticsLog per-branch authored, attachment, and scheduled timing diagnostics after rebuilding runtime schedule.

Editor Preview

SettingDescription
Editor Preview ProgressPreview the growth state in the editor. 1.0 = fully visible. Adjusting this in the editor will update the mesh preview.
Enable Editor Preview RebuildsEnable expensive editor preview mesh rebuilds in construction/property edits. Keep disabled for normal editing and enable only when intentionally previewing GrowthData.

Trigger

SettingDescription
Use Proximity TriggerEnable the built-in proximity sphere trigger. Disable this if you want to trigger growth from your own Blueprint/code.
Trigger RadiusRadius of the proximity trigger sphere (in cm).
Only Play OnceOnly allow the growth animation to trigger once.
Trigger DirectionDirection to play when triggered by proximity.

State

SettingDescription
Growth ProgressCurrent growth progress from 0.0 (invisible) to 1.0 (fully grown).
Is PlayingEnables or disables this feature.
Is ReversingEnables or disables this feature.
Has CompletedEnables or disables this feature.
Has ReversedEnables or disables this feature.

Events

SettingDescription
On Growth FinishedFired when forward growth reaches 1.0.
On Growth ReversedFired when reverse growth reaches 0.0.
On Growth StartedFired when playback starts (forward or reverse).
On Growth StoppedFired when playback is stopped via StopGrowth().
On Growth Progress ChangedFired every tick while playing. Passes current progress.

Rendering

SettingDescription
Max Displacement CmMax displacement magnitude in cm. Must match your material's WPO displacement range.
Animation Shadow ModeShadow update mode during growth animation.
Shadow Update IntervalMinimum interval between shadow map updates during animation.
Cast ShadowsWhether this mesh casts shadows. Disable for best animation quality.
Cast Two Sided ShadowsTwo-sided shadows reduce self-shadowing on thin tube geometry.
Disable Indirect Shadows During AnimationDisable indirect shadow casting to reduce Lumen shadow artifacts during animation.

Troubleshooting

Nothing appears after Build

  • Make sure you are using an authoring actor, not only a Runtime Growth Actor.
  • Check that the current preview/build mode is not hiding the generated hierarchy.
  • If using an external spline workflow, confirm that the assigned external actor/component is valid.

Generation is too slow while iterating

  • Start from presets and block out shapes at lower detail before moving to full-quality settings.
  • Reduce branch counts, segment density, and smoothing complexity while iterating.
  • Prefer Static Mesh export for final non-animated environment work.

Runtime playback is heavy

  • This is expected on dense authored setups. Runtime playback is the most expensive path in the plugin.
  • Reduce authored complexity at export time where possible, or reserve runtime playback for hero moments and gameplay beats.

Surface adherence is not behaving as expected

  • Check the relevant trace/surface/crawling settings for the current actor.
  • Verify that the target geometry blocks the expected collision channels.
  • When working against complex meshes, the complex-trace options may be necessary for accurate adhesion.

Textures do not follow branch direction correctly

  • Use a flow-aligned material that reads the directional payload channels instead of a generic world-aligned shader.
  • Confirm your material is decoding UV2 / Vertex Color directional data as intended.

Back to top

Procedural Root Generator