Skip to content

Foliage Placement Analyzer

Module: Art · Category: EnvironmentArt · Tool ID: FoliagePlacementAnalyzer

Analyzes the active level’s foliage actors and reports per-foliage-type instance counts, total triangle contribution, draw call estimates, LOD/cull settings, and Nanite status. Flags high-impact foliage types — usually a small number of foliage entries that account for the majority of foliage cost.

Screenshot 01 — Hero shot — Tool open after analysis, reports list showing 5–10 foliage types with mixed severities, summary line with total instances and triangles.


  • Final pass on a foliaged level — finding the foliage type that’s secretly costing 80% of the budget
  • After importing a vegetation pack — seeing what you actually placed vs. what you intended
  • Performance pass on mobile / VR targets — flagging foliage that exceeds the platform’s instance/triangle budget
  • Verifying LOD and cull-distance settings across all foliage types
  • Don’t use this for non-foliage instanced meshes — it specifically inspects AInstancedFoliageActor. For general ISMC analysis, use Modular Kit Auditor (Modeling module).

  1. Open the EQLabs Hub and search for Foliage (or browse to Art → EnvironmentArt)
  2. Click the tool card
  3. Make sure your level with foliage is loaded
  4. Click Run Analysis

SectionWhat it does
Run Analysis buttonWalks every AInstancedFoliageActor in the active level
Search boxFilter reports by mesh name
Summary blockTotal instances, total triangles, total foliage types, warning/critical counts
Reports listPer-foliage-type row: mesh, foliage type, instance count, mesh tris, total tris, LOD count, cull distance, shadow flag, collision flag, Nanite flag, draw call estimate, severity, suggestions
SeverityMeaning
GoodBelow all thresholds, sensible LOD and cull settings
WarningHigh instance count or triangle total, or short cull distance with high instance count
CriticalCrossed multiple thresholds — usually the level’s biggest performance offender
ThresholdDefault
High Instance Count50,000
High Triangle Count5,000,000
Min Cull Distance5,000 cm

Screenshot 02 — Reports with suggestions — Reports list sorted by Critical severity, Suggestions column showing actionable fixes (e.g., "Reduce LOD0 tris by 50%", "Lower cull distance to 3000").


Step 1 — Load the level you want to audit

Section titled “Step 1 — Load the level you want to audit”

Foliage data lives on level-specific actors, so the tool needs the right level loaded.

Click Run Analysis. The reports list populates with one row per foliage type.

Sort by Total Triangles or Severity to see top offenders. Use the search box to narrow to a specific mesh family.

Each row’s Suggestions column proposes specific fixes (LOD generation, cull distance reduction, Nanite enabling). The fixes themselves happen in the Static Mesh editor or Foliage panel — this tool surfaces what needs fixing.


The thresholds (instance / triangle / min-cull) are currently fixed defaults; future updates will expose them as user settings.

Settings are persisted to [Project]/Saved/EQLabs/Settings/FoliagePlacementAnalyzer.json.


  • In-panel reports — cleared on each re-analysis
  • No edits — read-only audit

  • Total triangles is instance count × source mesh tris — a low-poly mesh placed 100k times can still cost a lot, and a high-poly mesh placed 50 times is fine. The total is what matters.
  • Cull distance is the highest-leverage setting — dropping foliage cull from 10,000 to 3,000 cm often cuts cost by 40%+ with minimal visual impact.
  • Nanite-enabled foliage trades draw cost for tri-count tolerance — if the meshes are high-poly and Nanite is supported on your target platform, enabling it usually wins.
  • Shadow casting on dense grass is rarely needed — the Cast Shadow column flags this; turning it off for grass-class foliage is a free win.

  • Landscape Layer Debugger — the landscape-side counterpart for paint layer analysis
  • LOD & Nanite Studio (Modeling module) — for fixing the source meshes flagged by this tool

Report an issue with this tool

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