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 name] [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 name ?].
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 Audio CVars 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 to 1, 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 to 1, 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. -
AudioMemReport
— Type the AudioMemReport command without a value (not required) 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
Use the commands below to debug the Unreal Audio Engine. Where applicable, the table also indicates the deprecated command that a new command has replaced.
In most instances, enablement and disablement can be set with 1 or 0, on or off, or true or false (on/off and true/false are case sensitive).
The thing to keep in mind is that if 0 = false (disabled) and 1 = true (enabled), then with a command like au.DisableDeviceSwap, where the action of the command is to disable, then the true setting would be the enabling of the action of disabling. This means that to turn this feature on, you would enter au.DisableDeviceSwap 1.
Command | Description/Comments | Arguments |
---|---|---|
au.3dVisualize.ActiveSounds |
Visualization mode for active sounds. | 0: Disable, 1: Volume (Lin), 2: Volume (dB), 3: Distance, 4: Random color |
au.3dVisualize.ActiveSounds.Type |
Type of sound where audio visualization is applied. | 0: All, 1: Components only, 2: Non-components only |
au.3dVisualize.Enabled |
Audio visualization | 0: Disable, 1: Enable |
au.3dVisualize.Listeners |
Whether listeners are visible when 3D visualization is enabled. | 0: Disable, 1: Enable |
au.3dVisualize.SpatialSources |
Whether audio-spatialized sources are visible when 3D visualization is enabled. | 0: Disable, 1: Enable |
au.3dVisualize.VirtualLoops |
Whether virtualized loops are visible when 3D visualization is enabled. | 0: Disable, 1: Enable |
au.adpcm.ADPCMReadFailureTimeout |
Sets the number of ADPCM decode attempts before stopping the sound wave altogether. | Value: the number of attempts |
au.adpcm.DisableSeeking |
Disables seeking with ADPCM. | 1: Disable the seek |
au.AllowAudioSpatialization |
Allows spatialization of audio. This is normally enabled. If disabled, all audio will not be spatialized, but will have attenuation. | 0: Disable, >0: Enable |
au.AllowInitOnAudioRenderThread |
When enabled, this will initialize the submix on the audio render thread. | 0: Disable, 1: Enable |
au.AllowReverbForMultichannelSources |
Allows Reverb processing for sources with channel counts >2. | 0: Disable, >0: Enable |
au.AnalysisTimeShift |
Shifts the timeline for baked analysis playback. | Value: the number of seconds timeline should shift |
au.BakedAnalysisEnabled |
Enables or disables queries to baked analysis from audio components. | 0: Disable, 1: Enable |
au.BypassAudioPlugins |
Bypasses any audio plugin processing. | 0: Enable, 1: Disable audio plugin processing |
au.BypassPlayWhenSilent |
When set to 1, this ignores the Play When Silent flag for non-procedural sources. | 0: Honor the Play When Silent flag, 1: Stop all silent non-procedural sources |
au.ClearMutesAndSolos |
Clears any solo or muted sounds. | 0: Disable, 1: Enable |
au.CommandBufferFlushWaitTimeMs |
How long to wait for the command buffer flush to complete. | Value: the number of milliseconds |
au.Debug.Display.X |
Sets initial X position when rendering debug text to viewport. | Default = 100 |
au.Debug.Display.Y |
Sets initial Y position when rendering debug text to viewport. | Default: -1 |
au.Debug.SoundCues |
Posts SoundCue information to viewport(s). Replaces deprecated command stat soundcues . |
0: Disable, 1: Enable, Optional: -AllViews (enable/disable for all viewports, not just those associated with current world) |
au.Debug.SoundCues.Minimal |
Uses the compact view of sound cue debug when enabled. | 0: Disable, 1: Enable |
au.Debug.Soundcues.ShowPath |
Displays the full path of sound cue when enabled. | 0: Disable, 1: Enable |
au.Debug.SoundCues.Spacing.Char |
Size of character (in pixels) with compact view. | Default: 7 |
au.Debug.SoundCues.Spacing.Tab |
Size of tab (in characters) with compact view. | Default: 5 |
au.Debug.SoundMixes |
Posts SoundMix information to viewport(s). Replaces deprecated command stat soundmixes . |
0: Disable, 1: Enable, Optional: -AllViews (enable/disable for all viewports, not just those associated with current world) |
au.Debug.SoundModulators |
Posts SoundModulation information to viewport(s). Replaces deprecated command stat soundmodulators . |
0: Disable, 1: Enable, Optional: -AllViews (enable/disable for all viewports, not just those associated with current world) |
au.Debug.SoundReverb |
Posts SoundReverb information to viewport(s). Replaces deprecated command stat soundreverb . |
0: Disable, 1: Enable, Optional: -AllViews (enable/disable for all viewports, not just those associated with current world) |
au.Debug.Sounds |
Posts SoundWave information to viewport(s). Replaces deprecated command stat sounds . |
0: Disable, 1: Enable, Optional: -AllViews (enable/disable for all viewports, not just those associated with current world) |
au.Debug.Sounds.Max |
Maximum number of sounds to display in full sound debugger view. | Default: 32 |
au.Debug.Sounds.ShowPath |
Displays full path of sound when enabled in sound debugger list. | 0: Disable, 1: Enable |
au.Debug.Sounds.Sort |
Value to sort by and display when sound stats are active. | Value: Class, Distance, Name (default), Priority (highest of wave instances per sound), Time, Waves, Volume |
au.Debug.Sounds.TextColor |
Color of body text in audio debug views. | Value: White, Red, Orange, Yellow, Blue, Magenta, Purple, Black |
au.Debug.SoundWaves |
Post SoundWave information to viewport(s). Replaces deprecated command stat soundwaves . |
0: Disable, 1: Enable, Optional: -AllViews (enable/disable for all viewports, not just those associated with current world) |
au.DecompressionThreshold |
If non-zero, overrides the decompression threshold set in either the sound group or the platform's runtime settings. | Value: Maximum duration in seconds to fully decompress |
au.DefaultModulationPlugin |
Name of default modulation plugin to load and use (overridden by platform-specific implementation name in config). | N/A |
au.DisableAppVolume |
Ignores external volume change commands when set to 1. | 0: Restore app volume, 1: Disable app volume |
au.DisableAutomaticPrecache |
When set to 1, this disables precaching on load or startup, and will only precache synchronously when playing. | 0: Use normal precaching logic, 1: Disable all precaching except synchronous calls |
au.DisableBinauralSpatialization |
Disables binaural spatialization. | 0: Disable, 1: Enable |
au.DisableDeviceSwap |
Disables device swap handling code for Audio Mixer on Windows. | 0: Disable, 1: Enable |
au.DisableDistanceAttenuation |
Disables using any Distance Attenuation. | 0: Disable, 1: Enable |
au.DisableEnvelopeFollowing |
Disables using the envelope follower for source envelope tracking. | 0: Disable, 1: Enable |
au.DisableFiltering |
Disables using the per-source lowpass and highpass filter. | 0: Disable, 1: Enable |
au.DisableHPFiltering |
Disables using the per-source high pass filter. | 0: Disable, 1: Enable |
au.DisableLegacyReverb |
Disables reverb on legacy audio backends. | 0: Disable, 1: Enable |
au.DisableParallelSourceProcessing |
Disables using async tasks for processing sources. | 0: Disable, 1: Enable |
au.DisableQuadReverb |
Disables quad reverb in surround. | 0: Disable, 1: Enable |
au.DisableQuadReverbLegacy |
Disables quad reverb in surround. | 0: Disable, 1: Enable |
au.DisableReverbSubmix |
Disables the reverb submix. | 0: Disable, 1: Enable |
au.DisableReverbSubmixLegacy |
Disables the reverb submix. | 0: Disable, 1: Enable |
au.DisableSourceEffects |
Disables using any source effects. | 0: Disable, 1: Enable |
au.DisableStereoSpread |
When enabled, this ignores the 3D Stereo Spread property in attenuation settings, and instead renders audio from a singular point. | 0: Disable, 1: Enable |
au.DisableStoppingVoices |
Disables the Stopping Voices feature. | 0: Disable, 1: Enable |
au.DisableSubmixEffectEQ |
Disables the EQ submix. | 0: Disable, 1: Enable |
au.dsp.FFTMethod |
Determines whether to use an iterative FFT or a DFT method. | 0: Use Iterative FFT, 1: Use DFT |
au.DumpActiveSounds |
Outputs data about all currently active sounds to the log. | N/A |
au.editor.CookOverrideCachingInterval |
Sets the maximum latency between when a cook override is changed in the project settings and when it is applied to new audio sources. | Value: Time in seconds between caching intervals |
au.EnableBinauralAudioForAllSpatialSounds |
Toggles binaural audio rendering for all spatial sounds if binaural rendering is available. | 0: Disable, 1: Enable |
au.EnableDetailedWindowsDeviceLogging |
Enables detailed Windows device logging. | 0: Disable, 1: Enable |
au.EnableOcclusionFilterScale |
Scales occlusion by a 0.25f to compensate for change in filter cutoff frequencies in audio mixers. | 0: Disable, 1: Enable |
au.EnableReverbStereoFlipForQuad |
Enables a stereo flip for quad reverb when in surround. | 0: Disable, 1: Enable |
au.EnableReverbStereoFlipForQuadLegacy |
Enables a stereo flip for quad reverb when in surround. | 0: Disable, 1: Enable |
au.FadeOutTimeoutMSec |
Amount of time to wait for the FadeOut Event to fire. | Value: Time in milliseconds |
au.FlushAudioRenderCommandsOnSuspend |
When set to 1, ensures that all pending commands to the audio thread and audio render thread are pumped through on app suspension. | 0: Enable, 1: Disable |
au.FlushAudioRenderThreadOnGC |
When set to 1, every time the GC runs, all pending audio render thread commands are flushed. | 1: Enable |
au.FlushCommandBufferOnTimeout |
When set to 1, this flushes the audio render thread synchronously when the fence has timed out. | 1: Enable |
au.ForceRealtimeDecompression |
When set to 1, this deliberately ensures that all audio assets are decompressed as they play, rather than decompressed fully on load. | 0: Allow full decompression on load, 1: force real-time decompression. |
au.ForceSyncAudioDecodes |
Disables the use of async tasks for processing sources. | 0: Stop using synchronous tasks, 1: Force audio decoding to be synchronous |
au.IsUsingAudioMixer |
Determines whether the audio mixer is used. This will only take effect if an audio device is currently not in use, unless au.AllowUnsafeAudioMixerToggling is set to 1. Sounds will stop, and looping sounds will not automatically resume. |
0: Not Using Audio Mixer, 1: Using Audio Mixer |
au.LinearGainScalarForFinalOutut |
Applies a linear gain scalar to the final float buffer to allow for hotfixable mitigation of clipping. | Default: 1.0f |
au.LogRenderTimes |
Logs audio render times. | 0: No Log, 1: Log |
au.MaxConcurrentStreams |
Overrides the maximum concurrent streams. | 0: Not Overridden, >0 Overridden |
au.nrt.RenderEveryTick |
When set to 1, the engine calls RenderAudio at every tick. | 0 = Do not render every tick, 1 = Do render every tick |
au.nrt.RenderFrameSize |
Selects the number of frames to render in a single callback. | Value: Number of frames to render |
au.NumPrecacheFrames |
When set to >0, that value will determine the number of frames to precache for audio buffers. | 0: Use default value for precache frames, >0: Number of frames to precache. |
au.OverrunTimeoutMSec |
Amount of time to wait for the render thread to time out before swapping to the null device. | Value: Time in milliseconds |
au.RealtimeDecompressZeroDurationSounds |
When set to 1, this deliberately ensures that all audio assets are decompressed as they play, rather than fully on load. | 0: Allow full decompression on load, 1: force real-time decompression |
au.RecoverRecordingOnShutdown |
When set to 1, this will attempt to bounce the recording to a .wav file if the game is shut down while a recording is in flight. | 0: Disable, 1: Enable |
au.RenderThreadPriority |
Sets the audio render thread priority. Defaults to 3. | 0: Normal, 1: Above Normal, 2: Below Normal, 3: Highest, 4: Lowest, 5: Slightly Below Normal, 6: Time Critical |
au.ReportAudioDevices |
Logs any active audio devices (instances of the audio engine) alive at that time. | N/A |
au.SetAudioChannelCount |
Changes the audio channel count. Maximum value is clamped to the MaxChannelCount used to initialize the audio engine. | 0: Disable, >0: Number entered is the new channel count |
au.SetAudioChannelScaleCount |
Changes the audio channel count by percentage. | Default depends on channels available in the system. Can be changed by adding different values. |
au.SoundDistanceOptimizationLength |
The maximum duration a sound must be in order to be a candidate to be culled due to one-shot distance optimization. | Default 1.0 (in seconds) |
au.SpoofFailedStreamChunkLoad |
Forces the engine to treat any incoming streamed chunks as though they had failed to load. | 0: Disable, 1: Enable |
au.streamcaching.AlwaysLogCacheMisses |
When set to a nonzero value, all cache misses will be added to the audiomemreport . |
0: Do not log cache misses until au.streamcaching.StartProfiling is called. 1: Always log cache misses. |
au.streamcaching.FlushAudioCache |
This will flush any non-retained audio from the cache when stream caching is enabled. | N/A |
au.streamcaching.ForceBlockForLoad |
When set to a nonzero value, this blocks GetLoadedChunk until the disk read is complete. |
0: Disable, 1: Force load to block |
au.streamcaching.KeepCacheMissBufferOnFlush |
If set to 1, this will maintain a buffer of recorded cache misses after calling AudioMemReport . Otherwise, calling AudioMemReport will flush all previous recorded cache misses. |
1: All cache misses from the whole session will show up in AudioMemReport. 0: Only cache misses since the previous call to AudioMemReport will show up in the current AudioMemReport . |
au.streamcaching.MaxCachesToDisplay |
Sets the maximum amount of stream chunks to display on screen. | Value: Number of elements to display on screen. |
au.streamcaching.MinimumCacheUsage |
This value is the minimum potential usage of the stream cache we feasibly want to support. Setting this to 0.25, for example, causes us to potentially be using 25% of our cache size when we start evicting chunks, the worst case scenario. | 0.0: Limit the number of chunks to our (Cache Size / Max Chunk Size), [0.01-0.99]: Increase the number of chunks to limit disk IO when lots of small sounds are playing. |
au.streamcaching.PlaybackRequestPriority |
Sets the default request priority for audio chunks that are about to play back but are not in the cache. | 0: High, 1: Normal, 2: Below Normal, 3: Low, 4: Min |
au.streamcaching.PrimeSoundOnAudioComponents |
When set to 1, automatically primes a USoundBase when a UAudioComponent is spawned with that sound, or when UAudioComponent::SetSound is called. |
0: Disable, 1: Enable |
au.streamcaching.ReadRequestPriority |
Sets the default request priority for audio chunks when Stream Caching is turned on. | 0: High, 1: Normal, 2: Below Normal, 3: Low, 4: Min |
au.streamcaching.ResizeAudioCacheTo |
Will try to cull enough audio chunks to shrink the audio stream cache to the new size if necessary, and keep the cache at that size. | Value: Size in megabytes |
au.streamcaching.SaveAudiomemReportOnCacheOverflow |
When set to 1, prints an audiomemreport when the cache has overflowed. | 0: Disable, 1: Enable |
au.streamcaching.StartProfiling |
Starts a performance-intensive profiling mode for this streaming manager. Profile stats can be output with audiomemreport. | N/A |
au.streamcaching.StopProfiling |
Stops the au.streamcaching.StartProfiling command. |
N/A |
au.streamcaching.StreamCacheSizeOverrideMB |
This CVar can be set to override the size of the cache. 0: use cache size from project settings. | Value: The new cache size in megabytes. |
au.streamcaching.TrimCacheWhenOverBudget |
When set to a nonzero value, TrimMemory will be called in AddOrTouchChunk to ensure you never go over budget. |
0: Disable, >0: Enable (any nonzero value entered here will be the equivalent of 1) |
au.submix.clearbrokensubmixassets |
If fixed, this will verify that you do not have a submix that lists a child submix that is no longer its child, and the former children will not erroneously list their previous parents. | N/A |
au.UnderrunTimeoutMSec |
Amount of time to wait for the render thread to generate the next buffer before submitting an underrun buffer. | Value: the number of milliseconds |
au.UseListenerOverrideForSpread |
Zero attenuation override distance for stereo panning. | 0: Use actual distance, 1: Use listener override |
au.VirtualLoops.Enabled |
Enables or disables virtualization support for audio loops. | 0: Disable, 1: Enable |
au.VirtualLoops.ForceUpdateListenerMoveDistance |
Sets the distance threshold required to force an update on virtualized sounds to check for if a listener moves in a single frame over the given distance, measured in Unreal Units (UU). | 0: Disable, 1: Enable, Default value: 2500 UU |
au.VirtualLoops.PerfDistance |
Sets virtual loop distance to scale update rate between minimum and maximum beyond maximum audible distance of sound. | 0: Disable, 1: Enable, Default value: 15000.0 |
au.VirtualLoops.UpdateRate.Max |
Sets maximum rate to check if sound becomes audible again (at beyond sound's maximum audible distance + perf scaling distance). | 0: Disable, 1: Enable, Default value: 3.0f |
au.VirtualLoops.UpdateRate.Min |
Sets minimum rate to check if sound becomes audible again at sound's maximum audible distance. | 0: Disable, 1: Enable, Default value: .1f |
au.WaitForSoundWaveToLoad |
When set to 1, this will refuse to play any sound unless the USoundWave has been loaded. |
0: Attempt to play back, 1: Wait for load |
Older Audio Console Commands
The commands below are included because some users may still employ them, and because they do have functionality.
However, these commands do not have any input arguments, and they do not auto-fill the way the newer audio console commands do.
Command | Description/Comments |
---|---|
Audio3dVisualize |
Toggles 3D visualization of 3D sounds on/off |
AudioDebugSound |
Takes a sound name as an additional input, and provides debug info for that sound |
AudioGetDynamicSoundVolume |
Takes a dynamic sound volume name as an additional input, and provides debug info for that volume |
AudioMemReport |
Creates a memory report on audio objects |
AudioMixerDebugSound |
Takes a sound name as an additional input, and provides debug info for that sound |
AudioResetAllDynamicSoundVolumes |
Resets all dynamic sound volumes |
AudioResetDynamicSoundVolume |
Takes a dynamic sound volume name as an additional input, and resets that specific volume |
AudioSetDynamicSoundVolume |
Takes a dynamic sound volume name as an additional input, and sets that specific volume |
AudioSoloSoundClass |
Takes a sound class name as an additional input, and toggles whether that sound class is solo (the only audible sound) |
AudioSoloSoundCue |
Takes a sound cue name as an additional input, and toggles whether that sound cue is solo (the only audible sound) |
AudioSoloSoundWave |
Takes a sound wave name as an additional input, and toggles whether that sound wave is solo (the only audible sound) |
ClearSoloAudio |
Clears the solo command of any audio device currently soloing |
DisableHPF |
Disables High Pass Filter functionality for all sources |
DisableLPF |
Disables Low Pass Filter functionality for all sources |
DisableRadio |
Disables radio effects |
DumpSoundInfo |
Prints detailed information about currently active sound objects |
EnableRadio |
Enables radio effects |
IsolateDryAudio |
Isolates the dry signal of sounds currently playing (the portion of the sounds that have not yet gone through effects processing) |
IsolateReverb |
Isolates audio generated by reverb processes |
ListAudioComponents |
Dumps a list of all active sound components and their data |
ListSoundClassVolumes |
Dumps a list of all active sound class volumes and their data |
ListSoundClasses |
Dumps a list of all active sound classes and their data |
ListSoundDurations |
Dumps a list of each sound wave object along with its corresponding duration |
ListSounds |
Displays debug information about the loaded sounds. Additional parameters: ALPHASORT: Sorts the sounds by name if set to true. Otherwise, sort by memory usage size in decreasing order; LONGNAMES: If set to true, this will print the full path of each sound listed. Otherwise, this will only print the object name. |
ListWaves |
Displays information about currently active wave instances using the following fields: Instance Index Source ? TEXT("Yes") : TEXT("No"), Playback Time, Volume, Path Name, Sound Name |
PlayAllPIEAudio |
Toggles whether audio from all devices is audible regardless of which PIE window has focus |
PlaySoundCue |
Takes a sound cue name as additional input and plays the sound cue |
PlaySoundWave |
Takes a sound wave name as additional input and plays the sound wave |
ResetSoundState |
Resets all volumes to their defaults and removes all test filters |
SetBaseSoundMix |
Takes a soundmix name as an additional parameter and sets the soundmix as the base mix |
ShowSoundClassHierarchy |
Shows the hierarchy of sound classes |
SoloAudio |
Sets a single device as the solo device by muting all other devices. |
SoundClassFixup |
Handles potential corruption and path collision in sound classes |
TestLFEBleed |
Sets the Low Pass Filter to maximum for all sources, in order to test for potential LFE bleed issues |
TestLPF |
Sets the Low Pass Filter to maximum for all sources |
ToggleHRTFForAll |
When called, it will change whether HRTF is enabled for all. For example, if bHRTFEnabledForAll is currently set to false, it will set it to true. |