Satisfactory – Big Optimization Guide

Satisfactory – Big Optimization Guide 3 - steamlists.com
Satisfactory – Big Optimization Guide 3 - steamlists.com
Description of settings in configuration files that affects graphics quality and fps

 

Introduction

I tried many settings, reading all kinds of ue4 documentation
below settings really helpful, just works and you can set them yourself how you like

Do not forget to add guide to your favorites or look here again, the guide will be updated constantly as far as possible

Launch options

From a game’s library page, select Manage > Properties. On the General tab you’ll find Launch Options section. Enter the launch options you wish to apply (be sure to separate each code with a space).

  • NOTEXTURESTREAMING disables texture streaming, helps with stuttering, highest quality textures are always loaded, cons increase loading time, require minimal 8GB video memory
  • -NoVerifyGC flag skips that safety check of GC, which allows the garbage collector to work more quickly, can helps with stuttering, require above 8GB RAM
  • -nothreadtimeout the dead rendering thread check can be skipped if “-nothreadtimeout” appears in the command line for UE4Game, can be helpful avoid crash to desktop (CTD)

 

Description of settings Engine.ini

All settings you can tried in the game console before applying to in Engine.ini
just open in-game console for this need to press CTRL+SHIFT+L and then press ~
show default dev settings you can press double time ~ and then enter for example r.ViewDistanceScale
An example of how to set your own value in the console r.ViewDistanceScale 3

File Engine.ini located on the path %userprofile%\AppData\Local\FactoryGame\Saved\Config\WindowsNoEditor
After add options in Engine.ini, be sure to set “read only” in the properties of file Engine.ini
Common settings:

  • r.ViewDistanceScale draw distance multiplier, multiplier for how far away all things will be drawn low (0.1) to high (10), default(1) strong performance impact
    r.ViewDistanceQuality quality of draw distance low (0) to high (4)
  • r.SceneColorFormat affects performance, quality especially with translucency low (0) to high (5) default 4, optimally 3 average-low performance impact
  • r.CreateShadersOnLoad create shaders on load (1), which can reduce hitching
  • r.FinishCurrentFrame improve latency, but slow down overall performance (1), switch off can improve fps (0)
  • r.OneFrameThreadLag increases input lag, but boost fps(1)
  • r.RenderTargetPoolMin low 100 to high 5000 and above, rendering pool – non-freed memory needed for processing if it is not enough lags are possible, for default 400, but if you look at the log (C:\Users\%userprofile%\AppData\Local\FactoryGame\Saved\Logs\FactoryGame.log) and there are errors like:
    LogRenderTargetPool: Warning: r.RenderTargetPoolMin exceeded 675/400 MB (ok in editor, bad on fixed memory platform)
    then increase the value to the desired value, for example, in this case 1000 will be more than enough, but do not forget that this way you use up the video memory required for textures
  • r.bForceCPUAccessToGPUSkinVerts at (1) increases the load on the processor by reducing the load on the video card, if the processor is free, you can turn it on, increases fps
  • r.Streaming.MipBias quality of textures when streaming from low (2) to high (0)
  • r.MaterialQualityLevel quality of materials from low (0) to high (2)
  • r.ForceLOD (-1) sets the maximum draw distance from no LOD, everything will be cardboard consisting of LOD (1) has a strong effect on fps
  • r.Fog fog disable (0), enable (1)
  • r.StaticMeshLODDistanceScale level of distance at which meshes will be used from low (1) to high (0.25) has little or no effect on fps
  • r.MipMapLODBias sets the sharpness of textures from more blurry (15) to sharper (-15) has little or no effect on fps
  • r.DetailMode current detail mode from low (0) to high (2) medium impact on fps
  • r.Color.Mid color correction by default 0.5(50%) by changes is similar to gamma correction or contrast does not affect fps at all
  • r.ScreenPercentage increasing or decreasing the rendering resolution (supersampling, downsampling), 100 means 100% of the selected screen resolution, in extreme cases, to increase the fps, you can try to decrease the value

 

Anti-aliasing setting:

  • r.DefaultFeature.AntiAliasing AA mode 3-MSAA, 2-TAA, 1-FXAA
  • r.TemporalAASharpness at 1 enables the ability to adjust the sharpness of the picture
  • r.Tonemapper.Sharpen the strength of the sharpness of the whole picture, gives good clarity at 1 or higher
  • r.TemporalAACurrentFrameWeight at 0 there will be perfect anti-aliasing, the lower the value, the less ladders at the edges of objects and better anti-aliasing, the higher the value, the more noise from anti-aliasing
  • r.TemporalAAFilterSize filter size for AA, the parameter is selected experimentally
  • r.TemporalAASamples the number of samples for TAA anti-aliasing, does not greatly affect the FPS more than 16 does not make sense

 

