Garbage Asset Finder

User Documentation — Unreal Engine 5.6 Editor Plugin
v1.0 UE 5.6 Win64 Editor Only Python + C++ + Slate
Garbage Asset Finder

Technical Information

The following section contains all technical details required by Fab Technical Requirements for plugin submission.

Plugin Technical Details
Fab TRC Required
Features
  • Scan level for Buried, Hidden, and Overlapping actors
  • Dockable tab integrated directly into the Level Editor
  • Severity levels: Critical, Warning, and Info
  • Filter results by Issue type, Mesh Type, and Severity
  • Real-time actor name search
  • Viewport highlight on row selection
  • Auto-fix Buried actors (moves them above ground)
  • Remove selected actors with full Undo support (Ctrl+Z)
  • Export results to a timestamped CSV report
  • Undo History panel showing last 5 operations
  • Configurable detection thresholds via Settings panel
  • Settings persisted between sessions via .ini file
Code Modules
GarbageAssetFinder (Editor)
Number of Blueprints
0
Number of C++ Classes
2 (FGarbageAssetFinderModule, SGarbageAssetFinderWidget)
Network Replicated
No
Supported Development Platforms
Windows: Yes  |  Mac: No
Supported Target Build Platforms
Editor only — not available in packaged builds
Important Notes
Requires the Python Script Plugin to be enabled (included with UE5 by default). No additional dependencies or third-party libraries required.

What is Garbage Asset Finder?

Garbage Asset Finder automatically scans your Unreal Engine level and detects actors that waste memory and draw calls without contributing to the visual output. It integrates as a dockable tab inside the Level Editor — just like the Content Browser or Details panel.

  • Scan for Buried, Hidden, and Overlapping actors
  • Dockable tab inside the Level Editor
  • Severity levels: Critical, Warning, Info
  • Filter by Issue, Mesh Type, and Severity
  • Real-time actor name search
  • Viewport highlight on selection
  • Auto-fix Buried actors above ground
  • Remove actors with full Ctrl+Z undo
  • Export results to CSV report
  • Undo History panel
  • Configurable detection thresholds
  • Settings persisted via .ini file
⬇️
Buried
Actors placed below the ground or landscape surface. Still rendering but completely invisible to any camera.
👁️
Hidden
Actors fully enclosed inside another mesh of the same class. Zero visual contribution, full GPU cost.
Overlapping
Same-class actors sharing the same space — causing Z-fighting and doubled draw calls.

System Requirements

RequirementDetails
Unreal Engine5.6
Python Script PluginMust be enabled — included with UE5 by default, no separate install needed
Visual Studio2022 with C++ Game Development workload (for first-time compilation)
PlatformWindows 64-bit only
Build TypeEditor only — not available in packaged builds
DependenciesNone — no third-party libraries required

Getting the Plugin Running

1
Copy the plugin folder

Place GarbageAssetFinder/ inside your project's Plugins/ directory. Create the folder if it doesn't exist.

2
Compile when prompted

Open your project. Unreal will ask to rebuild missing modules — click Yes and wait 1–2 minutes.

3
Enable in Plugins menu

Edit → Plugins → Search "Garbage Asset Finder" → Enable → Restart Editor

4
Verify Python Script Plugin

Edit → Plugins → Search "Python Script Plugin" → Ensure it is Enabled

5
Click the toolbar button

After restart, the Garbage Finder button appears in the Level Editor toolbar. Click it to open the panel.

💡

No extra setup needed. The plugin uses Unreal's built-in Python Script Plugin and Slate UI framework. No third-party libraries or external tools required.

The Main Panel

After clicking Scan Level, the panel fills with results. Every element is shown in the mockup below.

Garbage Asset Finder — UE 5.6
32
Total
8
Buried
4
Hidden
20
Overlapping
12
Critical
14
Warning
6
Info
Search actor name... All Issues ▾ All Types ▾ All Severity ▾ Settings Scan Level
SeverityActor NameTypeIssueActions
Critical
Box8
StaticMeshActor
StaticMesh Buried Z=-620 FocusFixRemove
Critical
SM_WallSection_04
StaticMeshActor
StaticMesh Hidden FocusFixRemove
Warning
Box12
StaticMeshActor
StaticMesh Buried Z=-620 FocusFixRemove
Info
Rectangle10
StaticMeshActor
StaticMesh Overlapping FocusFixRemove
Undo History
03:14:22 — Remove (3 actors)
03:10:05 — Auto-fix Buried (8 actors)
0 selected Select All Focus Selected Auto-fix Buried Export CSV Remove Selected

How Each Issue is Detected

🔴 Buried

Flagged when an actor's Z world position is below the configured threshold (default: −30 cm). Typically happens when assets are accidentally dragged below the landscape or a world origin shift moves actors underground.

⚠️

Note: If your buried actors are at e.g. Z = −620 cm, set the Buried Z Threshold above −620 in Settings. The slider range goes down to −2000 cm.

🟡 Hidden

Flagged when the actor's entire bounding box is contained within the bounding box of another actor of the same class, with a 2 cm margin on all sides. The Landscape is excluded as a container to avoid false positives.

🟣 Overlapping

Flagged when two actors of the same class have bounding boxes that intersect by more than the configured Overlap Threshold %. Calculated as a percentage of the smaller actor's footprint area.

Understanding Severity

Every flagged actor is assigned a severity to help you prioritize fixes.

