Trace Channels
Trace is capable of emitting large amounts of data. Channels provide you with control of the data rate when tracing. Each event type is tied to one or more channels, if the required channels are not enabled then the event will not be emitted to the trace stream.
Channel presets groups many channels and provides scenario-based entry points. Users can define their own presets using config files added to the [Trace.ChannelPresets] category.
Available trace channels are included in the table below. You can observe a list of channels that include details on each Channel's File Path, Supported Platforms and Notes:
The plural forms of the name are automatically deduced, "bookmark" and "bookmarks" are treated identically.
| Channel | Notes | Supported Platforms | File Path |
|---|---|---|---|
Animation | Animation Insights(GameplayInsights/RewindDebugger) plugin. |
| |
AssetLoadTime | Named CPU timers for | All platforms. |
|
Asset Metadata | Asset Names and Class Names as metadata for memory allocations. Requires Metadata channel. Used by the MemAlloc channel. |
|
|
BookMark | Low frequency markers signifying important transitions, providing a quick overview for users. Such as level loading or engine boot phases. |
| |
Callstack | Callstack descriptions. Allows allocations to be associated with callstacks. Requires Module channel to be enabled for symbol resolution to be possible. |
|
|
Concert | Concert plugin. |
| |
ContextSwitch | Trace context switch events. On Windows, game/editor runtime should be "run as administrator". |
|
|
Cook | Displays named CPU timers specific to cooking. This requires the CPU channel. It will add the "CookByTheBook" and "SaveCookedPackage" cpu timing events (with metadata). |
| |
Counter | Generic counters. Allows tracing of values (float, integer) over time. Counters Trace API. It also enables the CSV Profiler Trace. |
| |
CPU | Named cpu timers. Additional timers can be added using |
| |
File | File I/O trace channel (Open, ReOpen, Read, Write, Close events). |
|
|
Frame | Game and Rendering frames. |
| |
GPU | Named gpu timers. Based on GpuProfiler data. |
| |
LevelSnapshots | Level Snapshots plugin. |
| |
LoadTime | Asset Loading Insights trace channel. Package load times (specific trace events) + named cpu timers specific to package loading. Requires "cpu" channel. Also adds the "LoadPackageInternal" cpu timing events (with metadata). See usage of SCOPED_LOADTIMER and SCOPED_CUSTOM_LOADTIMER macros. |
| |
Log | Logs Messages. |
| |
MemAlloc | Memory allocations. Uses Module and Callstack. |
|
|
Memory | Includes all alloc events, callstacks, and tags. This is equivalent to |
| |
Memory_Light | Includes all alloc events and tags. This is equivalent to |
| |
MemTag | Memory tag statistics. Traces snapshots of memory usage per tag at regular rate. Relies on LLM subsystem for tracing. Implies "-llm". Available after Init(). |
| |
Messaging | UDP Messaging plugin. |
| |
Metadata | Support for generic metadata scopes. | All platforms. |
|
Module | Module loading information |
|
|
Net | Networking trace channel. Requires -NetTrace=1 (it enables the "Frame" channel) |
| |
NetworkPrediction | Network Prediction Insights plugin. |
| |
Niagara | Niagara plugin. |
| |
Object | GameplayInsights/RewindDebugger plugin. UObject classes, worlds, instances and events. |
| |
ObjectProperties | GameplayInsights/RewindDebugger plugin. |
| |
Physics | Chaos Visual Debugger. |
| |
PoseSearch | PoseSearch plugin. |
| |
RDG | RDG Insights plugin. |
| |
Regions | Long-duration timing events. | All platforms. |
|
RenderCommands | Cpu/Gpu named timers for commands executed on the rendering thread. |
| |
RHICommands | Cpu/Gpu named timers for RHI commands. |
| |
SaveTime | Named CPU timers specific to package saving. This requires the CPU channel. Adds cpu timers named with |
| |
Screenshot | Captures screenshots triggered with Trace.Screenshot console command or using the | All platforms. |
|
Slate | Slate Insights plugin. |
| |
Stats | Stats counters. Based on the Stats system. |
| |
Task | Task Graph trace channel. |
| |
TraceSourceFilters | Trace Source Filtering plugin. |
| |
VisualLogger | Visual Logger starts recording to file. |
|
Engine Runtime
| Channel | Description | File |
|---|---|---|
Audio | AudioInsights logic data (asset load/unload/start/stop, etc.) |
|
AudioMixer | AudioInsights parameter data (amplitude, pitch, etc.) |
|
ChaosLocks | Chaos physics read/write lock acquisition events (begin, acquired, end) with cycle timestamps. Useful for diagnosing lock contention in the physics solver. |
|
Http | HTTP dispatcher and request lifecycle events: dispatcher/category creation, request start (URL, priority), chunk range additions, and request completion (status code, content length). |
|
IoStore | I/O dispatcher requests, backend operations, and chunk loading. |
|
Mass | Mass Entity system archetypes, queries, and chunk execution. |
|
PhysicsSync | Physics sync insights. |
|
RaceDetector | Race condition detection for thread safety analysis. Part of the sanitizer infrastructure for detecting data races and concurrent memory access violations. |
|
RenderTrace | RHI command lists, render-graph (RDG) passes, translate jobs, GPU payload submissions and sync points/fences; consumed by the RenderTraceInsights plugin. |
|
Spatial | Named spatial point data (position, velocity, direction) sampled over time. Allows tracking the spatial state of arbitrary points for debugging movement or physics. |
|
StackSampling | Trace stack sampling events. On Windows, game/editor runtime should be run as administrator. |
|
ThreadIdleScope | Thread idle time tracking. Marks periods when threads are idle or waiting by adding CPU profiler events for them. |
|
WorldStreaming | World streaming data (experimental — names/events subject to change). |
|
WorldStreamingPriority | Per-frame priority sort over all streaming cells (experimental). |
|
WorldStreamingDependencies | World streaming dependency data (experimental). |
|
Editor
| Channel | Description | File |
|---|---|---|
CurveEditor | Curve Editor–specific CPU profiling events. Tracks performance of curve editing operations including key modifications, curve snapshots, diff calculations, and selection operations. |
|
DDCRemoteExec | DDC remote build executor: per-action state transitions, worker registration, queue submission, completion polling. |
|
DDCRemoteExecPayload | DDC remote build executor: action and worker descriptor bytes, plus result main-object bytes. |
|
Plugins
| Channel | Description | File |
|---|---|---|
CameraSystem | Per-frame Gameplay Cameras evaluation data (pose, FOV, evaluator/blend hierarchy). |
|
Chooser | Chooser evaluation tracing. |
|
EpicRtc | EpicRTC WebRTC streaming events. |
|
EpicRtcProfiling | EpicRTC memory/profiling instrumentation. |
|
FieldNotification | Field notification events for ViewModel/MVVM bindings. |
|
Modifier | Actor modifier execution profiling for Virtual Production. |
|
PixelStreaming | PixelStreaming (v1) remote rendering/streaming: video encoding/decoding, audio processing, streaming state, and performance metrics. |
|
PixelStreaming2 | PixelStreaming2: video/audio streaming, video source/sink management, thread operations, capture pipeline, and performance metrics. |
|
RigVM | RigVM execution and variable state for rewind debugging, including literal/work/debug/external memory, draw interface, instruction visit info, and profiling. |
|
StateTreeDebug | StateTree state machine execution debugging: world timestamps, asset IDs, instance events, phase transitions, log messages, state changes, task/evaluator/transition/condition execution. |
|
TakeRecorder | Take recording operations for virtual production: recording sessions, playback, and take management. |
|
UAF | Universal Animation Framework trace data for rewind debugging. |
|
Some plugins or runtime code enables or disables channels automatically, they are listed in the table below:
| Plugin | Channel Description |
|---|---|
Gameplay Insights / Rewind Debugger | Toggles the Object channel when Play in Editor (PIE) is started, and toggles ObjectProperties, Animation, and Frame when a recording is started. |
TraceSourceFiltering | When the plugin is enabled, the TraceSourceFilters channel is toggled on. |
NetworkPrediction | When the plugin is enabled, the NetworkPrediction channel is toggled on. |
PoseSearch | When the plugin is enabled, the Pose Search channel is toggled on. |
Visual Logger | When recording the Visual Logger channel is toggled on. |
-NetTrace=1 | When enabled from the command line, the Net and Frame channels are toggled on. |
Controlling Runtime
Macros
To get the most out of the many features that ship with Unreal Insights, You can customize your project's output with macros and command-line options. Additionally, mouse and keyboard input shortcuts provide users with the capability to navigate Insights windows more efficiently. You can reference the table below to determine which macros you may want to adjust based on the data that you want to see in Unreal Insights:
| Macro name | Default State | Source File | Area Description |
|---|---|---|---|
| On |
| Master control for the entire system. |
| On |
| Controls tracing of Task Graph events. |
| On |
| Controls whether log messages are reported to Unreal Insights. |
| On |
| Controls tracing for bookmarks, frames, threads, and thread groups. |
| On |
| Controls tracing for CPU timers and timing events. |
| On |
| Controls tracing for events related to load assets. |
| On |
| Controls tracing for stats counters. |
| On | The default enabled behavior only applies for Windows, Mac, and PS4 platforms.
| Controls tracing for file activity, such as opening, closing, reading, and writing files. -trace=file |
| On |
| On for platforms with support for platform events (context switch events). |
| On |
| Controls GPU timers and timing events. |
| On |
| Controls tracing of network packet content. |
| On |
| Enables tracing of tag scopes. If disabled traced allocation will not have an associated tag. |
| On |
| Enables tracing of callstacks. If disabled traced allocations will not contain callstacks. |
Command-Line Options
When combined with macros, the following command-line options enable trace data:
| Command-Line Option | Description |
|---|---|
| Provides you the capability to manage how much trace data to generate by categorizing events into named groups. For example, Trace data for enabled channels is cached in the "Always on" buffers. |
| Sends a trace to the specified IP address. Will default to a local host address. To learn about |
| Performs a "WriteTo" file trace control command. This will run the trace default command. |
| |
| N specifies the size of the trace tail buffer in MiB. The default size of the trace tail buffer is 4 MiB. |
| If specified, the game or editor will not start the local trace server. |
| logs trace data for stat named events. Can be enabled by |
| logs trace data for verbose named events. Can be enabled by |
Console Commands
| Command | Description |
|---|---|
| Starts tracing to a trace store.<Host> is the IP address or hostname of the trace store. [ChannelSet] is an optional comma-separated list of trace channels/presets to be enabled. |
| Send a snapshot of the current in-memory trace buffer to a trace store. |
| Begins tracing events to a file. If a file path is not specified, then the default path directory for the utrace file is: Use Examples:
|
| Keeps the default enabled channels. |
| Stops tracing profiling events. |
| Enables a set of channels. |
| Disables a set of channels. If no channel set is specified, all channels will be disabled. |
| Pauses all trace channels currently sending events. |
| Resumes tracing that was previously paused (re-enables the pushed channels). |
| Prints the trace status to the console. |
Controlling Unreal Insights
Command-Line Options
| Command-Line Option | Usage | Description |
|---|---|---|
|
| Forces Unreal Insights to start analyzing the specified ID in "Viewer mode" |
|
| Forces Unreal Insights to start analyzing the specified file in "Viewer mode" |
|
| Connects Browser with specified trace store
|
|
| Start tracing to the local trace server automatically at start if Unreal Insights is running or wait to initiate via console command. Default is on. |
|
| Disable the trace worker thread. |
Keyboard Input Shortcuts
All input operations and control references are limited and subject to change.
Timing Insights Window
The following mouse and keyboard commands help you navigate Timing Insights more efficiently:
Frames Panel
| Keyboard Input Shortcut | Function |
|---|---|
Left mouse click | Select a frame The timing view centers on the selected frame. |
Right mouse click | Open context menu |
Left/right mouse drag | Horizontal zoom |
Mouse wheel | Horizontal zoom |
Shift + mouse wheel | Vertical zoom |
Timing Panel
| Input Shortcut | Function |
|---|---|
Left/right mouse drag | Horizontal or vertical pan |
Ctrl + left/right mouse drag | Horizontal pan |
Shift + left/right mouse drag | Vertical pan |
Mouse wheel | Zoom |
Ctrl + mouse wheel | Horizontal scroll |
Shift + mouse wheel | Vertical scroll |
Right mouse click | Open context menu Options available for Graph track. |
Left mouse click on Timing Event | Select the timing event |
Left mouse click on empty space | Clear selection |
Ctrl + double left mouse click | Select time range of selected timing event Pressing ENTER performs the same function. |
Left/right mouse drag over Time Ruler | Select time region Aggregated states automatically update in Timers and Counters views. |
Ctrl+F | Toggles the Quick Find menu. |
F | Frame the last selection and then alternate between framing the time range or the timing event The last selection can be a time range or a timing event. |
G | Toggle Graph track visibility, showing Game and Rendering frames, including a placeholder for Counter series |
Y | Toggle GPU Timing track visibility |
U | Toggle CPU Timing track visibility |
I | Toggle I/O Overview and Activity track visibility |
O | Toggle visibility of background events for file activities in the I/O Activity track |
L | Toggle Asset Loading track visibility |
C | Switch between normal and compact mode, affecting how timing events are visualized |
V | Auto hide empty timelines Empty timelines are ones without timing events. |
X | Chooses the next event depth limit: Single Lane, 4 Lanes, Unlimited. |
B | Toggle visibility of bookmarks Bookmarks display by default. |
M | Toggle visibility of time markers (all trace logs instead of just bookmarks) Time markers do not display by default. |
**-/+ | Zoom |
Ctrl + left/right/Up/Down arrows | Horizontal and vertical pan |
Left/right/Up/Down arrows | Select timing event that is its previous or next sibling/parent/largest child |
Enter | Select time range of selected timing event Pressing Ctrl + Double Left Mouse Click performs the same function. |
Networking Insights Window
The following mouse and keyboard commands help you navigate Networking Insights more efficiently:
| Input Shortcut | Function |
|---|---|
Left mouse click on packet | Selects the respective packet |
Shift + left mouse click on different packet | Selects a range of packets |
Ctrl + A | Select all packets |
Left/right arrows | Selects previous/next package |
Shift + left/right arrows | Extends selection (multiple packages) toward Left/right side |
Ctrl + shift + left/right arrows | Shrink selection (multiple packages) from Left/right side |
Double click an Event | Highlights all packets containing the event in the Packet Content view while masking out all other events |