This post describes the variables in the Zwift config files and how they affect the game’s graphics performance. This was originally written in 2016, and while the variables are still the same, the example hacks are for systems that are quite old now. All the more reason to try and squeeze some extra performance out of them!
A few important notes:
- Use at your own risk. This comes with no guarantees or support from Zwift HQ and variables are subject to change without notice.
- Also, be aware that changing contents, and permissions, of configuration files may affect the ability for the application update process to complete its actions (and might result in injury or death – joke)
- None of the config file changes below will increase or decrease the polygon count or detail level in textures. The level of detail is set by the game engine based on your system’s graphics capabilities and can not be overridden. (Watch Ep 47- Zwiftcast Special: How The Alpe du Zwift Was Made on YouTube to learn more about the graphics engine and how the adaptive level of detail works.)
If you run into problems, revert to the original configs (below). If you still have problems, do a clean install.
Table of Contents
- Default Configuration file contents
- How to make a custom config file
- Example custom configs
- Variable definitions
Default Configuration file contents
On Windows these are located under: C:\Program Files (x86)\Zwift\data\configs
On Mac OS they are located under: ~/Library/Application Support/Zwift/data/configs
basic.txt
| medium.txt
|
high.txt
| ultra.txt
|
How to make a custom config file
First, you can not unlock Ultra by changing the config files. The ultra profile is set by the graphics engine and can not be overridden. You can, however, turn some features on or off (if your GPU supports it) and increase or decrease the strength of certain effects such as generated scenery (foliage) and headlamp strength.
Follow these steps to make a custom config file.
- backup
C:\Program Files (x86)\Zwift\data\configs
on Windows, or on Mac OS~/Library/Application Support/Zwift/data/configs/
- find out which profile Zwift gives you by dropping your log.txt on http://zwiftalizer.com
On Windows, the logs are located under:HOMEPATH%\Documents\Zwift\Logs
On Mac OS, the logs are located under:~/Documents/Zwift/Logs
- As an Administrator, Edit the contents of the config file that matches the profile your system was given. For example, a Radeon 7870 gets the High profile, so we need to edit
C:\Program Files (x86)\Zwift\data\configs\high.txt
Example Custom Configs
Basic overrides for increased frames per second (FPS) on low-end systems
- Lower shadow resolution
- Lower foliage percent
- Higher level of detail bias (less detailed models).
res 1024x576(0x)
sres 256x256
aniso 4
set gSSAO=0
set gFXAA=0
set gSunRays=0
set gHeadlight=0
set gFoliagePercent=0.1
set gSimpleReflections=1
set gLODBias=3
High downgrade to increase FPS for GTX 750 Ti and 2015-16 Alienware Alpha (Nvidia GTX 860M)
Edit high.txt.
- Lower shadow resolution (512×512)
- Basic lighting & shadows (gSSAO off)
- Sunrays Off
- Headlight Off
- 30% normal auto-generated scenery (gFoliagePercent 0.3)
- Simple reflections (gSimpleReflections on)
- Lower polygon count models (gLODBias=2)
res 1280x720(0x)
sres 512x512
aniso 4
set gSSAO=0
set gFXAA=1
set gSunRays=0
set gHeadlight=0
set gFoliagePercent=0.3
set gSimpleReflections=1
set gLODBias=2
set gShowFPS=1
Basic overrides for increased realism on late 2013 iMac 21.5” 1920×1080 with Intel Iris Pro Graphics 1536 MB VRAM
Intel Iris Pro is a fairly decent integrated GPU. It can handle some increased resolution and lighting effects.
Edit basic.txt.
- High world graphics resolution
- Low shadow resolution
- High-quality lighting and shadows (gSSAO on)
- Sun Rays On
- Headlight Off
- 1⁄2 x normal auto-generated scenery (gFoliagePercent 50%)
- Higher polygon count models (gLODBias=1.5)
- 30-40 FPS at 1080
res 1280x720(0x)
sres 512x512
set gSSAO=1
set gFXAA=1
set gSunRays=1
set gHeadlight=0
set gFoliagePercent=0.5
set gSimpleReflections=1
set gLODBias=1.5
set gShowFPS=1
Very High, almost Ultra, for overclocked Nvidia GeForce 750 Ti, 860M, 950 or similar
Edit basic.txt or high.txt depending on which profile Zwift gives you by default.
- High world graphics resolution
- Very high shadow resolution
- High-quality lighting and shadows (gSSAO on)
- High-quality reflections (default in High and Ultra, gSimpleReflections off)
- Headlight On (default in High and Ultra)
- 1.5 x normal auto-generated scenery (gFoliagePercent 150%)
- High polygon count models (default in High and Ultra, gLODBias=0)
res 1280x720(0x)
sres 1536x1536
set gSSAO=1
set gFXAA=1
set gSimpleReflections=0
set gSunRays=1
set gHeadlight=1
set gFoliagePercent=1.5
set gLODBias=0
set gShowFPS=1
Ultra downgrade to High to increase FPS by lowering shadows, lighting effects, and foliage for Nvidia GeForce 960M (Mobile/Laptop) or similar.
Only do this if you are getting the Ultra profile, but would prefer higher FPS to image realism.
Edit ultra.txt.
- Highest world graphics resolution (ultra)
- High shadow resolution (not ultra)
- NOT High-quality lighting and shadows (gSSAO off)
- NOT High-quality reflections (gSimpleReflections on)
- SunRays On (default in High and Ultra)
- Headlight On (default in High and Ultra)
- 1⁄2 normal auto-generated scenery (gFoliagePercent 50%)
- Medium polygon count level of detail bias (gLODBias=1)
res 1920x1080(0x)
sres 1024x1024
set gSSAO=0
set gFXAA=1
set gSimpleReflections=1
set gSunRays=1
set gHeadlight=1
set gFoliagePercent=0.5
set gLODBias=1
set gShowFPS=1
Ultra override for medium to high-end Radeon and Nvidia cards that don’t get Ultra by default.
Edit basic.txt or high.txt depending on which profile Zwift gives you by default.
- Highest world graphics resolution
- Highest shadow resolution
- High-quality lighting and shadows (gSSAO on)
- High-quality reflections (default in High and Ultra, gSimpleReflections off)
- Headlight On (default in High and Ultra)
- 2 x normal auto-generated scenery (gFoliagePercent 200%)
- High polygon count models (default in High and Ultra, gLODBias=0)
res 1920x1080(0x)
sres 2048x2048
set gSSAO=1
set gFXAA=1
set gSimpleReflections=0
set gSunRays=1
set gHeadlight=1
set gFoliagePercent=2
set gLODBias=0
set gShowFPS=1
It is debatable whether you will notice the difference of ultra res
and sres
on a 1080 display.
If you can’t tell, then revert the first two lines to:res 1280x720(0x)
sres 1024x1024
Experiment with gFoliagePercent to increase auto-generated scenery.
Stop increasing it when your FPS drops below what you are comfortable viewing.
Ultra 1440 and 4K resolution option override
Do this if you have an ultra display but do not have the option in-game to select 1440 or 4K and are confident your GPU can run at the resolution you choose.
Edit prefs.config in %HOMEPATH%\Documents\Zwift\prefs.xml
Change the USER_RESOLUTION_PREF to your preferred display resolution
1440 wide quad high definition (WQHD – 4 times as many pixels as 720 HD)
<USER_RESOLUTION_PREF>2560x1440</USER_RESOLUTION_PREF>
2160 ultra high definition (4K – 4 times as many pixels as 1080 FHD)
<USER_RESOLUTION_PREF>3840×2160</USER_RESOLUTION_PREF>
Variable definitions
Textures resolution
Sets the graphics resolution/detail of the world.
Examples
basic: res 1024x576(0x)
medium, high: res 1280x720(0x)
ultra: res 1920x1080(0x)
Shadow resolution
Sets the resolution of the shadows generated by all objects.
Might be a bit more dependent on CPU than GPU.
Higher numbers increase realism but decrease FPS.
Examples
very low: sres 256x256
low: sres 512x512
high: sres 1024x1024
very high: sres 1536x1536
ultra: sres 2048x2048
Screen space ambient occlusion
Enables or disables higher quality light and shade – an object casting shade on itself, why the corners of a room appear darker, and that sort of thing. The effect is subtle.
Dependent on GPU.
On increases realism but decreases FPS.
Examples
On (High and Ultra): set gSSAO=1
Off: set gSSAO=0
Fast approximate anti-aliasing
Enables or disables smoothing of model edges and diagonal lines. The jaggies.
On increases realism but decreases FPS
Examples
On: set gFXAA=1
Off: set gFXAA=0
Frames per second indicator
Show the real-time FPS in top left corner
Examples
On: set gShowFPS=1
Off: set gShowFPS=0
Sun Rays
Enables or disables fancy sun rays – very cool effect in the dust and tree lined routes. Also affects moon rays.
On increases realism but decreases FPS.
Examples
On: set gSunRays=1
Off: set gSunRays=0
Headlight
Enable headlight on bike.
On increase realism but decrease FPS.
Examples
On: set gHeadlight=1
Off: set gHeadlight=0
Foliage Percent
Sets the level of auto-generated scenery – trees, grass, flowers, fruit, underwater kelp, etc.
This is a very effective way to manipulate the environment to suit your preferred FPS.
A number between 0 and 1 is normal.
Higher number increases scenery density / realism but decrease FPS.
Lower number decreases scenery density / realism but increases FPS.
Examples: * 0 = 0% * 0.25 = 25% * 0.5 = 50% * 0.75 = 75% * 1 – 100% * 5 = 500% – be very careful!
Examples
low: set gFoliagePercent=0.25
normal: set gFoliagePercent=1
extreme: set gFoliagePercent=5
Simple Reflections
Enables or disables simple reflections on water, glass, metal, carbon, cobbles, etc.
Off increases realism but decreases FPS.
On: set gSimpleReflections=1
Off: set gSimpleReflections=0
Level of detail bias
Not too sure of how this variable works.
Appears to draw models with fewer polygons when value is set to 2 or higher.
Bike riders look very low fi, and may even vanish when gLODBias=5.
Examples
very low detail: set gLODBias=2
low detail: set gLODBias=1
normal: set gLODBias=0
Heads Up Display
Enables or disables the heads up display overlays.
Set to 0 for making cool videos free from rider names and other info.
Examples
On (default): set g_bDrawHud=1
Off: set g_bDrawHud=0
ANISO
Improves the clarity and crispness of textured objects in game.
Appears to be deprecated.