Since the launch of Stalker 2, players have been complaining about the game not being properly optimized. While some are experiencing crashes during shader compilation, others with high-end PCs are facing stuttering, lagging, and grainy graphics while playing. Below, you will find a brief guide on how to fix mouse input lag, grainy graphics, and occasional stuttering.
Note: These tweaks or mods will not fully optimize the game but might make it playable.
Stalker 2 Optimize Performance By Tweaking Engine.ini File
How to Locate and Edit the Engine.ini File
- Locate the engine.ini file:
- For Steam players: The file is located at:
%localappdata%\Stalker2\Saved\Config\Windows
. - For Game Pass players: The file is located at:
%localappdata%\Stalker2\Saved\Config\WinGDK
.
Paste these paths into the address bar of File Explorer to directly navigate to the folder containing the engine.ini file.
- For Steam players: The file is located at:
- Edit the engine.ini file:
Open the file using a text editor such as Notepad or any text document editor. Once opened, add the following lines to the file:
[SystemSettings]
t.MaxFPS=120 ; Only if your max refresh rate is 120hz, otherwise change it accordingly
r.VSync=0 ; If you have VRR enabled on your display, otherwise delete it
r.D3D11.UseAllowTearing=1 ; If you have VRR enabled on your display, otherwise delete it
r.D3D12.UseAllowTearing=1 ; If you have VRR enabled on your display, otherwise delete it
r.Streaming.PoolSize=12288 ; Only for 16GB VRAM. If you have 24GB use 18432, for 12GB use 9216, for 8GB use 6144, for 6GB use 4608, for 4GB use 3072
r.MaxAnisotropy=16
r.Tonemapper.GrainQuantization=0
r.FilmGrain=0
r.NT.Lens.ChromaticAberration.Intensity=0
r.SceneColorFringeQuality=0
niagara.CreateShadersOnLoad=1
r.TemporalAACurrentFrameWeight=0.15
r.TemporalAASamples=8
r.TemporalAASharpness=0.9
r.Tonemapper.Sharpen=0.8
r.RHICmdBypass=0
r.GPUCrashDebugging=0
r.AllowMultiThreadedShaderCreation=1
r.TextureStreaming.MinTextureResidentMipCount=7
r.Streaming.HLODStrategy=2
r.Streaming.LimitPoolSizeToVRAM=1
r.Streaming.MipBias=0
r.RenderTargetPoolMin=400
r.GTSyncType=1
r.EarlyZPass=2
r.AllowOcclusionQueries=1
r.GBufferFormats=3
r.AsyncCompute=1
r.UseAsyncShaderPrecompilation=1
r.Streaming.DefragDynamicBounds=1
r.Streaming.UseAllMips=1
D3D12.MaximumFrameLatency=3
D3D12.AsyncDeferredDeletion=1
D3D12.AFRUseFramePacing=1
D3D11.MaximumFrameLatency=3
D3D11.AsyncDeferredDeletion=1
D3D11.AFRUseFramePacing=1
FX.AllowAsyncTick=1
FX.BatchAsync=1
FX.BatchAsyncBatchSize=8
FX.EarlyScheduleAsync=1
AllowAsyncRenderThreadUpdates=1
AudioThread.EnableBatchProcessing=1
AudioThread.BatchAsyncBatchSize=9999999
[ShaderCompiler]
bAllowAsynchronousShaderCompiling=True
bAllowCompilingThroughWorkerThreads=True
NumUnusedShaderCompilingThreads=1
bAsyncShaderCompileWorkerThreads=True
bEnableOptimizedShaderCompilation=True
MaxShaderJobBatchSize=50
MaxShaderJobs=500
[/script/engine.engine]
bAllowMultiThreadedShaderCompile=True
[DevOptions.Shaders]
bAllowShaderCompilingWorker=True
bOptimizeForLocalShaderBuilds=True
WorkerThreadPriority=0
bUseBackgroundCompiling=True
[TextureStreaming]
r.TextureStreaming=1
r.Streaming.FullyLoadUsedTextures=1
r.Streaming.FullyLoadUsedTextures_Always=1
r.Streaming.DefragDynamicBounds=1
r.Streaming.FramesForFullUpdate=1
[Core.System]
r.XGEShaderCompile=1
r.XGEShaderCompile.Mode=3
r.IoDispatcher.CacheSize=4096
r.IoDispatcher.AsyncBatchReadSizeKB=4096
+Suppress=Scriptwarning
+Suppress=Error
+Suppress=Scriptlog
+Suppress=Warning
[Engine.InputSettings]
RawMouseInputEnabled=1
bEnableMouseSmoothing=False
bViewAccelerationEnabled=False
[Engine.RendererSettings]
r.AsyncCreateLightPrimitiveInteractions=1
r.RDG.AsyncCompute=1
r.AsyncPipelineCompile=1
r.AmbientOcclusion.AsyncComputeBudget=1
r.EnableAsyncComputeVolumetricFog=1
r.Streaming.UseAsyncRequestsForDDC=1
[RenderingThread]
bAllowThreadedRendering=True
bAllowAsyncRenderThreadUpdates=True
[/script/engine.streamingsettings]
s.AsyncLoadingThreadEnabled=True
s.AsyncLoadingThreadEnabled=1
s.AsyncLoadingUseFullTimeLimit=1
s.MinBulkDataSizeForAsyncLoading=0
s.PriorityAsyncLoadingExtraTime=0
s.AsyncLoadingTimeLimit=4
[/script/engine.garbagecollectionsettings]
gc.MultithreadedDestructionEnabled=1
[Engine.ErrorHandling]
bPromptForRemoteDebugging=False
bPromptForRemoteDebugOnEnsure=False
[/script/akaudio.aksettings]
bEnableMultiCoreRendering=True
[CrashReportClient]
bAgreeToCrashUpload=False
bImplicitSend=False
[Core.Log]
LogPluginManager=off
LogOnlineIdentity=off
LogOnlineSession=off
LogMemory=off
LogPakFile=off
LogTemp=off
LogLinker=off
LogOnline=off
LogOnlineGame=off
LogAnalytics=off
LogConfig=off
LogInteractiveProcess=off
LogInput=off
LogOnlineEntitlement=off
LogOnlineEvents=off
LogOnlineFriend=off
LogOnlinePresence=off
LogOnlineTitleFile=off
LogOnlineUser=off
Global=off
[Engine.GarbageCollectionSettings]
gc.MinimalAsyncGarbageCollectionTime=0.3
Note: You only need to modify the first five lines depending on your PC hardware. The rest of the settings can be adjusted in-game from the settings menu.
Stalker 2 Mods To Optimize Performance
To optimize performance using a mod file, follow these steps:
- Download the mod file from [HERE].
- Navigate to the “Paks” folder located in the game files. The folder can be found under:
“S.T.A.L.K.E.R. 2\Content\Stalker2\Content\Paks”. - Inside the Paks folder, create a new folder called
~mods
and paste the.pak
file you downloaded.
Important: Do not use the above engine.ini commands while using this mod. You should either tweak the engine.ini file (using the guide below) or use the mods to optimize performance, but not both.