ARK: Survival Evolved Guide

ARK: Settings Evolved for ARK: Survival Evolved

ARK: Settings Evolved

Overview

This guide will give you fine-grained control over your rendering settings, allowing you to get dynamic shadows running on your PC WITHOUT crushing your FPS.

What these modifications will do

The meat and potatoes of this mod comes from the dynamic shadow settings. It includes presets for all four possible selections (including Low), which means that dynamic shadows cannot be disabled after applying this mod unless you revert to the original file. However, the results of my testing generally indicate that nearly all systems should be able to handle at least the low presets.

ALL of the presets use long-distance shadow rendering (significantly longer than the default presets). Good performance is achieved by sacrificing resolution and filtering at the low presets rather than shortening the draw distance. The upper-end resolution at the Ultra presets is higher than the default Ultra preset – the performance increase comes from significant changes to the cascaded shadow map system. This also gives you more flexibility to change your shadow presets based on how your PC is performing since you don’t sacrifice distance – only fidelity.

Please note that these modifications also disable a few extraneous post-processing passes for performance reasons. The game will still look nearly identical to the original configuration. Additionally, I have configured the Post Processing dropdown presets to incrementally disable routines as you lower it from the Epic setting – people with lower-end CPUs should be able to achieve significant performance gains using High or Medium as compared to the default presets.

Important!

After applying this mod, shadows will respond differently to the available options in the menu. General shadows and Terrain shadows no longer control shadow draw distance; instead, shadow draw distance is tied directly to the view distance setting (this allows the shadows to be consistent with the scene regardless of how far you can actually see objects). I have also changed view distance to scale in a linear rather than exponential fashion. The default view distances were 0.28, 0.4, 0.72, 2.48; I changed them to 0.5, 1.0, 1.5, 2.5, with shadow distances set to match. Additionally, General Shadows and Terrain Shadows both behave very differently from the default configuration. General Shadows controls onlythe amount of filtering applied to the shadows as well as how “fine-grained” they are (for example, hand-grab rocks will cast shadows at the Epic setting, but not any setting below it). Terrain shadows no longer affects distant shadow meshes; they are simply set to the default quality statically. Instead, Terrain Shadows now controls the resolution of the shadow map, and the maximum number of times the game is allowed to “cascade” the shadows (shadow cascades are regions of increasing distance from the camera where the shadow resolution is incrementally lowered to give priority to the resolution of close shadows).

TL;DR:

  • Shadow distance is tied into view distance rather than the shadow settings
  • View distances now scale in a more logical fashion for more effective choices than “Epic” or “Low”
  • General Shadows controls number of shadow filtering passes and minimum object size which can cast shadows
  • Terrain Shadows controls the shadowmap resolution and number of total cascades

This guide may be treated as a WIP because I will occasionally update the presets as I find better values and/or ways to manipulate them via the in-game options.

Last update: 2 Jan 2020 03:49 UTC
Reworked texture streaming to improve overall game performance and stability.

What you need to do

In order to try out these modifications, you’re going to need to edit a file called “BaseScalability.ini”. Navigate to your Steam folder (usually in Program Files somewhere), then click down the following list of folders.

SteamApps -> common -> ARK -> Engine -> Config

You should see a list of .ini files all starting with the word Base in this folder. Open BaseScalability.ini and delete the entire contents of the file (press select all, then backspace). Now, copy the entire contents of the next section of this guide, and paste them into the file. If ARK is running, you’ll need to restart it for changes to take effect.

Some things to note:

Steam treats BaseScalability.ini as a static file. If you verify the local files of the game or move its install location, Steam will say that 1 file failed verification and replace it with the original one. It’s possible this may also happen when ARK gets updated, but I don’t know yet. If you don’t like these changes and want to revert to the original configuration, verifying your game files is the easiest way to do it.

I run ARK on a Ryzen 5 2600X, Geforce GTX 1660 Ti system (for reference, this combination compares approximately evenly to an 8th gen Core i5 with a Geforce GTX 1070). I use the following settings, and they keep my framerate generally at 60:

Users with faster or slower hardware may wish to adjust as appropriate.

BaseScalability.ini

