Wiki in costruzione. Molti concetti qui descritti provengono dall'alpha 0.2 e possono ancora cambiare. La wiki sarà finalizzata per la versione 1.0 — per ora serve ad aiutare i tester chiusi e, più avanti, i giocatori dell'accesso anticipato a orientarsi. Per le informazioni più aggiornate e affidabili, entra nel Discord — è lì che le novità vengono annunciate per prime e dove puoi chiedere direttamente.

Entra nel Discord per le ultime novità

Qualifying & Race Run Plans

The two run-plan screens — compound, fuel and pace for qualifying, then the pit plan and start settings for the race.

Non ancora tradotto. Questo articolo per ora è disponibile solo in inglese. Stiamo traducendo la wiki articolo per articolo — Discord resta il modo più rapido per fare una domanda nella tua lingua.
In lavorazione. La prima bozza è online, ma i contenuti possono cambiare e gli screenshot sono ancora in arrivo. Hai notato un errore? Segnalacelo su Discord.
In questa pagina

Two screens, one file, one template. The Qualifying Run Plan appears after the weekend repair step and sets each car’s compound, fuel and pace for the 30-minute session. The Race Strategy screen appears after qualifying and picks the pit plan and starting fuel for the race.

Both are built from your Free Practice data. Both are also the last committal points of the weekend: neither has a Back button.


How to open them

  • Qualifying Run Plan — automatically after practice → weekend repair. Also the landing point when you Resume a weekend at step 1.
  • Race Strategy — automatically after the qualifying session finishes. The landing point when you Resume at step 2.

Shared controls: Tab switches car, Enter confirms, Esc does nothing (deliberately — the weekend is committed once practice is done; only the practice plan can bail back to the Hub).

Each screen shows the same track-info card as the Hub, the practice-data box per driver, and the per-car Observations panel of discovered/suspected car traits on that car’s fitted parts.

A car with a destroyed fitted part is drawn as a greyed DID NOT START panel naming the component. That car takes no part in the session.


Qualifying Run Plan

Per driver:

ControlRangeNotes
Tire compoundSoft / HardLocked for the whole weekend — it is also your race starting tyre unless the race strategy overrides it
Run paceConservative / Standard / AttackBounds the AI map band, ×0.95 / ×1.00 / ×1.05 on mistake odds
Fuel loadslider, 10 – 60 kgAuto-seeded from practice
Runs1 – 4Fuel calculator input
Laps/run1 – 3Fuel calculator input

A summary line reads N runs × M laps = T hot laps | Compound | F kg.

What actually reaches the session

Only three fields are stored in the QualiRunPlan and applied to the car: compound, fuel_kg and pace. The compound and fuel are written onto the car entry as start_compound / start_fuel_kg when the grid is built; the pace sets pace_mode and the starting engine map.

Runs and Laps/run are a fuel calculator only. They are not persisted and they do not tell the sim how many runs to do. In a simulated session the car uses the sim’s own generated plan (2–4 runs, 1–2 hot laps each, staged across the session); in a live session you launch each stint yourself from the Start Stint overlay, where fuel, compound and hot laps (1–4) are all editable again.

The fuel formula

hot = laps_per_run × fpl_practice × 1.30        // 1.30 = engine map 10 vs map 5
out = fpl_practice × 0.82                        // out lap at reduced pace
in  = fpl_practice × 0.75                        // in lap at reduced pace
fuel = (hot + out + in) × 1.15                   // 15% safety margin
       → ceil, clamped to 10–60 kg

fpl_practice is the practice fuel-per-lap for the selected compound — so switching Soft↔Hard recomputes it. With no practice data at all the default is a light 15 kg.

Note the deliberate design: the plan fuels for one run, because pit stops between runs refuel the tank. That is why the Runs stepper recomputes the number but never changes it — only laps_per_run moves it.

AI qualifying plans