Vegetation, buildings and grass settings:

    the quality and range of buildings are tied to the foliage parameter

  • foliage.LODDistanceScale distance to draw vegetation and buildings, the higher the value then less trees,buildings will suddenly pop-in when approaching them from low (0) to high (10) the effect on FPS is not large and depends on the higher the value, the stronger the effect
  • foliage.DensityScale vegetation density,vegetation on trees? low (0) to high (10) up to 2 the effect on fps is not large further fps decrease more
  • foliage.MinimumScreenSize Clipping, culling distance of grass, trees and parts of buildings from high (0.00000001) to full culling (1), docs.unrealengine.com – https://docs.unrealengine.com/en-US/BuildingWorlds/OpenWorldTools/TipsAndTricks/index.html
  • foliage.ForceLOD sets the maximum distance for drawing vegetation from no LOD (-1) to everything will be cardboard consisting of LOD (1) strongly affects the fps
  • grass.MaxUpdateFrequency the frequency of how quickly the grass will appear when approaching from low (1) to high (60) and more has little or no effect on fps, decrease value can decrease hitching,stuttering when moving
  • grass.DensityScale grass density from no grass (0) to high (10) up to 2 the effect on fps is not large further fps decrease more

 

Shadow settings:

  • r.ShadowQuality quality of shadows from 0 without shadows to 5, the optimal value is 3
  • r.Shadow.DistanceScale distance of drawing shadows from low (0.1) to high (10) the effect on FPS is not large and depends on the higher the value, the stronger the effect
  • r.Shadow.PreShadowResolutionFactor distance at which the shadow quality will decrease from 0.1 to 5
  • r.Shadow.MaxResolution maximum shadow resolution, optimally 1024

 

Removing restrictions on textures stored in memory or you can set your own values:

  • r.TextureStreaming enable (1) disable (0) texture streaming when disabled, the game will load longer, but all textures will be stored in memory, and not loaded from disk gradually, you will need at least 8GB of video card memory and 16GB of RAM
  • r.Streaming.UseFixedPoolSize use static pool of allocated memory (1), dynamically allocated memory (0)
  • r.Streaming.FullyLoadUsedTextures (1) turns on all used textures to their maximum resolution and stores them in memory as long as the application is open. This should be used as an alternative to completely disabling r.TextureStreaming
  • r.Streaming.LimitPoolSizeToVRAM if this parameter is enabled (1), the texture pool size will be limited by the video card memory.
  • PoolSizeVRAMPercentage is specified as a percentage of the video card memory, infinitely (0) OR
  • PoolSize is specified in megabytes, infinite (0)

 

Experimental options can improve fps:AllowAsyncRenderThreadUpdates=1 AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1 r.SupportDepthOnlyIndexBuffers=1 r.SupportReversedIndexBuffers=1 r.DBuffer=0 r.GPUCrashDebugging=0 r.CompileShadersForDevelopment=0 FX.AllowAsyncTick=1 FX.BatchAsync=1 FX.BatchAsyncBatchSize=9999999 FX.MaxCPUParticlesPerEmitter=50 FX.MaxGPUParticlesSpawnedPerFrame=2048 AudioThread.BatchAsyncBatchSize=9999999 AudioThread.UseBackgroundThreadPool=1 AudioThread.EnableBatchProcessing=1

 

Network settings

Increased bandwidth and increased tickrate, higher tick rate increase CPU use
After add options in Engine.ini, be sure to set “read only” in the properties of file Engine.ini

