Destructive Profiler measures actor cost the way you'd measure it manually: it removes actors from the scene and watches the frame time change.
Pick a target group type (actor class, static mesh, or both), start PIE, click Start Run. The plugin destroys each group in turn, lets the world settle, samples frame / GT / RT / GPU time, then moves on. When the run ends you get a sortable table — and a timestamped CSV — of how much frame time each group was costing.
Features:
• Group by actor class, by static mesh referenced by StaticMeshActor, or both
• Sortable results table; right-click any row to jump to the asset or first editor-world instance
• CSV written to Saved/Profiling/DestructiveProfiler/ after every run
• Configurable warmup / settle / sample seconds
• Optional simulation freeze (slomo ≈ 0) so deltas reflect rendering cost rather than gameplay variance
• Optional camera lock for consistent framing across phases
• Optional restorative mode that respawns destroyed actors between targets, so each is measured against the original scene
• Default + extra exclusion lists (PlayerController, GameMode, etc.)
• Searchable settings panel
Why "destructive":
stat unit and Insights show what's running. They don't show what would change if you removed something. Destructive Profiler measures that directly.
Compatibility:
• Unreal Engine 5
• Editor-only — no runtime cost in cooked builds
• Windows, Mac, Linux (only tested on windows)
• Source included