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 bundled 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 bundled voice’s own comment and test lines. 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 the bundled 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. See A correct script can be silent.

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

149 callouts in 31 groups; the bundled voice scripts 149 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 running, and again only after a repair has cleared it.

Trigger
damage.repairNeeded.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: 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.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
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 caution is out and waving — slow down and close up safely. Repeats at most once per 30 seconds.

Hear it: Harness → Flags → Caution Waving. In-sim: the caution comes out on an oval 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.typepractice, 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
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. Spoken only while the flag is still shown at speak time, so a warning withdrawn while this waited behind a longer line stays silent.

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
Conditions
flag.furledStillShown

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
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. Only follows a furled line that was actually spoken, and never plays when the warning escalated to a real black flag instead.

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
Conditions
flag.furledWithdrawn

pit-crew.flag-green

The green flag comes out at the start of a practice or qualifying session or at a race restart; the initial race start belongs to the start lights and stays 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 at the start of a session or a restart. 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 any session, or at a race restart.

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

pit-crew.flag-green-held

iRacing holds the green on the final pace lap of a rolling start or restart, as the pace car pulls in, while you are 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 pace car is pulling in and the green is imminent — get ready to launch. 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, once the pace car peels off.

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.typepractice, 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

Every yellow and caution flag has been down for three seconds straight after a yellow, so the all-clear is confirmed rather than a gap between zones.

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: The yellow has been withdrawn — a short all-clear, replayed after a busier line finishes rather than dropped.

Hear it: Harness → Flags → Yellow Cleared. In-sim: clear the local yellow sector, or the caution ends and racing resumes.

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
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
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
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 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
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 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
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: 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
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: 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 first.

Trigger
incident.occurred
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 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
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 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, in any session — except on the final lap of a race, where the result speaks instead.

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
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. The whole body is behind limiter.stillMissingOnPitRoad, so a driver who engaged the limiter in the meantime hears nothing.

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
Conditions
limiter.stillMissingOnPitRoad

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
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. The whole body is behind limiter.stillEngagedOffPitRoad: the line waits behind busier traffic rather than being dropped, so it re-checks live telemetry when it comes to speak and says nothing (no radio frame either) once the limiter is 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
Conditions
limiter.stillEngagedOffPitRoad

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 drive onto pit road in a car that has no pit limiter.

Trigger
pitLane.entered
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.gainedReactionleader, 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.tirePatternall, 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.tirePatternall, 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.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
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-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
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 — the whole body behind its live re-check, 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
Conditions
pitStatus.stillBadAngle

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
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 — the whole body behind its live re-check, 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
Conditions
pitStatus.stillTooFarBack

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
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 — the whole body behind its live re-check, 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
Conditions
pitStatus.stillTooFarForward

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
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. The whole body is behind pitStatus.stillTooFarLeft: a nag that waited behind a longer line re-checks the live status when it comes to speak and says nothing once the driver has corrected — and nothing means no radio frame either, which is the intended silence rather than a bare beep.

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
Conditions
pitStatus.stillTooFarLeft

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
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 — the whole body behind its live re-check, 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
Conditions
pitStatus.stillTooFarRight

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, or your first timed lap; a held place counts only on a non-best qualifying lap; in a race, no position readout in the past twenty seconds.

Trigger
lap.completed
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.readoutShapeinvalid-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
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
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.occurred
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
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.lapsLeft1, 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.resultother, 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 three seconds pass — a restart on the pre-green grid included, but not when iRaceDeck connects to a race already under way.

Trigger
session.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 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 but the wetness 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 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 intro and state are required: the brief always ends on the track.

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 about three 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, setup-warning/race
Variables
{{raceStart.airTempNumber}}, {{raceStart.degreesUnit}}, {{raceStart.greeting}}, {{raceStart.position}}, {{raceStart.trackTempNumber}}, {{raceStart.wetness}}
Conditions
setupWarning.raceMismatch
Cases
raceStart.gridPositioncomposed, 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
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 three seconds pass, whether you are in the garage or on track — but not when iRaceDeck connects while you are already out lapping.

Trigger
session.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 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 drops its own clause and nothing else. The session line and the wetness are required — a brief that names no session, or stops at "and the track is", 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. 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 about three seconds after the session begins, 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, setup-warning/qualifying
Variables
{{sessionStart.airTempNumber}}, {{sessionStart.degreesUnit}}, {{sessionStart.greeting}}, {{sessionStart.sessionLine}}, {{sessionStart.speedNumber}}, {{sessionStart.speedUnit}}, {{sessionStart.trackTempNumber}}, {{sessionStart.wetness}}
Conditions
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

The start lights go out at a standing-start race and the field is released, with you live in the car.

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: Lights out — go, go, go. 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.

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

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.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 up to three places ahead of you on the same lap 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 car up to three places ahead in the standings has been black-flagged, named by its position — car-in, the number, the black tail. The number is part of the sentence.

