Overall, what it changes.
Higher view distance for everything.
More detailed shadows.
Lumen reflections, non blurry, from water and glass surfaces noticeable, still needs a fix to reflect character models.
Auto exposure and eyeadaption, so overall image brightness won't be too drastic, looking at bright stuff going from a darker view won't try to blind you, same with reverse. Also, you can adjust the overall lighting brightness with r.SkylightIntensityMultiplier, if it's too bright, you can lower with 0.1 increments.
Slight sharpening with r.Tonemapper.Sharpen, you can set it to 0, if you want the original soft look, or increase it to make it even sharper.
Change these if you want performance back, but mind that visually most noticeable is Global Illumination and Virtual Shadows (latter in terms of distance).
r.DynamicGlobalIlluminationMethod=1 ; (20-30 fps cost)(1=Lumen)(0 - None. Global Illumination can be baked into Lightmaps, but no technique will be used for Dynamic Global Illumination)
r.VolumetricFog=1 ; (10 fps cost, works only when Fog is also enabled)(0 Low/Medium 1 High/Epic/Cinematic ShadowQuality)(Whether to allow the volumetric fog feature)
r.ViewDistanceScale=5 ; (10-20 fps cost going from 1 to 5)(0.4 Low 0.6 Medium 0.8 High 1 Epic 10 Cinematic ViewDistanceQuality)(Controls the view distance scale. A primitive's MaxDrawDistance is scaled by this value)
r.StaticMeshLODDistanceScale=0.1 ; (5fps cost going from 1 to 0.1)(0.1-1+: 0 breaks, higher number lowers the distance of higher quality lod)(Scale factor for the distance used in computing discrete LOD for static meshes. (defaults to 1))
r.Shadow.Virtual.Enable=1 ; (0 constructor)(0 or 1, works with dx12 only, causes low fps temporarily while inventory/menu characters are visible)(Enable Virtual Shadow Maps)
0.25 if you don't want to download the file.
Changes:
Increased reflection clarity.
Should have lessened/removed the lighting flickering also in reflections, mostly was visible at dawn or dusk.
Removed redundant values that were on for me anyway, if any of those were changed by graphics settings, then you'll be using graphics settings variants instead, instead of forcing highest values from my own end.
Virtual Shadows are enabled.
Fog isn't disabled, for the sake of dungeons not missing volumetric fog.
Lens flare isn't enabled anymore.
[spoiler][ConsoleVariables]
AspectRatioAxisConstraint=AspectRatio_MaintainYFOV
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
r.AmbientOcclusion.Compute=2 ; (0 default)(If SSAO should use ComputeShader (not available on all platforms) or PixelShader. The [Async] Compute Shader version is WIP, not optimized, requires hardware support (not mobile/DX10/OpenGL3), does not use normals which allows it to run right after EarlyZPass (better performance when used with AyncCompute). AyncCompute is currently only functional on PS4. 0: PixelShader (default); 1: (WIP) Use ComputeShader if possible, otherwise fall back to '0'; 2: (WIP) Use AsyncCompute if efficient, otherwise fall back to '1'; 3: (WIP) Use AsyncCompute if possible, otherwise fall back to '1')
r.AmbientOcclusionLevels=2 ; (-1 scalability)(0 Low 1 Medium 2 High 3 Epic PostProcessQuality)(Defines how many mip level are using during ambient occlusion calculation. This is useful when tweaking the algorithm)
r.AmbientOcclusionStaticFraction=1 ; (-1 constructor)(Allows to override the Ambient Occlusion Static Faction (see post process volume). Factions are between 0 and 1)
r.Bloom.AsyncCompute=1 ; (0 constructor)(Whether to run FFT bloom on async compute)
r.ContactShadows.NonShadowCastingIntensity=1 ; (0 constructor)(Intensity of contact shadows from objects with cast contact shadows disabled. Usually 0(off))
r.DepthOfFieldQuality=4 ; (2 scalability)(0 Low 1 Medium 2 High/Epic 4 Cinematic PostProcessQuality)(Allows to adjust the depth of field quality. Currently only fully affects BokehDOF. GaussianDOF is either 0 for off, otherwise on)
r.DFShadowAsyncCompute=1 ; (0 constructor)(Whether render distance field shadows using async compute if possible)
r.Emitter.FastPoolEnable=1 ; (0 constructor)(Should we use fast pools for emitters.)
r.EnableAsyncComputeTranslucencyLightingVolumeClear=1 ; (0 constructor)(Whether to clear the translucency lighting volume using async compute)
r.DFDistanceScale=10 ; (1 constructor)(Can be very demanding going over 10)(Factor to scale directional light property 'DistanceField Shadows Distance', clamped to [0.0001, 10000])
r.DFFullResolution=1 ; (0 constructor)(1 = full resolution distance field shadowing, 0 = half resolution with bilateral upsample)
r.DynamicGlobalIlluminationMethod=1 ; (0 constructor)(20-30 fps cost)(1=Lumen)(0 - None. Global Illumination can be baked into Lightmaps, but no technique will be used for Dynamic Global Illumination)
r.Filter.SizeScale=2 ; (1 scalability)(0.6 Low 0.7 Medium 0.8 High 1 Epic/Cinematic PostProcessQuality)(Allows to scale down or up the sample count used for bloom and Gaussian depth of field (scale is clamped to give reasonable results))
r.ForceHighestMipOnUITextures=1 ; (0 constructor)(If set to 1, textures in the UI Group will have their highest mip level forced)
r.GBufferFormat=4 ; (1 constructor)(Defines the memory layout used for the GBuffer)
r.LandscapeLOD0DistributionScale=4 ; (1 constructor)(Multiplier for the landscape LOD0DistributionSetting property)
r.LandscapeLODDistributionScale=4 ; (1 constructor)(Multiplier for the landscape LODDistributionSetting property)
r.LensFlareQuality=3 ; (2 scalability)(0 Low/Medium 2 High/Epic 3 Cinematic PostProcessQuality)(0: off but best for performance)
r.Lumen.DiffuseIndirect.AsyncCompute=1 ; (0 constructor)(Whether to run lumen diffuse indirect passes on the compute pipe if possible)
r.Lumen.DiffuseIndirect.SSAO=1 ; (0 constructor)(Whether to render and apply SSAO to Lumen GI, only when r.Lumen.ScreenProbeGather.ScreenSpaceBentNormal is disabled. This is useful for providing short range occlusion when Lumen's Screen Bent Normal is disabled due to scalability, however SSAO settings like screen radius come from the user)
r.Lumen.Reflections.AsyncCompute=1 ; (0 constructor)(Whether to run Lumen reflection passes on the compute pipe if possible)
r.Lumen.Reflections.GGXSamplingBias=100 ; (0.1 constructor)(Seems to make transparent object inside reflective side reflect stuff properly instead of being blurry)(No description)
r.Lumen.Reflections.MaxRoughnessToTrace=0.5 ; (0.4 constructor)(No description)
r.Lumen.Reflections.ScreenSpaceReconstruction.RoughnessScale=0 ; (default 1)
r.Lumen.Reflections.SmoothBias=10 ; (0 constructor)(Values larger than 0 apply a global material roughness bias for Lumen Reflections, where 1 is fully mirror)
r.Lumen.ScreenProbeGather.MaxRoughnessToEvaluateRoughSpecular=1 ; (0.8 constructor)(Maximum roughness value to evaluate rough specular in Screen Probe Gather. Lower values reduce GPU cost of integration, but also lose rough specular)
r.Lumen.ScreenProbeGather.ScreenSpaceBentNormal=0 ; (1 scalability)(Whether to compute screen space direction occlusion to add high frequency occlusion (contact shadows) which Screen Probes lack due to downsampling)
r.Lumen.ScreenProbeGather.Temporal.MaxFramesAccumulated=30 ; (10 constructor)(Lower values cause the temporal filter to propagate lighting changes faster, but also increase filckering from noise)
r.Lumen.ScreenProbeGather.TemporalFilterProbes=1 ; (0 constructor)(Whether to temporally filter probe traces to reduce noise)
r.Lumen.TraceDistanceScale=5 ; (1 constructor)(1 is enough for land shadows, but water reflections need 4-5)(Scales the tracing distance for all tracing methods and Lumen Features, used by scalability)
r.Lumen.TranslucencyReflections.FrontLayer.Enable=1 ; (0 scalability)(Whether to render Lumen Reflections on the fronmost layer of Translucent Surfaces. Other layers will use the lower quality Radiance Cache method that can only produce glossy reflections)
r.LumenScene.Lighting.AsyncCompute=1 ; (0 constructor)(Whether to run LumenSceneLighting on the compute pipe if possible. Only takes effect if r.LumenScene.DirectLighting.ReuseShadowMaps is disabled)
r.LumenScene.Radiosity.HemisphereProbeResolution=8 (default 4)
r.LumenScene.Radiosity.MaxRayIntensity=10 ; (default 40)
r.LumenScene.Radiosity.Temporal.MaxFramesAccumulated=10 ; (default 4)
r.MaxAnisotropy=16 ; (8 scalability)(0 Low 2 Medium 4 High 8 Epic/Cinematic 16 Max TextureQuality)(MaxAnisotropy should range from 1 to 16. Higher values mean better texture quality, when using anisotropic filtering, but at a cost to performance. Default is 4)
r.MotionBlurQuality=0 ; (4 scalability)(0 Low 3 Medium/High 4 Epic/Cinematic PostProcessQuality)(Defines the motion blur method which allows to adjust for quality or performance)
r.PostProcessingColorFormat=1 ; (0 constructor)(Defines the memory layout (RGBA) used for most of the post processing chain buffers)
r.ReflectionCapture.EnableLightFunctions=1 ; (0 constructor)(0. Disable light functions in reflection/sky light capture (default))
r.ReflectionMethod=1 ; (2 constructor)(1=Lumen)(0 - None. Reflections can come from placed Reflection Captures, Planar Reflections and Skylight, but no global reflection method will be used)
r.RefractionQuality=3 ; (2 scalability)(0 Low/Medium 2 High/Epic 3 Cinematic EffectsQuality)(Defines the distortion/refraction quality which allows to adjust for quality or performance)
r.RenderTargetPoolMin=1000 ; (400 scalability)(300 Low 350 Medium 400 High/Epic 1000 Cinematic PostProcessQuality)(If the render target pool size (in MB) is below this number, there is no deallocation of render targets. Default is 200 MB)
r.SceneColorFringe.Max=0 ; (-1 constructor)(-2 on, -1 clamp - Allows to clamp the postprocess setting (in percent, Scene chromatic aberration / color fringe to simulate an artifact that happens in real-world lens, mostly visible in the image corners))
r.SceneColorFringeQuality=0 ; (1 scalability)(0 Low/Medium 1 High to Cinematic PostProcessQuality)(0: off but best for performance)
r.Shadow.CSM.MaxCascades=10 ; (3 scalability)(1 Low/Medium 2 High 4 Epic 10 Cinematic ShadowQuality)(Dynamic shadows, like in vanilla, causes light to bleed through certain textures)(The maximum number of cascades with which to render dynamic directional light shadows)
r.Shadow.CSM.TransitionScale=2 ; (1 scalability)(0 Low 0.25 Medium 0.8 High 1 Epic/Cinematic 2 Max ShadowQuality)(Allows to scale the cascaded shadow map transition region. Clamped within 0..2)
r.Shadow.CSMShadowDistanceFadeoutMultiplier=0 ; (1 constructor)(Multiplier for the CSM distance fade)
r.Shadow.DistanceScale=2 ; (1 scalability)(Scalability option to trade shadow distance versus performance for directional lights (clamped within a reasonable range)
r.Shadow.FilterMethod=2 ; (0 constructor)(2 is more accurate when being close to objects)(Chooses the shadow filtering method)
r.Shadow.MaxCSMResolution=4096 ; (2048 scalability)(512 Low 1024 Medium 2048 High/Epic 4096 Cinematic ShadowQuality)(Can be increased when using r.Shadow.DistanceScale 2, or with 1 can be lower)((Max square dimensions (in texels) allowed for rendering Cascaded Shadow depths. Range 4 to hardware limit. Higher = better quality shadows, but at a performance cost)
r.Shadow.MaxResolution=4096 ; (2048 scalability)(512 Low 1024 Medium to Epic 4096 Cinematic ShadowQuality)(Max square dimensions (in texels) allowed for rendering shadow depths. Range 4 to hardware limit. Higher = better quality shadows, but at a performance cost)
r.Shadow.RadiusThreshold=0 ; (0.01 scalability)(0.06 Low 0.05 Medium 0.04 High 0.01 Epic 0 Cinematic ShadowQuality)(higher than 0 and you cut away certain shadows)(Cull shadow casters if they are too small, value is the minimal screen space bounding spherer radius)
r.Shadow.Virtual.Enable=1 ; (0 constructor)(0 or 1, works with dx12 only, causes low fps temporarily while inventory/menu characters are visible)(Enable Virtual Shadow Maps)
r.Shadow.Virtual.UseFarShadowCulling=0 ; (1 constructor)(0 more distant shadows)(Disabled when forcing only virtual shadow maps)(Switch between implementing the far shadow culling logic for VSMs)
r.Shadow.Virtual.ForceOnlyVirtualShadowMaps=1 ; (0 constructor)(1=all accurate shadows)(When far shadow culling is 0, then only close to mid range shadows change)(If enabled, disallow creation of conventional non-virtual shadow maps for any lights that get a virtual shadow map)
r.Shadow.Virtual.ScreenRayLength=0 ; (0.015 constructor)(Length of the screen space trace (smart shadow bias) before the virtual shadow map lookup)
r.SkeletalMeshLODBias=-1 ; (0 scalability)(2 Low 1 Medium 0 High to Cinematic ViewDistanceQuality)(LOD bias for skeletal meshes (does not affect animation editor viewports))
r.SkyAtmosphereASyncCompute=1 ; (0 constructor)(SkyAtmosphere on async compute (default: false))
r.SSR.MaxRoughness=1 ; (-1 constructor)(Allows to override the post process setting ScreenSpaceReflectionMaxRoughness)
r.SSR.Quality=4 ; (3 scalability)(0 Low to High 1 Epic 4 Cinematic EffectsQuality)(works only when DGIM is 0/2 and ReflectionMethod 1/2 or DGIM 1 and RM 2, same with other SSR settings)(Whether to use screen space reflections and at what quality setting)
r.SSR.Temporal=1 ; (0 constructor(Defines if we use the temporal smoothing for the screen space reflection)
r.StaticMeshLODDistanceScale=0.1 ; (1 constructor)(5fps cost going from 1 to 0.1)(0.1-1+: 0 breaks, higher number lowers the distance of higher quality lod)(Scale factor for the distance used in computing discrete LOD for static meshes. (defaults to 1))
r.Streaming.LimitPoolSizeToVRAM=0 ; (1 projectsetting)(1 Low to High 0 Epic/Cinematic TextureQuality)(If non-zero, texture pool size will be limited to how much GPU mem is available)
r.Streaming.PoolSize=-1 ; (0 project setting)(200 Low 400 Medium 700 High 1000 Epic 3000 Cinematic TextureQuality)(-1: Default texture pool size, otherwise the size in MB)
r.Tonemapper.Sharpen=1 ; (0 constructor)(0 soft look, higher uses sharpening)(Sharpening in the tonemapper (not for mobile), actual implementations is work in progress, clamped at 10)
r.TranslucencyVolumeBlur=0 ; (1 scalability)(0 Low/Medium 1 High to Cinematic EffectsQuality)(Whether to blur the translucent lighting volumes)
r.TSR.AsyncCompute=3 ; (0 constructor)(Whether to run TSR on async compute. Some TSR passes can overlap with previous passe. 0: Disabled (default); 1: Only ClearPrevTextures pass; 2: Only ClearPrevTextures through DecimateHistory passes; 3: All passes)
r.ViewDistanceScale=5 ; (1 scalability)(10-20 fps cost going from 1 to 5)(0.4 Low 0.6 Medium 0.8 High 1 Epic 10 Cinematic ViewDistanceQuality)(Controls the view distance scale. A primitive's MaxDrawDistance is scaled by this value)
r.ViewTextureMipBias.Min=0 ; (-2 constructor)(5 fps cost going from 0 to -2)(same as mipmap, weirdly vanilla uses the more costly variant, microscopic texture sharpness gain going below 0)(Automatic view mip bias's minimum value (default to -2))
r.ViewTextureMipBias.Offset=0 ; (-0.3 constructor)(when Min value is in negative, this one becomes performance costly)(Automatic view mip bias's constant offset (default to -0.3)
r.VolumetricRenderTarget=2 ; (1 constructor)(0/1/3 inaccurate, 2 accurate)(Visit a dungeon to see VolumetricClouds in the sky until closing the game)
r.VolumetricRenderTarget.PreferAsyncCompute=1 ; (0 constructor)(Whether to prefer using async compute to generate volumetric cloud render targets)
r.Water.SingleLayer.DepthPrepass=1 ; (0 constructor)(read only)
r.Water.SingleLayerWater.SupportCloudShadow=1 ; (0 constructor)(read only)(Enables cloud shadows on SingleLayerWater materials)
[/spoiler]
How to install, also no need to set the file readme only.
Steam: "windows drive":\Users\"username"\AppData\Local\Pal\Saved\Config\Windows
(assuming that's where microsoft store users have their config files)
Microsoft Store - "windows drive":\Users\"username"\AppData\Local\Pal\Saved\Config\WinGDK
You might have to show hidden folders to see the appdata folder, you can do that by clicking the view tab in the folder, and then check the box for hidden items.
Or
Copy paste the spoiler text into your engine.ini file. You can see what is in the file without having to download it.
Old Specs:
I'm using a RTX 4070 12GB, i7 8700K, 48GB ram+10GB page file, win10. Get around 75-150 fps (With version 0.21 @1080p epic game settings and TSR AA with DLSS Auto). (Depends on what/where you look at, sky is 150 fps, most of the time it's 85-120fps)(Baseline menu is 240 fps)
My first "mod", so apologies for doing things unconventionally compared to others.