ue-trace-analysis
Skill4 starsChanged 3 months agoMITView on GitHub
Analyze Unreal Engine `.utrace` files and turn them into actionable hotspot summaries. Use when Codex needs to inspect Unreal trace captures, summarize GPU frame cost, identify worst frames, compare trace files, or explain what a `.utrace` capture is showing. Trigger on requests about `.utrace`, Unreal Insights trace analysis, GPU frame spikes, hotspot breakdowns, or extending the bundled parser for deeper event inspection.
In this repository15 other files it gives its agents.
- apt-replay-runSkill
- ctx-stashSkill
- eca-editorSkill
- memreport-analyzeSkill
- pix-gpu-debugSkill
- prospero-razorgpu-debugSkill
- ps5-devkit-bridgeSkill
- quick-analyze-gpuprofileSkill
- rdc-analysisSkill
- reallink-manage-skillsSkill
- skill-vetterSkill
- streaming-pool-json-htmlSkill
- uefn-reallink-bridgeSkill
- video-summarySkill
- vt-json-htmlSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 7 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use the bundled script for the first pass.
- Very specific: line 14
If the user wants structured output, add --json-out <path>.
- Distinctive: line 29
Use one of these paths:
- Distinctive: line 35
If the DLL cannot be found, stop and report that clearly instead of inventing a trace summary.
- Very specific: line 39
Prefer the script in scripts/analyze_utrace.py over ad hoc parsing.
- Distinctive: line 51
Use this reading order:
- Distinctive: line 58
When comparing multiple traces, run the script once per file and compare the same timeline fields across outputs instead of mixing values …
- Very specific: line 64
If the user asks for deeper inspection, extend the parser in scripts/ and consult the copied C# reference implementation under …
- Distinctive: line 68
Read usage-notes.md for CLI patterns, output semantics, and extension guidance.
- Very specific: line 69
Read files under references/trace-csharp-src/ only when you need low-level format details or want to add new event parsing behavior.
- Distinctive: line 82
Keep the answer grounded in the parsed fields.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
UE Trace Analysis
Use the bundled script for the first pass. It gives a deterministic summary of GPU timelines and keeps the reasoning grounded in parsed trace data instead of guesses.
Quick Start
- Confirm the user provided a
.utracefile path. - Run
scripts/analyze_utrace.py <trace_path>. - If the user wants structured output, add
--json-out <path>. - Summarize
avg_ms,p95_ms,max_ms,worst_frame,top_inclusive, andtop_exclusive.
Example:
python scripts/analyze_utrace.py C:\path\to\capture.utrace --json-out C:\path\to\summary.jsonWorkflow
1. Resolve the decoder DLL
The parser needs UnrealInsights-TraceLog.dll.
Use one of these paths:
- Pass
--decoder-dll <path> - Set
UE_TRACE_LOG_DLL - Rely on common UE install paths already checked by the script
If the DLL cannot be found, stop and report that clearly instead of inventing a trace summary.
2. Run the parser first
Prefer the script in scripts/analyze_utrace.py over ad hoc parsing. It already handles:
- transport packet demux
- trace event type registration
- important stream parsing
GpuProfiler.FrameandGpuProfiler.Frame2- inclusive and exclusive hotspot aggregation
By default the script creates a deterministic demux folder next to the trace file so it also works in workspace-restricted sandboxes. If you need to keep intermediate thread bins for debugging, add --keep-demux. If you want them under a known folder, also add --work-dir <dir>.
3. Interpret the results
Use this reading order:
trace.packet_count,decoded_size_bytes, andthread_countfor capture scalegpu.*.avg_ms,median_ms,p95_ms, andmax_msfor distributiongpu.*.worst_framefor the concrete spiketop_inclusiveandtop_exclusivefor hotspot attribution
When comparing multiple traces, run the script once per file and compare the same timeline fields across outputs instead of mixing values from different timeline names.
4. Stay within the tool's current scope
The bundled parser currently gives the strongest coverage for GPU-frame summaries. Do not claim CPU, networking, object replication, or gameplay conclusions unless you extended the parser and verified them from parsed events.
If the user asks for deeper inspection, extend the parser in scripts/ and consult the copied C# reference implementation under references/trace-csharp-src/.
References
- Read usage-notes.md for CLI patterns, output semantics, and extension guidance.
- Read files under
references/trace-csharp-src/only when you need low-level format details or want to add new event parsing behavior.
Output Expectations
A good answer should usually include:
- which trace file was analyzed
- which GPU timeline had data
- average, p95, and worst-frame cost
- the top few inclusive hotspots
- the top few exclusive hotspots
- any limitation that affects confidence
Keep the answer grounded in the parsed fields. If the script fails, explain the failure and the next concrete unblock step.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

