# Procedural Root & Vine Generator 4.0.0

Unreal Engine 5.4–5.8 · Win64

PRG builds roots, vines, organic barriers and bridges in Unreal Editor. Keep the authoring actors while designing, export Static Meshes for fixed scenery, or export runtime actors for growth animation.

## Installation

Close Unreal Editor before installing the package for your engine version. For a manual installation, extract the archive into your project's Plugins/ProceduralRootGenerator folder, with ProceduralRootGenerator.uplugin directly inside that folder. Reopen the project, enable Procedural Root Generator under Edit > Plugins and restart if prompted. Building the source package requires a compatible C++ build toolchain.

Enable Show Plugin Content in the Content Browser. The plugin includes BP_PRG_RootActor, BP_PRG_VineActor, BP_PRG_BarrierActor, BP_PRG_Bridge_Actor and BP_PRG_AttractionActor, along with presets and the existing root/vine materials and textures. Detail meshes are supplied by you.

Select an actor to use its Details panel, or open Window > PRG for the dedicated tab. It provides the same main actions and follows actor or component selection. Quick view is a useful starting point; Expert Mode exposes additional controls.

## Build your first system

1. Place a Root or Vine actor near a mesh with query collision. Choose a preset and growth type.
2. Lock Seed while comparing settings. Check that the supporting mesh blocks the configured trace channel.
3. Click Generate Paths + Mesh. Adjust length, thickness and branching, then generate again if the layout needs changing.
4. Edit generated spline points when needed. Use Refresh Mesh to retain those edits while updating tube geometry or material mapping. Generating again replaces generated paths.
5. Use Export Static Mesh for fixed geometry or Export Runtime Actor for animation. Export actions require a nonempty preview and a successful last build. Refresh changed mesh settings before exporting.

Clear Generated removes generated paths, geometry and details while retaining generation settings. Preset changes and generation can replace authored results, so save the level before exploring alternatives.

## Choose the right actor

| Actor / mode | Placement and result |
| --- | --- |
| Root / Surface | Place near the support surface for roots that spread across it, including downward edge traversal. |
| Root / Climbing | Place near a wall. Roots climb supported surfaces and spread across supported flat tops. |
| Root / Cave / Underground | Place inside the cave just below its roof, with the actor's usual up direction toward the ceiling. Roots spread overhead and descend walls; eligible branches can run along the floor. It does not drill through ground from above. |
| Vine / Climbing | Place near vertical support for upward climbing. |
| Vine / Wrapping | Place near support for travel around surfaces and corners. |
| Vine / Hanging | Place near a ceiling underside or ledge. Supported growth transitions into hanging spans and may reattach. Use this mode for underside starts. |
| Barrier | Size and orient the opening volume, choose Curtain, Lattice or Organic Seal, then generate strands across it. |
| Bridge | Place AL/AR at End A and BL/BR at End B. Set span shape and structural/weave controls, then click Generate Bridge. |

Attraction actors provide saved points that eligible generators can seek. Detail Exclusion actors mask attachment placement with a box or spline corridor.

## Materials and geometry

Assign the included root/vine material instances or a compatible custom material. Radius-aware mapping adjusts bark density as the tube changes thickness. Bark Detail Radius Exponent defaults to 0.25; lower it toward zero for more constant physical feature size. Refresh Mesh after changing mapping settings.

Junction texture blending helps a child appear to grow from its parent. Both surfaces must be in the combined result for the transfer to work. Fusion is optional and off by default; it can add substantial geometry and build cost.

Start with Low or Medium Mesh Density. Density changes tube sampling, while length, strand count, branching and weave determine how much structure exists. Exporting a finished system removes the need to keep its generator active in the final scene.

## Import and place detail meshes

1. Select a Root, Vine, Barrier or Bridge and click Set Up Detail Meshes.
2. Use Choose Meshes for existing Static Mesh assets, or Import Mesh Files to open Unreal's asset importer. File imports go into /Game/PRG/DetailMeshes.
3. In the preview, set the mesh's source facing and up axes to perpendicular directions. Adjust scale and material assignments as needed. PRG uses +X as outward facing and +Z as the secondary up axis after calibration.
4. Click Save Setups to retain reusable setup assets. Click Add Setups to Generator to copy the calibrated rules into the selected actor. Existing matching setups retain their saved edits; applying rules does not create a live link between later setup edits and existing layers.
5. Enable the detail layers, tune placement and use Rebuild Detail Attachments to review them on the finished tubes.

For a mesh already under /Game, its setup is saved in a DetailSetups subfolder beside the mesh. File imports therefore use /Game/PRG/DetailMeshes/DetailSetups. Setups for plugin or engine meshes are saved under /Game/PRG/DetailSetups. Your imported meshes, materials and setup assets remain project content.

