Skip to content

Callouts

Every callout a voice pack’s callouts.json may script, keyed by the id you write under scenarios. Each entry below is half code and half script: the description, trigger, frame, weight and scheduling come from the callout’s contract in iRaceDeck’s code — the part a pack cannot change — and Says and Hear it are the comment and test lines of the reference voice — default, the voice iRaceDeck publishes. Every Hear it line starts with the scenario harness — the tool in the iRaceDeck repository that fires a callout through the real engine without iRacing; the tutorial has the command that starts it and the IRACEDECK_VOICE_PACKS_PATH variable that makes it load your pack. The references at the end are what that entry draws on, its included fragments walked, so you can see which lines to record and which vocabulary it names; a pool links to its line on the recording script.

Callouts are grouped by family. Callouts in one family preempt each other whatever their weights, so a newer one replaces a family-mate that is still playing; the callouts with no family come last. When a callout stays silent in your voice, read its description and its Hear it line before touching your entry — a callout is triggered by the code, and your entry is consulted only after that trigger has fired. A callout marked Re-checked at speak time asks that question again in code after your script has expanded — it is not something a script can switch off, and a script if over the same condition is allowed but no longer needed. See A correct script can be silent.

This page is generated from the code and the reference voice’s script, and a test fails when the two drift apart, so it matches the release it documents.

165 callouts in 32 groups; the reference voice scripts 165 of them.

corner-name

Callouts in the corner-name family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.corner-name-approaching

Your car reaches the point about a second (the configured lead) before a named corner in a practice or test session, once per corner per lap; qualifying and races stay silent.

Trigger
cornerName.approaching
Default frame
none — plays unframed
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The upcoming corner's bare name, spoken about a second before it in practice and test sessions — one clip, no radio frame, because at that lead the beeps would eat the whole margin. The name is the whole callout: a corner the voice has no clip for is skipped rather than half-said, and a pack that wants a lead-in puts it before the name here.

Hear it: Harness → Corner Names → Eau Rouge (or Turn 5). In-sim: a practice session on a track with corner data, Corner names enabled; the name plays on the approach to each corner.

Variables
{{cornerName.clip}}

damage

Callouts in the damage family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.damage-repair-needed

Your car takes damage that keeps the repair indicator lit for three seconds, and again only after a repair; the line waits for any incident being reported then and is skipped if already repaired.

Trigger
damage.repairNeeded.raised
Re-checked at speak time
The car still needs a repair when the call comes to speak — the repair indicator has not settled as cleared — or the damage state is not known yet.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car has picked up damage the crew can repair — spoken once when iRacing first flags a mandatory or optional repair. A meatball flag carries the same news with more authority and outranks this line.

Hear it: Harness → Damage → Damage Detected. In-sim: hit a wall or another car hard enough for the repair indicator to light in the black box.

Pools
damage/repair-needed

flag

Callouts in the flag family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.caution-extra-lap

The race leader crosses the line under caution and the one-to-go flag does not come with it, so the caution has been extended past the two laps it defaults to.

Trigger
caution.extraLap
Re-checked at speak time
Re-checked at speak time: the full-course caution is still out.
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The caution has been extended past the two laps it defaults to — one of three ways of saying the field is going around again. Never a lap count: nothing in the sim says how many are left, so each extra lap is reported as it happens.

Hear it: Harness → Flags → Caution → extra lap, with the race session and hot-lap presets — expect it after the leader's extra crossing, before the one-lap-to-green line. In-sim: an admin adds a pace lap (!pacelaps +1) after the pickup.

Pools
caution/extra-lap

pit-crew.caution-field-caught

Two to green: the waving caution goes static at the leader's crossing, a lap before the one-to-go flag, in a race with you live in the car; silent where both flags land on one tick (road courses).

Trigger
caution.fieldCaught
Re-checked at speak time
Re-checked at speak time: the full-course caution is still out.
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Two to green — the pace car has finished its pickup lap, which on an oval is one leader crossing before the one-to-go flag. "Two to green." always speaks; then, only with a car ahead in your own line, an optional clause naming it ("Make sure to follow" and the number — with the pace car the only thing ahead the clause is left out). No position here: that moved to pit-crew.caution-position, on the last lap. The optional clause is safe because the sentence outside it always speaks — the rule an optional clause has to meet. On a road course the contract keeps this silent (one to green rises on the same tick there), so the pack never chooses.

Hear it: Harness → Flags → Caution → restart, with the race session and hot-lap presets — expect "Two to green." and "…follow car eight" a few seconds after the pace-car line. In-sim: the waving caution goes static as the pace car gathers the field, about a lap and a half in, on an oval.

Pools
caution/restart-behind, caution/two-to-green
Variables
{{caution.followCarNumber}}
Conditions
caution.followsPaceCar

pit-crew.caution-one-to-go

iRacing raises the one-lap-to-green flag under a full-course caution and the field forms up for the restart, single or double file.

Trigger
caution.oneLapToGreen
Re-checked at speak time
Re-checked at speak time: the full-course caution is still out.
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: One lap to green, with the restart lineup. Leading: "One lap to green. You're leading them away." On the front row with only the pace car ahead but not the leader — the outside car of a double-file restart — a plain "One lap to green.", since telling P2 it leads would be wrong. Otherwise the lane and the car ahead, read from the pace rows at speak time: inside or outside on an oval running double file, and "Line up behind" with no lane anywhere else or single file. A car ahead the session cannot name gets the plain "One lap to green." too — this is the one call that must never come out as nothing, so it asks caution.hasFollowCarNumber before choosing a numbered wording rather than leaving the number to an optional clause alone, which expands to silence when there is no number to say. The numbered wordings already contain the words "One lap to green", which is why the fallback replaces them rather than preceding them.

Hear it: Harness → Flags → Caution → restart, with the race session and hot-lap presets — a double-file lineup, so expect "One lap to green. … behind car eight", with the lane when the preset's track is an oval; Caution → lineup change re-forms single file and hears the plain wording. With no session preset the run is refused, and with the practice preset (a player car but an empty driver list) the car ahead cannot be named, so expect the bare "One lap to green." In-sim: the one-to-go flag on the last caution lap.

Pools
caution/one-to-go, caution/one-to-go-inside, caution/one-to-go-leader, caution/one-to-go-outside, caution/one-to-go-plain
Variables
{{caution.followCarNumber}}
Conditions
caution.followsPaceCar, caution.hasFollowCarNumber, caution.isLeader
Cases
caution.line → inside, outside

pit-crew.caution-pace-car-off

The pace car peels off to pit road about five seconds before the green — on the last caution lap, or with the green held at an opening rolling start — never while deploying on a road course.

Trigger
paceCar.off
Re-checked at speak time
Re-checked at speak time: the full-course caution is still out, or the green is still held.
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The pace car is peeling off — the green is seconds away.

Hear it: Harness → Flags → Caution → restart, with the race session and hot-lap presets, hears it a few seconds before the restart line; or inject paceCar.off while a caution is out. In-sim: the pace car heads for pit road on the last caution lap, or at an opening rolling start once the green is held.

Pools
caution/pace-car-off

pit-crew.caution-pace-car-out

The pace car reaches the track during a full-course caution in a race, about twenty seconds after the flag; the pace car leading a rolling start belongs to the start and stays silent here.

Trigger
paceCar.deployed
Re-checked at speak time
Re-checked at speak time: the full-course caution is still out.
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The pace car has reached the track — one short heads-up, in one of three wordings.

Hear it: Harness → Flags → Caution → restart, with the race session and hot-lap presets, hears it a few seconds after the follow line; or inject paceCar.deployed while a caution is out. In-sim: about twenty seconds after the caution comes out in a race.

Pools
caution/pace-car-out

pit-crew.caution-restart

The green flag ends a full-course caution and the field is released in a race.

Trigger
caution.restarted
Default frame
radio
Weight
100 (critical)
Scheduling
deferred and replayed when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The green that ends the caution — "Green, green, green! Go, go, go!" or a shorter variant. Its own line rather than the race start's go line, and it cuts anything still playing.

Hear it: Harness → Flags → Caution → restart, with the race session and hot-lap presets — the last thing heard. In-sim: the green at a caution restart in a race.

Pools
caution/restart

pit-crew.flag-black

iRacing shows you the black flag on its own, in any session; when it comes together with a disqualification the disqualify line speaks instead.

Trigger
flag.black.raised
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A black flag has been issued — the driver has a penalty to serve within three laps.

Hear it: Harness → Flags → Black. In-sim: speed in the pit lane, or ignore a furled black flag; a race admin can also issue one (!black).

Pools
flags/black

pit-crew.flag-blue

A faster car is closing to lap you and iRacing shows you the blue flag, in any session; a blue shown together with the green at a start is ignored.

Trigger
flag.blue.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A faster car is about to lap the driver — asks for mirrors and a clean pass.

Hear it: Harness → Flags → Blue. In-sim: get shown the blue flag as a lapping car closes in.

Pools
flags/blue

pit-crew.flag-caution-waving

The full-course caution is shown waving to the field, in any session; a repeat inside thirty seconds stays silent.

Trigger
flag.caution-waving.raised
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The caution is out — one of three wordings, none of them promising the pace car, which the caution-pace-car-out line reports when it actually arrives. Repeats at most once per 30 seconds, and waits behind a line in progress rather than being dropped.

Hear it: Harness → Flags → Caution Waving; Harness → Flags → Caution → restart hears it first, with the follow line behind it. In-sim: the caution comes out in a race as the field bunches up.

Pools
flags/caution-waving

pit-crew.flag-checkered

You take the checkered flag: at your own crossing of the line in qualifying and a race (the flag flies for the field before that), or the moment the session ends in practice.

Trigger
flag.checkered.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The checkered flag — the session is over. The wording follows session.type (the well-done only after a race); an unknown session type takes the race line.

Hear it: Harness → Flags → Checkered, after choosing a session preset. In-sim: take the checkered flag at the end of any session.

Pools
flags/checkered-practice, flags/checkered-qualifying, flags/checkered-race
Cases
session.type → practice, qualifying, race

pit-crew.flag-crossed

The crossed flags come out at the halfway point of a race while you are live in the car; never in practice or qualifying, and never after the checkered.

Trigger
flag.crossed.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Crossed flags — the halfway point of the race. Race-only, while the driver is live in the car.

Hear it: Harness → Flags → Crossed, with the race session preset and the hot-lap telemetry preset. In-sim: reach the halfway point of an oval race.

Pools
flags/crossed

pit-crew.flag-debris

iRacing shows the debris flag for something lying on the track ahead, in any session; only the raise speaks, never the clear.

Trigger
flag.debris.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A debris flag — something is on the track ahead; asks the driver to be careful.

Hear it: Harness → Flags → Debris. In-sim: the debris flag after an incident leaves parts on the track.

Pools
flags/debris

pit-crew.flag-disqualify

iRacing disqualifies you and shows the disqualify flag — the incident limit, or a race admin — in any session; a black flag shown alongside it stays silent.

Trigger
flag.disqualify.raised
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The driver has been disqualified — pull off the track.

Hear it: Harness → Flags → Disqualify. In-sim: exceed the session's incident limit, or a race admin disqualifies you (!dq).

Pools
flags/disqualify

pit-crew.flag-dq-scoring-invalid

iRacing shows the flag that disqualifies you and invalidates your scoring at the same time, in any session.

Trigger
flag.dq-scoring-invalid.raised
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The driver has been disqualified and their scoring invalidated — DQ, scoring's off.

Hear it: Harness → Flags → DQ — Scoring Invalid. In-sim: a disqualification that also invalidates scoring (rare; the harness is the practical route).

Pools
flags/dq-scoring-invalid

pit-crew.flag-five-to-go

Five laps remain in a race and iRacing raises the five-to-go flag while you are live in the car; never after the checkered or outside a race.

Trigger
flag.five-to-go.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Five laps to go. Race-only, live in the car.

Hear it: Harness → Flags → Five to Go, with the race session preset and the hot-lap telemetry preset. In-sim: five laps remaining in an oval race.

Pools
flags/five-to-go

pit-crew.flag-furled

The furled black flag has stayed up on your car for a full second — a warning for time gained off track, not the half-second flicker of a brief excursion — in any session.

Trigger
flag.furled.raised
Re-checked at speak time
The furled black flag is still being shown when the call comes to speak; speaking it marks the warning as announced.
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The furled black flag — the driver gained time and must give it back.

Hear it: Harness → Flags → Furled. In-sim: cut a corner and gain time; the furled flag shows until the time is given back.

Pools
flags/furled

pit-crew.flag-furled-cleared

