ProInstance Tools Plugin for Unreal Engine 4 & 5
Current version: 1.28

Documentation will be updated and improved over time.

Installing the Plugin

Open Epic Games Launcher, head to Unreal Engine > Marketplace or Library tab and find ProInstance Tools Plugin. Press “Install to Engine” button and choose the appropriate engine version for you.

Open your project the engine version of which have the plugin already installed and head to Plugins tab. Find the ProInstance Tools Plugin and set it enabled by checkbox. The engine will prompt to restart itself. Restart the editor and you will have plugin enabled and ready to work.


After enabling the plugin you will notice a new category inside a Place Mode tab named ProInstance Tools. Inside it there will be all available ProInstance Types ready to be drag’n’dropped to your scene.

You now will be able to spawn meshes or custom actors procedurally using these ProInstance types. Also, please be sure to check out the demo map with usage examples at “ProInstanceToolsPlugin Content/Maps”.

All ProInstance settings are unified and constists of two major caterories:

  • ProInstance Type Settings – depends on what type you’re having selected
  • ProInstance Main Settings – unified block of settings which all ProInstance Types have (including ProInstance Functions)

ProInstance Main Settings (Unified Settings)

Unified Settings are the block of settings which all ProInstance Types have. Let’s break it all down.

Instance TypeSets a component type for instances
InstancesUser-defined array of instances
Instance Global SettingsGlobal instance tranform and randomization settings
Can be overwritten by Instance Local Settings
Enable CollisionWhether to have an actor collision
Instance Self OverlapDefines what to do when spawned instance is overlapping neighbor instance
Currently working only with Static Mesh instance type
Start Cull DistanceStart distance of culling
Works with Instanced Static Mesh or Hierarchical Instanced Static Mesh
End Cull DistanceEnd distance of culling
Works with Instanced Static Mesh or Hierarchical Instanced Static Mesh
SeedRandomization seed
Snapping & Aligning
Surface SnappingSnaps instance’s location to a surface below
Surface AligningAligns instance’s rotation to a surface angle below
Ignore Self CollisionIgnores self collision of instances when casting line traces for Surface Snapping
Line Tracing DepthDistance of line traces when casting them for Surface Snapping
Actors To IgnoreIgnore collision of user-defined actors when casting line traces for Surface Snapping
Draw Debug LineWhether to draw debug line traces
Draw TimeTime to draw debug line traces

Each element of Instances array has following settings.

MeshUser-defined Static Mesh
Actor ClassUser-defined Actor Class
Overwrite MaterialsCan overwrite Static Mesh materials if enabled
Each array element represents material slot of selected Static Mesh
Instance Local SettingsLocal instance tranform and randomization settings for current instance
Can overwrite Instance Global Settings if enabled

Instance Local Settings and Instance Global Settings has same following settings.

MobilitySet the custom mobility
Location OffsetLocation offset of a initial instance location
Location Range MinMinimal random location in range
Location Range MaxMaximum random location in range
Rotation OffsetRotation offset of a initial instance rotation
Rotation TypeRotation Type.
“Random From Range” chooses a rotation value between defined Min and Max range.
“Random From Array” chooses defined values from Rotation Array.
Rotation Range MinMinimal random rotation in range
Rotation Range MaxMaximum random rotation in range
Rotation ListContains the list of rotation values to choose from.
Rotate To ActorRotate instance towards an user-defined Actor
Rotate To Actor By AxesSelect an axes by which instance will be rotated
Uniform ScaleWhether to have uniform scaling for instance or not
Min Uniform ScaleMinimal random uniform scale
Max Uniform ScaleMaximum random uniform scale
Min ScaleMinimal random scale
Max ScaleMaximum random scale
Cast ShadowsWhether to cast shadows
Enable Custom CollisionEnable Custom Collision Profile
Custom Collision Profile NameCustom Collision Profile Name
Spawn ChanceChance to spawn this instance from 0% to 100%
Instance LengthArbitrary instance physical length which can be used by ProInstance Types with splines

