More detailed stuff from Arise-SDK mod:
[SystemSettings]
; If the game briefly switches resolution on startup to 720p, you can fix that by using Arise-SDK
; The SDK currently requires you to specify your resolution in Engine.ini though - you can do that here by uncommenting this line
; The f at the end chooses what mode, w = windowed, f = fullscreen, wf = borderless-fullscreen
;r.SetRes=2560x1440f
; Arise-specific cvars follow
; previously INI would set this to 0, but that seems to disable SSR in certain areas
; compare 0 to 1: ScreenSpaceReflectionColorDownSampledScreenScale - Imgsli
; compare 1 to 12 (12 being game default): ScreenSpaceReflectionColorDownSampledScreenScale - Imgsli
; going from 12 to 1 does seem to have a perf impact when vsync is disabled at least, not sure if it can help much when dipping below 60 though
; if you do dip below 60 maybe try setting this to 12 via dev-console
r.ScreenSpaceReflectionColorDownSampledScreenScaleTO14 = 12 ; game default = 12
r.EnableDoFTemporalAATO14 = 0 ; game default = 0
r.EnableScreenSpaceLightShaftSourceTemporalBlurTO14 = 0 ; game default = 0
r.EnableScreenSpaceLightShaftTemporalBlurTO14 = 0 ; game default = 0
; stops cloth simulation from using a fixed deltatime, may help cloth work better at higher framerates
AriseCharacter.AllowUseFixedDeltaTimeForClothSimulation=0 ; game default = 1
; Disable the NPC culling system (this needs to be done before the NPCs are loaded in, else the NPCs may get culled with no system to re-enable them...)
Arise.PF.Culling.Enable = 0 ; game default = 1
; Generic UE4 cvars follow
; How much MB to dedicate to the texture streaming system, i'd set to half of your GPUs VRAM.
r.Streaming.PoolSize = 1500 ; game default = 1000
r.Streaming.MaxTempMemoryAllowed = 128 ; game default = 50, lets increase it a little
; Arise-SDK enables using TAAU - though the game may have strange issues with image stretching when opening menus with it
; Uncomment this line to use it:
;r.TemporalAA.Upsampling = 0 ; game default = 0
r.LightMaxDrawDistanceScale = 3 ; game default = 1.0
r.StaticMeshLODDistanceScale = 0.001 ; game default = 1, 0 seems to make all static meshes use LOD0 (best LOD), if this gives bad perf try changing to 0.25
r.SkeletalMeshLODBias = -2 ; game default = 0
r.ViewDistanceScale = 3 ; game default = 1
foliage.DensityScale = 10 ; game default = 1
grass.DensityScale = 10 ; game default = 1
foliage.LODDistanceScale=10 ; game default = 1
sg.FoliageQuality=5 ; game default = 3
sg.ViewDistanceQuality=5 ; game default = 3
sg.TextureQuality=5 ; game default = 3
r.LandscapeLODDistributionScale=3 ; game default = 1.0
r.LandscapeLOD0DistributionScale=3 ; game default = 1.0
r.LandscapeLODBias=-1 ; game default = 0, -1 seems to help with landscape growing/shrinking in size as you get closer to it (doesn't help with landscape textures being changed as you get near though sadly)
; Increasing the shadow distance will decrease the quality, when resolution isn't also increased
; (in a way, the effective resolution can be worked out as MaxCSMResolution / DistanceScale)
; Vanilla game doesn't let you change MaxCSMResolution from Engine.ini, as it'll overwrite in memory to 1024-4096 depending on GameUserSettings.ini
; Arise-SDK can prevent that overwrite from happening however, so we can set the resolution to 8192 here, letting us use DistanceScale 2.0 with effective resolution the same as vanilla
; In other words, this should let you extend the shadow distance, with no quality difference from vanilla
; (IMO shadow quality isn't really a big issue with this game, the shadow pop-in is much worse)
r.ShadowQuality=4
r.Shadow.DistanceScale=3 ; game default = 1
r.Shadow.MaxCSMResolution=4096 ; game default = 4096 - make sure to adjust this so that CSMResolution = 4096 * DistanceScale
r.Shadow.MaxResolution=2048 ; game default = 2048, doesn't seem used though
r.Shadow.CSM.MaxCascades = 3
r.Shadow.MaxCSMResolution=2048
r.Shadow.RadiusThreshold=0.001
r.Shadow.CSM.TransitionScale=6.0
; Disable any kind of Chromatic Aberration
r.SceneColorFringeQuality = 1 ; game default = 1
sdk.DisableCutsceneCA = 1 ; Arise-SDK cvar, you may want to set DisableCutsceneCA inside Arise-SDK.ini to true as well
r.RefractionQuality=2 ; default 2
r.DepthOfFieldQuality=2 ; default 2 -- set to "0" if Depth of Field bothers you! (i.e. if you get motion sickness easily, etc)
r.SSR.Quality=3 ; game default = 3
r.SSS.HalfRes=1 ; game default = 1
r.LightFunctionQuality=1 ; game default = 1
r.LensFlareQuality=2 ; default 2
r.AmbientOcclusionRadiusScale=1 ; game default = 1, slight scaling of general model AO radius
r.AmbientOcclusionStaticFraction=1 ; game default = -1, same with this
r.AmbientOcclusionMaxQuality=-100 ; game default = 100, fixed to (negative) 100 (overrides postprocessvolume setting)
r.AmbientOcclusionLevels=2 ; game default = -1
r.AmbientOcclusionMipLevelFactor=0 ; game default = 0.4, 0 will always use the highest mip level regardless of postprocessing (set in Scalability), but may cause cache to be wasted (less RAM efficient), default 0.4
r.AOHeightfieldOcclusion=1 ; game default = 0
r.Bloom.Cross=0 ; game default = 0, strengthen bloom effect
r.AllowGlobalClipPlane=0 ; game default = 0, enable planar reflection
; r.PostProcessingColorFormat slightly improves foliage edges but with a big perf cost, maybe enable if you have frames to spare
;r.PostProcessingColorFormat = 0 ; game default = 0, better quality color format
r.GBufferFormat = 4 ; game default = 1, higher-precision GBuffer
r.Filter.SizeScale=2 ; game default = 1, scale up sample count for bloom/DOF
r.DFFullResolution=1 ; game default = 0, "full resolution distance field shadowing"
a.URO.Enable=0 ; game default = 1 - should fix the half-framerate-distant-monsters issue
; optimization attempts
r.UseShaderCaching=1 ; game default = 0
r.UseShaderPredraw=1 ; game default = 0
r.Streaming.FramesForFullUpdate=5 ; game default = 5
foliage.MinInstancesPerOcclusionQuery=1024 ; game default = 256, but UE4 recommended is 1024-65536...
foliage.MinVertsToSplitNode=8192 ; game default 8192
r.CreateShadersOnLoad = 1 ; game default = 0, "create shaders on load, which can reduce hitching, but use more memory", unsure if this has any effect but maybe can help
AudioThread.AboveNormalPriority=1 ; game default = 0
AudioThread.BatchAsyncBatchSize=128 ; game default = 128
r.Emitter.FastPoolEnable=1 ; game default = 0