Zwift Config File Graphics Tweaks: 2019

Zwift Config File Graphics Tweaks: 2019

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

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
res 1024x576(0x)
sres 512x512
aniso 4
set gSSAO=0
set gFXAA=1
set gSunRays=0
set gHeadlight=0
set gFoliagePercent=0.5
set gSimpleReflections=1
set gLODBias=2
medium.txt
res 1280x720(0x)
sres 1024x1024
aniso 4
set gSSAO=0
set gFXAA=1
set gSunRays=0
set gHeadlight=0
set gFoliagePercent=0.5
set gSimpleReflections=1
set gLODBias=1
high.txt
res 1280x720(0x)
sres 1024x1024
aniso 4
set gSSAO=1
set gFXAA=1
ultra.txt
res 1920x1080(0x)
sres 2048x2048
aniso 4
set gSSAO=1
set gFXAA=1

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.

  1. backup C:\Program Files (x86)\Zwift\data\configs on Windows, or on Mac OS ~/Library/Application Support/Zwift/data/configs/
  2. 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
  3. 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

Edit basic.txt.

  • 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
  • 12 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)
  • 12 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.

About The Author

Michael Hanney

Mike is a cloud computing consultant at an Amazon Web Services partner in Seattle. In 2015 he started collecting game log files from members of the Zwift community by email to compare different systems’ performance. This led to a crowdsourced database with unofficial benchmarks called zwiftalizer.com. He lives in Washington state near the Cascade mountains where some of the best single track mountain bike trails in the Pacific North West are found. He trains on Zwift daily and occasionally enters cyclocross and mountain bikes races for fun.

Subscribe
Notify of
guest
15 Comments
oldest
newest most voted
Inline Feedbacks
View all comments
B B
B B (@benbliz)
1 year ago

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?

Niels Thijssen
Niels Thijssen
1 year ago
Reply to  B B

Since this week Zwift got updated to recognize GTX1650 properly.

DAniel Demers
DAniel Demers
1 year ago

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

bfg67
bfg67
5 months ago
Reply to  Mike

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!

bfg67
bfg67
5 months ago
Reply to  Mike Hanney

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!

Guy Fisher
Guy Fisher
9 months ago

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?

sven
sven
8 months ago

Thanks Mike! Very helpful.

Adrian
Adrian
8 months ago

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?

Kevin D.
Kevin D.
4 months ago

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 »

Mike Hardy
Mike Hardy
3 months ago

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

C K
C K
3 months ago

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.

Daren Chandisingh
Super Member
Daren Chandisingh (@dchandisingh)
1 month ago

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%”

Free Zwift Trial

Newsletter Subscription

15
0
Would love your thoughts, please comment.x
()
x