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 201516 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.