SeverityAssigned WhenRecommended Action
CriticalActor is Hidden or Buried very deep (Z < threshold × 3)Fix immediately — zero visual value
WarningActor is Buried at a moderate depthReview and remove or reposition
InfoActor is Overlapping with a same-class actorReview — may be intentional

Running Your First Scan

Click Scan Level to start. A progress dialog shows which actor is being checked. You can cancel at any time. After the scan, results appear in the list sorted by detection order.

ℹ️

Viewport Highlight: Selecting rows in the results list automatically highlights those actors in the Level Viewport using Unreal's standard selection outline — so you can immediately see where they are.

Tuning Detection Thresholds

Click Settings in the toolbar. After changing any value, press Apply Settings then run Scan Level again.

Buried Z Threshold
Actor Z below this value = buried
-30 cm
Overlap Threshold %
Min bounding box overlap % to flag
10 %
Trace Half-Extent
Trace distance for hidden check
500 cm
Hidden: Min Blocked Directions
Out of 6 directions (max 6)
5
/ 6
✓ Apply Settings
↺ Reset to Defaults
SettingDefaultRangeDescription
Buried Z Threshold-30 cm-2000 to 0Actors with Z below this are flagged as buried
Overlap Threshold %10%1–100Min bounding box overlap % to flag as overlapping
Trace Half-Extent500 cm100–2000How far to trace when checking if actor is hidden
Hidden Min Directions51–6Minimum of 6 directions that must be blocked

Narrowing Down Results

All four filters work simultaneously. For example: search for SM_Rock while filtering by Buried and Critical at the same time.

FilterOptionsUse Case
Search BoxAny textFind a specific actor by name (case-insensitive)
Issue FilterAll / Buried / Hidden / OverlappingFocus on one problem type at a time
Type FilterAll / StaticMesh / Blueprint / Particle / OtherIsolate geometry vs Blueprint actors
Severity FilterAll / Critical / Warning / InfoPrioritize the most impactful issues first

What Each Button Does

Per-Row Actions

ButtonDescription
FocusSelects the actor and moves the Level Editor viewport camera to its location
FixMoves the actor above ground. Only enabled for Buried actors. Fully undoable via Ctrl+Z
RemoveDestroys the actor from the level. Fully undoable via Ctrl+Z

Bulk Actions (Bottom Bar)

ButtonDescription
Select AllSelects all rows currently visible in the list, respecting active filters
Focus SelectedSelects all checked actors and moves the viewport to the first one
Auto-fix BuriedMoves all selected Buried actors above ground in a single undo-able transaction
Export CSVSaves all current scan results to a timestamped CSV file in the project Saved/ folder
Remove SelectedDestroys all selected actors in a single undo-able transaction

Saving Results & Tracking Operations

Click Export CSV to save all scan results. The file is saved to:

YourProject/Saved/GarbageFinder_Report_YYYYMMDD_HHMMSS.csv
CSV ColumnDescription
Actor NameThe actor's display label in the level
ClassThe actor's C++ class name
Mesh TypeStaticMesh / Blueprint / Particle / Other
IssueBuried / Hidden / Overlapping
SeverityCritical / Warning / Info
DetailAdditional info (e.g. Z position for buried actors)
X, Y, ZWorld position of the actor in centimeters

Undo History

The Undo History panel shows the last 5 plugin operations with timestamps and actor counts. For full actor restoration, use Unreal's standard Ctrl+Z.

Common Issues & Fixes

Toolbar button is not visible

Ensure the plugin is enabled: Edit → Plugins → Garbage Asset Finder → Enable → Restart. Also verify the Python Script Plugin is enabled in the same menu.

Scan completes but shows 0 results

Check Window → Output Log after scanning. You should see [GarbageFinder] Buried=X | Hidden=Y | Overlapping=Z. If nothing appears, verify scan_and_return.py exists in Plugins/GarbageAssetFinder/Content/Python/.

Settings changes have no effect

After adjusting sliders, click Apply Settings then run Scan Level again. Changes are never applied retroactively to existing results.

Hidden detection has false positives

Increase Hidden Min Blocked Directions to 6 in Settings. The tool only compares actors of the same C++ class — Landscape is always excluded as a container.

Build error on first compile

Right-click the .uproject file → Generate Visual Studio project files, then open the solution and Build. Ensure Visual Studio 2022 is installed with the C++ Game Development workload.

Frequently Asked Questions

Does the tool permanently modify my assets?

No. The scan adds temporary actor tags (GAF_Buried, GAF_Hidden, GAF_Overlapping) cleared at every scan. Remove and Fix operations support full Ctrl+Z undo.

Will it work on large open-world levels?

Yes, but scan time scales with actor count. For very large levels with thousands of actors, the scan may take several minutes. You can cancel at any time via the progress dialog.

Why are Landscape and lighting actors excluded?

The following types are excluded by design: Landscape, LandscapeProxy, all light types (Directional, Sky, Point, Spot, Rect), SkyAtmosphere, ExponentialHeightFog, VolumetricCloud, GameModeBase, PlayerController.

Can I use this on UE 5.0–5.5?

The plugin is built and tested for UE 5.6 specifically. It may compile on earlier 5.x versions with minor source modifications, but this is not officially supported.

The Fix button is greyed out. Why?

The Fix button is only enabled for Buried actors. Hidden and Overlapping actors require manual review as there is no single automatic resolution applicable in all cases.