Hear it: Harness → Opponent Flags → P5 ahead: black flag. In-sim: the car one place ahead of you is black-flagged during a race.

Pools
opponent-flags/black-ahead-tail, opponent-pit/car-in
Variables
{{opponentFlag.number}}

pit-crew.opponent-flag-black-behind

The car in your class one place behind you on the same lap 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 car directly behind in the standings has been black-flagged — the pressure from behind should ease.

Hear it: Harness → Opponent Flags → Behind: black flag. In-sim: the car one place behind you is black-flagged during a race.

Pools
opponent-flags/black-behind

pit-crew.opponent-flag-black-track-ahead

A car less than about ten seconds ahead of you on the road, of any class or lap and not in the pits, is black-flagged in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
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 car the driver is closing on along the track has been black-flagged — a safety-weighted heads-up.

Hear it: Harness → Opponent Flags → Track ahead: black flag. In-sim: close in on a black-flagged car ahead on the road.

Pools
opponent-flags/black-track

pit-crew.opponent-flag-disqualify-ahead

A car in your class up to three places ahead of you on the same lap 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 car up to three places ahead in the standings has been disqualified, named by its position — car-in, the number, the disqualified tail. The number is part of the sentence.

Hear it: Harness → Opponent Flags → P5 ahead: DQ. In-sim: the car one place ahead of you is disqualified during a race.

Pools
opponent-flags/disqualify-ahead-tail, opponent-pit/car-in
Variables
{{opponentFlag.number}}

pit-crew.opponent-flag-disqualify-behind

The car in your class one place behind you on the same lap 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 car directly behind in the standings has been disqualified.

Hear it: Harness → Opponent Flags → Behind: DQ. In-sim: the car one place behind you is disqualified during a race.

Pools
opponent-flags/disqualify-behind

pit-crew.opponent-flag-disqualify-track-ahead

A car less than about ten seconds ahead of you on the road, of any class or lap and not in the pits, is disqualified in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
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 car the driver is closing on along the track has been disqualified and may pull off — a safety-weighted heads-up.

Hear it: Harness → Opponent Flags → Track ahead: DQ. In-sim: close in on a disqualified car ahead on the road.

Pools
opponent-flags/disqualify-track

pit-crew.opponent-flag-furled-ahead

A car in your class up to three places ahead of you on the same lap is shown a 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 car up to three places ahead in the standings has been shown a furled black flag, named by its position: the car-in lead-in (the opponent-pit family's clip, reused because the words are the same), the number, then the furled tail. The number is part of the sentence — a position the voice cannot say 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 → P5 ahead: furled. In-sim: the car one place ahead of you picks up a furled black flag during a race.

Pools
opponent-flags/furled-ahead-tail, opponent-pit/car-in
Variables
{{opponentFlag.number}}

pit-crew.opponent-flag-furled-behind

The car in your class one place behind you on the same lap is shown a 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 car directly behind in the standings has been shown a furled black flag.

Hear it: Harness → Opponent Flags → Behind: furled. In-sim: the car one place behind you picks up a furled black flag during a race.

Pools
opponent-flags/furled-behind

pit-crew.opponent-flag-furled-track-ahead

A car less than about ten seconds ahead of you on the road, of any class or lap and not in the pits, is shown a furled black flag in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
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 car the driver is closing on along the track carries a furled black flag — a safety-weighted heads-up, since a penalised car may be slow.

Hear it: Harness → Opponent Flags → Track ahead: furled. In-sim: close in on a car ahead on the road that has a furled black flag.

Pools
opponent-flags/furled-track

pit-crew.opponent-flag-meatball-ahead

A car in your class up to three places ahead of you on the same lap 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 car up to three places ahead in the standings has the meatball (repair) flag, named by its position — car-in, the number, the meatball tail. The number is part of the sentence.

Hear it: Harness → Opponent Flags → P5 ahead: meatball. In-sim: the car one place ahead of you is shown the meatball flag during a race.

Pools
opponent-flags/meatball-ahead-tail, opponent-pit/car-in
Variables
{{opponentFlag.number}}

pit-crew.opponent-flag-meatball-behind

The car in your class one place behind you on the same lap 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 car directly behind in the standings has the meatball flag and will be coming in for repairs.

Hear it: Harness → Opponent Flags → Behind: meatball. In-sim: the car one place behind you is shown the meatball flag during a race.

Pools
opponent-flags/meatball-behind

pit-crew.opponent-flag-meatball-track-ahead

A car less than about ten seconds ahead of you on the road, of any class or lap and not in the pits, is shown the meatball flag in a race, between the green and the checkered flag.

Trigger
opponentFlag.flagged
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 car the driver is closing on along the track has the meatball flag — a damaged car that could be slow, so a safety-weighted warning.

Hear it: Harness → Opponent Flags → Track ahead: meatball. In-sim: close in on a car ahead on the road that is showing the meatball flag.

Pools
opponent-flags/meatball-track

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