The furled black flag comes down off your car after it was called, in any session, with no black flag or disqualification taking its place at that moment.

Trigger
flag.furled.cleared
Re-checked at speak time
The announced furled flag is still down when the call comes to speak, with no black flag or disqualification in its place; speaking it consumes the announcement.
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The furled warning has been withdrawn after the driver gave the time back.

Hear it: Harness → Flags → Furled, then Harness → Flags → Furled Cleared. In-sim: give the time back after a furled black flag.

Pools
flags/furled-cleared

pit-crew.flag-green

The green flag comes out with no start signal from iRacing, as when a practice or qualifying session goes green; a race start and an oval caution restart carry that signal and stay silent here.

Trigger
flag.green.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The green flag, when iRacing shows it without its start signal — as at the start of a practice or qualifying session. A race start carries that signal and plays the start lights' go line instead; a caution restart carries it too and plays the caution restart line. The wording differs per session type (practice, qualifying, race), so it branches on session.type; an unknown session type takes the race line.

Hear it: Harness → Flags → Green, after choosing a session preset (practice, qualifying or race). In-sim: the green at the start of a practice or qualifying session. Not at a race start ("Go, go, go!") nor at a caution restart (its own "Green, green, green!").

Pools
flags/green-practice, flags/green-qualifying, flags/green-race
Cases
session.type → practice, qualifying, race

pit-crew.flag-green-held

iRacing holds the green seconds before a rolling start or restart goes green, often while the pace car is still on track, with you live in the car; never on a standing-start grid.

Trigger
flag.green-held.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The green is imminent — get ready to launch. The flag rises several seconds before the pace car leaves, so no line here says where the pace car is; caution/pace-car-off does that at its real exit. Rolling starts and restarts only; a standing-start grid is the start lights' business.

Hear it: Harness → Flags → Green Held, with the race session preset and the hot-lap telemetry preset. In-sim: the final pace lap of a rolling start or restart, several seconds before the pace car leaves the track.

Pools
flags/green-held

pit-crew.flag-one-pace-lap-to-go

The pace car crosses the start/finish line to complete the first pace lap of a two-lap rolling start while the green is still held, with you live in the car.

Trigger
flag.one-pace-lap-to-go.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: One more pace lap before the green on a rolling start — keep the spacing tidy and warm the tires. Race-only, live in the car.

Hear it: Harness → Flags → One Pace Lap to Go, with the race session preset and the hot-lap telemetry preset. In-sim: the second-to-last pace lap of a rolling start.

Pools
flags/one-pace-lap-to-go

pit-crew.flag-red

A red flag is thrown and the session is halted, in any session type.

Trigger
flag.red.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The red flag — the session is stopped; tells the driver to slow down and drive carefully back to the pits.

Hear it: Harness → Flags → Red. In-sim: a red flag in a hosted or league session.

Pools
flags/red

pit-crew.flag-ten-to-go

Ten laps remain in a race and iRacing raises the ten-to-go flag while you are live in the car; never after the checkered or outside a race.

Trigger
flag.ten-to-go.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Ten laps to go. Race-only, live in the car.

Hear it: Harness → Flags → Ten to Go, with the race session preset and the hot-lap telemetry preset. In-sim: ten laps remaining in an oval race.

Pools
flags/ten-to-go

pit-crew.flag-white

iRacing raises the white flag: in a race while the leader is still approaching the line for the final lap, in practice or qualifying as you begin your own last lap.

Trigger
flag.white.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The white flag — the leader's final lap in a race, or the last lap of a practice or qualifying session; the wording follows session.type, and an unknown session type takes the race line.

Hear it: Harness → Flags → White, after choosing a session preset. In-sim: the white flag comes out on the leader's final lap (race) or on your own last lap (practice, qualifying).

Pools
flags/white-practice, flags/white-qualifying, flags/white-race
Cases
session.type → practice, qualifying, race

pit-crew.flag-white-last-lap

You cross the start/finish line with the white flag flying in a race and begin your own final lap, once per white flag; a crossing that lands while the heads-up is still playing is skipped.

Trigger
flag.white-last-lap.raised
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The driver has crossed the line under the white flag and started their own last lap — give it everything. Race-only; stage two of the white-flag call.

Hear it: Harness → Flags → White — Last Lap Started, with the race session preset. In-sim: cross start/finish while the white flag flies in a race.

Pools
flags/white-last-lap

pit-crew.flag-white-leader

The overall race leader starts the final lap, judged from lap counting, while you are not the leader and have no white flag of your own yet; once per race.

Trigger
flag.white-leader.raised
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The overall leader has started their final lap while the driver is still some way behind — a heads-up that the race is about to end.

Hear it: Harness → Flags → Leader's final lap, with the race session preset. In-sim: in a race, let the leader take the white flag while you are a lap or more down.

Pools
flags/white-leader

pit-crew.flag-yellow-cleared

A LOCAL yellow has been withdrawn and every yellow and caution flag has stayed down for three seconds straight; a full-course episode stays silent, since its restart is already announced.

Trigger
flag.yellow.cleared
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A LOCAL yellow has been withdrawn — a short all-clear, replayed after a busier line finishes rather than dropped. It is spoken only for an episode that stayed local, because a local yellow ends with no flag shown at all and this line is the only way the driver learns the sector is clear. A full-course caution ends with a restart instead, and the restart has a line of its own (caution-restart), so no all-clear lands on top of it.

Hear it: Harness → Flags → Yellow Cleared plays the line on its own. In-sim: clear a local yellow sector. The other half of this line is the SILENCE after a caution — Harness → Flags → Caution → restart replays a full-course caution and restart captured at an oval through the translator; with the race session and hot-lap presets applied it must play the caution sequence through the green-held line and the restart's own "Green, green, green!", with no all-clear behind them.

Pools
flags/yellow-cleared

pit-crew.flag-yellow-full

iRacing shows you a standing (not waving) full-course caution, putting the whole field under yellow, in any session.

Trigger
flag.yellow.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A full-course yellow is out — tells the driver the pace car is being deployed and to close up safely.

Hear it: Harness → Flags → Yellow (full). In-sim: a full-course caution in an oval race (the pace car is deployed).

Pools
flags/yellow-full

pit-crew.flag-yellow-local

iRacing shows you a standing (not waving) local yellow for an incident in the sector ahead, in any session.

Trigger
flag.yellow.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A local yellow is shown for an incident ahead — one short warning to slow down and mind the stopped cars. A full-course yellow takes the flag-yellow-full line instead.

Hear it: Harness → Flags → Yellow (local). In-sim: drive up to a stopped or spun car in a local yellow sector.

Pools
flags/yellow-local

pit-crew.flag-yellow-waving

You enter the zone of a fresh incident and iRacing shows you the waving local yellow, in any session; a later pass through the same zone re-raises it, at most once per thirty seconds.

Trigger
flag.yellow-waving.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A waving yellow — a fresh incident right ahead, more urgent than the standing yellow. Repeats at most once per 30 seconds while the incident persists.

Hear it: Harness → Flags → Yellow Waving. In-sim: approach a sector where a car has just crashed or spun.

Pools
flags/yellow-waving

fuel

Callouts in the fuel family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.fuel-laps-left-1

Mid-lap in a race, live in the car, your fuel estimate first drops to one more full lap — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
100 (critical)
Scheduling
deferred and replayed when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: One lap of fuel left — critical: it cuts whatever is playing, because the next crossing is the box call.

Hear it: Harness → Scenario Shortcuts → Fuel → 1 lap of fuel left. In-sim: the estimate falls through one.

Pools
fuel/laps-left-1

pit-crew.fuel-laps-left-10

Mid-lap in a race, live in the car, your fuel estimate first drops to ten more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The tank is estimated to cover ten more laps — ordinary commentary, spoken once when the estimate first drops through ten. A fresher count replaces a stale one still playing.

Hear it: Harness → Scenario Shortcuts → Fuel → 10 laps of fuel left. In-sim: run a stint until the laps-of-fuel estimate falls through ten.

Pools
fuel/laps-left-10

pit-crew.fuel-laps-left-2

Mid-lap in a race, live in the car, your fuel estimate first drops to two more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Two laps of fuel left — the second warning, same weight as the flags.

Hear it: Harness → Scenario Shortcuts → Fuel → 2 laps of fuel left. In-sim: the estimate falls through two.

Pools
fuel/laps-left-2

pit-crew.fuel-laps-left-3

Mid-lap in a race, live in the car, your fuel estimate first drops to three more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
70 (safety)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Three laps of fuel left — a warning at the flags' weight, so it takes the bus from ordinary chatter and is replayed rather than dropped behind a flag.

Hear it: Harness → Scenario Shortcuts → Fuel → 3 laps of fuel left. In-sim: the estimate falls through three.

Pools
fuel/laps-left-3

pit-crew.fuel-laps-left-4

Mid-lap in a race, live in the car, your fuel estimate first drops to four more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Four laps of fuel left — the last of the ordinary-commentary counts before the warnings start.

Hear it: Harness → Scenario Shortcuts → Fuel → 4 laps of fuel left. In-sim: the estimate falls through four.

Pools
fuel/laps-left-4

pit-crew.fuel-laps-left-5

Mid-lap in a race, live in the car, your fuel estimate first drops to five more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Five laps of fuel left — ordinary commentary at the lap cadence.

Hear it: Harness → Scenario Shortcuts → Fuel → 5 laps of fuel left. In-sim: the estimate falls through five.

Pools
fuel/laps-left-5

pit-crew.fuel-laps-left-6

Mid-lap in a race, live in the car, your fuel estimate first drops to six more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Six laps of fuel left — ordinary commentary at the lap cadence.

Hear it: Harness → Scenario Shortcuts → Fuel → 6 laps of fuel left. In-sim: the estimate falls through six.

Pools
fuel/laps-left-6

pit-crew.fuel-laps-left-7

Mid-lap in a race, live in the car, your fuel estimate first drops to seven more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Seven laps of fuel left — ordinary commentary at the lap cadence.

Hear it: Harness → Scenario Shortcuts → Fuel → 7 laps of fuel left. In-sim: the estimate falls through seven.

Pools
fuel/laps-left-7

pit-crew.fuel-laps-left-8

Mid-lap in a race, live in the car, your fuel estimate first drops to eight more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Eight laps of fuel left — ordinary commentary at the lap cadence.

Hear it: Harness → Scenario Shortcuts → Fuel → 8 laps of fuel left. In-sim: the estimate falls through eight.

Pools
fuel/laps-left-8

pit-crew.fuel-laps-left-9

Mid-lap in a race, live in the car, your fuel estimate first drops to nine more full laps — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Nine laps of fuel left — ordinary commentary at the lap cadence.

Hear it: Harness → Scenario Shortcuts → Fuel → 9 laps of fuel left. In-sim: the estimate falls through nine.

Pools
fuel/laps-left-9

pit-crew.fuel-laps-left-box

Mid-lap in a race, live in the car, your fuel estimate first drops below one more full lap — once per stint, and never once the tank covers the rest of the race.

Trigger
fuel.lapsLeft.crossed
Default frame
radio
Weight
100 (critical)
Scheduling
deferred and replayed when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The tank will not cover another full lap — box this lap for fuel. Critical and interrupting: nothing in flight is worth more than this instruction.

Hear it: Harness → Scenario Shortcuts → Fuel → Box this lap. In-sim: keep running until the estimate falls below one lap.

Pools
fuel/laps-left-box

pit-crew.fuel-laps-left-race-covered

Inside the last ten laps of a race, live in the car, the mid-lap fuel estimate shows the tank covering the rest of the race with a full lap in hand — once per stint.

Trigger
fuel.lapsLeft.raceCovered
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Good news inside the last ten laps: the tank covers the rest of the race with a lap in hand. Spoken once per stint, at ordinary weight — good news never needs to cut anything.

Hear it: Harness → Scenario Shortcuts → Fuel → Enough fuel to finish. In-sim: with ten or fewer laps to go in a race, carry more fuel than the remaining distance needs.

Pools
fuel/race-covered

gap

Callouts in the gap family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.gap-threshold

The live gap to the car ahead or behind you in your class first drops under your alert threshold in a race, in a clean moment with no car alongside and no recent incident.

Trigger
gap.thresholdCrossed
Re-checked at speak time
No other gap callout has spoken inside the gap cooldown when this one comes to speak; speaking it starts that window.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The gap to a standings neighbor first dropped under the driver's alert threshold — we have caught the car ahead, or the car behind is right with us — then the live gap through the same gap-readout fragment. Shares the trend line's cooldown.