ai_quali_plans runs for every AI team the moment you confirm:

  • Compound: always Soft. Qualifying is a single-lap pace fight; the earlier 70/30 Soft/Hard split had AI cars handicapping themselves for no reason.
  • Runs 2–4, laps/run 1–2 (fuel sizing only), fuel from the same compute_quali_fuel on that driver’s practice number.
  • Pace: Standard.
  • Hot-lap engine maps come from the team’s practice doctrine (ai_quali_maps_for): pole contenders run a full map, engine-conservers turn it down — capped per driver by the archetype’s risk budget so a low-consistency driver is not pushed into errors. Applied to every run of that car’s plan, overwriting the sim’s default map 5.

After the session

The classification order is stored as the race grid (weekend_quali_order, persisted so it survives a quit). The 107% rule — the active qualifying-cut rule set — is evaluated immediately on the session’s best laps and the verdict persisted (weekend_quali_excluded), because the reprieve is a dice roll and rebuilding it at the race would re-roll it. Excluded drivers start the race flagged did_not_start.


Race Strategy

Per driver:

ControlRangeNotes
Run paceConservative / Standard / AttackSame lever as qualifying
StrategyA / B / (C)Buttons, one per generated plan
Starting fuelslider, 40 – 140 kgRe-seeded whenever you change strategy

Under the strategy buttons sits the plan’s own description, generated by describe_strategy from the live strategy object — e.g. A: 1-stop Soft → Hard or C: 2-stop Soft → Hard → Soft.

The labels are generated, never hardcoded. They used to be two fixed strings, and because the generator re-sorts and renames its plans, picking “A: 1-stop S→H” could put the car on a 2-stop. The screen now regenerates the strategy set with the same circuit, config and fuel-per-lap inputs the race will use, and builds every label from the actual plan.

How the strategies are generated

generate_strategies(total_laps, track_length, pit_lane_length, config, fuel_per_lap, avg_speed) builds up to three candidates. Fuel per lap is the mean of your practice measurements, floored at the conservative track estimate (track_length × 0.00042 × 0.70) — a practice session is full of out/in/cool-down laps and reads below true racing consumption, which used to strand the entire field mid-stint.

Each compound gets a tenable stint length: the lap count at which wear reaches the 0.85 cliff, tire_lifetime × 0.85 / wear_multiplier / track_length. For a 5 km track that is ≈11 laps on Soft, ≈24 on Hard. Every stint is clamped to stay under it, so the planner never asks for something the physics will punish.

CandidateShapeStop lapStart fuel
Aggressive 1-stopSoft → Hardmin(total/2, soft_tenable), min 5fpl × stop_lap × 1.08
Conservative 1-stopHard → Softmin(3·total/5, hard_tenable), pulled earlier if the closing Soft stint would exceed its own lifesame
Aggressive 2-stopSoft → Hard → Soft≈ total/3 and 2·total/3, both clampedsame

Every stint’s fuel target carries an 8% margin.

The 2-stop is conditional: it is only offered when the race is at least 20 laps and its estimated time lands within 8 seconds of the best 1-stop. A 2-stop that cannot repay its extra pit lane never appears, so you cannot gamble on a plan that is simply slower.

estimate_strategy_time prices each candidate lap by lap with the real physics curves — compound speed bonus, the same tyre-wear cliff (including the compound wear-penalty factor), fuel-weight penalty — plus pit transit derived from the circuit’s actual pit lane length and a service time using the real refuel flow rate.

Then the plans are sorted by estimated time and renamed A / B / C. So A is always the fastest estimate, not a fixed compound sequence. Read the description, not the letter.

The fuel slider is authoritative

Starting fuel is seeded from practice:

stint_fraction = 0.50 (idx 0) · 0.60 (idx 1) · 0.55 (other)
fuel = ceil(total_laps × stint_fraction) × fpl × 1.15
       → rounded, clamped 40–140 kg

fpl prefers the Hard practice measurement, falling back to Soft. With no practice data at all the strategy’s own start_fuel_kg is used rather than a flat default.

Whatever the slider shows at confirm is what goes in the tank. Both start_compound and start_fuel_kg are stored as an explicit snapshot on your RaceRunPlan, and the race-start code trusts the snapshot over a re-lookup into pit_strategies[strategy_idx]. That indirection was the source of “I picked Hard for both and one started on Soft”: a tiny estimated-time difference could flip the A/B sort between the UI and the race, and the index no longer pointed at the same plan. AI plans pass None for both and still resolve through the index.

