Games using Unreal Engine 4 can be tweaked in many ways to better your experience in-game or while shooting. This guide covers the basics of what you can do, with or without UUU and the console.
||enables cheats (needed for most games)|
||-||enables freecam (WASD + mouselook)|
||changes field of view (in degrees)|
||-||toggles game timestop|
||sets resolution scale (in %)|
||sets draw distance|
||changes AA quality (FXAA / TAA)|
||changes the depth of field quality (from 0: off to 6: max)|
||toggles CA off (0) or on (1).|
||changes the motion blur quality (from 0: off to 4: max)|
||changes post-processing quality|
||changes shadow quality|
||changes texture quality|
||changes effects quality|
||changes the visibility of outlines, other elements like focus circles|
Commands are not case-sensitive!
Commands that have
?? upper limits listed technically have none.
r.ScreenPercentage is render scale based on your current resolution in %; values above 200 should not be necessary.
r.ViewDistanceScale is a multiplier based on draw distance values set by developers. Unless the default maximum draw distance is very low, a value above 2 should not be necessary.
These commands require the console to be used. You will most likely need the Universal UE4 Console Unlocker to access the console.
Commands unrelated to screenshotting are not included.
The console supports copy-pasting and commands can be chained with
For example, if you wanted the game to:
- Enable the debug camera
- Set FoV to 50
all at the same time, you would just need to paste
pause | toggledebugcamera | fov 50 into the console.
Some commands above start with the prefix
sg. - these are scalability groups. Scalability groups come in levels that correspond to Low / Medium / High / Epic, as you'd find in a graphics settings menu. In-game settings usually display Level 0 (Low quality) up to Level 3 (Epic quality). You can force it up to Level 4 (Cinematic quality) through the console, at the obvious cost of performance.
Games may occasionally include a Level 5 Scalability Group, you can go to that for maximum settings.
Or you can continue to read to learn how to make your own Super Cinematic scalability group.
As scalability groups are simply groups of render settings, you can make "custom profiles" by modifying them. This has many uses, from turning off certain post-processing effects completely, to changing Epic settings to include Cinematic-quality effects, and many more, all without the need of the console.
You will need access to your game's Scalability.ini, typically found through the path
Some games may limit modification of WindowsNoEditor .ini files, meaning your tweaks may not do anything. There is no way to bypass that limitation.
The file may be empty; that's fine. We'll be modifying it for our own use anyway.
Scalability groups correspond to their command names, without the
sg. prefix. Each scalability group is denoted by a @ and their level, so the command
sg.PostProcessQuality 3 would look like
[PostProcessQuality@3] in your file. The square brackets are important!
Here are a few examples of how the file can be modified:
[PostProcessQuality@3] r.BloomQuality=0 r.MotionBlurQuality=0
This completely removes Bloom and Motion Blur when Post Processing is set to Epic. Quality levels of 0 mean that they are entirely disabled.
[ShadowQuality@3] r.Shadow.MaxResolution=8196 r.Shadow.CSM.MaxCascades=16 r.Shadow.RadiusThreshold=0.01
This makes shadow maps render at a very intensive 8K resolution with much better quality when Shadows are set to Epic.
[TextureQuality@3] r.Streaming.MipBias=2.5 r.MaxAnisotropy=0 r.Streaming.PoolSize=200
When textures are set to Epic, this makes them look the same as they would on Low settings. Why you would do this is beyond me, but it's an example all the same.
For a full reference to what's capable, check the Scalability Reference. Note that these are default settings by Unreal developers, your game is likely to have these already changed.
Scalability levels and groups have to be separated with an empty line!
With 5 scalability levels per group, you can have 5 different presets for Post-Processing, Shadows, Textures and Effects.
Once you're done, it's recommended to set the file to Read-only to prevent the game from changing it. You can do that by right-clicking on the file, enter Properties, tick Read-only under Attributes, and apply.
Engine.ini allows you to set render settings by default so that the console isn't needed to change them all the time. It can also be an alternative in the event where modifying
Scalability.ini has no effects.
Similar to scalability groups, modifying this file can be used to push the game's graphical limits or optimise it further.
This file can be typically found through the path
Like above, some games may limit edits to this file, causing tweaks to have no effects.
The file needs to be started with
[/script/engine.renderersettings]. All commands that follow typically have the
r. prefix, as they relate to rendering properties.
Here's an example of how the file could look like:
[/script/engine.renderersettings] r.ScreenPercentage=150 r.ViewDistanceScale=2
This forces the game to always render at 150% native resolution, with draw distance doubled from its native settings. You can also add the same
r. commands from the scalability groups to enforce them by default.
To know more about which commands are available and which variables you can set through the console you can use the following search engine: https://digilander.libero.it/ZioYuri78/.
This search engine allows you to search on both description and command/variable so it's easy to find the command or variable you're after. The engine gives the variables of the latest public UE4 build, so it might be the game you're using the UUU with is of an earlier version and doesn't support the variable.
Use the console to test out these commands and find the appropriate values in-game before adding them to the .ini. It'll save time!
These commands are meant for the developers. Most are likely to have zero effect as a result. Only a handful of commands meant for runtime (typically those you'd see in graphics settings) may work.
Similar to Scalability.ini, it is recommended to change this file to Read-only once you're done.
The following examples are ready to use. You can just copy / paste the contents of each tab into the console using ctrl-C / ctrl-V and hit enter.
sg.ShadowQuality 5 | sg.FoliageQuality 5 | sg.ViewDistanceQuality 5 | sg.PostProcessQuality 5 | sg.EffectsQuality 5 | sg.TextureQuality 5 | r.DepthOfFieldQuality 5 | r.motionblurquality 0 | r.Shadow.DistanceScale 4 | r.Streaming.LimitPoolSizeToVRAM 0 | r.Streaming.PoolSize 4096 | r.Streaming.MaxTempMemoryAllowed 256 | r.SSR.Quality 4 | r.MaxQualityMode 1 | r.StaticMeshLODDistanceScale 0.001 | r.maxanisotropy 16 | foliage.LODDistanceScale 100 | r.MipMapLODBias -15 | r.AmbientOcclusionMaxQuality -100 | r.Shadow.SpotLightTransitionScale 4096 | r.SkeletalMeshLODBias -1 | r.Shadow.TransitionScale 4096
sg.ShadowQuality 4 | sg.FoliageQuality 4 | sg.ViewDistanceQuality 4 | sg.PostProcessQuality 4 | sg.EffectsQuality 4 | sg.TextureQuality 4 | r.DepthOfFieldQuality 5 | r.motionblurquality 0 | r.Shadow.DistanceScale 1 | r.Streaming.LimitPoolSizeToVRAM 0 | r.Streaming.PoolSize 4096 | r.Streaming.MaxTempMemoryAllowed 256 | r.SSR.Quality 4 | r.StaticMeshLODDistanceScale 0.001 | r.maxanisotropy 8 | foliage.LODDistanceScale 1 | r.MipMapLODBias 0 | r.AmbientOcclusionMaxQuality 1 | r.Shadow.SpotLightTransitionScale 60 | r.SkeletalMeshLODBias 20 | r.Shadow.TransitionScale 20
sg.ShadowQuality 5 | sg.FoliageQuality 5 | sg.ViewDistanceQuality 5 | sg.PostProcessQuality 5 | sg.EffectsQuality 5 | sg.TextureQuality 5 | r.DepthOfFieldQuality 0 | r.motionblurquality 0 | r.Shadow.DistanceScale 4 | r.Streaming.LimitPoolSizeToVRAM 0 | r.Streaming.PoolSize 4096 | r.Streaming.MaxTempMemoryAllowed 256 | r.SSR.Quality 4 | r.MaxQualityMode 1 | r.StaticMeshLODDistanceScale 0.001 | r.maxanisotropy 16 | foliage.LODDistanceScale 100 | r.MipMapLODBias -15 | r.AmbientOcclusionMaxQuality -100 | r.Shadow.SpotLightTransitionScale 4096 | r.SkeletalMeshLODBias -1 | r.Shadow.TransitionScale 4096 | r.Shadow.MaxResolution 8192 | r.Shadow.MaxCSMResolution 8192
There are some per-scene tweaks recommended, especially for screenshots. These are listed below
|r.Shadow.SpotLightTransitionScale||60 (default)||Large areas have a low amount of shadows from far away lights. Reflected highlights look more pronounced|
|r.Shadow.SpotLightTransitionScale||512||More shadows are cast by lights further away, shadows near the camera are more pronounced|
|r.Shadow.SpotLightTransitionScale||4096||Most lights cast shadows everywhere.|
|r.Shadow.MaxResolution||2048||Blurry shadows but high performance|
|r.Shadow.MaxResolution||4096||Sharper shadows, lower performance. Can still show banding on objects near the camera|
|r.Shadow.MaxResolution||8192||High quality shadows, no banding on near-camera objects|
|r.Shadow.MaxResolution||16384||Your game will crash|
You can sometimes run into shadow striping with low FoV. To fix this, you have to set the Depth Bias for the light that causes this. This can be a pointlight, directional light or spotlight. The commands to try are:
Usually, a value of around 0.15 should fix it.