performance
Scalability, console variables, and performance snapshots for the live session.
What it's for
This namespace tunes and measures the rendering performance of your live editor or PIE session. It
applies scalability presets and console variables, toggles on-screen stat overlays, and captures
timing and memory snapshots to disk. Nothing here edits asset content: it changes how the running
session renders and reports, not what is stored in your .uasset files.
Reach for it when a scene is running slow and you want to find out why, or when you want to normalize
rendering settings before a benchmark. You can drop quality to chase a higher frame rate, force stat
overlays like stat unit or stat gpu on screen, capture a stat-file profile
to load in the UE Profiler, or dump a memory-usage breakdown to hunt down texture and mesh hogs.
It also covers targeted knobs for common cost centers: Nanite, LOD bias, texture streaming, occlusion culling, World Partition, draw-call CVars, and actor merging to reduce draw calls on grouped static geometry.
For deeper CPU/GPU trace capture, use the insights namespace instead; this one writes
lightweight stat files and snapshots. If you need to discover the exact name of a console variable
before tuning it, look it up with system.console.search first.
Examples
Chase a higher frame rate on a slow scene
Drop to a performance-tuned baseline, then put a live stat overlay on screen to watch the result.
You: This map runs slow. Drop quality for speed and show me the frame breakdown.
call("performance.apply_baseline_settings", {profile:"performance"})
→ {ok:true, profile:"performance"}
call("performance.show_stats", {category:"unit"})
→ {ok:true}
Done. Applied the performance baseline and enabled the stat unit overlay.
Capture a profile to open in the UE Profiler
Bracket the work you want to measure with a start/stop pair; the capture is written to disk as a .uestats file.
You: Record a stat capture while this scene plays so I can profile it.
call("performance.start_profiling", {})
→ {ok:true}
call("performance.stop_profiling", {})
→ {ok:true, file:"Saved/Profiling/UnrealStats/scene.uestats"}
Done. Stat capture written under Saved/Profiling/UnrealStats/.
Dump a memory breakdown to find the hogs
Run a detailed memory report to see which classes and packages are eating RAM.
You: Something is eating memory. Give me a detailed breakdown.
call("performance.generate_memory_report", {detailed:true})
→ {ok:true, path:"Saved/Profiling/MemReports/report.memreport"}
Done. Wrote a full memreport under Saved/Profiling/MemReports/.