[TrueSkyQuality@0] r.TrueSkyQuality=0 [TrueSkyQuality@1] r.TrueSkyQuality=0.5 [TrueSkyQuality@2] r.TrueSkyQuality=0.75 [TrueSkyQuality@3] r.TrueSkyQuality=1 ;—————————————————————————————————————– [GroundClutterQuality@0] r.GroundClutterQuality=0 [GroundClutterQuality@1] r.GroundClutterQuality=0.5 [GroundClutterQuality@2] r.GroundClutterQuality=0.75 [GroundClutterQuality@3] r.GroundClutterQuality=1 ;—————————————————————————————————————– [IBLQuality@0] r.IBLQuality=0 [IBLQuality@1] r.IBLQuality=1 [IBLQuality@2] r.IBLQuality=1 [IBLQuality@3] r.IBLQuality=1 ;—————————————————————————————————————– [HeightFieldShadowQuality@0] r.Shadow.MaxResolution=512 r.HFShadowQuality=1 [HeightFieldShadowQuality@1] r.Shadow.MaxResolution=1024 r.HFShadowQuality=1 [HeightFieldShadowQuality@2] r.Shadow.MaxResolution=1536 r.HFShadowQuality=1 [HeightFieldShadowQuality@3] r.Shadow.MaxResolution=2048 r.HFShadowQuality=1 ;—————————————————————————————————————– [AntiAliasingQuality@0] r.PostProcessAAQuality=0 r.MSAA.CompositingSampleCount=1 [AntiAliasingQuality@1] r.PostProcessAAQuality=2 r.MSAA.CompositingSampleCount=1 [AntiAliasingQuality@2] r.PostProcessAAQuality=4 r.MSAA.CompositingSampleCount=1 [AntiAliasingQuality@3] r.PostProcessAAQuality=6 r.MSAA.CompositingSampleCount=1 ;—————————————————————————————————————– [ViewDistanceQuality@0] r.SkeletalMeshLODBias=0 r.Shadow.CSM.MaxCascades=6 r.Shadow.DistanceScale=0.5 r.DistanceFieldShadowRaytraceDistance=80000 r.ViewDistanceScale=0.5 [ViewDistanceQuality@1] r.SkeletalMeshLODBias=0 r.Shadow.CSM.MaxCascades=8 r.Shadow.DistanceScale=1.0 r.DistanceFieldShadowRaytraceDistance=120000 r.ViewDistanceScale=1.0 [ViewDistanceQuality@2] r.SkeletalMeshLODBias=0 r.Shadow.CSM.MaxCascades=10 r.Shadow.DistanceScale=1.5 r.DistanceFieldShadowRaytraceDistance=160000 r.ViewDistanceScale=1.5 [ViewDistanceQuality@3] r.SkeletalMeshLODBias=0 r.Shadow.CSM.MaxCascades=12 r.Shadow.DistanceScale=2.5 r.DistanceFieldShadowRaytraceDistance=240000 r.ViewDistanceScale=2.5 ;—————————————————————————————————————– [ShadowQuality@0] r.LightFunctionQuality=1 r.ShadowQuality=2 r.Shadow.CSM.MaxFarCascades=0 r.Shadow.AllowForegroundShadows=0 r.Shadow.RadiusThreshold=0.05 r.Shadow.CSM.TransitionScale=0.5 r.DistanceFieldShadowing=1 r.DistanceFieldAO=0 [ShadowQuality@1] r.LightFunctionQuality=1 r.ShadowQuality=3 r.Shadow.CSM.MaxFarCascades=0 r.Shadow.AllowForegroundShadows=0 r.Shadow.RadiusThreshold=0.03 r.Shadow.CSM.TransitionScale=1.0 r.DistanceFieldShadowing=1 r.DistanceFieldAO=0 [ShadowQuality@2] r.LightFunctionQuality=1 r.ShadowQuality=4 r.Shadow.CSM.MaxFarCascades=0 r.Shadow.AllowForegroundShadows=0 r.Shadow.RadiusThreshold=0.02 r.Shadow.CSM.TransitionScale=1.5 r.DistanceFieldShadowing=1 r.DistanceFieldAO=0 [ShadowQuality@3] r.LightFunctionQuality=1 r.ShadowQuality=5 r.Shadow.CSM.MaxFarCascades=0 r.Shadow.AllowForegroundShadows=0 r.Shadow.RadiusThreshold=0.0125 r.Shadow.CSM.TransitionScale=2.0 r.DistanceFieldShadowing=1 r.DistanceFieldAO=0 ;—————————————————————————————————————– [PostProcessQuality@0] r.oneframethreadlag=0 r.MotionBlurQuality=0 r.AmbientOcclusionSampleSetQuality=0 r.AmbientOcclusionLevels=0 r.AmbientOcclusionRadiusScale=1.2 r.DepthOfFieldQuality=0 r.RenderTargetPoolMin=300 r.LensFlareQuality=0 r.SceneColorFringeQuality=0 r.EyeAdaptationQuality=5 r.BloomQuality=0 r.FastBlurThreshold=1 r.UpsampleQuality=3 r.TonemapperQuality=1 r.LightShaftQuality=0 r.ScreenSpaceReflections=0 r.RefractionQuality=0 r.SSR.Quality=0 r.BlurGBuffer=0 [PostProcessQuality@1] r.oneframethreadlag=0 r.MotionBlurQuality=0 r.AmbientOcclusionSampleSetQuality=0 r.AmbientOcclusionLevels=0 r.AmbientOcclusionRadiusScale=1.0 r.DepthOfFieldQuality=0 r.RenderTargetPoolMin=350 r.LensFlareQuality=0 r.SceneColorFringeQuality=0 r.EyeAdaptationQuality=5 r.BloomQuality=1 r.FastBlurThreshold=2 r.UpsampleQuality=3 r.TonemapperQuality=1 r.LightShaftQuality=2 r.ScreenSpaceReflections=0 r.SSR.Quality=0 r.RefractionQuality=0 r.BlurGBuffer=0 [PostProcessQuality@2] r.oneframethreadlag=0 r.MotionBlurQuality=1 r.AmbientOcclusionSampleSetQuality=1 r.AmbientOcclusionLevels=1 r.AmbientOcclusionRadiusScale=1.0 r.DepthOfFieldQuality=0 r.RenderTargetPoolMin=400 r.LensFlareQuality=0 r.SceneColorFringeQuality=0 r.EyeAdaptationQuality=5 r.BloomQuality=2 r.FastBlurThreshold=3 r.UpsampleQuality=3 r.TonemapperQuality=1 r.LightShaftQuality=4 r.ScreenSpaceReflections=0 r.SSR.Quality=0 r.RefractionQuality=1 r.BlurGBuffer=0 [PostProcessQuality@3] r.oneframethreadlag=0 r.MotionBlurQuality=2 r.AmbientOcclusionSampleSetQuality=1 r.AmbientOcclusionLevels=1 r.AmbientOcclusionRadiusScale=1.4 r.DepthOfFieldQuality=0 r.RenderTargetPoolMin=400 r.LensFlareQuality=3 r.SceneColorFringeQuality=3 r.EyeAdaptationQuality=5 r.BloomQuality=4 r.FastBlurThreshold=7 r.UpsampleQuality=3 r.TonemapperQuality=1 r.LightShaftQuality=5 r.ScreenSpaceReflections=1 r.SSR.Quality=4 r.RefractionQuality=3 r.BlurGBuffer=0 ;—————————————————————————————————————– [TextureQuality@0] r.Streaming.MipBias=3 r.MaxAnisotropy=2 r.Streaming.PoolSize=3000 r.Streaming.LimitPoolSizeToVRAM=1 r.Streaming.FramesForFullUpdate=20 [TextureQuality@1] r.Streaming.MipBias=0 r.MaxAnisotropy=4 r.Streaming.PoolSize=6000 r.Streaming.LimitPoolSizeToVRAM=1 r.Streaming.FramesForFullUpdate=15 [TextureQuality@2] r.Streaming.MipBias=-3 r.MaxAnisotropy=8 r.Streaming.PoolSize=9000 r.Streaming.LimitPoolSizeToVRAM=1 r.Streaming.FramesForFullUpdate=10 [TextureQuality@3] r.Streaming.MipBias=-10 r.MaxAnisotropy=16 r.Streaming.PoolSize=12000 r.Streaming.LimitPoolSizeToVRAM=1 r.Streaming.FramesForFullUpdate=5 ;—————————————————————————————————————– [EffectsQuality@0] r.TranslucencyLightingVolumeDim=16 r.TranslucencyLightingVolumeInnerDistance=1000 r.TranslucencyLightingVolumeOuterDistance=3500 r.SceneColorFormat=4 r.DetailMode=0 r.TranslucencyVolumeBlur=0 r.SSS.Scale = 0 r.SSS.SampleSet=0 [EffectsQuality@1] r.TranslucencyLightingVolumeDim=32 r.SceneColorFormat=4 r.DetailMode=1 r.TranslucencyVolumeBlur=0 r.SSS.Scale = 0 r.SSS.SampleSet=0 [EffectsQuality@2] r.TranslucencyLightingVolumeDim=48 r.TranslucencyLightingVolumeInnerDistance=1750 r.TranslucencyLightingVolumeOuterDistance=6500 r.SceneColorFormat=4 r.DetailMode=2 r.TranslucencyVolumeBlur=0 r.SSS.Scale = 0 r.SSS.SampleSet=0 [EffectsQuality@3] r.TranslucencyLightingVolumeDim=64 r.TranslucencyLightingVolumeInnerDistance=2000 r.TranslucencyLightingVolumeOuterDistance=8000 r.SceneColorFormat=4 r.DetailMode=2 r.TranslucencyVolumeBlur=0 r.SSS.Scale = 0 r.SSS.SampleSet=0
SteamSolo.com