Engine.ini
[/script/engine.player] ConfiguredInternetSpeed=104857600 ConfiguredLanSpeed=104857600 [/script/onlinesubsystemutils.ipnetdriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 NetServerMaxTickRate=120 LanServerMaxTickRate=120 MaxNetTickRate=400 InitialConnectTimeout=300.0 ConnectionTimeout=300.0 [/script/engine.gamenetworkmanager] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=104857600 [/script/socketsubsystemepic.epicnetdriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 [/script/engine.engine] NetClientTicksPerSecond=120
Game.ini
[/script/engine.gamenetworkmanager] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=10485760
Scalability.ini
[NetworkQuality@3] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=10485760

Logs settings

Disable logs, no logs will be written to disk, may improve slightly FPS

[Core.System] +Suppress=Scriptwarning +Suppress=Error +Suppress=Scriptlog +Suppress=Warning [Core.Log] LogPluginManager=all off LogOnlineIdentity=all off LogOnlineSession=all off LogMemory=all off LogPakFile=all off LogTemp=all off LogLinker=all off LogOnline=all off LogOnlineGame=all off LogAnalytics=all off LogConfig=all off LogInteractiveProcess=all off Global=off

My example settings

The below settings provide the best quality of drawing, graphics and anti-aliasing without falling FPS, above there are descriptions of the settings so that you can customize it for yourself.
Screenshot on the left are ultra settings available in the game, screenshot on the right ultra plus my settings, in order to see the difference, open the full screen, with my settings you can see that the draw distance, the amount of grass and the quality of anti-aliasing are increased, while FPS remains the same
Satisfactory - Big Optimization Guide

Satisfactory - Big Optimization Guide

All actions are performed in the file Engine.ini is located on the path %userprofile%\AppData\Local\FactoryGame\Saved\Config\WindowsNoEditor
After add options in Engine.ini, be sure to set “read only” in the properties of file Engine.ini

This is how my Engine.ini looks like:

[Core.System] Paths=../../../Engine/Content Paths=%GAMEDIR%Content Paths=../../../Engine/Plugins/Wwise/Content Paths=../../../Engine/Plugins/Compositing/Composure/Content Paths=../../../Engine/Plugins/Compositing/LensDistortion/Content Paths=../../../Engine/Plugins/Editor/BlueprintMaterialTextureNodes/Content Paths=../../../Engine/Plugins/Compositing/OpenColorIO/Content Paths=../../../Engine/Plugins/Experimental/PythonScriptPlugin/Content Paths=../../../Engine/Plugins/Tests/EditorTests/Content Paths=../../../Engine/Plugins/Tests/RuntimeTests/Content Paths=../../../FactoryGame/Plugins/CSSEditorToolsExtension/Content Paths=../../../Engine/Plugins/2D/Paper2D/Content Paths=../../../Engine/Plugins/Developer/AnimationSharing/Content Paths=../../../Engine/Plugins/Editor/CryptoKeys/Content Paths=../../../Engine/Plugins/Enterprise/DatasmithContent/Content Paths=../../../Engine/Plugins/Media/MediaCompositing/Content +Suppress=Scriptwarning +Suppress=Error +Suppress=Scriptlog +Suppress=Warning [Core.Log] LogPluginManager=all off LogOnlineIdentity=all off LogOnlineSession=all off LogMemory=all off LogPakFile=all off LogTemp=all off LogLinker=all off LogOnline=all off LogOnlineGame=all off LogAnalytics=all off LogConfig=all off LogInteractiveProcess=all off Global=off [/script/engine.player] ConfiguredInternetSpeed=104857600 ConfiguredLanSpeed=104857600 [/script/onlinesubsystemutils.ipnetdriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 NetServerMaxTickRate=120 LanServerMaxTickRate=120 MaxNetTickRate=400 InitialConnectTimeout=300.0 ConnectionTimeout=300.0 [/script/engine.gamenetworkmanager] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=104857600 [/script/socketsubsystemepic.epicnetdriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 [/script/engine.engine] NetClientTicksPerSecond=120 [SystemSettings] AllowAsyncRenderThreadUpdates=1 AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1 r.bForceCPUAccessToGPUSkinVerts=1 r.SupportDepthOnlyIndexBuffers=1 r.SupportReversedIndexBuffers=1 r.DBuffer=0 r.GPUCrashDebugging=0 r.CompileShadersForDevelopment=0 FX.AllowAsyncTick=1 FX.BatchAsync=1 FX.BatchAsyncBatchSize=9999999 FX.MaxCPUParticlesPerEmitter=50 FX.MaxGPUParticlesSpawnedPerFrame=2048 AudioThread.BatchAsyncBatchSize=9999999 AudioThread.UseBackgroundThreadPool=1 AudioThread.EnableBatchProcessing=1 r.ShadowQuality=3 r.ViewDistanceScale=1.5 r.ViewDistanceQuality=4 foliage.MinimumScreenSize=0.009 foliage.LODDistanceScale=1.4 foliage.DensityScale=1.5 grass.DensityScale=2 grass.MaxUpdateFrequency=40 r.MaterialQualityLevel=2 r.DefaultFeature.AntiAliasing=2 r.FinishCurrentFrame=0 r.CreateShadersOnLoad=1 r.Streaming.UseFixedPoolSize=0 r.Streaming.PoolSize=0 r.Streaming.FullyLoadUsedTextures=1 r.Streaming.LimitPoolSizeToVRAM=0 r.Streaming.AmortizeCPUToGPUCopy=1 r.Streaming.MaxNumTexturesToStreamPerFrame=1 r.Streaming.Boost=0.3 r.Streaming.FramesForFullUpdate=30 r.Streaming.MaxTempMemoryAllowed=10 r.MaxAnisotropy=16 r.TemporalAACurrentFrameWeight=0.02 r.TemporalAAFilterSize=0.2 r.TemporalAASamples=16 r.Shadow.MaxResolution=1024 r.Shadow.DistanceScale=2 r.Shadow.PreShadowResolutionFactor=0.5 r.Upscale.Quality=6 r.PostProcessAAQuality=6 r.MipMapLODBias=0 r.Color.Mid=0.47 r.TemporalAA.Upsampling=1 r.TemporalAASharpness=1 r.Tonemapper.Sharpen=1.6 r.TonemapperFilm=1 r.Tonemapper.Quality=5 r.TemporalAACatmullRom=1 r.Shaders.Optimize=1 r.Shaders.FastMath=1 r.OneFrameThreadLag=1 r.HZBOcclusion=0 r.RenderTargetPoolMin=1000 r.AllowOcclusionQueries=1 r.SceneColorFormat=3 r.D3D11.Depth24Bit=0 r.DefaultFeature.MotionBlur=0 r.MotionBlurQuality=0

Thats all

 

Written by FewInside

This is all about Satisfactory – Big Optimization Guide; I hope you enjoy reading the Guide! If you feel like we should add more information or we forget/mistake, please let us know via commenting below, and thanks! See you soon!


Be the first to comment

Leave a Reply

Your email address will not be published.


*