Payday 3: Best Engine.ini for Unreal Engine 4 Logic Fix

The “Logic Fix” refers to offloading the synchronous shader compilation to the loading phase. By default, UE4 compiles shaders “just-in-time,” which causes a massive frame-drop the first time a thermite charge goes off or a flashbang explodes. This configuration forces the engine to prepare these assets beforehand.

File Path

The Engine.ini is located in your local AppData. Note that if you are on the Game Pass version, the folder might be named WindowsClient instead of WindowsNoEditor.

%LOCALAPPDATA%\PAYDAY3\Saved\Config\WindowsNoEditor\Engine.ini

Technical Note: Before applying these, right-click Payday 3 in Steam > Properties and add -dx12 to the Launch Options. For Game Pass users, you may need to create a desktop shortcut and add -dx12 to the target path.

Optimized Engine & Logic Configuration Block

Open Engine.ini and paste these blocks at the bottom. We have separated the Rendering Settings (for FPS) and the Renderer Settings (for Stutter Fix).

ParameterRecommended ValueTechnical Purpose
r.CreateShadersOnLoad1Forces the engine to compile shaders during the splash screen/load.
niagara.CreateShadersOnLoad1Specifically prepares particle effects (smoke/sparks) for zero-lag combat.
r.TextureStreaming0Disables on-the-fly loading; eliminates “pop-in” stutter if you have 8GB+ VRAM.
r.ScreenPercentage80Sets internal resolution to $80\%$; uses TAA to upscale, doubling FPS.
r.OneFrameThreadLag0Reduces input latency by synchronizing the game and render threads.
[/Script/Engine.RendererSettings]
r.CreateShadersOnLoad=1
niagara.CreateShadersOnLoad=1
r.DefaultFeature.AntiAliasing=2
r.PostProcessAAQuality=4
r.TemporalAA.Upsampling=1
r.TemporalAA.Algorithm=1
r.ScreenPercentage=80
r.SceneColorFringeQuality=0
r.SSR.Quality=0

[SystemSettings]
r.TextureStreaming=0
r.VolumetricFog=0
r.DepthOfFieldQuality=0
r.OneFrameThreadLag=0

HowTo: Engineering a Stutter-Free Heist

Follow these GameEngineer.net technical steps to ensure your DX12 transition is stable:

  1. Shader Warmup: The first time you launch the game with -dx12 and the new Engine.ini, the main menu may hang for 60 seconds. Do not close it. The engine is creating your shader cache.
  2. The “Mouse Polling” Trap: UE4’s input stack in Payday 3 struggles with high polling rates. If your camera “hitches” while moving the mouse but your FPS is stable, lower your mouse polling rate from 4000Hz/8000Hz to 1000Hz in your mouse software.
  3. VRAM Management: If you have less than 6GB of VRAM, do not set r.TextureStreaming=0. Instead, keep it at 1 to avoid “Out of Video Memory” crashes on larger heists like Road Rage.
  4. Shadow Cascades: In-game, set Shadows to Medium. In Payday 3, “Ultra” shadows calculate dynamic contact hardening, which is a massive draw-call hog during police assaults.
  5. NVIDIA Reflex: If available in-game, set this to On + Boost. This works in tandem with our r.OneFrameThreadLag=0 tweak to provide the lowest possible click-to-fire latency.

Technical Explanation: PSO Pre-caching in UE4

The core issue with Payday 3’s performance is Pipeline State Object (PSO) hitches. When a new light source (like a flare) appears, the GPU needs a specific “recipe” to render it. In DX11, the driver handles this poorly. In DX12, the game is supposed to provide these recipes.

By adding r.CreateShadersOnLoad=1, we move the “recipe” creation to the start of the game. Furthermore, using TAA Upsampling (r.TemporalAA.Upsampling=1) allows the engine to render at a lower resolution ($80\%$ of your native) and then use information from previous frames to reconstruct the image. This provides a “DLSS-like” boost for all GPUs (including GTX 10-series and older AMD cards) while bypassing the game’s broken internal resolution scaler.

Leave a Comment