Weather System

Category: Game Mechanics
Created by pholton on July 11, 2026 9:08 AM
Last updated: July 11, 2026 9:20 AM

Weather System

Overview

Weather is generated deterministically using a seeded random number generator. The seed is based on the season, round, and circuit ID - meaning the same race will always have the same weather forecast.

Weather Conditions

Each weather condition adds a lap time penalty based on the circuit's weather sensitivity (rated 1-10). The higher the sensitivity, the bigger the penalty. Light rain adds a small amount, while heavy rain can add a lot. A skilled driver (high Technical) can reduce the rain penalty:

ConditionLap Time PenaltyPlain English
-------------------------------------------
DryNo effectPerfect conditions, no penalty
Drying+0.02 x weather_sensitivityTrack is drying, small penalty
Light Rain+0.05 x weather_sensitivityLight rain, modest penalty
Rain+0.10 x sensitivity minus tech reductionSteady rain, significant penalty. High Technical skill helps
Heavy Rain+0.18 x sensitivity minus tech reductionDownpour, big penalty. Technical skill helps even more

The Technical skill reduction in Rain is: effectiveTech x 0.006. In Heavy Rain it is stronger: effectiveTech x 0.008. A driver with effective Technical of 10 would reduce the Rain penalty by 0.06 seconds and the Heavy Rain penalty by 0.08 seconds.

Rain Probability

The chance of rain during a race depends mostly on the circuit's weather sensitivity. Multiply the sensitivity by 8 to get the base percentage. For example, a circuit with sensitivity 7 has a 56% chance of rain.

Rain Timing

When rain occurs, the system generates:

After rain ends, the track is Drying for the remaining laps.

Weather Sensitivity

Each circuit has a weather_sensitivity rating (1-10). Higher values mean:

Driver Technical Skill

Technical skill helps in wet conditions:

Notes

There is currently no tyre choice system - all cars use the same generic tyre model regardless of weather. The race_setup table has tyre compound columns reserved for future implementation.

Back to Wiki