| Placement control | Use |
| --- | --- |
| Start Along Spline / Stop Along Spline | Fractions of each finalized spline's length. New rules use 0.05–0.8. Tip and junction exclusions can narrow that range further. Meshes are not clipped at the interval boundary. |
| Radius sizing and radius filters | Scale details with the local tube and limit placement to a chosen thickness range. |
| Exposed Surface / side placement | Choose the tube's exposed region or flanks. Both Sides suits shelf-like details on thick surface roots. |
| Facing Spread / Random Spin | Vary facing direction and rotation independently to avoid repeated alignment. |
| Flowers / Upward Lean | Blend the outward direction toward world up; World Up Bias controls the blend. Support-facing constraints still apply. |
| Distribution / spacing / count | Control coverage and cost. High-resolution meshes multiplied across many placements can make static bakes expensive. |

Static Mesh export merges the generated detail geometry and materials into the bake. Runtime output keeps instanced groups with appearance timing. Detail growth scales and reveals the placements; it does not add skeletal animation or wind. A complete static bake above five million triangles asks before proceeding; unattended exports above that limit stop with an error.

## Export growth animation

Root, Vine, Barrier and Bridge support both Runtime Animation Method choices:

- **Material / Shader** drives the compatible material from growth parameters without baking VAT textures.
- **Vertex Animation Texture** plays baked vertex data. Enable Bake Vertex Animation Texture before export, then choose VAT quality and texture dimensions appropriate to the asset.

Use Export Runtime Actor to save Growth Data and create the playback actor. Re-export after changing generated paths, mesh data, detail placement or baked timing. Runtime playback uses the exported data and does not rerun the generator.

Select the runtime actor to adjust duration, direction and playback controls. Growth Progress spans 0–1; use it to scrub the result. Build Preview explicitly reconstructs the preview even when automatic preview rebuilding is off. Animated-normal baking is currently unavailable; do not depend on the retained compatibility fields for that output.

For bridges, Growth > Bridge > Bridge Growth Mode chooses End A to End B, End B to End A or Both Ends to Middle, or retains the exported mode. The generator calls the last choice Both Banks to Middle. Reverse Growth reverses time and retracts the result; it does not switch banks.

Runtime export hides the mature source. To edit a bridge again, select its source and Generate Bridge, then hide the runtime copy while editing.

## Drive growth in Sequencer

1. Create a Level Sequence and add the exported runtime actor.
2. Add a float property track for Growth Progress.
3. Key 0 at the desired start and 1 at full growth. Add intermediate keys or reverse the curve for your timing.
4. Disable autonomous playback when the sequence should own timing. Scrub the sequence and confirm that both the body and attachments follow it.
5. Add a Cine Camera Actor and camera cuts, then record or render the sequence using your project's normal cinematic workflow.

Sequencer keys control progress directly rather than passing through autonomous easing. Test the saved sequence against the exported actor, not only against the editor generator preview.

## Trigger growth by proximity

Enable the runtime actor's proximity trigger and choose its radius and activation behavior. The built-in overlap policy accepts Characters, including a Character already inside the trigger when play begins. A plain Pawn or prop needs its own Blueprint or code trigger. The sphere is centered on the runtime actor origin, so verify its location for large systems.

For one-shot behavior, Reset Growth explicitly rearms the trigger. Stop alone does not rearm a consumed one-shot activation. Use playback events for gameplay responses rather than regenerating the authoring actor.

## Presets and upgrades

New and Overwrite save actor settings to the chosen shared preset table. The Restore Presets and Reset Actor action replaces built-in rows, keeps custom-named rows and resets the actor to its class defaults. Back up customized built-in rows first.

Before a plugin update, close Unreal and back up customized content. Editing assets inside the plugin can lead to those edits being overwritten by an update. Make project copies of materials, textures or preset tables and assign them explicitly when you want independent versions. There is no automatic content migration or customization merge.

Install matching engine assets; newer .uasset files are not backward compatible. Existing V3 actor paths and the saved Burrowing mode are retained. Regenerated paths may change because of corrected traversal and sampling. Keep old static/runtime exports when their precise appearance must remain unchanged; regenerate exports to use the V4 improvements.

## Troubleshooting

**The actor leaves a wall or fails to cross an edge.** Check support collision, the trace channel and the selected growth mode. Extreme thickness or a very tight turn may exceed clearance limits. Give the path more room or reduce its radius.

**Export is disabled.** Generate a nonempty preview and resolve any failed-build status. Refresh Mesh before exporting recent geometry changes.

**Details point the wrong way.** Check source facing/up calibration and the layer's orientation. Use Facing Spread for direction variation and Random Spin for rotation around the selected facing.

**The runtime actor stays fully grown.** Hide the mature source, check Growth Progress and the chosen Animation Method, and confirm that the material supports PRG growth. VAT playback also needs valid baked VAT data.

**Generation or export is too expensive.** Reduce structural count, total length, weave, density or attachment count. Use lower-cost detail meshes before merging them into a large static bake. Keep fusion off while iterating.

Full settings reference and support: https://www.embeddedtechno.com/pages/PRG/index.php