Hear it: Harness → Gaps → Caught the car ahead (threshold) or Car behind within threshold, with a live gap for the seconds clause. In-sim: close to within the configured gap threshold of the car ahead.

Variables
{{gap.decimal}}, {{gap.readoutIntro}}, {{gap.second}}, {{gap.thresholdLine}}
Fragments
@gap-readout

pit-crew.gap-trend

The gap to the car ahead or behind you in your class turns — closing fast enough to reach it within eight laps, or opening into a breakaway — in a race, with no car alongside and no recent incident.

Trigger
gap.trendChanged
Re-checked at speak time
No other gap callout has spoken inside the gap cooldown when this one comes to speak; speaking it starts that window.
Default frame
radio
Weight
10 (chatter)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The gap to a standings neighbor has turned: we are gaining on the car ahead, it is pulling away, the car behind is gaining, or we are dropping it. The line is chosen by side and direction; the live gap readout follows through the gap-readout fragment. Both gap lines share one cooldown (30 s by default), so a second one inside it stays silent.

Hear it: Harness → Gaps → Trend: closing on car ahead, Trend: car ahead pulling away, Trend: car behind gaining or Trend: dropping the car behind — the seconds clause needs a live gap, so drive the harness session with cars around you. In-sim: race with a car a few seconds ahead and close on it lap after lap.

Variables
{{gap.decimal}}, {{gap.line}}, {{gap.readoutIntro}}, {{gap.second}}
Fragments
@gap-readout

incident

Callouts in the incident family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.incident-collision-car

You collide heavily with another car in any session outside the pits — the worst outcome a crash sequence can reach, called once the sequence has settled.

Trigger
incident.occurred
Re-checked at speak time
The incident was reported no more than ten seconds before the call comes to speak.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A heavy collision with another car: the type line, then the points it cost as an optional whole clause — four on pavement, two on dirt, whatever the sim scored, and nothing for a count the voice cannot say.

Hear it: Harness → Incidents → Collision — Car (4x), Collision — Car (2x, dirt) or Collision — Car (escalated). In-sim: a hard collision with another car.

Pools
incidents/collision-car
Variables
{{incident.points}}

pit-crew.incident-collision-world

You hit a wall or a trackside object hard enough for iRacing to score it as a collision, in any session outside the pits, with no car collision following within a second or two.

Trigger
incident.occurred
Re-checked at speak time
The incident was reported no more than ten seconds before the call comes to speak.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A hard hit on the wall or scenery: the type line, then the points it cost as an optional whole clause.

Hear it: Harness → Incidents → Collision — Wall (2x). In-sim: hit a wall hard.

Pools
incidents/collision-world
Variables
{{incident.points}}

pit-crew.incident-contact-car

You make light contact with another car in any session outside the pits, with no heavier collision following within a second or two.

Trigger
incident.occurred
Re-checked at speak time
The incident was reported no more than ten seconds before the call comes to speak.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Light contact with another car: the type line, then the points it cost as an optional whole clause — nothing when the rub cost none.

Hear it: Harness → Incidents → Contact — Car (0x). In-sim: rub doors with another car.

Pools
incidents/contact-car
Variables
{{incident.points}}

pit-crew.incident-contact-world

You brush a wall or a trackside object lightly in any session outside the pits, with no harder hit following within a second or two.

Trigger
incident.occurred
Re-checked at speak time
The incident was reported no more than ten seconds before the call comes to speak.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Light contact with the wall or scenery: the type line, then the points it cost as a separate clause. The count is optional because it is a whole sentence of its own — a light touch worth no points, or a count the voice has no clip for, leaves the type line standing on its own.

Hear it: Harness → Incidents → Contact — Wall (0x) (the type line alone) or Collision — Wall (2x) for a count. In-sim: brush a wall lightly.

Pools
incidents/contact-world
Variables
{{incident.points}}

pit-crew.incident-off-track

You run all four wheels off the track in any session outside the pits, and nothing worse follows within a second or two; on a timed qualifying lap the lap-invalidated line speaks instead.

Trigger
incident.occurred
Re-checked at speak time
The incident was reported no more than ten seconds before the call comes to speak.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The driver ran off track — a short coaching line about track limits, with no point count (the type has none worth stating). A faster, worse incident in the same crash replaces this line mid-sentence.

Hear it: Harness → Incidents → Off Track (1x). In-sim: put four wheels off in any session.

Pools
incidents/off-track

pit-crew.incident-out-of-control

You lose control of the car — a spin — in any session outside the pits, and nothing worse follows within a second or two.

Trigger
incident.occurred
Re-checked at speak time
The incident was reported no more than ten seconds before the call comes to speak.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The driver lost control of the car (a spin) — a calm-down line, no point count.

Hear it: Harness → Incidents → Out of Control (2x). In-sim: spin the car.

Pools
incidents/out-of-control

lap-time

Callouts in the lap-time family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.lap-time-best

You cross the line with a new session-best lap, or your first valid lap of the session — except on the final lap of a race (race-end speaks) or under a caution (a pace lap is not a lap time).

Trigger
lap.completed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A new session-best lap, or the driver's first valid lap: the intro (best-lap-yet or first-good-lap), then the time as minute, seconds and tenths. The minute is a hard if here — a terse pack may write it as optional, since the assumed minute is understood, but only where that minute is 1; every other component is required, because a time missing its seconds is not a time.

Hear it: Harness → Scenario Shortcuts → Lap Time → Best Lap 1:03.4 (Best Lap 0:34.8 for a lap without the minute, First Valid Lap 2:07.0 for the other intro). In-sim: set a personal best in any session, or complete the first clean lap of a session.

Variables
{{lapTime.decimal}}, {{lapTime.intro}}, {{lapTime.minute}}, {{lapTime.second}}
Conditions
lapTime.hasMinuteComponent

limiter

Callouts in the limiter family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.limiter-dropped

You switch the pit limiter off while still between the pit cones and moving at more than a crawl, in a car that has one.

Trigger
limiter.dropped
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
pit-crew — a bare clip path resolves under pit-crew/ from the audio root

Says: The limiter was switched off while the car is still between the pit cones — turn it back on.

Hear it: Harness → Pit Limiter → Limiter dropped. In-sim: on a car with a pit limiter, disengage it while still on pit road.

Pools
pit-limiter/dropped

pit-crew.limiter-missing

You drive onto pit road, or pull away from your stall, with the pit limiter off, and it is still off two and a half seconds later, in a car that has one.

Trigger
limiter.missing
Re-checked at speak time
The pit limiter is still off on pit road when the warning comes to speak, in a car that has one.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
pit-crew — a bare clip path resolves under pit-crew/ from the audio root

Says: The car is on pit road without its limiter engaged, a couple of seconds after the pit-entry reminder went unheeded — an escalation, not a duplicate.

Hear it: Harness → Pit Limiter → Limiter off on pit road (fires about 2.5 s later). In-sim: on a car with a pit limiter, enter pit road without engaging it and keep it off.

Pools
pit-limiter/missing

pit-crew.limiter-on-track

About a second and a half after you leave pit road, the pit limiter is still switched on, in a car that has one.

Trigger
pitLane.exited
Re-checked at speak time
The pit limiter is still engaged out on the track when the warning comes to speak, in a car that has one.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
pit-crew — a bare clip path resolves under pit-crew/ from the audio root

Says: The pit limiter is still on about a second and a half after the car left pit road — the driver forgot to switch it off.

Hear it: Harness → Pit Limiter → Limiter on out on track (fires about 1.5 s later). In-sim: on a car with a pit limiter, leave pit road with the limiter still engaged.

Pools
pit-limiter/on-track

pit-crew.limiter-speeding

You go over the pit speed limit on pit road in a car that has a pit limiter, no more than once every five seconds.

Trigger
limiter.speeding
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
pit-crew — a bare clip path resolves under pit-crew/ from the audio root

Says: The car is over the pit speed limit on a car that has a limiter — the fix is to press the button, which is why this line is separate from the no-limiter one.

Hear it: Harness → Pit Limiter → Speeding (limiter car). In-sim: on a car with a pit limiter, exceed the pit speed limit on pit road.

Pools
pit-limiter/speeding

pit-crew.no-limiter-entry

You head into the pit lane in a car that has no pit limiter.

Trigger
pitLane.approaching
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
pit-crew — a bare clip path resolves under pit-crew/ from the audio root

Says: Pit entry on a car with no limiter: a reminder to mind the limit, then the limit itself — intro, number, unit — as one optional clause. The number is the whole point of the clause and a fragment of its sentence, so a limit the voice has no clip for drops the clause entirely rather than speaking the intro into silence; the reminder still stands alone as a complete sentence.

Hear it: Harness → No Pit Limiter → Pit entry reminder, after Harness → Session Start → Fire Session Start with the Pit speed limit set (the limit clause reads that snapshot; without one only the reminder plays). In-sim: on a car without a pit limiter, enter pit road.

Pools
pit-limiter/entry
Variables
{{pitSpeed.limitIntro}}, {{pitSpeed.limitNumber}}, {{pitSpeed.limitUnit}}

pit-crew.no-limiter-speeding

You go over the pit speed limit on pit road in a car that has no pit limiter, no more than once every five seconds.

Trigger
limiter.speeding
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
pit-crew — a bare clip path resolves under pit-crew/ from the audio root

Says: Over the pit speed limit on a car that has NO pit limiter — the fix is to lift, so this line must never mention a limiter. The mirror of limiter-speeding; exactly one of the two speaks to any car.

Hear it: Harness → No Pit Limiter → Speeding (no limiter). In-sim: on a car without a pit limiter, exceed the pit speed limit on pit road.

Pools
pit-limiter/no-limiter-speeding

overtake

Callouts in the overtake family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.overtake-gained

You gain a place in a race and hold it a few seconds in a clean moment — always for a podium place, about one in three otherwise, and in a single-class race never when the car ahead simply retired.

Trigger
overtake.completed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The reaction to a gained overtake, one line chosen by what the pass earned: the lead (overall, or in class in a multi-class race), second or third place — each of those states the position itself, so no readout follows — or the plain "Nice pass" for anything else, which the separate position readout then completes. A podium pass always reacts; any other pass reacts about one time in three, and a place gained because a car ahead retired never does.

Hear it: Harness → Overtakes → Gained — now P5 (nice pass), Gained the lead (P2 → P1), Gained — multi-class (class P3 → P2), Gained — P3 → P2 (podium line), Gained — P4 → P3 (podium line); Gained — retirement (readout only) stays silent here. In-sim: pass a car cleanly in a race.

Pools
position-overtake/nice-pass, position-overtake/nice-pass-leader, position-overtake/nice-pass-leader-class, position-overtake/nice-pass-p2, position-overtake/nice-pass-p2-class, position-overtake/nice-pass-p3, position-overtake/nice-pass-p3-class
Cases
overtake.gainedReaction → leader, leader-class, other, p2, p2-class, p3, p3-class

pit-crew.overtake-lost

You lose a place in a race and the drop holds for a few seconds in a clean moment — always when it costs you a podium place, about one time in three otherwise.

Trigger
overtake.lost
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The reaction to a lost place: "Come on, <name>." in the driver's chosen name, then "Don't give up positions like that." The opener is a complete sentence of its own and is optional — a voice without a clip for the chosen name skips it and the line still plays. A lost podium place always reacts; any other loss about one time in three.

Hear it: Harness → Overtakes → Lost — now P5. In-sim: get passed in a race.

Pools
position-overtake/dont-give-up-positions
Variables
{{overtake.lost.comeOn}}

pit-box

Callouts in the pit-box family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.pit-box-five

On pit road heading for your own box, you close to 120 meters from it.

Trigger
pitBox.countdown
Default frame
none — plays unframed
Weight
30
Scheduling
dropped when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The pit-box count-in, 120 m out — the first of six marks spoken about a second apart on the approach to the driver's own box. Terse by design: the engine puts no radio frame around any mark, and a mark that cannot take the bus is dropped rather than replayed late.

Hear it: Harness → Pit Box → Five (120 m). In-sim: drive down pit road toward your own stall; the marks fire at 120, 100, 80, 60, 40 and 20 m.

Pools
pit-box/five

pit-crew.pit-box-four

On pit road heading for your own box, you close to 100 meters from it.

Trigger
pitBox.countdown
Default frame
none — plays unframed
Weight
30
Scheduling
dropped when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The count-in's second mark, 100 m out.

Hear it: Harness → Pit Box → Four (100 m). In-sim: as for the five mark, 100 m from the stall.

Pools
pit-box/four

pit-crew.pit-box-one

On pit road heading for your own box, you close to 40 meters from it.

Trigger
pitBox.countdown
Default frame
none — plays unframed
Weight
30
Scheduling
dropped when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The count-in's fifth mark, 40 m out.

