UE4 Engine Tweaks

I’ve been messing with some settings that can be added to the game’s configuration files.

Specifically the files located in:

%LOCALAPPDATA%\Tower\Saved\Config\WindowsNoEditor\

or the Linux equivalent.

I’m by no means an expert on UE4 so any of this information my be wholly incorrect but I figured this would be a good first post because I can also get to see some input from everyone else (hopefully someone smarter than me) in regards to the effectiveness of the settings I’m using as well as some things I may have overlooked.

These are the settings I’m using (which go in Engine.ini) and they’re just a hodgepodge of different console variables I’ve gathered over the years of playing UE games; no idea if these all work for TU or not.

[/script/engine.localplayer]
AspectRatioAxisConstraint=AspectRatio_MaintainYFOV ; wider FOV

[SystemSettings]
r.DefaultFeature.AntiAliasing=2 ; 0 = off, 1 = FXAA, 2 = TAA
r.PostProcessAAQuality=4 ; 0 = off, 1-2 = FXAA, 3-6 = TAA
r.TemporalAASamples=64 ; 4, 8, 16, 32, 64
r.TemporalAAFilterSize=1.0 ; 0.0 = sharper/aliased, 1.0 = smooth/blurry
r.TemporalAA.Algorithm=1 ; 0 = Gen 4, 1 = Gen 5
r.TemporalAA.Upsampling=1 ; 0 = off, 1 = on
r.ScreenPercentage=75 ; Render resolution before upsampling
r.Upscale.Quality=4 ; 0-5, 3 = default

; Lower values may not hide ghosting but will keep temporal stability
; Higher values will hide ghosting but may lose temporal stability
r.TemporalAACurrentFrameWeight=0.05 ; 0.00-x>0.00, i like 0.00-0.05

r.DefaultFeature.MotionBlur=0 ; 0 = off, 1 = on
r.FastBlurThreshold=0 ; 0-x>15, 7 = default, lower is faster
r.MotionBlurQuality=0 ; 0-4, 0 = off

r.DefaultFeature.AutoExposure=1 ; 0 = off, 1 = on
r.EyeAdaptationQuality=2 ; 0-3, 0 = off, 2 = default, 1/3 = not implemented

r.DefaultFeature.Bloom=1 ; 0 = off, 1 = on
r.BloomQuality=5 ; 0-5, 0 = off, 5 = default
r.Bloom.Cross=1.5 ; x<0-x>0, 0 = default, i like 1.5

r.DefaultFeature.LensFlare=1 ; 0 = off, 1 = on
r.LensFlareQuality=2 ; 0-3, 0  off, 2 = default

r.DefaultFeature.AmbientOcclusion=1 ; 0 = off, 1 = on
r.AmbientOcclusionMaxQuality=100 ; (-100)-100, 30 = game default, 100 = engine default
r.AOQuality=2 ; 0-2, 0 = off, 2 = default
r.DistanceFieldAO=1 ; 0 = off, 1 = on
r.GenerateMeshDistanceFields=1 ; 0 = off, 1 = on

r.Tonemapper.Quality=5 ; 0-5, 5 = default
r.Tonemapper.Sharpen=1 ; 0.0-1.0, 0.0 = off
r.TonemapperFilm=1 ; 0 = off (game default), 1 = on (engine default?)
r.SceneColorFringeQuality=1 ; 0 = off, 1 = on

r.LightShaftQuality=1 ; 0 = off, 1 = on
r.LightShaftAllowTAA=1 ; 0 = off, 1 = on
r.LightShaftRenderToSeparateTranslucency=1 ; 0 = off, 1 = on

r.DepthOfFieldQuality=2 ; 0-4, 0 = off, 2 = default
r.DOF.TemporalAAQuality=1 ; 0-1, 1 = default

r.MaxAnisotropy=16 ; 1-16, 4 = default
r.AnisotropicMaterials=1 ; 0 = off, 1 = on
r.MaterialQualityLevel=3 ; 0-3
r.SeparateTranslucency=1 ; 0 = off, 1 = on
r.SSR.Quality=2 ; 0-4, 0 = off (default)
r.DetailMode=2 ; 0-2, 2 = default
r.ViewDistanceScale=2 ; 1 = default
r.HFShadowQuality=3 ; 0-3, 0 = off, 2 = default

r.Color.Max=0.85 ; 0.00-1.00, 1.00 = default
r.Color.Mid=0.51 ; 0.00-1.00, 0.50 = default
r.Color.Min=0 ; 0.00-1.00, 0.00 = default

Before:

After:

The largest changes are probably just in the FOV and TAA but the TAA fixes aren’t easy to notice in a still image.

Does anyone else play around with these?

2 Likes

I use the r.Upscale.Quality one set to zero because i much prefer a crunchy, blocky look compared to the default.


I also use r.fog=0, which is nice for visual clarity and also gets me from 120 up to 130 FPS standing in top of the gameworld ports facing the Tower in plaza.

There’s this other one, which I don’t remember of the top of my head, that went in Scalability.ini, which would adjust the density of the grass. Having super dense grass looks better imo, but because of how its set up it does clip over certain walkways and also is just all over the outer invisible walls of the map.


And there’s this other other one that I also don’t remember that adjusts I think the rate particles are emitted, which in some cases can look kinda good, but in others sorta breaks due to what I assume is a particle limit (Beauty Cone is a good example of this).

r.LightMaxDrawDistanceScale and r.StaticMeshLODDistanceScale are both nice if you want ti squeeze out FPS or get less atrocious LODs- thi idk how they stack/compare with r.ViewDistanceScale.

Having-

[TextureQuality@0]
r.Streaming.MipBias=10
r.Streaming.PoolSize=16
r.Streaming.LimitPoolSizeToVRAM=0

[ShadowQuality@0]
r.ShadowQuality=0
r.Shadow.MaxResolution=4
r.Shadow.RadiusThreshold=0.00
r.Shadow.DistanceScale=0.0
r.LightFunctionQuality=0 ;default 0

-in your Scalability.ini can get you hella crunchy graphics if you’re desperate for frames.




3 Likes

I’ll have to try r.LightMaxDrawDistanceScale and r.StaticMeshLODDistanceScale but I would have never thought to use the upscaling to get a more pixelated appearance! Thats really creative.

I used to actually do a lot of this back when I was trying to run TU on a Laptop that could barely run some source games (circa 2016-2017, and as such Lobby 2 era). Thought I’d get banned if I told anyone I even did a little of it, so I have no photos saved. If you can somehow handle not being able to decipher at least half of what you’re saying, you can theoretically run Tower Unite on anything this way.

Would love some more photos of this alongside more experimentations. This kinda stuff is really fun- in a screw around & find out kinda way- to me.

MacD please don’t kill me :sweat_smile: