This page is generated from the code, and a test fails when the two drift apart, so it matches the release it documents.
60 variables, 31 conditions and 11 cases.
Variables
A variable resolves at fire time to one clip, or to a pool it picks a take from — a number, a name, a line chosen by the sim's state. Write it as {{name}}, or as { "var": "name" }. A variable that resolves to nothing aborts the callout unless the step sits inside an optional.
{{caution.followCarNumber}}
The car number you line up behind under caution, spoken from the car-number group exactly as the sim spells it — "09" and "9" are different clips. Null while the pace car is the only thing ahead of you, and while the field carries no readable lineup, so branch on caution.followsPaceCar before naming it. Nothing to say is common rather than exceptional here, so keep the number in an optional clause with the words that introduce it: a null var in a required step aborts the whole callout, silently and at debug level, and the driver hears nothing at all. Where the callout must still say SOMETHING without the number — one lap to green, above all — branch on caution.hasFollowCarNumber and give the other branch a numberless wording.
Used by: pit-crew.caution-field-caught, pit-crew.caution-follow, pit-crew.caution-lineup-changed, pit-crew.caution-one-to-go
{{caution.racePosition}}
Your race position at the moment the call is spoken, from the canonical live running order — the number your display shows, in your class in a multi-class race — spoken from the position-number group, which stops at 64; a position past that is null, since there is no clip to say it with. This is what the position call on the last caution lap speaks. It is not your place in the restart lineup (caution.restartPosition): a lapped car lined up ahead of you is behind you in the race, and the two differ by exactly those cars. Null while the order cannot be read. Keep it in an optional clause with the words that introduce it: a null var in a required step aborts the whole callout, silently and at debug level. In the position call that clause IS the whole callout, and there that is right — a position call with no position has nothing true to say.
Used by: pit-crew.caution-position
{{caution.restartPosition}}
Your place in the restart LINEUP, spoken from the position-number group, which stops at 64 — a position past that is null, since there is no clip to say it with. Counted off the pace rows rather than the running order — that is what iRacing lines the field up by — and null whenever the rows carry no absolute position, which happens whenever session info cannot name the pace car. This is NOT the race position: a lapped car lined up ahead of you is behind you in the race, so a spoken "P" belongs to caution.racePosition, which is what the reference position call uses. Keep it in an optional clause with the words that introduce it: a null var in a required step aborts the whole callout, silently and at debug level.
Used by: no entry in the reference voice — available to a pack all the same
{{cornerName.clip}}
The name of the corner the driver is approaching, drawn from the corner-names group (one clip per corner, named by its slug — corner-names/eau-rouge, corner-names/turn-5). Nothing when the voice has no clip for that corner, which skips the callout rather than half-saying it.
Used by: pit-crew.corner-name-approaching
{{gap.decimal}}
The tenths of the live gap, 0–9, drawn from the lap-time-decimal group (lap-time-decimal/6 is "point six seconds"). Read live at speak time; nothing when gap.readoutIntro has nothing.
Used by: pit-crew.gap-threshold, pit-crew.gap-trend
{{gap.line}}
The trend line for the gap that just changed, drawn from the gap group by side and direction: gap/ahead-closing, gap/ahead-opening, gap/behind-closing, gap/behind-opening. A complete sentence on its own.
Used by: pit-crew.gap-trend
{{gap.readoutIntro}}
The lead-in of the live gap readout ("Gap is"), from gap/readout-intro. Resolves only when the gap can be read at speak time — under a minute, on the same lap, and still to the car the line named — and gap.second and gap.decimal resolve on exactly the same test, so the three are spoken together or not at all.
Used by: pit-crew.gap-threshold, pit-crew.gap-trend
{{gap.second}}
The whole seconds of the live gap, 0–59, drawn from the lap-time-second group (lap-time-second/1 is "one"). Read live at speak time; nothing when gap.readoutIntro has nothing.
Used by: pit-crew.gap-threshold, pit-crew.gap-trend
{{gap.thresholdLine}}
The line for a gap that just dropped under the driver's alert threshold, drawn from the gap group by side: gap/threshold-ahead (we have caught the car ahead) or gap/threshold-behind (the car behind is right with us). A complete sentence on its own.
Used by: pit-crew.gap-threshold
{{incident.points}}
The penalty points the incident cost, as the sim scored it, spoken as a whole clause from the incidents group (incidents/points-2 is "That cost us two penalty points."). Nothing for a light contact worth no points, or for a count the voice has no clip for — a whole clause, so a script may make it optional and the type line still stands on its own.
Used by: pit-crew.incident-collision-car, pit-crew.incident-collision-world, pit-crew.incident-contact-car, pit-crew.incident-contact-world
{{lapTime.decimal}}
The tenths of a second (0 to 9), spoken as "point N seconds" — the clip that ends the readout. Draws from the lap-time-decimal clip group.
Used by: pit-crew.lap-time-best
{{lapTime.intro}}
The opening line of the lap-time readout: first-good-lap on the driver's first valid lap of the session, best-lap-yet on every later improvement. Draws from the lap-time-intro clip group.
Used by: pit-crew.lap-time-best
{{lapTime.minute}}
The whole-minute part of the lap time, as one clip per minute value; nothing for a lap under a minute. Draws from the lap-time-minute clip group — a minute the voice has no clip for aborts the readout.
Used by: pit-crew.lap-time-best
{{lapTime.second}}
The whole-second part of the lap time (0 to 59), one clip per value with a trailing comma. Draws from the lap-time-second clip group.
Used by: pit-crew.lap-time-best
{{opponentFlag.carNumber}}
The flagged car's number, spoken from the car-number group exactly as the sim spells it — "09" and "9" are different clips, and the car-number clips already say "car", so car-number/42 is "car forty-two". Resolves on the ahead and behind lines, never on the aggregate. Part of the sentence: a car the session cannot number, or a number the voice has no clip for, skips the whole line rather than leaving a gap — so a line that must be spoken regardless keeps a wording without it.
Used by: pit-crew.opponent-flag-black-ahead, pit-crew.opponent-flag-black-behind, pit-crew.opponent-flag-disqualify-ahead, pit-crew.opponent-flag-disqualify-behind, pit-crew.opponent-flag-furled-ahead, pit-crew.opponent-flag-furled-behind, pit-crew.opponent-flag-meatball-ahead, pit-crew.opponent-flag-meatball-behind
{{opponentFlag.number}}
The flagged car's race position as a spoken number, drawn from the position-number group (position-number/4 is "P4"). Read live at speak time — class position in a multi-class race — and falling back to the position the event carried. Kept for packs scripted against 3.3.0; the bundled pack names the car with opponentFlag.carNumber instead. Part of the sentence, so a number that cannot be resolved skips the whole line rather than leaving a gap.
Used by: no entry in the reference voice — available to a pack all the same
{{opponentPit.number}}
The pitting car's race position as a spoken number, drawn from the position-number group (position-number/4 is "P4"). Read live at speak time — class position in a multi-class race — and falling back to the position the event carried. Part of the sentence, so a number that cannot be resolved skips the whole line rather than leaving a gap.
Used by: pit-crew.opponent-pit-nearby
{{overtake.lost.comeOn}}
The "Come on, <name>." opener of the lost-position line, a full clip per driver name from the position-overtake-come-on group (position-overtake-come-on/driver is the generic fallback). A complete sentence on its own, so the bundled script makes it optional: a voice without the chosen name's clip skips it and the line still plays.
Used by: pit-crew.overtake-lost
{{pitSpeed.limitIntro}}
The lead-in to the spoken pit-speed limit ("The pit speed limit is"), from the session-start/pit-speed-intro clip. Nothing to say before iRacing has reported the session, so keep it in one optional clause with the number and the unit.
Used by: pit-crew.no-limiter-entry
{{pitSpeed.limitNumber}}
The pit-speed limit as a number, from the session-start-speed-numbers/<limit> clip. The group covers the limits iRacing actually uses rather than every number, so a limit the voice has no clip for empties the clause instead of rounding to a wrong one.
Used by: pit-crew.no-limiter-entry
{{pitSpeed.limitUnit}}
The pit-speed limit's unit, sentence-final, from the pit-limiter/unit-kmh or pit-limiter/unit-mph clip — recorded apart from the session brief's unit clips, which end on a comma because a temperature follows them there.
Used by: pit-crew.no-limiter-entry
{{position.intro}}
The lead-in of a position readout, chosen by what the lap did: position-intro-better/that-puts-us-to for a gain (or a first fix) in qualifying, position-intro-worse/currently for a loss, a held place, or any lap in a race, where standings do not follow from lap times. A fragment of the sentence — keep it required before position.number.
Used by: pit-crew.position-change
{{position.number}}
The driver's position as a spoken number, drawn from the position-number group (position-number/4 is "P4"): the position the lap just completed left the driver in during qualifying, and the live position at the moment it is spoken during a race — class position in a multi-class session either way. The point of the readout, so a script keeps it required.
Used by: pit-crew.position-change
{{position.pole}}
The self-contained pole line, position-intro-pole/that-puts-us-on-pole ("That puts us on pole.") — a complete sentence that replaces the intro and the number when the lap put the driver on pole in qualifying.
Used by: pit-crew.position-change
{{positionReadout.intro}}
The "We're currently" lead-in of a position readout, from position-intro-worse/currently. Resolves to nothing for a second readout within 30 seconds of the last one that moved at most one place — the number is then spoken bare — so the bundled script wraps it in an optional clause; a script that wants the lead-in every time drops the optional. Resolving it also records this readout for the next one's decision, so name it at most once per entry.
Used by: pit-crew.overtake-gained-position, pit-crew.overtake-lost-position
{{positionReadout.number}}
The driver's current race position as a spoken number, drawn from the position-number group (position-number/4 is "P4"), read live at the moment it is spoken — class position in a multi-class race. The whole point of the readout, so a script keeps it required.
Used by: pit-crew.overtake-gained-position, pit-crew.overtake-lost-position
{{raceEnd.greeting}}
The driver's name as a race-end greeting, one clip per name the voice recorded (the generic driver clip when no name is picked). Draws from the race-end-greeting clip group — a name the voice lacks resolves to nothing, so keep it optional.
Used by: pit-crew.race-end
{{raceEnd.podiumThird}}
The whole third-place line — we made the podium. Draws the podium-third line from the race-end clip group.
Used by: pit-crew.race-end
{{raceEnd.position}}
The final position as a spoken number — the class position in a multi-class race, the overall position otherwise. Draws from the position-number clip group; a position the voice has no clip for aborts the readout.
Used by: pit-crew.race-end
{{raceEnd.raceOverResultIs}}
The lead-in of the fourth-or-worse readout — the race is over, the final result for us is. A fragment of a sentence: the position number must follow it. Draws the race-over-result-is line from the race-end clip group.
Used by: pit-crew.race-end
{{raceEnd.secondPlace}}
The whole second-place line. Draws the second-place line from the race-end clip group.
Used by: pit-crew.race-end
{{raceEnd.weWon}}
The whole winning line — we won, well done. Draws the we-won line from the race-end clip group.
Used by: pit-crew.race-end
{{raceStart.airTempNumber}}
The air temperature as a whole number in the driver's display unit, Celsius or Fahrenheit alike. Draws from the numbers-degrees clip group, whose lines carry the word degrees themselves and are recorded for -20 to 176 (below zero named minus1 to minus20); a reading the voice has no clip for aborts the clause it sits in.
Used by: pit-crew.race-start
{{raceStart.degreesUnit}}
Optional: the temperature unit's name alone, per the driver's display setting — composes after a numbers-degrees figure, which already says the word degrees, to make "twenty eight degrees, Celsius". Draws session-start/unit-celsius or session-start/unit-fahrenheit. The reference voice records neither and its script does not use it; a pack records both to have its engineer say the unit.
Used by: no entry in the reference voice — available to a pack all the same
{{raceStart.greeting}}
The race-start greeting with the driver's name — "time to race, <name>" as one clip per name the voice recorded (the generic driver clip when no name is picked). Draws from the race-start-greeting clip group; a name the voice lacks resolves to nothing, so keep it optional.
Used by: pit-crew.race-start
{{raceStart.position}}
The grid position as a spoken number. Draws from the position-number clip group; a position the voice has no clip for resolves to nothing and aborts the clause it sits in.
Used by: pit-crew.race-start
{{raceStart.trackTempNumber}}
The track temperature as a whole number in the driver's display unit, Celsius or Fahrenheit alike. Draws from the numbers-degrees clip group, whose lines carry the word degrees themselves and are recorded for -20 to 176 (below zero named minus1 to minus20); a reading the voice has no clip for aborts the clause it sits in.
Used by: pit-crew.race-start
{{raceStart.wetness}}
The track wetness state as a word — dry, mostly dry, very lightly wet, lightly wet, moderately wet, very wet or extremely wet. Draws the wetness-<state> lines from the session-start clip group.
Used by: pit-crew.race-start
{{raceStatus.intro}}
The lead-in of a non-leader status update — "we're currently". Draws the currently line from the position-intro-worse clip group, shared with the position callout.
Used by: pit-crew.race-status
{{raceStatus.number}}
The driver's live position as a spoken number — the class position in a multi-class race, the overall position otherwise. Draws from the position-number clip group; a position the voice has no clip for aborts the readout.
Used by: pit-crew.race-status
{{raceStatus.stillLeading}}
The leader's whole status line — still leading the race, or still leading our class in a multi-class race. Draws the still-leading and still-leading-class lines from the race-status clip group.
Used by: pit-crew.race-status
{{readout.degreesUnit}}
Optional: the temperature unit's name alone, per the driver's display setting — composes after a numbers-degrees figure, which already says the word degrees, to make "twenty eight degrees, Celsius". Draws session-start/unit-celsius or session-start/unit-fahrenheit. The reference voice records neither and its script does not use it; a pack records both to have its engineer say the unit.
Used by: no entry in the reference voice — available to a pack all the same
{{readout.fuelDecimal}}
The tenths digit of that fuel figure together with its unit, recorded as one line ("point four liters.") — drawn from the numbers-fuel-decimal clip group, liters-0 to liters-9 and gallons-0 to gallons-9.
Used by: pit-crew.readout-fuel-average, pit-crew.readout-fuel-last-lap
{{readout.fuelNumber}}
The whole-number part of the fuel figure a Session Info key asked for, after rounding to a tenth, in the driver's display unit — drawn from the numbers-fuel clip group (0 to 120); a figure the voice has no clip for silences the callout.
Used by: pit-crew.readout-fuel-average, pit-crew.readout-fuel-last-lap
{{readout.laps}}
How many clean laps an average fuel readout covers — the laps actually averaged, fewer than the key's setting early in a stint — drawn from the readout-laps clip group (1 to 20), recorded as "lap," for one and "five laps," above.
Used by: pit-crew.readout-fuel-average
{{readout.tempNumber}}
The temperature a Session Info key asked for, track or air, as a whole number in the driver's display unit — drawn from the numbers-degrees clip group the session-start brief speaks, whose lines carry the word degrees and cover -20 to 176.
Used by: pit-crew.readout-air-temp, pit-crew.readout-track-temp
{{sessionStart.airTempNumber}}
The air temperature as a whole number in the driver's display unit, Celsius or Fahrenheit alike. Draws from the numbers-degrees clip group, whose lines carry the word degrees themselves and are recorded for -20 to 176 (below zero named minus1 to minus20); a reading the voice has no clip for aborts the clause it sits in.
Used by: pit-crew.session-start
{{sessionStart.degreesUnit}}
Optional: the temperature unit's name alone, per the driver's display setting — composes after a numbers-degrees figure, which already says the word degrees, to make "twenty eight degrees, Celsius". Draws session-start/unit-celsius or session-start/unit-fahrenheit. The reference voice records neither and its script does not use it; a pack records both to have its engineer say the unit.
Used by: no entry in the reference voice — available to a pack all the same
{{sessionStart.greeting}}
The session-start greeting with the driver's name — "ok, <name>" as one clip per name the voice recorded. Draws from the session-start-greeting clip group; a name the voice lacks resolves to nothing, so keep it optional.
Used by: pit-crew.session-start
{{sessionStart.sessionLine}}
The line naming the session that just started — practice or qualifying (race is the race-start callout's). Draws the session-practice and session-qualifying lines from the session-start clip group.
Used by: pit-crew.session-start
{{sessionStart.speedNumber}}
The pit speed limit as a whole number in the driver's speed unit. Draws from the session-start-speed-numbers clip group, which covers the limits iRacing uses; a limit with no clip resolves to nothing and aborts the clause it sits in.
Used by: pit-crew.session-start
{{sessionStart.speedUnit}}
The speed unit word after the pit speed limit — kilometers per hour or miles per hour, per the driver's display setting. Draws the speed-unit-kmh and speed-unit-mph lines from the session-start clip group.
Used by: pit-crew.session-start
{{sessionStart.trackTempNumber}}
The track temperature as a whole number in the driver's display unit, Celsius or Fahrenheit alike. Draws from the numbers-degrees clip group, whose lines carry the word degrees themselves and are recorded for -20 to 176 (below zero named minus1 to minus20); a reading the voice has no clip for aborts the clause it sits in.
Used by: pit-crew.session-start
{{sessionStart.wetness}}
The track wetness state as a word — dry, mostly dry, very lightly wet, lightly wet, moderately wet, very wet or extremely wet. Draws the wetness-<state> lines from the session-start clip group.
Used by: pit-crew.session-start
{{spotterClip}}
The spotter call for the car-presence change that just happened, drawn from the spotter group: "Car left", "Two cars right", "Three wide", the combined swaps ("Clear right, car left"), the 2-to-1 de-escalation, "Clear", and the still-there reminders — inside/outside terms on an oval. Chosen by the spotter engine per transition and read when it fires, so it is the whole call.
Used by: pit-crew.spotter-call, pit-crew.spotter-info
{{tireWear.heaviestTread}}
The remaining tread on the most-worn tire from the tire-wear report as a whole percent — the lowest of all twelve zone readings, rounded — spoken by the numbers-percent clip group, whose lines carry the word percent themselves, and nothing outside that report.
Used by: no entry in the reference voice — available to a pack all the same
{{tireWear.leftFrontTread}}
The left-front tire's remaining tread from the tire-wear report as a whole percent — the lowest of its three zones, rounded — spoken by the numbers-percent clip group, whose lines carry the word percent themselves, and nothing outside that report.
Used by: pit-crew.tire-wear-report
{{tireWear.leftRearTread}}
The left-rear tire's remaining tread from the tire-wear report as a whole percent — the lowest of its three zones, rounded — spoken by the numbers-percent clip group, whose lines carry the word percent themselves, and nothing outside that report.
Used by: pit-crew.tire-wear-report
{{tireWear.rightFrontTread}}
The right-front tire's remaining tread from the tire-wear report as a whole percent — the lowest of its three zones, rounded — spoken by the numbers-percent clip group, whose lines carry the word percent themselves, and nothing outside that report.
Used by: pit-crew.tire-wear-report
{{tireWear.rightRearTread}}
The right-rear tire's remaining tread from the tire-wear report as a whole percent — the lowest of its three zones, rounded — spoken by the numbers-percent clip group, whose lines carry the word percent themselves, and nothing outside that report.
Used by: pit-crew.tire-wear-report
Conditions
A condition answers yes or no at fire time. Write it in an if step — { "if": "name", "then": [ … ], "else": [ … ] } — and negate it with a single leading !. That ! is the only operator the format has.
caution.followsPaceCar
There is nobody ahead of you in your own line, so the pace car is the only thing in front. True for the leader and for the outside front car on a double-file restart; the condition to ask before naming a car number.
Used by: pit-crew.caution-field-caught, pit-crew.caution-follow, pit-crew.caution-lineup-changed, pit-crew.caution-one-to-go
caution.hasFollowCarNumber
The car ahead of you in your line can be named — caution.followCarNumber would resolve. False while the pace car is the only thing ahead (ask caution.followsPaceCar for that), while the field carries no readable lineup, and when the session cannot spell the car's number. The condition to branch on when a callout must still speak without the number: the one-lap-to-green call says a plain "One lap to green." in the other branch rather than nothing, because an optional clause alone expands to an empty callout and the driver hears no warning at all.
Used by: pit-crew.caution-follow, pit-crew.caution-lineup-changed, pit-crew.caution-one-to-go
caution.isDoubleFile
The field is lined up in two columns rather than one. iRacing re-forms the field double file on the tick before the one-to-go flag when the restart is a double-file one.
Used by: no entry in the reference voice — available to a pack all the same
caution.isLeader
You would restart first. Not the same as having only the pace car ahead of you, which is true of both front cars on a double-file restart — that is caution.followsPaceCar.
Used by: pit-crew.caution-one-to-go
flag.furledStillShown
The furled black flag is still being shown (a pure read — the engine already asks this at speak time and marks the raise as announced when the call plays).
Used by: no entry in the reference voice — available to a pack all the same
flag.furledWithdrawn
An announced furled flag has been withdrawn and nothing worse took its place (a pure read — the engine already asks this at speak time and consumes the announcement when the call plays).
Used by: no entry in the reference voice — available to a pack all the same
lapTime.hasMinuteComponent
The lap is a minute or longer, so the minute word is spoken before the seconds. A pack may drop the minute with optional for a terse register; the assumed minute only holds where it is 1.
Used by: pit-crew.lap-time-best
limiter.stillEngagedOffPitRoad
The car has a pit limiter and it is still engaged out on the track, according to live telemetry when the line comes to speak — about a second and a half after leaving pit road. The engine already asks this at speak time (it is the warning's own gate), so wrapping the body in it changes nothing; it is here for a pack that wants the warning silent on its own terms. False on a car without a limiter or when telemetry is unavailable.
Used by: no entry in the reference voice — available to a pack all the same
limiter.stillMissingOnPitRoad
The car has a pit limiter and it is still NOT engaged on pit road, according to live telemetry when the line comes to speak — a couple of seconds after the pit-entry reminder. The engine already asks this at speak time (it is the warning's own gate), so wrapping the body in it changes nothing; it is here for a pack that wants the warning silent on its own terms. False on a car without a limiter or when telemetry is unavailable.
Used by: no entry in the reference voice — available to a pack all the same
pitStatus.stillBadAngle
The car is still at a bad angle in the pit box according to live telemetry, or telemetry is unavailable. The engine already asks this at speak time — it is the nag's own gate — so wrapping a nag's body in it changes nothing; it is here for a pack that wants a nag silent on its own terms. Unknown telemetry counts as still wrong, never as fixed.
Used by: no entry in the reference voice — available to a pack all the same
pitStatus.stillTooFarBack
The car is still too far back in the pit box according to live telemetry, or telemetry is unavailable. The engine already asks this at speak time — it is the nag's own gate — so wrapping a nag's body in it changes nothing; it is here for a pack that wants a nag silent on its own terms. Unknown telemetry counts as still wrong, never as fixed.
Used by: no entry in the reference voice — available to a pack all the same
pitStatus.stillTooFarForward
The car is still too far forward in the pit box according to live telemetry, or telemetry is unavailable. The engine already asks this at speak time — it is the nag's own gate — so wrapping a nag's body in it changes nothing; it is here for a pack that wants a nag silent on its own terms. Unknown telemetry counts as still wrong, never as fixed.
Used by: no entry in the reference voice — available to a pack all the same
pitStatus.stillTooFarLeft
The car is still too far left in the pit box according to live telemetry, or telemetry is unavailable. The engine already asks this at speak time — it is the nag's own gate — so wrapping a nag's body in it changes nothing; it is here for a pack that wants a nag silent on its own terms. Unknown telemetry counts as still wrong, never as fixed.
Used by: no entry in the reference voice — available to a pack all the same
pitStatus.stillTooFarRight
The car is still too far right in the pit box according to live telemetry, or telemetry is unavailable. The engine already asks this at speak time — it is the nag's own gate — so wrapping a nag's body in it changes nothing; it is here for a pack that wants a nag silent on its own terms. Unknown telemetry counts as still wrong, never as fixed.
Used by: no entry in the reference voice — available to a pack all the same
qualifying.tailIsSpeakable
The qualifying session is lap-limited and the laps-left count is known, so a laps-left tail can follow the invalidated line. False in time-limited qualifying, where a lap count means nothing.
Used by: pit-crew.qualifying-invalidation-lap-invalidated
raceStart.wetnessKnown
iRacing has reported the track wetness. The brief waits up to ten seconds after a session change for it; false when it still has not, so say the conditions are unknown. Put only the wetness clause under it.
Used by: pit-crew.race-start
raceStatus.isLeading
The driver is leading at speak time — first overall, or first in class in a multi-class race. The bundled script speaks the still-leading line instead of the position readout when this holds.
Used by: pit-crew.race-status
readback.fastRepairQueued
The car is damaged, the series offers fast repair, and fast repair is queued. False on a clean car, so nothing is said about repairs then.
Used by: pit-crew.pit-readback-entry, pit-crew.pit-readback-exit
readback.fastRepairSkipped
The car is damaged, the series offers fast repair, and fast repair is NOT queued — worth warning the driver about. False on a clean car, so nothing is said about repairs then.
Used by: pit-crew.pit-readback-entry, pit-crew.pit-readback-exit
readback.fuelQueued
Fuel is queued for the stop.
Used by: pit-crew.pit-readback-entry, pit-crew.pit-readback-exit
readback.hasAnyService
At least one service is queued: fuel, any tire, a compound change, fast repair on a damaged car in a series that offers it, or a windshield clean. When false the bundled script plays the empty-fallback line alone instead of a string of negatives.
Used by: pit-crew.pit-readback-entry, pit-crew.pit-readback-exit
readback.isFirstEntry
This is the initial pit-lane entry, not a mid-lane refire after the driver changed the queue — the carrier sentence (the opener) is worth speaking only once.
Used by: pit-crew.pit-readback-entry
readback.limiterReminderDue
The car has a pit limiter and it is not engaged on the initial pit-lane entry, so a reminder is due before the readback. Never true on a mid-lane refire, on the exit readback, or on a car without a limiter.
Used by: pit-crew.pit-readback-entry
readback.windshieldQueued
A windshield clean is queued. Only the positive is ever worth speaking: open-wheel cars have no windshield and telemetry cannot tell, so there is no negative line.
Used by: pit-crew.pit-readback-entry, pit-crew.pit-readback-exit
session.isPractice
The current session is a practice session.
Used by: no entry in the reference voice — available to a pack all the same
session.isQualifying
The current session is a qualifying session (open or lone).
Used by: no entry in the reference voice — available to a pack all the same
session.isRace
The current session is a race session (anything that is not practice or qualifying).
Used by: no entry in the reference voice — available to a pack all the same
sessionStart.wetnessKnown
iRacing has reported the track wetness. The brief waits up to ten seconds after a session change for it; false when it still has not, so say the conditions are unknown. Put only the wetness clause under it.
Used by: pit-crew.session-start
setupWarning.qualifyingMismatch
The session is qualifying and the loaded setup's name looks like a race setup, per the driver's setup-name patterns — worth a double-check-your-setup nudge. Never true in practice, and false when the warning is switched off or no pattern matches.
Used by: pit-crew.session-start
setupWarning.raceMismatch
The loaded setup's name looks like a qualifying setup at the start of a race, per the driver's setup-name patterns — worth a double-check-your-setup nudge. False when the warning is switched off or no pattern matches.
Used by: pit-crew.race-start
tireWear.hasWear
At least one tire in the tire-wear report reads below one hundred percent as a whole number, so a heaviest-wear sentence names real wear rather than a tie-break between untouched tires.
Used by: pit-crew.tire-wear-report