Hear it: Harness → Pit Box → One (40 m). In-sim: as for the five mark, 40 m from the stall.

Pools
pit-box/one

pit-crew.pit-box-pit-now

On pit road heading for your own box, you close to 20 meters from it.

Trigger
pitBox.countdown
Default frame
none — plays unframed
Weight
30
Scheduling
dropped when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The last mark, 20 m out — the cue to stop in the box.

Hear it: Harness → Pit Box → Pit now (20 m). In-sim: as for the five mark, 20 m from the stall.

Pools
pit-box/pit-now

pit-crew.pit-box-three

On pit road heading for your own box, you close to 80 meters from it.

Trigger
pitBox.countdown
Default frame
none — plays unframed
Weight
30
Scheduling
dropped when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The count-in's third mark, 80 m out.

Hear it: Harness → Pit Box → Three (80 m). In-sim: as for the five mark, 80 m from the stall.

Pools
pit-box/three

pit-crew.pit-box-two

On pit road heading for your own box, you close to 60 meters from it.

Trigger
pitBox.countdown
Default frame
none — plays unframed
Weight
30
Scheduling
dropped when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The count-in's fourth mark, 60 m out.

Hear it: Harness → Pit Box → Two (60 m). In-sim: as for the five mark, 60 m from the stall.

Pools
pit-box/two

pit-readback

Callouts in the pit-readback family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.pit-readback-entry

You reach the pit-lane approach zone under your own power, change the queued service while still on pit road, or have been in the pre-start formation for about five seconds.

Trigger
pitService.readbackRequested
Default frame
radio
Weight
10 (chatter)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Reads back the queued pit service as the car enters the pit lane, and again — without the opener — after the driver changes the queue while still on pit road. A limiter reminder leads on the initial entry when the car has one and it is off; nothing queued collapses the whole recap to the empty-fallback line.

Hear it: Harness → Pit Service Readback → Fire Readback, with Reason set to entry (entry-refire for the mid-lane replay) after setting a service snapshot with the Fuel Queued, Tires LF/RF/LR/RR (or the All / Fronts / Rears / Lefts / Rights / None presets), Compound, Fast Repair Queued / Available and Windshield Queued controls; leave Limiter Engaged unchecked for the pre-opener, and set damage on the Engine Warnings panel for the fast-repair slot. In-sim: queue fuel and two tires, then enter the pit lane.

Pools
pit-readback/compound-dry, pit-readback/compound-wet, pit-readback/empty-fallback, pit-readback/fast-repair-off, pit-readback/fast-repair-on, pit-readback/fuel-off, pit-readback/fuel-on, pit-readback/opener-entry, pit-readback/opener-entry-limiter, pit-readback/tires-all, pit-readback/tires-fronts, pit-readback/tires-lefts, pit-readback/tires-lf, pit-readback/tires-lf-rr, pit-readback/tires-lr, pit-readback/tires-off, pit-readback/tires-rears, pit-readback/tires-rf, pit-readback/tires-rf-lr, pit-readback/tires-rights, pit-readback/tires-rr, pit-readback/tires-skip-lf, pit-readback/tires-skip-lr, pit-readback/tires-skip-rf, pit-readback/tires-skip-rr, pit-readback/windshield-on
Conditions
readback.fastRepairQueued, readback.fastRepairSkipped, readback.fuelQueued, readback.hasAnyService, readback.isFirstEntry, readback.limiterReminderDue, readback.windshieldQueued
Cases
readback.tirePattern → all, compound-dry, compound-wet, fronts, lefts, lf, lf-rr, lr, none, rears, rf, rf-lr, rights, rr, skip-lf, skip-lr, skip-rf, skip-rr
Fragments
@readback-body

pit-crew.pit-readback-exit

You leave pit road and stay out for about four and a half seconds without turning back in.

Trigger
pitService.readbackRequested
Default frame
radio
Weight
10 (chatter)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Confirms the queued pit service a few seconds after the car leaves the pit lane — the same recap under a "to confirm" opener, which stays even when nothing is queued so the empty-fallback line still reads as a confirmation.

Hear it: Harness → Pit Service Readback → Fire Readback, with Reason set to exit after setting a service snapshot with the same controls. In-sim: queue a service, drive through the pits and out; the confirmation follows the pit-lane exit.

Pools
pit-readback/compound-dry, pit-readback/compound-wet, pit-readback/empty-fallback, pit-readback/fast-repair-off, pit-readback/fast-repair-on, pit-readback/fuel-off, pit-readback/fuel-on, pit-readback/opener-exit, pit-readback/tires-all, pit-readback/tires-fronts, pit-readback/tires-lefts, pit-readback/tires-lf, pit-readback/tires-lf-rr, pit-readback/tires-lr, pit-readback/tires-off, pit-readback/tires-rears, pit-readback/tires-rf, pit-readback/tires-rf-lr, pit-readback/tires-rights, pit-readback/tires-rr, pit-readback/tires-skip-lf, pit-readback/tires-skip-lr, pit-readback/tires-skip-rf, pit-readback/tires-skip-rr, pit-readback/windshield-on
Conditions
readback.fastRepairQueued, readback.fastRepairSkipped, readback.fuelQueued, readback.hasAnyService, readback.windshieldQueued
Cases
readback.tirePattern → all, compound-dry, compound-wet, fronts, lefts, lf, lf-rr, lr, none, rears, rf, rf-lr, rights, rr, skip-lf, skip-lr, skip-rf, skip-rr
Fragments
@readback-body

pit-service.fast-repair

Callouts in the pit-service.fast-repair family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.toggle-fast-repair-off

You take the fast repair off your next pit stop.

Trigger
pitService.toggled
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The fast repair removed from the next stop.

Hear it: Harness → Pit Service → Fast Repair OFF, outside the pit-action cooldown. In-sim: clear the fast-repair toggle in the pit black box.

Pools
pit-actions/acknowledgment, pit-actions/fast-repair-off

pit-crew.toggle-fast-repair-on

You add a fast repair to your next pit stop.

Trigger
pitService.toggled
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A fast repair queued for the next stop.

Hear it: Harness → Pit Service → Fast Repair ON, outside the pit-action cooldown. In-sim: press the fast-repair toggle in the pit black box.

Pools
pit-actions/acknowledgment, pit-actions/fast-repair-on

pit-service.fuel

Callouts in the pit-service.fuel family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.auto-fuel-off-no-refuel

iRacing's autofuel is switched off for your next pit stop with no fuel request left standing, so nothing goes in.

Trigger
pitService.autoFuelSwitched
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Autofuel was switched off with no fuel request left behind, so nothing goes in at the next stop. The bare line, no acknowledgment, as for the three siblings.

Hear it: Harness → Pit Service → Autofuel OFF, no fuel, outside the pit-action cooldown. In-sim: with no fuel queued, switch autofuel off in the pit black box.

Pools
pit-actions/auto-fuel-off-no-refuel

pit-crew.auto-fuel-off-refuel

iRacing's autofuel is switched off for your next pit stop and the fuel request it had set is left standing, so the stop still takes fuel.

Trigger
pitService.autoFuelSwitched
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Autofuel was switched off and the fuel request it had set is still standing, so the stop still takes fuel — the case that is easy to miss, since switching autofuel off looks like cancelling the fueling and does not. The bare line, no acknowledgment, as for the three siblings.

Hear it: Harness → Pit Service → Autofuel OFF, still refueling, outside the pit-action cooldown. In-sim: with autofuel on and fueling, switch autofuel off — the ordinary fuel request stays set.

Pools
pit-actions/auto-fuel-off-refuel

pit-crew.auto-fuel-on-no-refuel

iRacing's autofuel is switched on for your next pit stop, with the fuel request left clear — switching it on can wipe one you had queued.

Trigger
pitService.autoFuelSwitched
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Autofuel was switched on and the fuel request is left clear — switching it on can wipe one the driver had queued, which is what the sim did on the pit approach in the #474 capture. The bare line, no acknowledgment, as for the three siblings.

Hear it: Harness → Pit Service → Autofuel ON, no fuel, outside the pit-action cooldown; Harness → Pit Service → Autofuel takeover (replay) drives the captured pit-approach moment through the translator. In-sim: switch autofuel on in the pit black box; this is the line when the request is left clear.

Pools
pit-actions/auto-fuel-on-no-refuel

pit-crew.auto-fuel-on-refuel

iRacing's autofuel is switched on for your next pit stop, with the fuel request left set, so the stop takes fuel.

Trigger
pitService.autoFuelSwitched
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Autofuel was switched on and the fuel request is left set, so the line says both — autofuel is on, and we are refueling. The bare line, with no acknowledgment in front: the missing "Got it." is what marks an autofuel change rather than a request the engineer is answering. A fuel-bit flip while autofuel is armed says nothing at all, so these four lines are the only fuel news in that window. It shares the manual fuel toggle's family, so a newer fuel line replaces it rather than stacking behind it, and like the toggle confirmations it stays silent for a few seconds after leaving the pit lane.

Hear it: Harness → Pit Service → Autofuel ON, refueling, outside the pit-action cooldown. In-sim: switch autofuel on in the pit black box; this is the line when the fuel request is left set.

Pools
pit-actions/auto-fuel-on-refuel

pit-crew.toggle-fuel-off

You take fuel off the service for your next pit stop.

Trigger
pitService.toggled
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The driver removed fuel from the next stop — acknowledgment, then the confirmation.

Hear it: Harness → Pit Service → Fuel OFF, outside the pit-action cooldown. In-sim: clear the fuel toggle in the pit black box.

Pools
pit-actions/acknowledgment, pit-actions/fuel-off

pit-crew.toggle-fuel-on

You add fuel to the service for your next pit stop.

Trigger
pitService.toggled
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The driver queued fuel for the next stop — a short acknowledgment (got it / roger that / copy that) then the confirmation, the shape every toggle confirmation in this family shares. The acknowledgment is pit-actions/acknowledgment, a different pool from the generic acknowledgment/acknowledgment: a smaller set tuned for this register, with its own no-repeat tracker by virtue of being a different group and base, so no named pool is needed for the two to stay independent. Silent for a few seconds after leaving the pit lane, when the sim resets the queue on its own.

Hear it: Harness → Pit Service → Fuel ON, not within about 4.5 s of Exited Pit Lane (the pit-action cooldown). In-sim: press the fuel toggle in the pit black box, or on a Fuel Service key.

Pools
pit-actions/acknowledgment, pit-actions/fuel-on

pit-service.windshield

Callouts in the pit-service.windshield family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.toggle-windshield-off

You take the windshield clean off your next pit stop.

Trigger
pitService.toggled
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The windshield clean removed from the next stop.

Hear it: Harness → Pit Service → Windshield OFF, outside the pit-action cooldown. In-sim: clear the windshield toggle in the pit black box.

Pools
pit-actions/acknowledgment, pit-actions/windshield-off

pit-crew.toggle-windshield-on

You add a windshield clean to your next pit stop.

Trigger
pitService.toggled
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A windshield clean queued for the next stop.

Hear it: Harness → Pit Service → Windshield ON, outside the pit-action cooldown. In-sim: press the windshield toggle in the pit black box.

Pools
pit-actions/acknowledgment, pit-actions/windshield-on

pit-status

Callouts in the pit-status family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.pit-status-bad-angle

You stop across your box at an angle the crew cannot work at.

Trigger
pitService.statusChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car is parked at an angle the crew cannot work at — the first, full correction.

Hear it: Harness → Pit Status → Bad Angle. In-sim: stop in the box with the car turned across it.

Pools
pit-status/bad-angle

pit-crew.pit-status-cant-fix-that

You stop in your pit box with damage the crew cannot repair.

Trigger
pitService.statusChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The crew cannot repair the damage this stop — the car is done.

Hear it: Harness → Pit Status → Can't Fix That. In-sim: pit with damage beyond what a pit stop can repair.

Pools
pit-status/cant-fix-that

pit-crew.pit-status-complete

The crew completes every queued service on your car in the pit box.

Trigger
pitService.statusChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The service is finished and the car is ready to leave the box.

Hear it: Harness → Pit Status → Complete. In-sim: wait out the queued service in the box; the line plays as the crew finishes.

Pools
pit-status/complete

pit-crew.pit-status-in-progress

You are stopped in your pit box and the crew begins working on the car.

Trigger
pitService.statusChanged
Re-checked at speak time
The crew is still working on the car a quarter-second after the stop began, or telemetry is unavailable.
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The crew has started working on the car. One of eight pit-status lines, each spoken once when iRacing's pit-service status changes to it; a newer status replaces the one still playing.

Hear it: Harness → Pit Status → In Progress. In-sim: stop in the box with a service queued; the line plays as the crew starts.

Pools
pit-status/in-progress

pit-crew.pit-status-nothing-to-do

You stop in your pit box with no service queued, so the crew has nothing to do and you can leave.

Trigger
pitService.stopEmpty
Re-checked at speak time
The car is still in its pit box with no service under way, or telemetry is unavailable.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car stopped in the box with no service queued, so iRacing never reports the stop complete; this releases the driver. Reuses the Complete clips.

Hear it: Harness → Pit Status → Nothing To Do (empty stop). In-sim: untick every pit service, stop in the box; the line plays with no "Pit stop in progress." before it.

Pools
pit-status/complete

pit-crew.pit-status-too-far-back

You stop short of your box marks, too far back for the crew to work on the car.

Trigger
pitService.statusChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car stopped short of the box — the first, full correction.

Hear it: Harness → Pit Status → Too Far Back. In-sim: stop before your box marks.

Pools
pit-status/too-far-back

pit-crew.pit-status-too-far-forward

You overshoot your box marks and stop too far forward for the crew to work on the car.

Trigger
pitService.statusChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car overshot the box — the first, full correction.

Hear it: Harness → Pit Status → Too Far Forward. In-sim: stop past your box marks.

Pools
pit-status/too-far-forward

pit-crew.pit-status-too-far-left

You stop in the pit lane too far left of your box for the crew to work on the car.

Trigger
pitService.statusChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car stopped too far left of the box for the crew to work — the first, full correction; the terse repeat nag takes over while the error persists.

Hear it: Harness → Pit Status → Too Far Left. In-sim: stop in the pit lane left of your box marks.

Pools
pit-status/too-far-left

pit-crew.pit-status-too-far-right

You stop in the pit lane too far right of your box for the crew to work on the car.

Trigger
pitService.statusChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car stopped too far right of the box — the first, full correction.

Hear it: Harness → Pit Status → Too Far Right. In-sim: stop in the pit lane right of your box marks.

Pools
pit-status/too-far-right

pit-status-repeat

Callouts in the pit-status-repeat family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.pit-status-bad-angle-repeat

You stay parked across your box at a bad angle after the first correction, about every two seconds while the car is at rest.

Trigger
pitService.positioningRepeat
Re-checked at speak time
The car is still at a bad angle in the pit box when the nag comes to speak, or telemetry is unavailable.
Default frame
none — plays unframed
Weight
40
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The repeat nag for a bad angle, as for too far left.

Hear it: Harness → Pit Status → Still Bad Angle, after Bad Angle. In-sim: park across the box and stay put.

Pools
pit-status/bad-angle-repeat

pit-crew.pit-status-too-far-back-repeat

You stay parked short of your box marks after the first correction, about every two seconds while the car is at rest.

Trigger
pitService.positioningRepeat
Re-checked at speak time
The car is still too far back in the pit box when the nag comes to speak, or telemetry is unavailable.
Default frame
none — plays unframed
Weight
40
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The repeat nag for too far back, as for too far left.

Hear it: Harness → Pit Status → Still Too Far Back, after Too Far Back. In-sim: stop short of the box and stay put.

Pools
pit-status/too-far-back-repeat

pit-crew.pit-status-too-far-forward-repeat

You stay parked past your box marks after the first correction, about every two seconds while the car is at rest.

Trigger
pitService.positioningRepeat
Re-checked at speak time
The car is still too far forward in the pit box when the nag comes to speak, or telemetry is unavailable.
Default frame
none — plays unframed
Weight
40
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The repeat nag for too far forward, as for too far left.

Hear it: Harness → Pit Status → Still Too Far Forward, after Too Far Forward. In-sim: overshoot the box and stay put.

Pools
pit-status/too-far-forward-repeat

pit-crew.pit-status-too-far-left-repeat

You stay parked too far left of your box after the first correction, about every two seconds while the car is at rest.

Trigger
pitService.positioningRepeat
Re-checked at speak time
The car is still too far left in the pit box when the nag comes to speak, or telemetry is unavailable.
Default frame
none — plays unframed
Weight
40
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The terse nag that repeats every couple of seconds while the car sits too far left after the full correction.

Hear it: Harness → Pit Status → Still Too Far Left, after Too Far Left. In-sim: stop left of the box and stay put; the nag repeats about every two seconds.

Pools
pit-status/too-far-left-repeat

pit-crew.pit-status-too-far-right-repeat

You stay parked too far right of your box after the first correction, about every two seconds while the car is at rest.

Trigger
pitService.positioningRepeat
Re-checked at speak time
The car is still too far right in the pit box when the nag comes to speak, or telemetry is unavailable.
Default frame
none — plays unframed
Weight
40
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The repeat nag for too far right, as for too far left.

Hear it: Harness → Pit Status → Still Too Far Right, after Too Far Right. In-sim: stop right of the box and stay put.

Pools
pit-status/too-far-right-repeat

pit-window

Callouts in the pit-window family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.pit-window-closed

Pit road switches from open to closed while you are in a race session.

Trigger
pitsOpen.changed
Default frame
radio
Weight
65
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Pit road has closed for the driver — the counterpart line. A rapid open/closed flurry replaces the stale in-flight line rather than stacking both.

Hear it: Harness → Pit Window → Pits closed. In-sim: the pits close in a race — when the caution comes out on an oval, or in the final laps.

Pools
pit-window/closed

pit-crew.pit-window-opened

Pit road switches from closed to open while you are in a race session.

Trigger
pitsOpen.changed
Default frame
radio
Weight
65
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Pit road has opened for the driver — one line, above ordinary chatter but below a flag, replayed after a busier line finishes rather than dropped because the window matters to strategy.

Hear it: Harness → Pit Window → Pits opened. In-sim: the pits open in a race — after the field takes the green, or when a caution's pit window opens.

Pools
pit-window/opened

position

Callouts in the position family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.position-change

You finish a qualifying or race lap in a new position, a held place on a non-best qualifying lap, or your first timed lap — not under a caution, and at most once per twenty seconds in a race.

Trigger
lap.completed
Re-checked at speak time
In a race, no other position readout has spoken in the last twenty seconds when this one comes to speak; speaking it starts that window.
Default frame
radio
Weight
10 (chatter)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The driver's position after a completed lap, in one of three shapes: an invalidated qualifying lap says "That lap didn't count", then "We're currently" and the position; a lap that put the driver on pole says the pole line alone; every other lap says the intro ("That puts us to" for a gain in qualifying, "We're currently" otherwise, and always in a race) and the position, read live in a race. Practice stays silent, and a race hold is left to the race-status update.

Hear it: Harness → Position → Improved 5 → 3, Worsened 3 → 5, First Valid Lap P1, Qualifying P1 (pole), Holding P1 (qualifying, slow lap), Unchanged P5 (non-PB lap) or the Invalid lap, … buttons (all qualifying). The race branch is mute in the harness (no live position) — In-sim: complete a race lap having gained or lost a place.

Pools
position-intro-worse/currently, position-invalid-lap/that-lap-didnt-count
Variables
{{position.intro}}, {{position.number}}, {{position.pole}}
Cases
position.readoutShape → invalid-lap, pole, standard

position-readout

Callouts in the position-readout family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.overtake-gained-position

You gain a place below the podium (a podium gain has its own reaction line) in a running race and hold it a few seconds in a clean moment, with no other position readout in the last twenty seconds.

Trigger
overtake.completed
Re-checked at speak time
No other position readout has spoken in the last twenty seconds when this one comes to speak; speaking it starts that window.
Default frame
radio
Weight
10 (chatter)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The position readout after a gained overtake — "We're currently", then the live position — played once the reaction line has finished. It is skipped for a podium gain, whose reaction line already states the place, and never doubles a position announced by another line in the last 20 seconds. The lead-in is an optional clause: a second readout within 30 seconds that moved at most one place says the bare number ("P four"), which is a complete, true statement on its own; a script that always wants the lead-in drops the optional.

Hear it: Harness: mute — the Overtakes buttons fire the reaction but the harness has no live position, so this readout has nothing to say there. In-sim: pass a car in a race outside the top three; the reaction (when it rolls) is followed by the current position, and a second pass within half a minute reads the bare number.

Variables
{{positionReadout.intro}}, {{positionReadout.number}}

pit-crew.overtake-lost-position

You lose a place in a running race and the drop holds a few seconds, with no car alongside, not on pit road, no incident in the last ten seconds and no other position readout in the last twenty.

Trigger
overtake.lost
Re-checked at speak time
No other position readout has spoken in the last twenty seconds when this one comes to speak; speaking it starts that window.
Default frame
radio
Weight
10 (chatter)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The position readout after a lost place — the same lead-in and live number as the gained readout, under the same 20-second no-double rule and the same optional lead-in.

Hear it: Harness: mute — the Overtakes → Lost — now P5 button fires the reaction but the harness has no live position for this readout. In-sim: get passed in a race; the come-on line (when it rolls) is followed by the current position.

Variables
{{positionReadout.intro}}, {{positionReadout.number}}

qualifying-invalidation

Callouts in the qualifying-invalidation family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.qualifying-invalidation-lap-invalidated

You pick up an incident on a counted flying lap of a qualifying session, at the first incident of that lap.

Trigger
incident.scored
Re-checked at speak time
This is still the first incident of the flying lap, and you are still on that lap, when the call comes to speak; speaking it latches the lap.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
none — a bare clip path resolves from the audio root

Says: An incident on a counted qualifying lap: the invalidated line always, then — only in lap-limited qualifying, where a count means something — a tail for how many counted laps remain: out of laps, one to five by count (each a whole sentence with its own encouragement), or plenty above five. The tail is a whole clause, so an if with no else is right for it; a count the case has no key for says nothing. One callout per lap however many incidents; silent on out-laps and beyond the counted attempts.

Hear it: Harness → Scenario Shortcuts → Qualifying Invalidation → Off-Track — 3 laps left (Contact-Car — 1 lap left, Off-Track — out of laps, Off-Track — plenty of laps, Off-Track — time-limited for the other tails; the four (silent) buttons and Same Lap Again (latch) for the suppressions). In-sim: go off track on a flying lap of a lap-limited qualifying session.

Pools
qualifying-invalidation/1-lap-left, qualifying-invalidation/2-laps-left, qualifying-invalidation/3-laps-left, qualifying-invalidation/4-laps-left, qualifying-invalidation/5-laps-left, qualifying-invalidation/invalidated, qualifying-invalidation/out-of-laps, qualifying-invalidation/plenty-of-laps
Conditions
qualifying.tailIsSpeakable
Cases
qualifying.lapsLeft → 1, 2, 3, 4, 5, out-of-laps, plenty

race-end

Callouts in the race-end family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.race-end

You take the checkered flag and cross the line in a race, and your final position (your class position in a multi-class race) is known.

Trigger
race.finished
Default frame
radio
Weight
10 (chatter)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The final result as the driver crosses the line after the checkered: the driver's name, then one line per result — we won, second place, the podium in third, or the race-is-over line with the position number for fourth or worse. The greeting is optional because names are a union across voices and the result reads whole without it; the position number is part of the last line and stays required. Deferred behind a same-lap best-lap readout rather than cutting it — the race is over either way.

Hear it: Harness → Scenario Shortcuts → Race → Race over — P1 (we won!), or Race over — P2 (second place), Race over — P3 (podium) and Race over — P9 (mid-pack) for the other branches, Race over — multi-class P15 / class P1 for a class win. In-sim: take the checkered flag in a race and cross the line.

Variables
{{raceEnd.greeting}}, {{raceEnd.podiumThird}}, {{raceEnd.position}}, {{raceEnd.raceOverResultIs}}, {{raceEnd.secondPlace}}, {{raceEnd.weWon}}
Cases
raceEnd.result → other, second, third, won

race-start

Callouts in the race-start family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.race-start

A race session begins and iRacing reports the track conditions, or ten seconds pass — a restart on the pre-green grid included, but not when iRaceDeck connects to a race already under way.

Trigger
session.changed
Re-checked at speak time
The session the brief was raised for is still the one running, or telemetry is unavailable.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The grid brief a few seconds into a race session: the driver's name, the starting position (from pole, or qualifying put us to P N), the track and air temperatures, the track wetness, and a setup nudge when the loaded setup looks like a qualifying one. Every clause is optional because each is a whole clause the brief reads true without — a name, a position number or a temperature the voice cannot say, or iRacing has not reported yet, drops its own clause and nothing else; the position branch is a case inside its clause so a pack can rephrase pole and composed apart. The wetness branches on whether iRacing has reported it: known, it is read out; still unknown when the brief speaks, the engineer says so rather than leaving the track unmentioned.

Hear it: Harness → Scenario Shortcuts → Race Start → Race start — P5, with the race session preset (Race start — P1 (pole), Race start — P65 (out of range) and Race start — no position for the other position branches; the setup nudge has no harness route — In-sim: load a setup whose name matches the qualifying pattern under Setup Warning Patterns). In-sim: sit through the transition into a race session; the brief comes a few seconds in, once iRacing reports the track conditions, and at most ten seconds in.

Pools
race-start/qualifying-put-us-to, race-start/starting-from-pole, session-start/air-temp-intro, session-start/track-temp-intro, session-start/wetness-intro, session-start/wetness-unknown, setup-warning/race
Variables
{{raceStart.airTempNumber}}, {{raceStart.greeting}}, {{raceStart.position}}, {{raceStart.trackTempNumber}}, {{raceStart.wetness}}
Conditions
raceStart.wetnessKnown, setupWarning.raceMismatch
Cases
raceStart.gridPosition → composed, none, pole

race-status

Callouts in the race-status family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.race-status

Three laps pass in a race without your position changing, and every three laps after that — never on the final lap, and not within twenty seconds of another position readout.

Trigger
lap.completed
Re-checked at speak time
No other position readout has spoken in the last twenty seconds when this one comes to speak; speaking it starts that window.
Default frame
radio
Weight
10 (chatter)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The every-three-laps status update while the driver holds position in a race: the leader hears the whole still-leading line (still leading our class in a multi-class race), everyone else hears "we're currently" and the live position. Both branches are read at speak time, so a deferred update is never stale. The number is part of the sentence and stays required.

Hear it: Harness → Scenario Shortcuts → Race → Status update (P5 on lap 7) or Leader status (P1 on lap 6) — both are MUTE in the harness, which has no live position for the readout to speak, so only the fire attempt shows in the log. In-sim: hold the same race position for three consecutive laps after the green; the update comes as you cross the line on the third.

Variables
{{raceStatus.intro}}, {{raceStatus.number}}, {{raceStatus.stillLeading}}
Conditions
raceStatus.isLeading

rolling-start

Callouts in the rolling-start family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.rolling-start-pace-car

The pace car pulls away from the grid to lead the formation lap of a rolling-start race, with you live in the car.

Trigger
rollingStart.pace-car-moving.raised
Default frame
radio
Weight
70 (safety)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The pace car has started moving the field onto the formation lap of a rolling start — get up to pace and close the gap. Race-only and live in the car; one of five takes.

Hear it: Harness → Scenario Shortcuts → Rolling Start → Pace car moving, with the race session preset and the on-grid telemetry preset (live in the car). In-sim: sit on the grid of a rolling-start race and wait for the pace car to pull away.

Pools
rolling-start/pace-car-moving

session-start

Callouts in the session-start family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.session-start

A practice or qualifying session begins and iRacing reports the track conditions, or ten seconds pass, in the garage or on track — but not when iRaceDeck connects while you are out lapping.

Trigger
session.changed
Re-checked at speak time
The session the brief was raised for is still the one running, or telemetry is unavailable.
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The brief a few seconds into a practice or qualifying session (a race takes the race-start brief instead): the driver's name, which session it is, the pit speed limit with its unit, the track and air temperatures, the track wetness, and — in qualifying only — a setup nudge when the loaded setup looks like a race one. The greeting, the pit-speed limit, both temperatures and the nudge are optional because each is a whole clause the brief reads true without: a name, a limit or a temperature the voice cannot say, or iRacing has not reported yet, drops its own clause and nothing else. The wetness branches on whether iRacing has reported it: known, it is read out; still unknown when the brief speaks, the engineer says so rather than leaving the track unmentioned. The session line is required — a brief that names no session is not a brief.