ProInstance Types

Here’s a list of all ProInstance Types and their settings. These are main actors which you will use to have procedural mesh placement.


Spawns instances by a circle pattern.

Num InstancesNumber of instances to spawn
AngleAngle of a circle pattern
RadiusRadius of a circle pattern


Spawns instances by a 3D grid pattern.

Num InstancesNumber of instances to spawn in a 3D grid pattern
SpacingDistance between instances in a 3D grid pattern


Spawns instances linearly by a spline path.

Placement TypeWhether to set instance location by arbitrary Spacing or by a Spline Point
SpacingDistance between instances by a spline
Max InstancesMaximum number of instances to spawn
Use Instance LengthWhether to use length of an instance summed up with Spacing
Follow Spline RotationWhether to have initial instance rotation by a spline rotation
Closed SplineClosed Spline


Spawns instances randomly along a spline path.

Num InstancesNumber of instances to spawn
Use Spline ScaleWhether to use spline scale for instance placement
Follow Spline RotationWhether to have initial instance rotation by a spline rotation
Closed SplineClosed Spline


Spawns instances randomly within a bound.

Num InstancesNumber of instances to spawn
Placement TypeWhether to use Box or Sphere as a spawn container
Box SizeBox Size
Box Pivot PointBox Pivot Point
Sphere RadiusSphere Radius

ProInstance Functions

Bake InstancesBakes procedually placed Components to Actors
Randomize SeedSet random Seed value and re-run the Construction Script
UpdateRe-run the Construction Script

Supported Plugin Versions

Here’s a table of latest supported Plugin version for each Engine Version.

Engine Version4.
Latest supported Plugin version1.



  • Initial release


  • Fixed world rotation on all instances
  • Fixed offset location by Z axis in “Path” and “PathScatter”
  • Custom icons for all “ProInstances”
  • Fixed local rotation for “Circle”
  • Default cube material changes for “softer look”
  • Plugin icon changed


  • Added “Instance Global Settings” option (requested)
  • Added “Rotate to Actor” option (requested)
  • Added new functions: “Update”, “Set Random Seed”
  • Added LOD1 to default cube
  • Fixed “Cast Shadow” option if type is Static Mesh
  • Fixed error when static lighting wasn’t saved on instances properly
  • Altered Overview map design


  • Fixed incorrect behaviour when using “Rotate To Actor”
  • Removed “Rotation Type” from ProInstance_Circle


  • Added “Overwrite Materials” functionality per instance
  • Added Debug Line Trace settings


  • Added new “Bake Instance” function
  • Added new “Mobility” variable
  • Added new “Custom Collision Profile Name” variable
  • Added more platforms to Whitelist (IOS, Switch, Xbox One, PS4)
  • Renamed “Set Random Seed” function to “Ranzomize Seed”
  • Removed class icons to keep consistent look to editor
  • Removed unused assets in “DemoRoom” folder


  • Added “Instance Self Overlap” dropdown menu, so overlapping of instances can be disabled
  • Fixed double instance spawn in ProInstance_Path
  • Fixed component replication bug in multiplayer
  • Fixed linetracing length on ProInstance_Scatter in sphere mode
  • Fixed removal of instances when linetrace for snapping don’t hit anything
  • Cleaned up blueprint function library
  • Commented all variables, so hints on variables are now visible
  • Updated Overview map with new examples


  • Tried to fix a flawed refactoring of a blueprint function library from 1.21


  • Fixed a flawed refactoring of a blueprint function library from 1.21
  • Fixed weird bug with an unexpected 1 cm height addition when surface snapping is off


  • Fixed a logical error in linetracing function which was preventing spawning instances in air


  • Fixed “not initialized properly” variables inside structs


  • Fixed “not initialized properly” Enum variable “Rotate To Actor By Axes”


  • Added option to choose random rotation from a list of custom values
  • Fixed “LogPython: Warning …”
  • Fixed occasional reset of static light baking data


  • Added editor icon for a Custom Category
  • Updated copyrights in source code