AI race plans

ai_race_plans gives each AI driver a strategy index by a 50 / 35 / 15 roll over A / B / C, then differentiates teammates (if the second driver rolls the same index, it is bumped by one). AI plans carry no compound or fuel snapshot — they take the strategy’s own figures.

That is the plan assignment. Inside the sim, assign_strategy is richer: it weights each candidate by a softmax on its estimated-time deficit (temperature 5 + 7 × aggression seconds per e-fold) multiplied by a type weight that scales with the driver’s aggression —

Plan typeWeight
2-stop0.35 + 0.55 × agg
Soft-start 1-stop0.50 + 0.70 × agg
Hard-start 1-stop1.20 − 0.70 × agg

— and then applies the same teammate differentiation. A slower plan keeps a real but exponentially small chance, so teams occasionally commit to the wrong strategy; aggressive drivers run a hotter temperature and gamble more readily.


How the plan is honoured on track

Live race

Your cars are marked player-controlled: the AI strategy director skips every decision for them. The plan sets the starting compound, fuel and pace; from there you drive the strategy yourself with the Pit button. Your manual pit request always wins — the AI will not undo it.

Simulate / Quick Sim

Your cars are not marked player-controlled. The AI director drives them, executing the strategy you assigned, including its undercut / overcut / safety-car / emergency deviations. See Pit strategy plans for those windows.

What else the run plan seeds

Two practice-derived numbers are pushed onto every car before the start:

  • fuel_per_lap_estimateper car, from max(hard, soft) practice measurement. AI teams have no telemetry, so theirs stays 0 and the planner falls back to the track estimate for them. This replaced a grid-wide average taken from the player’s under-measured fuel, which stranded the whole field.
  • wear_per_lap_soft_estimate / wear_per_lap_hard_estimate — fed into the AI’s EV pit model. Without them the AI projects wear from a global constant and gets the early-race economics wrong (notably firing post-safety-car pits on near-fresh tyres).

The weekend stint boosts earned in practice are applied here too, by build_session_grid: quali_pace for the qualifying grid, race_pace for the race grid, plus the driveability familiarity bonus. See Free Practice.


Advanced

  • The letter is not the strategy. A / B / C are assigned after a time sort. Always read the generated description under the buttons.
  • C’s absence is information. No third button means the 2-stop could not get within 8 s of the best 1-stop on this circuit — the pit lane is too expensive or the tyres last too well.
  • The compound lock is a two-session decision. The tyre you pick for qualifying is the tyre your car is fitted with at the race start; the race strategy’s own snapshot then overrides it, so check both screens agree with your intent.
  • Under-fuelling qualifying is nearly free. The tank refills between runs; only laps_per_run matters. Over-fuelling costs lap time.
  • Fuel-per-lap is per compound. A weekend with only Soft practice running gives the race planner a Soft number to size a Hard stint with. Both compounds want laps.
  • Attack pace is a 5% mistake tax. It floors the AI map band at 5 and raises the error rate. On a circuit where a lockup ends your race, Conservative is a real strategy.
  • AI qualifying is always on Soft. Do not expect a compound edge in qualifying — the differentiation is in engine map and fuel.
  • Resume lands here, not on the loadout. A mid-weekend quit at step ≥ 2 reopens the Race Strategy screen; at step 1, the Qualifying Run Plan. The loadout is already locked and persisted.

Common mistakes

  • Believing the Runs stepper changes anything on track. It moves the fuel figure and nothing else; the session’s run count comes from the sim (or from you, live).
  • Picking “A” out of habit. A is the fastest estimate for this circuit, which may be the Hard-start plan.
  • Dragging the fuel slider then changing strategy. Changing strategy re-seeds the slider from practice and discards your edit. Set the strategy first.
  • Skipping practice and then wondering why everyone runs dry. No practice data means every car is sized from the track-length estimate — safe, but never optimal.
  • Expecting Esc to back out. There is no Back on either screen by design. The only exit is the practice plan, one step earlier.
  • Assuming Simulate follows your plan exactly. It follows the strategy, and the AI director is allowed to undercut, overcut, take a free safety-car stop or pit on an emergency.

See also