For reference, here’s my config:
<?xml version="1.0"?>
<stkconfig version="8" >
<!-- Audio Settings
sfx_on : Whether sound effects are enabled or not (true or false)
music_on : Whether musics are enabled or not (true or false)
sfx_numerator : The value in the audio options SFX spinner
sfx_volume : Volume for sound effects, see openal AL_GAIN for interpretation
music_numerator : The value in the audio options music spinner
music_volume : Music volume from 0.0 to 1.0
volume_denominator : Number of steps for volume adjustment -->
<Audio
sfx_on="true"
music_on="true"
sfx_numerator="10"
sfx_volume="0.267800"
music_numerator="10"
music_volume="0.267800"
volume_denominator="15"
>
</Audio>
<!-- Race Setup Settings
numkarts : Default number of karts. -1 means use all
numlaps : Default number of laps.
gp-reverse : Default direction of GP tracks. 0=default, 1=no reverse, 2=all reverse, 3=Random
random-gp-num-tracks : Default number of tracks for random GP.
ffa-time-limit : Time limit in ffa mode.
use-ffa-mode : Use ffa mode instead of 3 strikes battle.
lap-trial-time-limit : Time limit in lap trial mode.
numgoals : Default number of goals in soccer mode.
soccer-default-team : Default team in soccer mode for single player.
soccer-time-limit : Time limit in soccer mode.
soccer-use-time-limit : Enable time limit in soccer mode.
random-arena-item : Enable random location of items in an arena.
difficulty : Default race difficulty. 0=easy, 1=medium, 2=hard, 3=supertux
game_mode : Game mode. 0=standard, 1=time trial, 2=follow the leader, 3=3 strikes, 4=easter egg hunt, 5=soccer, 6=ghost replay
soccer-red-ai-num : Number of red AI karts in soccer mode.
soccer-blue-ai-num : Number of blue AI karts in soccer mode.
karts-powerup-gui : Show other karts' held powerups in race gui.
soccer-player-list : Show player list icon in soccer mode.
addon-tux-online : Always show online addon karts as tux when live join is on.
random-player-pos : Randomize the position of the players at the start of a race. Doesn't apply to story mode. -->
<RaceSetup
numkarts="5"
numlaps="3"
gp-reverse="0"
random-gp-num-tracks="1"
ffa-time-limit="3"
use-ffa-mode="false"
lap-trial-time-limit="3"
numgoals="3"
soccer-default-team="0"
soccer-time-limit="3"
soccer-use-time-limit="false"
random-arena-item="false"
difficulty="0"
game_mode="0"
soccer-red-ai-num="2"
soccer-blue-ai-num="2"
karts-powerup-gui="false"
soccer-player-list="false"
addon-tux-online="false"
random-player-pos="true"
>
</RaceSetup>
<!-- Kart to select by default (the last used kart) -->
<kart value="addon_roadster-x5" />
<!-- Last selected kart group -->
<last_kart_group value="all" />
<!-- Settings for the wiimote
wiimote-raw-max : At what raw input value maximum steering is reached (between 1 and 25).
wiimote-weight-linear : A weight applied to the linear component of mapping wiimote angle to steering angle
wiimote-weight-square : A weight applied to the square component of mapping wiimote angle to steering angle
wiimote-weight-asin : A weight applied to the asin component of mapping wiimote angle to steering angle
wiimote-weight-sin : A weight applied to the sin component of mapping wiimote angle to steering angle -->
<WiiMote
wiimote-raw-max="20.000000"
wiimote-weight-linear="1.000000"
wiimote-weight-square="0.000000"
wiimote-weight-asin="0.000000"
wiimote-weight-sin="0.000000"
>
</WiiMote>
<!-- Settings for the multitouch device
multitouch_active : Enable multitouch support: 0 = disabled, 1 = if available, 2 = enabled
multitouch_draw_gui : Enable multitouch race GUI
multitouch_inverted : Draw steering wheel on right side.
multitouch_auto_acceleration : Auto acceleration for multitouch controls.
multitouch_controls : Multitouch mode: 0 = undefined, 1 = steering wheel, 2 = accelerometer, 3 = gyroscope
multitouch_deadzone : A parameter in range [0, 0.5] that determines the zone that is considered as centered in steering button.
multitouch_sensitivity_x : A parameter in range [0, 1.0] that determines the sensitivity for x axis.
multitouch_sensitivity_y : A parameter in range [0, 1.0] that determines the sensitivity for y axis.
multitouch_tilt_factor : A parameter that determines general accelerometer sensitivity.
multitouch_scale : A parameter in range [0.5, 1.5] that determines the scale of the multitouch interface.
screen_keyboard_status : STK screen keyboard status: 0 = disabled, 1 = enabled -->
<Multitouch
multitouch_active="1"
multitouch_draw_gui="true"
multitouch_inverted="false"
multitouch_auto_acceleration="true"
multitouch_controls="1"
multitouch_deadzone="0.100000"
multitouch_sensitivity_x="0.200000"
multitouch_sensitivity_y="0.650000"
multitouch_tilt_factor="4.000000"
multitouch_scale="0.950000"
screen_keyboard_status="0"
>
</Multitouch>
<!-- Order karts start in GP
most_points_first : Starting order from most to least points (true) or other way around (false)
player_last : Always put the player at the back or not (Bully mode). -->
<GpStartOrder
most_points_first="true"
player_last="false"
>
</GpStartOrder>
<!-- Directory with additional GP's. -->
<additional_gp_directory value="" />
<!-- Video Settings
real_width : Screen/window real width in pixels before high dpi is applied
real_height : Screen/window real height in pixels before high dpi is applied
width : Screen/window width in pixels, this value should not be edited
height : Screen/window height in pixels, this value should not be edited
prev_real_width : Previous real screen/window width
prev_real_height : Previous real screen/window height
window_x : If remember_window_location is true
window_y : If remember_window_location is true
show_fps : Display frame per seconds
show_story_mode_timer : Display the story mode timer
show_speedrun_timer : Display the speedrun timer
max_fps : Maximum fps, should be at least 60
force_legacy_device : Force OpenGL 2 context, even if OpenGL 3 is available.
split_screen_horizontally : When playing a non-square amount of players (e.g. 2), should it split horizontally (top/bottom)
enable_texture_compression : Enable Texture Compression
enable_high_definition_textures : Enable high definition textures. Bit flag: bit 0 = enabled/disabled; bit 1 = set by user/set as default
enable_glow : Enable Glow
enable_bloom : Enable Bloom
enable_light_shaft : Enable Light Shafts
enable_dynamic_lights : Enable Dynamic Lights
enable_dof : Enable Depth of Field
old_driver_popup : Determines if popup message about too old drivers should be displayed.
scale_rtts_factor : Custom value for RTTs resolution. Value should be smaller or equal to 1.0
max_texture_size : Max texture size when high definition textures are disabled
hq_mipmap : Generate mipmap for textures using high quality method with SSE
font_size : The size of fonts. 0 is the smallest and 6 is the biggest
render_driver : Render video driver to use, at the moment gl, vulkan or directx9 is supported.
vulkan_fullscreen_desktop : Use SDL_WINDOW_FULLSCREEN_DESKTOP for vulkan device
non_ge_fullscreen_desktop : Use SDL_WINDOW_FULLSCREEN_DESKTOP for non-ge device -->
<Video
real_width="720"
real_height="1600"
width="720"
height="1600"
fullscreen="false"
prev_real_width="1024"
prev_real_height="768"
prev_fullscreen="false"
remember_window_location="false"
window_x="-1"
window_y="-1"
show_fps="true"
show_story_mode_timer="true"
show_speedrun_timer="false"
max_fps="60"
force_legacy_device="false"
split_screen_horizontally="true"
enable_texture_compression="false"
enable_high_definition_textures="2"
enable_glow="false"
enable_bloom="false"
enable_light_shaft="false"
enable_dynamic_lights="true"
enable_dof="false"
old_driver_popup="true"
scale_rtts_factor="0.350000"
max_texture_size="512"
hq_mipmap="false"
font_size="4.000000"
render_driver="gl"
vulkan_fullscreen_desktop="true"
non_ge_fullscreen_desktop="false"
>
</Video>
<!-- Recording Settings
limit_game_fps : Limit game framerate not beyond the fps of recording video.
video_format : Specify the video for record, which is the enum of VideoFormat in libopenglrecorder. It will auto fallback to MJPEG if libopenglrecorder was not compiled with such video encoder.
audio_bitrate : Specify the bitrate for audio
video_bitrate : Specify the bitrate for video
recorder_jpg_quality : Specify the jpg compression level of recorder
record_fps : Specify the fps of recording video -->
<Recording
limit_game_fps="true"
video_format="0"
audio_bitrate="112000"
video_bitrate="20000"
recorder_jpg_quality="90"
record_fps="30"
>
</Recording>
<!-- Wan server bookmarks -->
<server-bookmarks>
</server-bookmarks>
<!-- Wan server bookmarks order -->
<server-bookmarks-order>
</server-bookmarks-order>
<!-- Last 5 IP addresses that user entered -->
<address-history>
</address-history>
<!-- The stun servers that will be used to know the public address (ipv4 only) with port -->
<ipv4-stun-servers>
<stun-server address="stunv4.7.supertuxkart.net:3478" ping="0"/>
<stun-server address="stunv4.8.supertuxkart.net:3478" ping="0"/>
<stun-server address="stunv4.linuxreviews.org:3478" ping="0"/>
</ipv4-stun-servers>
<!-- The stun servers that will be used to know the public address (including ipv6) with port -->
<ipv6-stun-servers>
<stun-server address="stun.linuxreviews.org:3478" ping="0"/>
<stun-server address="stun.stunprotocol.org:3478" ping="0"/>
<stun-server address="stun.supertuxkart.net:3478" ping="0"/>
</ipv6-stun-servers>
<!-- Network Settings
enable-network-splitscreen : The default value of enable splitscreen checkbox in online screen.
log-network-packets : If all network packets should be logged
random-client-port : Use random port for client connection (check stk_config.xml for default value)
random-server-port : Use random port for server connection (check stk_config.xml for default value)
lobby-chat : Enable chatting in networking lobby, if off than no chat message will be displayed from any players.
race-chat : Enable chatting during races.
ipv6-lan : Enable IPv6 LAN server discovery.
max-players : Maximum number of players on the server (for gui server creation.
timer-sync-difference-tolerance : Max time difference tolerance (in ms) to synchronize timer with server.
default-ip-type : Default IP type of this machine, 0 detect every time, 1 IPv4, 2 IPv6, 3 IPv6 NAT64, 4 Dual stack.
lan-server-gp : Show grand prix option in create LAN server screen, false will show AI option.
wan-server-gp : Show grand prix option in create WAN server screen, false will show AI option. -->
<Network
enable-network-splitscreen="false"
log-network-packets="false"
random-client-port="true"
random-server-port="false"
lobby-chat="false"
race-chat="true"
ipv6-lan="true"
max-players="8"
timer-sync-difference-tolerance="5"
default-ip-type="0"
lan-server-gp="false"
wan-server-gp="true"
>
</Network>
<!-- The Number of karts per gamemode. -->
<num-karts-per-gamemode>
<gamemode-list gamemode="0" num-karts="4"/>
<gamemode-list gamemode="1002" num-karts="5"/>
<gamemode-list gamemode="1100" num-karts="6"/>
<gamemode-list gamemode="1101" num-karts="4"/>
<gamemode-list gamemode="2000" num-karts="4"/>
<gamemode-list gamemode="2001" num-karts="4"/>
</num-karts-per-gamemode>
<!-- Graphics Quality Settings
particles-effecs : Particles effects: 0 disabled, 1 only important, 2 enabled
christmas-mode : Christmas hats: 0 use current date, 1 always on, 2 always off
easter-ear-mode : Easter Bunny Ears: 0 use current date, 1 always on, 2 always off
animated-characters : Whether to display animated characters
geometry_level : Geometry quality 0=everything is displayed; 1=a few details are displayed; 2=lowest level, no details
anisotropic : Quality of anisotropic filtering (usual values include 2-4-8-16; 0 to disable)
swap-interval : Swap interval for vsync: 0 = disabled, 1 = full
motionblur_enabled : Whether motion blur should be enabled
mlaa : Whether MLAA anti-aliasing should be enabled
ssao : Enable Screen Space Ambient Occlusion
light_scatter : Enable light scattering shaders
shadows_resolution : Shadow resolution (0 = disabled
Degraded_IBL : Disable specular IBL -->
<GFX
particles-effecs="2"
christmas-mode="0"
easter-ear-mode="0"
animated-characters="true"
geometry_level="0"
anisotropic="16"
swap-interval="0"
motionblur_enabled="true"
mlaa="true"
ssao="false"
light_scatter="false"
shadows_resolution="0"
Degraded_IBL="true"
>
</GFX>
<cache-overworld value="true" />
<crashed value="false" />
<!-- Camera settings for player.
distance : Distance between kart and camera
forward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing forward
forward-smoothing : if true, use smoothing (forward-up-angle become relative to speed) when pointing forward
backward-distance : Distance between kart and camera (reverse)
backward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing backwards. This is usually larger than the forward-up-angle, since the kart itself otherwise obstricts too much of the view
fov : Focal distance (single player) -->
<camera-normal
distance="1.000000"
forward-up-angle="0.000000"
forward-smoothing="true"
backward-distance="2.000000"
backward-up-angle="5.000000"
fov="80"
>
</camera-normal>
<!-- Use ball camera in soccer mode, instead of reverse -->
<reverse-look-use-soccer-cam value="false" />
<!-- The current used camera. 0=Custom; 1=Standard; 2=Drone chase -->
<camera-present value="1" />
<!-- Standard camera settings for player.
distance : Distance between kart and camera
forward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing forward
forward-smoothing : if true, use smoothing (forward-up-angle become relative to speed) when pointing forward
backward-distance : Distance between kart and camera (reverse)
backward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing backwards. This is usually larger than the forward-up-angle, since the kart itself otherwise obstricts too much of the view
fov : Focal distance (single player)
reverse-look-use-soccer-cam : Use ball camera in soccer mode, instead of reverse -->
<standard-camera-settings
distance="1.000000"
forward-up-angle="0.000000"
forward-smoothing="true"
backward-distance="2.000000"
backward-up-angle="5.000000"
fov="80"
reverse-look-use-soccer-cam="false"
>
</standard-camera-settings>
<!-- Drone chase camera settings for player.
distance : Distance between kart and camera
forward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing forward
forward-smoothing : if true, use smoothing (forward-up-angle become relative to speed) when pointing forward
backward-distance : Distance between kart and camera (reverse)
backward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing backwards. This is usually larger than the forward-up-angle, since the kart itself otherwise obstricts too much of the view
fov : Focal distance (single player)
reverse-look-use-soccer-cam : Use ball camera in soccer mode, instead of reverse -->
<drone-camera-settings
distance="2.600000"
forward-up-angle="33.000000"
forward-smoothing="false"
backward-distance="2.000000"
backward-up-angle="10.000000"
fov="100"
reverse-look-use-soccer-cam="false"
>
</drone-camera-settings>
<!-- Saved custom camera settings for player.
distance : Distance between kart and camera
forward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing forward
forward-smoothing : if true, use smoothing (forward-up-angle become relative to speed) when pointing forward
backward-distance : Distance between kart and camera (reverse)
backward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing backwards. This is usually larger than the forward-up-angle, since the kart itself otherwise obstricts too much of the view
fov : Focal distance (single player)
reverse-look-use-soccer-cam : Use ball camera in soccer mode, instead of reverse -->
<saved-camera-settings
distance="1.000000"
forward-up-angle="0.000000"
forward-smoothing="true"
backward-distance="2.000000"
backward-up-angle="5.000000"
fov="80"
reverse-look-use-soccer-cam="false"
>
</saved-camera-settings>
<!-- (Debug) camera settings.
reverse_look_threshold : If the kart is driving backwards faster than this value,
switch automatically to reverse camera (set to 0 to disable).
fpscam_rotation_speed : How fast the first person camera's direction speed changes when
moving the mouse (means acceleration).
fpscam_smooth_rotation_max_speed : How fast the first person camera's direction can change.
fpscam_angular_velocity : How fast the first person camera's rotation speed changes.
fpscam_max_angular_velocity : How fast the first person camera can rotate. -->
<camera
reverse_look_threshold="0"
fpscam_rotation_speed="0.003000"
fpscam_smooth_rotation_max_speed="0.040000"
fpscam_angular_velocity="0.020000"
fpscam_max_angular_velocity="1.000000"
>
</camera>
<!-- Name of the .items file to use. -->
<item_style value="items" />
<!-- Name of the last track used. -->
<last_track value="addon_black-forest" />
<!-- Last selected track group -->
<last_track_group value="Add-Ons" />
<!-- Discord Client ID (Set to -1 to disable) -->
<discord_client_id value="-1" />
<!-- If debug logging should be enabled for rich presence -->
<rich_presence_debug value="false" />
<!-- Name of the skin to use -->
<skin_name value="classic" />
<!-- Minimap Setup Settings
display : display: 0 bottom-left, 1 middle-right, 2 hidden, 3 center
size : Size of the the minimap (480 = full screen height; scaled afterwards)
ai-icon : The size of the icons for the AI karts on the minimap.
player-icon : The size of the icons for the player kart. -->
<Minimap
display="1"
size="180.000000"
ai-icon="16.000000"
player-icon="20.000000"
>
</Minimap>
<!-- PowerUp Setup Settings
display : display: 0 center, 1 right side, 2 hidden (see karts' held powerups)
powerup-icon-size : Size of the powerup icon (scaled afterwards) -->
<PowerUp
display="0"
powerup-icon-size="64.000000"
>
</PowerUp>
<!-- Everything related to spectator mode.
camera-distance : Distance between kart and camera.
camera-angle : Angle between ground, kart and camera. -->
<Spectator
camera-distance="6.750000"
camera-angle="40.000000"
>
</Spectator>
<!-- Everything related to handicaps.
per_player_difficulty : If handicapped users can be selected -->
<Handicap
per_player_difficulty="false"
>
</Handicap>
<!-- Status of internet: 0 user wasn't asked, 1: allowed, 2: not allowed -->
<enable_internet value="1" />
<!-- Everything related to hardware configuration.
report-version : Version of hardware report that was reported last
random-identifier : A random number to avoid duplicated reports.
hw-report-enabled : If HW reports are enabled. -->
<HWReport
report-version="0"
random-identifier="0"
hw-report-enabled="false"
>
</HWReport>
<!-- Always show the login screen even if last player's session was saved. -->
<always_show_login_screen value="false" />
<!-- Addon and news related settings
news_last_updated : Time news was updated last.
news_frequency : How often news should be updated.
news_display_count : How often all news messages have been displayed
last_important_message_id : Don't show important message with this or a lower id again
news_list_shown_id : News before this id has been shown once so no red dot
addon_last_updated : Time addon-list was updated last.
latest_addon_time : Latest approved addon time. -->
<AddonServer
news_last_updated="1744721926"
news_frequency="0"
news_display_count=""
last_important_message_id="-1"
news_list_shown_id="1056"
addon_last_updated="1744715118"
latest_addon_time="1743665355"
>
</AddonServer>
<!-- Which language to use (language code or 'system') -->
<language value="system" />
<!-- Whether to enable track debugging features -->
<artist_debug_mode value="false" />
<!-- Whether to hide the GUI (artist debug mode) -->
<debug_hide_gui value="false" />
<!-- Enable all karts and tracks: 0 = disabled, 1 = everything except final race, 2 = everything -->
<unlock_everything value="0" />
<!-- Allows one to set commandline args in config file -->
<commandline value="" />
</stkconfig>