It is quite common to use various arguments when working on an Unreal Engine project. I will try here to provide a (non-exhaustive) list of convenient arguments I use.

If you are using Visual Studio, setting the argument from the project properties is not the only way. You can use extensions for this. Smart Command Line Arguments is quite useful but unfortunately it can cause performance issues on big projects and in the end I had to disable it. Using the Unreal VS extension was the most convenient. Check out the Unreal VS documentation for more information.

⚠️ Disclaimer Some of these arguments may be invalid or behave differently depending on the Unreal Engine version.

Editor/Various

Flag Description Typical Use Case Notes
-noAssetDiscovery Disables automatic asset discovery at startup. Faster startup, controlled asset loading Useful when asset registry is prebuilt or fixed.
-skipAssetScan Skips scanning assets entirely during startup. Minimizing startup time in cooked builds Requires a valid pre-generated Asset Registry; otherwise assets may be missing.
-basedir= Overrides the base directory used by the executable. Running builds from custom locations Path must point to a valid packaged build directory.
-EnableCheats Enables cheat commands in non-development builds. Testing gameplay/debugging in packaged builds Requires cheat manager or console commands to be implemented.
-nosound Disables all audio output and sound system initialization. Performance testing, headless runs Useful for CPU/GPU profiling without audio overhead.
-DisablePlugins=PluginName Disables one or more plugins at startup. Isolating issues, reducing load footprint Can specify multiple plugins (comma-separated). Plugin must not be required by dependencies.

Rendering

Category Flag Description
NVIDIA Crash Debugging -nvaftermath=0 Disables NVIDIA Aftermath GPU crash debugging integration.
NVIDIA Crash Debugging -NoNvAftermath Explicitly disables NVIDIA Aftermath crash debugging (equivalent intent to -nvaftermath=0).
NVIDIA Features -ngxdisable Disables NVIDIA NGX features such as DLSS or other NGX SDK features.
D3D12 Crash Diagnostics -dred Enables Direct3D Device Removed Extended Data (DRED) crash diagnostics.
D3D12 Crash Diagnostics -dred=0 Disables DRED diagnostics.
D3D12 Debugging -d3ddebug Enables the Direct3D debug layer for additional validation and diagnostic messages.
D3D12 Debugging -d3dbreakonwarning Causes the debugger to break when the D3D debug layer emits a warning.
D3D12 GPU Validation -D3D12GPUValidation Enables GPU-based validation in Direct3D 12 to detect incorrect GPU API usage.
D3D12 GPU Validation -gpuvalidation Enables GPU validation checks for resource/state misuse.
GPU Crash Debugging -gpucrashdebugging Enables additional GPU crash debugging (breadcrumbs, Aftermath, etc. depending on platform).
RDG Debugging -rdgimmediate Executes Render Dependency Graph passes immediately instead of deferred scheduling.
RHI Threading -norhithread Disables the RHI thread and runs rendering commands on the main thread.
RHI Debugging -forcerhibypass Forces RHI bypass mode so commands execute immediately without batching.
Threading -onethread Forces the engine to run in a single-threaded mode by disabling task graph multithreading. Useful when debugging race conditions or threading-related crashes.
Tools / Capture -AttachRenderDoc Automatically attaches RenderDoc for frame capture debugging.
Tools / Capture -attachPix Automatically attaches Microsoft PIX to the application for GPU debugging and capture.
Driver / PSO Cache -clearPSODriverCache Clears the GPU driver’s Pipeline State Object (PSO) cache before launch.

When investigating GPU crashes, device removal errors, or rendering validation issues in Unreal Engine using Direct3D 12, the following command-line arguments are commonly enabled together:

-d3ddebug -d3dbreakonwarning -gpuvalidation -dred -gpucrashdebugging

This configuration activates several layers of diagnostics provided by Direct3D and Unreal Engine. Enabled Diagnostics

-d3ddebug Enables the Direct3D debug layer. This layer performs additional runtime validation of API usage and reports detailed messages for incorrect resource states, invalid parameters, or misuse of the D3D12 API.

-d3dbreakonwarning Configures the Direct3D debug layer to trigger a debugger break whenever a warning is emitted. This helps identify issues at the exact moment they occur rather than after a GPU failure.

-gpuvalidation Enables GPU-based validation. This validation runs additional checks on the GPU to detect incorrect resource usage such as descriptor misuse, invalid resource states, or out-of-bounds accesses that may not be caught by CPU-side validation.

-dred Enables Device Removed Extended Data (DRED) diagnostics. When a GPU device removal or crash occurs, DRED records breadcrumbs and detailed information about the GPU command history to help identify the failing operation.

-gpucrashdebugging Enables Unreal Engine GPU crash debugging features. Depending on the platform and GPU vendor, this can include GPU breadcrumbs, integration with vendor crash debugging tools, and enhanced crash reporting. Typical Use Cases

Profiling

Flag Description Typical Use Case Notes
-poisonmallocproxy Wraps allocations with patterns to detect memory misuse. Memory debugging Helps catch use-after-free and uninitialized reads.
-stompmalloc Uses a guarded allocator that places allocations on separate pages. Detecting buffer overruns/underruns Very slow; intended only for debugging.
-nothreadtimeout Disables thread timeout detection. Debugging long stalls Prevents watchdogs from terminating hung threads.
-LLM Enables Low-Level Memory (LLM) tracking. Memory profiling Required for detailed memory breakdowns (stat LLM).
-noailogging Disables AI logging output. Reducing log noise/perf overhead Useful in large-scale AI simulations.
-noscreenmessages Disables on-screen debug messages. Cleaner output / benchmarking Equivalent to suppressing GEngine->AddOnScreenDebugMessage.
-NOVERIFYGC Disables garbage collection verification checks. Profiling / performance analysis Can hide GC issues; not safe for debugging correctness.
-statnamedevents Enables named stat events for profiling tools. CPU/GPU profiling Improves visibility in external profilers (e.g., PIX).
-trace=task,default Enables tracing for task graph and default channels. Performance analysis Uses Unreal Insights tracing system.
-trace=default,stats,counters Enables tracing for default, stats, and counter channels. Detailed telemetry capture Can generate large trace files; combine with -tracehost.

Runtime

Flag Description Typical Use Case Notes
-inifile= Overrides one or more config (.ini) files at startup. Testing custom configurations Format: -inifile=<ConfigName>:<Path> (e.g., Engine:MyEngine.ini). Can be specified multiple times.
-DPCVars= Sets console variables (CVars) at startup via Device Profile system. Forcing runtime settings for profiling Format: -DPCVars="r.ShadowQuality=0,r.TextureStreaming=0". Applied early, before most systems initialize.