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.
I have an NVIDIA GeForce GTX 1650. Great card, not supported/profiled by zwift.
Zwift defaults to “high” — hacked the high config to get worse graphics than when it’s not hacked.
Any recommendtions?
Since this week Zwift got updated to recognize GTX1650 properly.
I am using a Mac Book Pro 2014 at MacOs High Sierra V10.13.6 and I just can’t find my medium profile to add the command to remove or hide the HEADS UP DISPLAY. set g_bDrawHud=0
Can you tell me how to do it for Mac users? All my Zwift files are located in ¬/Documents/Zwift. Unfortunately I just don’t have any medium.txt file to add this “set g_bDrawHud=0″ command.
Thanks for your help
On Mac OS they are located under:
~/Library/Application Support/Zwift/data/configs
hi Mike – are they still in there? I have checked the Library/Application Support folder and there is no folder called Zwift in there on my macbook. thanks in advance!
Yes, they are still there. Check you are not looking in Library folder at the top level of the boot drive root. It is the Library folder under the user’s home directory – starting with the tilde symbol in the path ~.
awesome thanks so much for your patience! I forgot the Library is a hidden folder and assumed i had found it as i found the other Library folder. cheers. Now fingers crossed i can improved the single digit frame rate on my poor old 2010 Macbook!
Using gaming laptop with 1080p display, some items have jagged edges or scintillating pixels. This is usually due to lack of anti aliasing filter. Any way to enable or enhance anti aliasing filter to reduce this artifacts?
The number in parentheses after the resolution seems to be the anti aliasing setting. Try increasing it to 4x or 8x but remember this affects FPS.
Thanks Mike! Very helpful.
Hello!
A year ago I found an entry on the internet that you can display avg power during freeride. It worked! Unfortunately I changed my computer and didn’t write down where to overwrite it. Can anyone help?
I have my laptop connected to my 43″ 4K Vizio M43-C1 (HDMI 60hz input). When I have Zwift set to “full screen mode”; my tv displays a thin line at the bottom of the screen, in multi-colors. It’s not really in the way but, it is rather annoying. Also, I’m not sure weather or not it is a bad sign. I’m running a MSI GL73 95DK gaming laptop with an, nvidia 1660ti 6GB gpu. The tv output I am using is the miniDP with, an miniDP to HDMI adapter. I am able to achieve better input speeds with stable Hz… Read more »
Just used this to bump the FPS for Zwift on my aging mac machine from like…10FPS to 30FPS, wow what a difference. Thanks for posting this
Thank you so much! I was using a 2018 MacBook Pro with a 4k Westinghouse tv and was stuck with 1080p resolution – horrible. Modified the prefs.xml file with the ultra high def line per your suggestion and now I’m good to go! Thank you for saving me countless hours of poor resolution zwifting.
Took me a while to comprehend “* 0 = 0% * 0.25 = 25% * 0.5 = 50% * 0.75 = 75% * 1 – 100% * 5 = 500%”! It looks like the * are intended to be multiplication to me (being a programmer I guess). Then the spurious – instead of a = further added to my confusion.
I suggested editing to read “0 = 0%, 0.25 = 25%, 0.5 = 50%, 0.75 = 75%, 1 = 100%, 5 = 500%”
The formatting got lost – the * are intended to be bullet points in markdown, and yes, the 1 – 100% is a typo, should be an =
Anyone figure out how to turn off dust? I hate dust in real life and virtual!
Hi Jim, I so agree it really sucks. The effort that Zwift put into the scenary in the jungle and makuri is wastet because of the dust.
on Apple TV it doesn’t matter much because of the graphics profile there is close to no dust – but I have tried a gaming pc and on that the dust really ruins the experience.
Make a setting that either 1) removes dust, 2) reduces dust (alot) 3) lets the dust stay close to the Ground.
The more riders the bigger the problem