Wiki under construction. Many concepts here are from alpha 0.2 and may still change. The wiki will be finalised for version 1.0 — for now it's here to help closed testers and, later, early-access players find their way around. For the most up-to-date and accurate info, join the Discord — that's where changes are announced first and where you can ask directly.

Join the Discord for the latest info

Settings — Simulation

The Simulation tab — ~80 RaceConfig sliders organised by group, what they tune, and how to dial in your taste.

Work in progress. First draft is here, but content may evolve and screenshots are still being added. Spotted something wrong? Tell us on Discord.
On this page

The Simulation tab exposes ~80 RaceConfig fields as live sliders, organised by group. This is where you tune the race sim’s behaviour to your taste — every value here directly modifies how the on-track action plays out.

The settings are grouped into 13 categories with colour-coded headers. Use the group dropdown (“All” by default) to filter.


Groups overview

GroupColourWhat it tunes
AllgreyEverything
OvertakegreenAttempt rate, commit thresholds, success bonuses
Dirty AirpurpleFollowing penalty, tire degradation in dirty air
TirestanWear lifetime, optimal temp window, grip penalties
MistakesredBase probability, threshold tiers, tire-temp factor
EngineblueEngine map effects, heat damage rate
Componentsdark greyAero, suspension, brake scaling factors
TrackgreenRubber evolution rate, grip / wear / temp offsets
Pit StopsbrownService times, fuel flow, out-lap penalties
StatsoliveDriver stat scaling factors
StaminatealDrain rates, fatigue effects
Visualpurple(Placeholder for visual tuning)
LaunchorangeStanding-start launch behaviour (reaction, bog, wheelspin)

Frequently tuned settings

These are the sliders most players touch first.

Overtake

  • overtake_attempt_base (default 0.0005) — base per-tick attempt probability. Bump to 0.001 for a more chaotic field; halve to 0.00025 for fewer overtakes.
  • aggressivity_spread (default 1.0) — multiplier on the AGG-derived attempt factor. 5× spread between AGG 1 and AGG 20.
  • opening_lap_overtake_boost (default 7.0) — first-lap chaos multiplier. Higher = more T1 incidents.

Tires

  • tire_lifetime (m) — distance before the wear cliff. Increase for more 1-stoppers; decrease for tire-shredder feel.
  • tire_optimal_low / tire_optimal_high (°C) — optimal temp window. Narrower window = harder to manage tires.
  • tire_wear_speed_malus — pace penalty per wear unit. Steeper makes the cliff bite harder.

Mistakes

  • mistake_base_prob (default 0.06) — base mistake probability at zone transitions. 0.12 → twice as many mistakes; 0.03 → cleaner racing.
  • mistake_threshold_small / mistake_threshold_medium — boundaries between Lockup / Spin / Crash tiers.

Engine

  • engine_heat_damage_rate (default 0.000005) — per-tick heat damage scalar. Quadruple it (0.00002) for “engines die every 2 races” feel.

Pit Stops

  • pit_service_base_time (default 1.5s) — fixed pit cost regardless of refuel/tire change duration.
  • pit_tire_change_time (default 5s) — tire swap baseline.
  • pit_fuel_flow_rate (default 12.0 kg/s) — refuel speed.
  • pit_out_lap_penalty (default 0.03) — out-lap pace penalty after a stop.

Stamina

  • stamina_proximity_range / stamina_proximity_bonus — how proximity to other cars accelerates stamina drain.

Launch

  • launch_reaction_min / launch_reaction_max — driver reaction time spread at lights-out.
  • launch_bog_chance / launch_spin_chance — probability of poor launches.
  • launch_quality_min / launch_quality_max — overall launch performance distribution.

Slider mechanics

Each slider has:

  • Label — the field name + display name
  • Track — drag the handle to a new value
  • Live numeric — current value displayed
  • Lo / Hi bounds — config-defined safety range
  • Group colour — left edge of the row coloured by group

Drag with mouse to change. Scroll wheel scrolls the panel.


Saving

Slider changes save to saves/config.db SQLite, scope = "race". Each key=value pair is stored.

On race start, the values from config.db override the compiled defaults. Restart NOT required — set_config_override re-applies live after each save.


Reset Simulation Defaults

The “Reset Defaults” button on this tab rebuilds the slider list from RaceConfig::default(). Any custom values are reverted; the saved DB entries are NOT deleted on reset — they’re rewritten on next save with the default values.


Tuning advice

For more realism

  • mistake_base_prob 0.06 (current) — already calibrated against real-F1 mistake rates
  • tire_lifetime adjust to match your preferred 1-stop/2-stop dominance
  • engine_heat_damage_rate 0.000005 (current) — engines last 10–15 GP

For more chaos

  • mistake_base_prob 0.12 (double) — every race has a Spin or two
  • opening_lap_overtake_boost 10.0 — T1 mayhem
  • aggressivity_spread 1.5 — AGG drivers go for everything

For closer racing

  • dirty_air_speed_penalty reduce → less following penalty → cars stay close
  • overtake_attempt_base increase → more attempts per second
  • back_off_speed_factor reduce → less train-formation behaviour

For pure-pace (qualifying-style)

  • mistake_base_prob 0.02 → near-zero mistakes
  • Disable side-by-side resolution by setting side_by_side_max_corners very high (5+)

File / DB inspection

If you want to see what’s stored:

sqlite3 saves/config.db
> SELECT key, value FROM config WHERE scope = 'race';

Each modified slider creates a row. Reset doesn’t delete them; it rewrites with defaults.

You can also edit race_config.txt directly (next to the binary) — values there merge with the DB on load.