Skip to content

Procedural Scattering & Placement Suite

Module: Art · Category: Scatter · Tool ID: ProceduralScatterSuite

A five-tab environment art workflow for raycast-based scatter and drop placement. Drop & Place drops meshes from height and lets them land naturally on surfaces. Drop Controls adds PolygonFlow-style jitter / reset / duplicate / mobility-toggle. Scatter Recipe does ray-cast area scatter with slope and collision filters. Rule Presets gives one-click setups for Foliage, Debris, Rock, Crowd, Interior. Backend & Bake bakes the scattered actors to HISM for runtime efficiency.

Screenshot 01 — Hero shot — Suite open on Drop & Place tab, with several rocks scattered on a terrain via the drop, viewport visible behind.


  • Environment dressing — rocks, debris, foliage, crowd actors, interior props
  • Quick natural-looking placement that physics simulation can’t reasonably do at runtime
  • Bulk scatter into HISM for ten-thousands of instances at runtime cost of one
  • Iterative dressing pass — drop, jitter, reset, refine
  • Don’t expect interactive viewport brush painting — that’s planned for a Phase 2 update with a custom EdMode. V1 is button-driven.
  • Don’t use this for runtime spawn — it’s offline-authoring, baking to HISM at the end

  1. Open the EQLabs Hub and search for Scatter (or browse to Art → Scatter)
  2. Click the tool card
  3. Use the tab bar: Drop & Place, Drop Controls, Scatter Recipe, Rule Presets, or Backend & Bake

Drop meshes from a configurable height and let them land on surfaces.

FieldWhat it doesDefault
Physics Drop Mesh pickerThe mesh to drop(empty)
Drop CountHow many instances to drop10
Drop Height OffsetHeight above the target surface to spawn500 cm
Scale Min / MaxRandom scale range0.8 / 1.2
Scatter RadiusHorizontal radius around the drop point500 cm
Orientation ModeRealistic / Randomized / LockedRealistic
Drop & SimulateSpawns the drop and runs a brief sim
ModeWhat it does
RealisticNatural rotation, changes based on collision
RandomizedRandom initial rotation; doesn’t change on collision
LockedMaintain original orientation regardless of surface

Tab 2 — Drop Controls (PolygonFlow-style)

Section titled “Tab 2 — Drop Controls (PolygonFlow-style)”

Manipulate dropped instances after the drop.

ActionWhat it does
JitterRandomly perturbs positions of dropped actors
Reset PositionsRestores initial drop transforms
Duplicate DroppedDuplicates the dropped set
Select All DroppedSelects all dropped actors in the viewport
Toggle StaticToggle Static / Dynamic mobility per actor
Clear DroppedRemoves all dropped actors
Undo Last DropUndoes the most recent drop operation

Screenshot 02 — Drop Controls — Tab 2 with several dropped actors visible in viewport, Jitter / Reset / Duplicate buttons in the panel.


Ray-cast area scatter with slope and collision filtering.

FieldWhat it doesDefault
Scatter Mesh pickerThe mesh to scatter(empty)
DensityInstances per area unit100
Min / Max ScaleRandom scale range0.8 / 1.2
Random RotationToggle random Yaw rotationtrue
Slope Max (deg)Skip surfaces steeper than this45
Collision Avoid RadiusMinimum distance between instances50 cm
Scatter Area RadiusTotal scatter area2000 cm
Execute ScatterRuns the scatter

Built-in scatter presets for common environment-art use cases.

PresetTuned for
FoliageHigh density, low scale variation, steep slope tolerance
DebrisMedium density, high scale variation, irregular distribution
RockLow density, high scale variation, gravity-aware
CrowdEven spacing, low scale variation, vertical alignment
InteriorTight spacing, no rotation, surface-snapped

Pick a preset from the list — it pre-fills the Scatter Recipe tab’s parameters. Tweak from there.


Bake scattered actors to Hierarchical Instanced Static Meshes for runtime efficiency.

ActionWhat it does
Bake to HISMConverts every scattered actor into instances of a single HISM component

After baking, draw call cost drops from N (one per actor) to 1 (one per mesh, regardless of instance count).


Every tab persists its settings to [Project]/Saved/EQLabs/Settings/ProceduralScatterSuite.json.


  • In-place actor placement — Drop and Scatter create real AStaticMeshActor instances in the level
  • HISM baking — Bake to HISM converts them to a single Hierarchical Instanced Static Mesh
  • Undo — operations are wrapped in ScopedTransaction. Drop Controls’ Undo Last Drop is a dedicated action

  • Drop Height Offset matters500 cm is fine for most props; very tall objects need more headroom to settle naturally
  • Slope Max controls cliff scatter — at 45°, rocks won’t scatter on steep surfaces; raise to 90° for full coverage including walls
  • Collision Avoid Radius prevents instance overlap — set to roughly your mesh’s bounding radius for natural spacing
  • Bake to HISM is cheap at runtime, expensive at edit time — once baked, individual instances are harder to edit. Author first, bake last.
  • Display name is “Procedural Scattering & Placement Suite” — class and tool ID are ProceduralScatterSuite

  • Spline Asset Placer — for spline-driven distribution (roads, fences, pipes)
  • Foliage Placement Analyzer — analyze the foliage-specific side after scatter
  • Modular Kit Auditor (Modeling module) — validate placement after scatter

Report an issue with this tool

Opens our feedback form in a new tab with the tool name pre-filled.