Hear it: Harness → Session Start → Fire Session Start, with Session type set to practice or qualifying (race is silent here — it is the race-start callout's); Fire as Fresh Connect covers the mid-session connect; set Track wetness to Unknown (or empty a temperature) to hear the brief go ahead without it after its ten-second wait. The setup nudge has no harness route — In-sim: in qualifying, load a setup whose name matches the race pattern under Setup Warning Patterns. In-sim: join a practice or qualifying session; the brief comes a few seconds after the session begins, once iRacing reports the track conditions and at most ten seconds in, in the garage or on track.

Pools
session-start/air-temp-intro, session-start/pit-speed-intro, session-start/track-temp-intro, session-start/wetness-intro, session-start/wetness-unknown, setup-warning/qualifying
Variables
{{sessionStart.airTempNumber}}, {{sessionStart.greeting}}, {{sessionStart.sessionLine}}, {{sessionStart.speedNumber}}, {{sessionStart.speedUnit}}, {{sessionStart.trackTempNumber}}, {{sessionStart.wetness}}
Conditions
sessionStart.wetnessKnown, setupWarning.qualifyingMismatch

spotter

Callouts in the spotter family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.spotter-call

The cars alongside you change — one arrives, a second joins it, one of two drops away, or they swap sides — in any session but Lone Qualify, while you are not on pit road.

Trigger
fired by the plugin directly, not by a bus event
Default frame
none — plays unframed
Weight
120 (proximity)
Scheduling
dropped when the radio is busy; cuts a quieter line that is already playing
Base
none — a bare clip path resolves from the audio root

Says: A spotter transition call — a car has appeared alongside, a second one joined it, one of two has gone, or the sides swapped: "Car left", "Two cars right", "Three wide", "Clear right, car left", with inside/outside terms on an oval. The spotter engine picks the clip for the exact transition and hands it over as the spotterClip var, so the call is that one step; it cuts anything in flight and is never replayed late. No radio frame: the beeps would drown a call that has to land at once.

Hear it: Harness → Radar → Left, Right, Both Sides, Two Left, Two Right (each from the state the button names). In-sim: let a car pull alongside in any session with the spotter enabled.

Variables
{{spotterClip}}

spotter-info

Callouts in the spotter-info family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.spotter-info

The last car alongside has truly separated after the radar reads clear, or a car is still alongside when the reminder interval (default three seconds) is due; never in Lone Qualify or on pit road.

Trigger
fired by the plugin directly, not by a bus event
Default frame
none — plays unframed
Weight
70 (safety)
Scheduling
dropped when the radio is busy; cuts a quieter line that is already playing
Base
none — a bare clip path resolves from the audio root

Says: The spotter's informational lines — "Clear" once the car alongside has genuinely separated, and the still-there reminder ("Still there", "Hold your line") on its cadence while a car stays alongside. The same engine-picked spotterClip step as the call, at a lower weight so a reminder can never chop a critical line. No radio frame.

Hear it: Harness → Radar → Clear (after Left or Right); the still-there reminder repeats on its own while a side stays occupied. In-sim: hold a car alongside for a few seconds, then let it go.

Variables
{{spotterClip}}

start-light

Callouts in the start-light family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.start-light-countdown-10

The pre-start countdown of a standing-start race passes ten seconds to go, whether you are in the car or still in the garage.

Trigger
startLight.countdown.raised
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Ten seconds to the start — the last mark before the gantry lights.

Hear it: Harness → Scenario Shortcuts → Start → Countdown 10, with the race session preset. In-sim: the pre-start countdown passes ten seconds.

Pools
start-lights/countdown-10

pit-crew.start-light-countdown-30

The pre-start countdown of a standing-start race passes thirty seconds to go, whether you are in the car or still in the garage.

Trigger
startLight.countdown.raised
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Thirty seconds to the start.

Hear it: Harness → Scenario Shortcuts → Start → Countdown 30, with the race session preset. In-sim: the pre-start countdown passes thirty seconds.

Pools
start-lights/countdown-30

pit-crew.start-light-countdown-60

The pre-start countdown of a standing-start race passes sixty seconds to go, whether you are in the car or still in the garage.

Trigger
startLight.countdown.raised
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Sixty seconds to the start — the same reminder, one mark closer.

Hear it: Harness → Scenario Shortcuts → Start → Countdown 60, with the race session preset. In-sim: the pre-start countdown passes sixty seconds.

Pools
start-lights/countdown-60

pit-crew.start-light-countdown-90

The pre-start countdown of a standing-start race passes ninety seconds to go, whether you are in the car or still in the garage.

Trigger
startLight.countdown.raised
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Ninety seconds to the start — the first get-in-the-car reminder, spoken from the garage or session screen too. Ordinary weight, and dropped rather than replayed stale if the bus is busy.

Hear it: Harness → Scenario Shortcuts → Start → Countdown 90, with the race session preset. In-sim: sit in the garage as a standing-start race counts down.

Pools
start-lights/countdown-90

pit-crew.start-light-go

iRacing signals the go while you are live in the car in a race: the lights out at a standing start, or the green at a rolling start. A caution restart has its own call and stays silent here.

Trigger
startLight.start-go.raised
Default frame
radio
Weight
100 (critical)
Scheduling
deferred and replayed when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Go, go, go — the moment iRacing releases the field: lights out at a standing start, or the green at a rolling start. A caution restart has its own line (caution-restart). Critical and interrupting: it cuts anything in flight, including a ready line still playing.

Hear it: Harness → Scenario Shortcuts → Start → Go, with the race session preset and the on-grid telemetry preset (live in the car). In-sim: the lights go out at a standing start, or the field is released at a rolling start.

Pools
start-lights/start-go

pit-crew.start-light-ready

The start lights come on over the grid of a standing-start race while you sit live in the car.

Trigger
startLight.start-ready.raised
Default frame
radio
Weight
100 (critical)
Scheduling
deferred and replayed when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The start gantry has lit — lights are up, the standing start is seconds away. Critical and interrupting, and replayed rather than lost if a spotter call holds the bus; a later go line replaces it if it never got out.

Hear it: Harness → Scenario Shortcuts → Start → Ready, with the race session preset and the on-grid telemetry preset (live in the car). In-sim: the red lights come on for a standing start.

Pools
start-lights/start-ready

tire-service

Callouts in the tire-service family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.tire-compound-dry

You switch the tires for your next pit stop to the dry compound.

Trigger
tireService.compoundChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The compound for the next stop switched to dry. The one confirmation for the switch — the all-four-tires event iRacing raises alongside it is suppressed before it reaches the engineer.

Hear it: Harness → Tire Service → Compound → DRY, outside the pit-action cooldown. In-sim: switch the pit-service compound to dry.

Pools
pit-actions/acknowledgment, pit-actions/tires-compound-dry

pit-crew.tire-compound-wet

You switch the tires for your next pit stop to the wet compound.

Trigger
tireService.compoundChanged
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The compound for the next stop switched to wet.

Hear it: Harness → Tire Service → Compound → WET, outside the pit-action cooldown. In-sim: switch the pit-service compound to wet.

Pools
pit-actions/acknowledgment, pit-actions/tires-compound-wet

pit-crew.tire-set-off

Your tire selection for the next pit stop settles on no tires at all.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Every tire cleared from the next stop — spoken only when the resulting set is empty, never on a side-switch that merely removes some tires.

Hear it: Harness → Tire Service → Skip, outside the pit-action cooldown. In-sim: clear every tire in the pit black box.

Pools
pit-actions/acknowledgment, pit-actions/tires-off

pit-crew.tire-set-on-all

Your tire selection for the next pit stop settles on all four tires.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: All four tires queued — acknowledgment, then the confirmation. Each tire line answers the RESULTING set, whichever buttons got the driver there.

Hear it: Harness → Tire Service → All, outside the pit-action cooldown. In-sim: select all four tires in the pit black box.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-all

pit-crew.tire-set-on-fronts

Your tire selection for the next pit stop settles on the two front tires only.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Both fronts queued.

Hear it: Harness → Tire Service → Fronts, outside the pit-action cooldown. In-sim: select the front tires only.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-fronts

pit-crew.tire-set-on-lefts

Your tire selection for the next pit stop settles on the two left-side tires only.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Both left-side tires queued.

Hear it: Harness → Tire Service → Lefts, outside the pit-action cooldown. In-sim: select the left-side tires only.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-lefts

pit-crew.tire-set-on-lf

Your tire selection for the next pit stop settles on the left-front tire alone.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The left-front only — a puncture-style single change.

Hear it: Harness → Tire Service → LF only, outside the pit-action cooldown. In-sim: select only the left-front tire.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-lf

pit-crew.tire-set-on-lf-rr

Your tire selection for the next pit stop settles on the left-front and right-rear diagonal.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The left-front and right-rear diagonal.

Hear it: Harness → Tire Service → LF + RR, outside the pit-action cooldown. In-sim: select the left-front and right-rear tires.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-lf-rr

pit-crew.tire-set-on-lr

Your tire selection for the next pit stop settles on the left-rear tire alone.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The left-rear only.

Hear it: Harness → Tire Service → LR only, outside the pit-action cooldown. In-sim: select only the left-rear tire.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-lr

pit-crew.tire-set-on-rears

Your tire selection for the next pit stop settles on the two rear tires only.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Both rears queued.

Hear it: Harness → Tire Service → Rears, outside the pit-action cooldown. In-sim: select the rear tires only.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-rears

pit-crew.tire-set-on-rf

Your tire selection for the next pit stop settles on the right-front tire alone.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The right-front only.

Hear it: Harness → Tire Service → RF only, outside the pit-action cooldown. In-sim: select only the right-front tire.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-rf

pit-crew.tire-set-on-rf-lr

Your tire selection for the next pit stop settles on the right-front and left-rear diagonal.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The right-front and left-rear diagonal.

Hear it: Harness → Tire Service → RF + LR, outside the pit-action cooldown. In-sim: select the right-front and left-rear tires.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-rf-lr

pit-crew.tire-set-on-rights

Your tire selection for the next pit stop settles on the two right-side tires only.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Both right-side tires queued.

Hear it: Harness → Tire Service → Rights, outside the pit-action cooldown. In-sim: select the right-side tires only.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-rights

pit-crew.tire-set-on-rr

Your tire selection for the next pit stop settles on the right-rear tire alone.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The right-rear only.

Hear it: Harness → Tire Service → RR only, outside the pit-action cooldown. In-sim: select only the right-rear tire.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-rr

pit-crew.tire-set-on-skip-lf

Your tire selection for the next pit stop settles on every tire but the left-front.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Three corners — everything but the left-front.

Hear it: Harness → Tire Service → All except LF, outside the pit-action cooldown. In-sim: select all tires but the left-front.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-skip-lf

pit-crew.tire-set-on-skip-lr

Your tire selection for the next pit stop settles on every tire but the left-rear.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Three corners — everything but the left-rear.

Hear it: Harness → Tire Service → All except LR, outside the pit-action cooldown. In-sim: select all tires but the left-rear.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-skip-lr

pit-crew.tire-set-on-skip-rf

Your tire selection for the next pit stop settles on every tire but the right-front.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Three corners — everything but the right-front.

Hear it: Harness → Tire Service → All except RF, outside the pit-action cooldown. In-sim: select all tires but the right-front.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-skip-rf

pit-crew.tire-set-on-skip-rr

Your tire selection for the next pit stop settles on every tire but the right-rear.

Trigger
tireService.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Three corners — everything but the right-rear.

Hear it: Harness → Tire Service → All except RR, outside the pit-action cooldown. In-sim: select all tires but the right-rear.

Pools
pit-actions/acknowledgment, pit-actions/tires-on-skip-rr

tire-wear

Callouts in the tire-wear family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.tire-wear-report

You leave pit road after stopping in your pit box under your own power and stay out for about four and a half seconds, right behind the exit readback.

Trigger
tireWear.reported
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: After a pit stop, once the exit readback has played: the remaining tread of all four tires, front to rear, each as the lowest of its three zones in whole percent, then where the wear is heaviest, a sentence left out when every tire still reads one hundred. After a tire change the numbers describe the set that came off.

Hear it: Harness → Tire Wear → Report after a stop. In-sim: drive into your box, stop, and leave pit road; the report follows the exit readback.

Pools
tire-wear/heaviest-lf-inside, tire-wear/heaviest-lf-middle, tire-wear/heaviest-lf-outside, tire-wear/heaviest-lr-inside, tire-wear/heaviest-lr-middle, tire-wear/heaviest-lr-outside, tire-wear/heaviest-rf-inside, tire-wear/heaviest-rf-middle, tire-wear/heaviest-rf-outside, tire-wear/heaviest-rr-inside, tire-wear/heaviest-rr-middle, tire-wear/heaviest-rr-outside, tire-wear/intro, tire-wear/left-front, tire-wear/left-rear, tire-wear/right-front, tire-wear/right-rear
Variables
{{tireWear.leftFrontTread}}, {{tireWear.leftRearTread}}, {{tireWear.rightFrontTread}}, {{tireWear.rightRearTread}}
Conditions
tireWear.hasWear
Cases
tireWear.heaviestSpot → lf-inside, lf-middle, lf-outside, lr-inside, lr-middle, lr-outside, rf-inside, rf-middle, rf-outside, rr-inside, rr-middle, rr-outside

track-conditions

Callouts in the track-conditions family preempt each other: a newer one replaces one of the same family that is still playing, whatever their weights.

pit-crew.track-conditions-drying-dry

The track's wetness falls to dry from any wetter state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track is fully dry again — the end of a drying trend, and the driest state the sim reports. Only the drying direction takes this line.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Drying → Dry. In-sim: a mostly dry track finishes drying.

Pools
track-conditions/drying-dry

pit-crew.track-conditions-drying-lightly-wet

The track's wetness falls to lightly wet from any wetter state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track has dried back to lightly wet — the crossover window where slicks come back into the conversation.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Drying → Lightly Wet. In-sim: a moderately wet track keeps drying.

Pools
track-conditions/drying-lightly-wet

pit-crew.track-conditions-drying-moderately-wet

The track's wetness falls to moderately wet from any wetter state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track has dried back to moderately wet — standing water is draining and a line is starting to appear.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Drying → Moderately Wet. In-sim: a very wet track drying after the rain stops.

Pools
track-conditions/drying-moderately-wet

pit-crew.track-conditions-drying-mostly-dry

The track's wetness falls to mostly dry from any wetter state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track has dried back to mostly dry — damp patches off the line, dry grip on it.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Drying → Mostly Dry. In-sim: a very lightly wet track keeps drying.

Pools
track-conditions/drying-mostly-dry

pit-crew.track-conditions-drying-very-lightly-wet

The track's wetness falls to very lightly wet from any wetter state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track has dried back to very lightly wet — nearly there, a dry line is forming.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Drying → Very Lightly Wet. In-sim: a lightly wet track keeps drying.

Pools
track-conditions/drying-very-lightly-wet

pit-crew.track-conditions-drying-very-wet

The track's wetness falls to very wet from extremely wet.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track has dried back to very wet from extremely wet — the first step of a drying trend.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Drying → Very Wet. In-sim: the rain eases on an extremely wet track.

Pools
track-conditions/drying-very-wet

pit-crew.track-conditions-worsening-extremely-wet

The track's wetness rises to extremely wet from any drier state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track is now extremely wet — the wettest state the sim reports, and the most urgent of the worsening lines.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Worsening → Extremely Wet. In-sim: a downpour on a very wet track.

Pools
track-conditions/worsening-extremely-wet

pit-crew.track-conditions-worsening-lightly-wet

The track's wetness rises to lightly wet from any drier state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track is now lightly wet and getting wetter — the point where wet tires start to be a question.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Worsening → Lightly Wet. In-sim: steady rain on a very lightly wet track.

Pools
track-conditions/worsening-lightly-wet

pit-crew.track-conditions-worsening-moderately-wet

The track's wetness rises to moderately wet from any drier state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track is now moderately wet and getting wetter — standing water is forming and the racing line is losing its grip.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Worsening → Moderately Wet. In-sim: heavier rain on a lightly wet track.

Pools
track-conditions/worsening-moderately-wet

pit-crew.track-conditions-worsening-mostly-dry

The track's wetness rises to mostly dry from dry.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track has gone from dry to mostly dry — the first hint of moisture, worth a heads-up before grip goes. Only the worsening direction takes this line; a rapid further step replaces it mid-sentence.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Worsening → Mostly Dry. In-sim: rain starts falling on a dry track in a dynamic-weather session.

Pools
track-conditions/worsening-mostly-dry

pit-crew.track-conditions-worsening-very-lightly-wet

The track's wetness rises to very lightly wet from any drier state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track is now very lightly wet and getting wetter — a damp surface with real grip still available.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Worsening → Very Lightly Wet. In-sim: light rain keeps falling on a mostly dry track.

Pools
track-conditions/worsening-very-lightly-wet

pit-crew.track-conditions-worsening-very-wet

The track's wetness rises to very wet from any drier state.

Trigger
track.wetness.changed
Default frame
radio
Weight
50 (normal)
Scheduling
dropped when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The track is now very wet and getting wetter — aquaplaning territory, a warning to back off.

Hear it: Harness → Scenario Shortcuts → Track Conditions — Worsening → Very Wet. In-sim: heavy rain on a moderately wet track.

Pools
track-conditions/worsening-very-wet

No family

These callouts belong to no family: each neither replaces nor is replaced by a family-mate, and only its weight decides what it yields to and what yields to it.

pit-crew.caution-follow

iRacing waves the full-course caution at the field in a race while you are live in the car, and a second later, the field still spread out behind the flag, the pace rows say who you line up behind.

Trigger
flag.caution-waving.raised
Re-checked at speak time
Re-checked at speak time: the full-course caution is still out and you still hold a pace row.
Default frame
radio
Weight
69
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Who to line up behind, a couple of seconds after the caution announcement, read from the pace rows at the moment it is spoken. With nobody ahead in your own line it is the pace car — "You're leading them — it's just you and the pace car." — and otherwise "Line up behind" and the number — a clip of its own that says "car" and the number, spoken the way the sim spells it. A car ahead the session cannot name gets "Line up behind the car ahead." instead: the lead-in and the number are one optional clause, and an optional clause alone expands to nothing, so the call asks caution.hasFollowCarNumber first rather than leave the driver with no instruction at all.

Hear it: Harness → Flags → Caution → restart (or Caution → lineup change, Caution → extra lap), with the race session and hot-lap presets — expect "…behind car eight" about two and a half seconds after the caution line; with the practice preset (a player car but an empty driver list) the car ahead cannot be named, so expect "Line up behind the car ahead." In-sim: a full-course caution in a race, from anywhere but the lead.

Pools
caution/follow-behind, caution/follow-leader, caution/follow-noname
Variables
{{caution.followCarNumber}}
Conditions
caution.followsPaceCar, caution.hasFollowCarNumber

pit-crew.caution-lineup-changed

The car you line up behind under caution changes — a car pitted, or the field re-formed — and two seconds later it is still not the car the engineer last named in this caution.

Trigger
caution.lineup.changed
Re-checked at speak time
Re-checked at speak time: the caution is still out, you still hold a pace row, and the car ahead is not the one last named in this caution.
Default frame
radio
Weight
69
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car you line up behind changed mid-caution — someone pitted, or the field re-formed. "Change —" then, with only the pace car ahead now, "you're at the front now, just the pace car ahead"; otherwise the lane and the new car ahead, in the same three shapes as the one-lap-to-green line (inside, outside, or no lane), each an optional clause with its number. A new car ahead the session cannot name gets "The car ahead of you has changed." — asked through caution.hasFollowCarNumber before the lane is chosen, because an optional clause alone expands to nothing. That fallback deliberately drops the lane even where caution.line would answer: four more clips to keep it on a rare path is not proportionate.

Hear it: Harness → Flags → Caution → lineup change, with the race session and hot-lap presets — expect "Change — you're behind car seven" a second and a half after the reorder; with the practice preset (a player car but an empty driver list) the new car ahead cannot be named, so expect "The car ahead of you has changed." In-sim: pit under caution, or a car ahead of you pitting, before the one-to-go flag.

Pools
caution/lineup-changed-inside, caution/lineup-changed-leader, caution/lineup-changed-noname, caution/lineup-changed-outside, caution/lineup-changed-plain
Variables
{{caution.followCarNumber}}
Conditions
caution.followsPaceCar, caution.hasFollowCarNumber
Cases
caution.line → inside, outside

pit-crew.caution-position

About a third of the way into the last caution lap — the one-to-go flag is up and your lap distance passes 35% — your race position from the live running order, the number your display shows.

Trigger
caution.lastLapCheckpoint
Re-checked at speak time
Re-checked at speak time: the full-course caution is still out.
Default frame
radio
Weight
69
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Your race position, about a third of the way into the last caution lap — the normal position wording ("We're currently" and the number). The number is caution.racePosition, the live race position at the moment it is spoken, NOT caution.restartPosition: a lapped car lined up ahead of you is behind you in the race, and the number your display shows is the race one (a 2026-09-19 test heard "P21" in a 20-car field from the lineup, with the display on P19). The WHOLE call is one optional clause, and here that is correct rather than the empty-sequence defect the other caution entries guard against: a position call with no position — no running order to read, or a field past the spoken range — has nothing true to say, so saying nothing IS the right sentence. Do not add a fallback wording outside the clause.

Hear it: Harness → Flags → Caution → restart, with the race session and hot-lap presets — expect "We're currently seven" a couple of seconds after the one-lap-to-green line (the button patches per-car lap progress at one to go so the race order can rank you; the hot-lap preset alone carries none). In-sim: about 35% into the one-lap-to-green lap; a lapped car lined up ahead of you does not count.

Pools
position-intro-worse/currently
Variables
{{caution.racePosition}}

pit-crew.flag-meatball

Your car takes enough damage that iRacing orders it to the pits and shows you the meatball flag, in any session.

Trigger
flag.meatball.raised
Default frame
radio
Weight
100 (critical)
Scheduling
deferred and replayed when the radio is busy; cuts a quieter line that is already playing
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The meatball flag — mandatory repairs, the driver must pit. Cuts any other line in flight and is never dropped.

Hear it: Harness → Flags → Meatball. In-sim: take enough damage that iRacing orders you in for repairs.

Pools
flags/meatball

pit-crew.opponent-flag-black-ahead

A car in your class one to three places ahead on the same lap, within your Opponent flag range, is black-flagged in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A same-class car one to three places ahead in the race, within the driver's Opponent flag range, has been black-flagged, named by its car number: the number clip, which already says "car", then the ahead tail. The number is part of the sentence — a car number the voice cannot say, or a car the session cannot number, skips the whole line.

Hear it: Harness → Opponent Flags → Car 42 ahead: black flag. In-sim: a same-class car one to three places ahead of you, within the Opponent flag range, is black-flagged during a race.

Pools
opponent-flags/black-ahead-tail
Variables
{{opponentFlag.carNumber}}

pit-crew.opponent-flag-black-behind

The car in your class directly behind you on the same lap, within your Opponent flag range, is black-flagged in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The same-class car directly behind in the race, within the driver's Opponent flag range, has been black-flagged, named by its car number: the number clip, which already says "car", then the behind tail. The number is part of the sentence — a car number the voice cannot say, or a car the session cannot number, skips the whole line.

Hear it: Harness → Opponent Flags → Car 42 behind: black flag. In-sim: the same-class car directly behind you, within the Opponent flag range, is black-flagged during a race.

Pools
opponent-flags/black-behind-tail
Variables
{{opponentFlag.carNumber}}

pit-crew.opponent-flag-disqualify-ahead

A car in your class one to three places ahead on the same lap, within your Opponent flag range, is disqualified in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A same-class car one to three places ahead in the race, within the driver's Opponent flag range, has been disqualified, named by its car number: the number clip, which already says "car", then the ahead tail. The number is part of the sentence — a car number the voice cannot say, or a car the session cannot number, skips the whole line.

Hear it: Harness → Opponent Flags → Car 42 ahead: DQ. In-sim: a same-class car one to three places ahead of you, within the Opponent flag range, is disqualified during a race.

Pools
opponent-flags/disqualify-ahead-tail
Variables
{{opponentFlag.carNumber}}

pit-crew.opponent-flag-disqualify-behind

The car in your class directly behind you on the same lap, within your Opponent flag range, is disqualified in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The same-class car directly behind in the race, within the driver's Opponent flag range, has been disqualified, named by its car number: the number clip, which already says "car", then the behind tail. The number is part of the sentence — a car number the voice cannot say, or a car the session cannot number, skips the whole line.

Hear it: Harness → Opponent Flags → Car 42 behind: DQ. In-sim: the same-class car directly behind you, within the Opponent flag range, is disqualified during a race.

Pools
opponent-flags/disqualify-behind-tail
Variables
{{opponentFlag.carNumber}}

pit-crew.opponent-flag-furled-ahead

A car in your class one to three places ahead on the same lap, within your Opponent flag range, gets a slowdown penalty (the furled black flag) in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A same-class car one to three places ahead in the race, within the driver's Opponent flag range, has been given a slowdown penalty (the furled black flag), named by its car number: the number clip, which already says "car", then the ahead tail. The number is part of the sentence — a car number the voice cannot say, or a car the session cannot number, skips the whole line. Every opponent-flag line queues behind a busier one rather than cutting it, because each describes a different car.

Hear it: Harness → Opponent Flags → Car 42 ahead: slowdown. In-sim: a same-class car one to three places ahead of you, within the Opponent flag range, picks up a slowdown penalty during a race.

Pools
opponent-flags/furled-ahead-tail
Variables
{{opponentFlag.carNumber}}

pit-crew.opponent-flag-furled-behind

The car in your class directly behind you on the same lap, within your Opponent flag range, gets a slowdown penalty (the furled black flag) in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The same-class car directly behind in the race, within the driver's Opponent flag range, has been given a slowdown penalty (the furled black flag), named by its car number: the number clip, which already says "car", then the behind tail. The number is part of the sentence — a car number the voice cannot say, or a car the session cannot number, skips the whole line.

Hear it: Harness → Opponent Flags → Car 42 behind: slowdown. In-sim: the same-class car directly behind you, within the Opponent flag range, picks up a slowdown penalty during a race.

Pools
opponent-flags/furled-behind-tail
Variables
{{opponentFlag.carNumber}}

pit-crew.opponent-flag-meatball-ahead

A car in your class one to three places ahead on the same lap, within your Opponent flag range, is shown the meatball flag in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A same-class car one to three places ahead in the race, within the driver's Opponent flag range, has been shown the meatball (repair) flag, named by its car number: the number clip, which already says "car", then the ahead tail. The number is part of the sentence — a car number the voice cannot say, or a car the session cannot number, skips the whole line.

Hear it: Harness → Opponent Flags → Car 42 ahead: meatball. In-sim: a same-class car one to three places ahead of you, within the Opponent flag range, is shown the meatball flag during a race.

Pools
opponent-flags/meatball-ahead-tail
Variables
{{opponentFlag.carNumber}}

pit-crew.opponent-flag-meatball-behind

The car in your class directly behind you on the same lap, within your Opponent flag range, is shown the meatball flag in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The same-class car directly behind in the race, within the driver's Opponent flag range, has been shown the meatball (repair) flag, named by its car number: the number clip, which already says "car", then the behind tail. The number is part of the sentence — a car number the voice cannot say, or a car the session cannot number, skips the whole line.

Hear it: Harness → Opponent Flags → Car 42 behind: meatball. In-sim: the same-class car directly behind you, within the Opponent flag range, is shown the meatball flag during a race.

Pools
opponent-flags/meatball-behind-tail
Variables
{{opponentFlag.carNumber}}

pit-crew.opponent-flag-others

A third car near you picks up a penalty flag within twelve seconds of the first two in a race, and further flagged cars stay uncalled until things go quiet.

Trigger
opponentFlag.flagged
Default frame
radio
Weight
50 (normal)
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Several cars around the driver picked up penalty flags in the same burst — the aggregate tail after the individual lines. It only ever describes flags the user opted into, because the per-flag opt-ins are applied before anything reaches the aggregate.

Hear it: Harness → Opponent Flags → Several cars flagged. In-sim: a multi-car incident that hands penalties to several cars near you at once.

Pools
opponent-flags/others

pit-crew.opponent-pit-ahead

The car one place ahead of you in your class, on the same lap, heads into the pits during a race, between the green and the checkered flag.

Trigger
opponentPit.entered
Default frame
radio
Weight
65
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car directly ahead in the standings has entered the pits.

Hear it: Harness → Opponent Pit → Car ahead pitting. In-sim: the car one place ahead of you pits during a race.

Pools
opponent-pit/ahead

pit-crew.opponent-pit-behind

The car one place behind you in your class, on the same lap, heads into the pits during a race, between the green and the checkered flag.

Trigger
opponentPit.entered
Default frame
radio
Weight
65
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The car directly behind in the standings has entered the pits.

Hear it: Harness → Opponent Pit → Car behind pitting. In-sim: the car one place behind you pits during a race.

Pools
opponent-pit/behind

pit-crew.opponent-pit-leader

The race leader, or your class leader in a multi-class race, heads into the pits during a race, between the green and the checkered flag.

Trigger
opponentPit.entered
Default frame
radio
Weight
65
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: The race leader has entered the pits — strategic news, spoken as one line. Every opponent-pit line queues behind a busier one rather than cutting it, because each describes a different car.

Hear it: Harness → Opponent Pit → Leader pitting. In-sim: a race where the leader pits while you are on track.

Pools
opponent-pit/leader

pit-crew.opponent-pit-nearby

A car two places ahead of or behind you in your class, on the same lap, heads into the pits during a race, between the green and the checkered flag.

Trigger
opponentPit.entered
Default frame
radio
Weight
65
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: A car within two places of the driver has entered the pits, named by its position: the car-in lead-in, the number, the is-pitting tail. The number is read live at speak time and is part of the sentence — a position the voice cannot say skips the whole line, never the middle of it.

Hear it: Harness → Opponent Pit → P7 pitting (±2). In-sim: a car two places ahead or behind you pits during a race.

Pools
opponent-pit/car-in, opponent-pit/is-pitting
Variables
{{opponentPit.number}}

pit-crew.opponent-pit-others

A third car around you heads into the pits within twelve seconds of the first two in a race, and further stops stay uncalled until the burst has passed.

Trigger
opponentPit.entered
Default frame
radio
Weight
65
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: Several cars pitted in the same burst — the aggregate tail after the individual lines, so a pit train is not narrated car by car.

Hear it: Harness → Opponent Pit → Several cars pitting. In-sim: a pit window opens and a group of cars dives in together.

Pools
opponent-pit/others

pit-crew.readout-air-temp

You press a Session Info key showing air temperature.

Trigger
telemetryReadout.requested
Default frame
radio
Weight
40
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: On a Session Info key press: the air temperature as a whole number — "Air temperature is twenty three degrees." The unit is not named, as in the session-start brief.

Hear it: Harness → Telemetry Readout → Air temperature (°F). In-sim: add a Session Info key on Air Temperature and press it.

Pools
telemetry-readout/air-temp-intro
Variables
{{readout.tempNumber}}

pit-crew.readout-fuel-average

You press a Session Info key showing average fuel per lap, with at least one clean lap on record.

Trigger
telemetryReadout.requested
Default frame
radio
Weight
40
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: On a Session Info key press: the average fuel per clean lap, naming the laps actually averaged — fewer than the key's setting early in a stint — "Average fuel over the last five laps, two point four liters."

Hear it: Harness → Telemetry Readout → Fuel average (5 laps). In-sim: add a Session Info key on Fuel → Average and press it after a few clean laps.

Pools
telemetry-readout/fuel-average-intro
Variables
{{readout.fuelDecimal}}, {{readout.fuelNumber}}, {{readout.laps}}

pit-crew.readout-fuel-last-lap

You press a Session Info key showing fuel used last lap, with at least one clean lap on record.

Trigger
telemetryReadout.requested
Default frame
radio
Weight
40
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: On a Session Info key press: the fuel the last clean lap used, rounded to a tenth, in the driver's display unit — "Fuel used last lap, two point four liters." The tenths clip carries the unit.

Hear it: Harness → Telemetry Readout → Fuel last lap (liters). In-sim: add a Session Info key on Fuel → Last Lap, drive one clean lap and press it.

Pools
telemetry-readout/fuel-last-lap-intro
Variables
{{readout.fuelDecimal}}, {{readout.fuelNumber}}

pit-crew.readout-no-data

You press a Session Info key showing a fuel figure before any clean lap is on record.

Trigger
telemetryReadout.requested
Default frame
radio
Weight
40
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: On a Session Info fuel key press before any clean lap is on record: "No clean lap on the books yet."

Hear it: Harness → Telemetry Readout → No clean lap yet. In-sim: press a Session Info key on Fuel → Last Lap before completing a clean lap in a fresh session.

Pools
telemetry-readout/no-data

pit-crew.readout-track-temp

You press a Session Info key showing track temperature.

Trigger
telemetryReadout.requested
Default frame
radio
Weight
40
Scheduling
deferred and replayed when the radio is busy; waits for a quieter line that is already playing to finish
Base
voice/{voice} — a bare clip path resolves inside the active voice's folder

Says: On a Session Info key press: the track temperature as a whole number — "Track temperature is forty one degrees." The unit is not named, as in the session-start brief; a pack that records the unit clips can add {{readout.degreesUnit}}.

Hear it: Harness → Telemetry Readout → Track temperature (°C). In-sim: add a Session Info key on Track Temperature and press it on track.

Pools
telemetry-readout/track-temp-intro
Variables
{{readout.tempNumber}}