When debugging games or other projects in Unreal Engine, it can be helpful to send commands to your game or the editor directly while it is running. This is especially true for audio. If you are trying to trace a bug that only occurs in narrow or unknown circumstances, console commands can help by enabling or disabling specific functionalities, or by altering a significant parameter in real time.
How to Use the Console
By default, the Command Console is included in the Bottom Toolbar. It is located at the bottom of the Unreal Editor window. You can jump directly to the Command Console entry field by pressing the tilde key ( ~ ) on the keyboard. Note that on British English keyboards, the key used is the grave key ( ` ).
If the tilde key does not open the console, or if you want to use a different key, you can change your keyboard bindings by going to Project Settings > Engine > Input > Console Keys.
When using the console commands, you may also want to open the Output Log. Click the shortcut located to the left of the Command Console. Pressing the tilde key ( ~ ) twice will open the output log drawer as well. This can be also set at Window > Output Log.
Most audio console commands involve setting a given console variable (CVar) to a desired value, through the syntax <CVar> <Value>
.
For example, to debug a sound mix, you would set the CVar au.Debug.SoundMixes
to true using the command au.Debug.SoundMixes 1
in the console, where 1
= true.
You can also find more information about the usage of a given CVar by entering the command <CVar> ?
or by using the help
command.
Commands that you type into the console will affect your editor in real time. Console commands can be executed from within the game, from within the editor, or, if the game has been started, by using the server switch from the server's console.
Common Commands and Uses
With the exception of a handful of older functions, console commands and variables that are audio specific have the au.
prefix. Because the console supports autosuggestion, you can get a list of available commands by typing au.
in the console and scrolling through the listed commands.
au.Debug.SoundMixes
— This variable, when set to1
, provides information on the currently active sound class mixes. As sound mixes are objects that can impact many sounds in the level at once, glitches with them can be hard to trace. By displaying information on sound mixes, it is easy to tell if any unexpected sound mixes are getting triggered, a sound mix is failing to be pushed and popped off the sound mix modifiers list as expected, or multiple instances of the same mix being active simultaneously. This is often a good first step if attempting to debug a situation such as a single class of sounds suddenly becoming inaudible.au.DumpActiveSounds
— When set to1
, this variable provides a list of all sounds currently playing. You can use this to narrow down possible sources of errors for issues that sound identical to the human ear, but have different causes. For example, if a sound can no longer be heard, dumping active sounds can clarify whether it is an issue of a sound not being played or if the sound is playing at an inaudibly low level. Similarly, it can help distinguish between loud sounds that are the result of volume modifiers set to unreasonable volumes, and loud sounds that are the result of multiple instances of the same sound playing simultaneously which you might perceive as one very loud sound.au.Debug.AudioMemReport
— Use this command without additional arguments to generate a detailed document on the memory usage of active sound objects. This is useful for tracking down unexpectedly large amounts of memory usage in the audio system. It is also useful for general audio optimization.
Audio Console Commands
Command |
Description |
Arguments |
---|---|---|
|
Sets the visualization mode for active sounds. |
|
|
Sets the type of sound to visualize. |
|
|
If enabled, visualizes attenuation spheres. |
|
|
If enabled, activates audio visualization. |
|
|
If enabled, visualizes listeners. |
|
|
If enabled, visualizes spatialized audio sources. |
|
|
If enabled, visualizes virtualized loops. |
|
|
Sets the number of ADPCM decode attempts before stopping the Sound Wave altogether. |
|
|
If enabled, intentionally drops chunks. |
|
|
If enabled, disables forward file scanning when seeks are pending. |
|
|
If enabled, disables ADPCM seeking. |
|
|
If enabled, forward seeks stop after failing to load two chunks in a row. |
|
|
If enabled, spatializes audio. If disabled, sounds will still attenuate. |
|
|
If enabled, allows reverb processing for sources with more than 2 channels. |
|
|
If enabled, allows |
|
|
If enabled, decodes to a virtual 7.1 speaker configuration before mixdown instead of decoding directly to the output device configuration. |
|
|
Sets a timeline shift (in seconds) for baked analysis playback. |
|
|
Sets a threshold (in milliseconds) to log warnings on commands which took longer to execute. |
|
|
If enabled, logs each audio thread command caller and execution time. |
|
|
If enabled, queries baked analysis from audio components. |
|
|
If enabled, bypasses all submix effects. |
|
|
If enabled, bypasses audio plugin processing. |
|
|
If enabled, ignores the Play When Silent flag for non-procedural sources. |
|
|
Clears any soloed or muted sounds. |
N/A |
|
Sets the command buffer flush wait time (in milliseconds). |
|
|
Sets the maximum command buffer size (in megabytes) to allow before ignoring additional commands. |
|
|
If enabled, compresses Sound Waves (when supported by the codec). |
|
|
Sets the silent volume threshold for volume scaling (linear). |
|
|
Sets the X coordinate of the debug text on the viewport. |
|
|
Sets the Y coordinate of the debug text on the viewport. |
|
|
If enabled, activates debug sound generation. |
|
|
Sets the channel output index of debug audio. If input is beyond supported channel range, defaults to 0. |
|
|
Sets the debug sound generation frequency. |
|
|
Plays a Sound Cue. |
|
|
Plays a Sound Wave. |
|
|
If enabled, displays Sound Cue information on viewports. |
|
|
If enabled, uses the Sound Cue debug compact view. |
|
|
If enabled, displays Sound Cue distances. |
|
|
If enabled, displays full Sound Cue paths. |
|
|
Sets the compact view character size (in pixels). |
|
|
Sets the compact view tab size (in characters). |
|
|
If enabled, displays sound mix information on viewports. |
|
|
If enabled, displays modulation information on viewports. |
|
|
If enabled, displays reverb information on viewports. |
|
|
If enabled, displays sound information on viewports. |
|
|
Sets the maximum number of sounds to display in the full sound debugger view. |
|
|
If enabled, displays full paths of sounds in the debugger list. |
|
|
Sets the sound stat sorting attribute. |
|
|
Sets the body text color in audio debug views. |
|
|
If enabled, displays Sound Wave information on viewports. |
|
|
Stops debug sound. |
|
|
If enabled, displays stream caching information on viewports. |
|
|
If set, overrides the maximum decompression duration (in seconds) in either the sound group or the platform's runtime settings. |
|
|
Sets the default modulation plugin to load and use (overridden by platform-specific implementation name in config). |
|
|
If enabled, disables external volume changes. |
|
|
If enabled, disables precaching on load or startup and will only precache synchronously when playing. |
|
|
If enabled, disables binaural spatialization. |
|
|
If enabled, disables device swap handling code for Audio Mixer on Windows. |
|
|
If enabled, disables distance attenuation. |
|
|
If enabled, disables envelope follower use for source envelope tracking. |
|
|
If enabled, disables per-source lowpass and highpass filter use. |
|
|
If enabled, disables per-source high pass filter use. |
|
|
If enabled, disables reverb on legacy audio backends. |
|
|
If enabled, disables audio occlusion. |
|
|
If enabled, disables async task use for processing sources. |
|
|
If enabled, disables quad reverb in surround. |
|
|
If enabled, disables the reverb submix. |
|
|
if enabled, disables source effect use. |
|
|
If enabled, ignores the 3D Stereo Spread property in attenuation settings and insteads renders audio from a singular point. |
|
|
If enabled, disables the Stopping Voices feature. |
|
|
If enabled, disables the EQ submix. |
|
|
If enabled, disables the submix mutation lock. |
|
|
Sets the fourier transform method. |
|
|
Outputs data about all currently active sounds to the log. |
N/A |
|
Outputs the baked Sound Wave analysis data to a .csv file. |
N/A |
|
Sets the maximum latency (in seconds between caching intervals) between a cook override change in the project settings and its application to new audio sources. |
|
|
If enabled, forces audio to play non-streaming. This may cause a DDC miss. |
|
|
If enabled, binaurally renders all spatial sounds (if binaural rendering is available). |
|
|
If enabled, logs Windows device details. |
|
|
If enabled, scales occlusion by 0.25f to compensate for change in filter cutoff frequencies in audio mixers. |
|
|
If enabled, flips the stereo for quad reverb when in surround. |
|
|
If enabled, logs audio mixer devices every 500 callbacks. |
|
|
If enabled, logs extra information about the Resonance HRTF processing state. |
|
|
Sets the wait time (in milliseconds) for the FadeOut Event to fire. |
|
|
If enabled, uses ISPC optimizations in audio float array math operations. |
|
|
If enabled, ensures that all pending commands to the audio thread and audio render thread are pumped through on app suspension. |
|
|
If enabled, flushes all pending audio render thread commands every time the garbage collector runs. |
|
|
If enabled, flushes the audio render thread synchronously when the fence has timed out. |
|
|
If enabled, initializes focus factor on the first update to the proper value, instead of interpolating from 0 to the proper value. |
|
|
If enabled, deliberately ensures that all audio assets are decompressed when played, rather than decompressed fully on load. |
|
|
If enabled, disables asynchronous task use for processing sources. |
|
|
If enabled, forces all audio tasks created in one audio render frame to be queued until they can all be kicked simultaneously at the end of the frame. |
|
|
If enabled, bypasses the Resonance Submix Effects project setting. |
|
|
If enabled, allows gathering of interior data from Audio Volumes (legacy). |
|
|
If enabled, allows gathering of interior data from subsystems that implement the IActiveSoundUpdate interface. |
|
|
If enabled, uses the Audio Mixer. This will only take effect if an audio device is currently not in use, unless |
|
|
Sets the linear gain scalar to apply to the final float buffer to allow for hotfixable mitigation of clipping. |
|
|
If enabled, logs audio render times. |
|
|
If enabled, logs submix enable and disable states. |
|
|
If set, overrides the maximum concurrent streams. |
|
|
Sets the maximum number of branches to play from for any random node. The other branches will be released from memory. |
|
|
Sets the maximum world distance used in audio-related calculations, such as attenuation. |
|
|
If enabled, attempts to auto-update node references to native classes that share a version number if the interface is different. This results in slower graph load times. |
|
|
Sets the block rate (blocks per second) for MetaSounds. |
|
|
If enabled, disables MetaSound Wave Cache Priming. |
|
|
If enabled, registers all MetaSound asset classes asynchronously on Editor load. |
|
|
If enabled, creates nodes for major versions of deprecated MetaSound classes in the Editor. |
|
|
If enabled, asynchronously builds FMetaSoundGenerators. |
|
|
If enabled, discards MetaSound registry transactions after streaming. |
|
|
If enabled, logs warnings when parameters sent to a MetaSound are ignored. |
|
|
If enabled, simulates seek calls by reading and discarding samples for Sound Waves which are not in a seekable format. |
|
|
Sets the minimum time (in milliseconds) between underrun warnings. |
|
|
Sets the maximum pitch modulation range (in semitones). |
|
|
Sets the number of push calls (usually corresponding to audio block updates) before checking if an output is ready to be destroyed. |
|
|
If enabled, non-realtime audio devices will be exempt from normal audio device muting, such as when a window loses focus. |
|
|
If set, overrides the default value of precache frames for audio buffers. |
|
|
Sets the wait time (in milliseconds) for the render thread to time out before swapping to the null device. |
|
|
If enabled, takes voice slots immediately without trying to cache the request on the component. |
|
|
Sets the sample rate for Quartz clocks when no mixer device is present. |
|
|
Sets a number of Quartz subscribers to update per tick. |
|
|
If enabled, QuartzSubsystem assumes no audio devices and runs new clocks in headless mode. |
|
|
If enabled, realtime decompresses sounds with a duration of 0. |
|
|
If enabled, attempts to record to a .wav file if the game is shut down while a recording is in flight. |
|
|
If enabled, reuses threads instead of recreating them. |
|
|
If enabled, overrides audio render thread affinity. |
|
|
Sets the audio render thread priority. |
|
|
Outputs any active audio devices (instances of the audio engine) currently alive. |
N/A |
|
If set, overrides the quality of Resonance sound sources. This will not increase quality levels. The quality used will be the minimum between the Resonance Source Settings and this override. |
|
|
If enabled, allows Resonance to query Audio Volumes for reverb effects. |
|
|
Sets the audio channel count. Maximum value is clamped to the MaxChannelCount. |
|
|
Sets the audio channel scale count (percentage). Maximum produced value is clamped to the MaxChannelCount. |
|
|
Sets the maximum sound duration (in seconds) in order to be a candidate to be culled due to one-shot distance optimization. |
|
|
Sets the minimum fade length (in samples) to use when a sound source is stopped. The value must be divisible by 4. This is ignored for some procedural source types. |
|
|
Outputs the list of available spatialization plugins. |
N/A |
|
Sets the current spatialization plugin. |
|
|
If enabled, treats incoming streaming chunks as if they had failed to load. |
|
|
If enabled, attempts to synchronously load chunks after a Sound Wave request has finished. |
|
|
If enabled, disables retaining chunks of Sound Waves own audio. |
|
|
If enabled, dispatches a callback to the game thread whenever a Sound Wave request has finished, instead of capturing the audio chunk once it is loaded. This may cause audio chunks to be evicted before they are needed. |
|
|
If enabled, ignores loading behavior of Sound Classes set on Sound Cues directly. |
|
|
If enabled, loads sounds into cache when a delay node is hit. |
|
|
If enabled, loads sounds into cache when a random node is hit. |
|
|
Sets the default Sound Wave loading behavior. |
|
|
If enabled, all cache misses will be added to the |
|
|
Sets the default request priority for audio chunks that are about to play but aren't in the cache on cache overflow. |
|
|
Sets the number (scalar) of chunk slots to pre-allocate. |
|
|
If enabled, compares FObjectKeys when comparing Stream Cache Chunk Keys. This avoids FName collisions if Sound Waves have the same name. |
|
|
If enabled, linearly searches cache in FindElementForKey. If disabled, relies on chunk offset. |
|
|
If enabled, trims retained audio when the stream cache goes over the memory limit. |
|
|
If enabled, flushes any non-retained audio from the cache. |
|
|
If enabled, blocks getting loaded chunks until the disk read is complete. |
|
|
If enabled, maintains a buffer of recorded cache misses after calling |
|
|
Sets the maximum amount of stream chunks to display on screen. |
|
|
Sets the memory cache trim percentage of each trim call when the stream cache goes over the memory limit. |
|
|
Sets the minimum cache usage percentage to limit chunk eviction. This is helpful to avoid disk I/O when playing lots of small sounds. |
|
|
Sets the number of Sound Waves to release on cache overflow. |
|
|
Sets the default request priority for audio chunks that are about to play but are not in the cache. |
|
|
If enabled, automatically primes a Sound Base when an Audio Component is spawned with that sound, or when an Audio Component's sound is set. |
|
|
Sets the default read request priority for audio chunks. |
|
|
Sets the audio stream cache size (in megabytes). Audio chunks will be culled if necessary to shrink to or maintain the new size. |
|
|
If enabled, an audio memory report prints if the cache overflows. |
|
|
If enabled, uses Chunk Pool (TArray) for exhaustive cache searches instead of LRU (Linked List). |
|
|
Starts a performance-intensive profiling mode for this streaming manager. Output profile stats with |
N/A |
|
Stops the |
N/A |
|
Sets a cache size override (in megabytes) instead of using the project settings. |
|
|
If set, calls TrimMemory to stay in budget. |
|
|
If set, verifies submix children are still children and clears previous parent listings from former children. |
|
|
If enabled, bypasses all active submix dynamics processors. |
|
|
If enabled, simulates a slow device swap by adding additional time to the swap task. |
|
|
Sets the render thread wait time to generate the next buffer before submitting an underrun buffer. |
|
|
If enabled, uses the DeviceCache instead of the OS cache. |
|
|
If enabled, zero overrides attenuation distance for stereo panning instead of using actual distance. |
|
|
If enabled, supports virtualization for audio loops. |
|
|
Sets the distance threshold required to force an update on virtualized sounds to check for listener movement in a single frame over the given distance, measured in Unreal Units (UU). |
|
|
Sets the virtual loop distance to scale update rate between minimum and beyond maximum audible distance of sound. |
|
|
Sets the maximum rate to check if sound becomes audible again (at beyond sound's maximum audible distance + performance scaling distance). |
|
|
Sets the minimum rate to check if sound becomes audible again (at sound's maximum audible distance). |
|
|
If enabled, guarantees VOIP components won't get deprioritized and killed by setting their priority higher than all other audio sources. |
|
|
If enabled, bails on decoding Ogg Vorbis audio after several unsuccessful decoding attempts. |
|
|
If enabled, refuses to play any sound unless the Sound Wave has been loaded. |
|
|
Sets the return value of GetAudioTime when an audio component doesn't belong to a World. |
|