# Message Variables Reference

## Overview

Variables are placeholders wrapped in curly braces that are substituted with live iRacing data when a button is pressed. They can be used in any message field and in the Speak Text field.

If a variable is used in a message but has no current value, the entire message line is suppressed (or replaced by the fallback message if one is configured).

## Your Car

<table id="bkmrk-variabledescription%7B"><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td>`{CAR#}`</td><td>Your car number</td></tr><tr><td>`{CARTYPE}`</td><td>Your car model / type</td></tr><tr><td>`{CARLAP}`</td><td>Your current lap (with decimal fraction)</td></tr><tr><td>`{DRIVER}`</td><td>Your driver name</td></tr><tr><td>`{FLAG}`</td><td>Current flag colour (e.g. Green, Yellow, Red, Black, Checkered)</td></tr></tbody></table>

## Crash Variables

Available only when a crash is currently active (within the crash timeout window).

<table id="bkmrk-variabledescription%7B-1"><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td>`{CRASHCAR}`</td><td>Car number of the crashed car</td></tr><tr><td>`{CRASHNAME}`</td><td>Driver name of the crashed car</td></tr><tr><td>`{CRASHDIR}`</td><td>Relative direction of the crash (Ahead / Behind / Left / Right)</td></tr><tr><td>`{CRASHLAP}`</td><td>Lap number at which the crash occurred</td></tr></tbody></table>

## Incident Variables

Available only when an incident is currently active (within the incident timeout window).

<table id="bkmrk-variabledescription%7B-2"><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td>`{INCCAR}`</td><td>Car number involved in the incident</td></tr><tr><td>`{INCNAME}`</td><td>Driver name involved in the incident</td></tr><tr><td>`{INCDIR}`</td><td>Relative direction of the incident</td></tr><tr><td>`{INCLAP}`</td><td>Lap number at which the incident occurred</td></tr></tbody></table>

## Cars Around You

<table id="bkmrk-variabledescription%7B-3"><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td>`{CARAHEAD}` / `{CARAHEAD1}`</td><td>Car number of the 1st car ahead</td></tr><tr><td>`{CARAHEAD2}`</td><td>Car number of the 2nd car ahead</td></tr><tr><td>`{CARAHEAD3}`</td><td>Car number of the 3rd car ahead</td></tr><tr><td>`{NAMEAHEAD}` / `{NAMEAHEAD1}`</td><td>Driver name of the 1st car ahead</td></tr><tr><td>`{NAMEAHEAD2}`</td><td>Driver name of the 2nd car ahead</td></tr><tr><td>`{NAMEAHEAD3}`</td><td>Driver name of the 3rd car ahead</td></tr><tr><td>`{CARBEHIND}` / `{CARBEHIND1}`</td><td>Car number of the 1st car behind</td></tr><tr><td>`{CARBEHIND2}`</td><td>Car number of the 2nd car behind</td></tr><tr><td>`{CARBEHIND3}`</td><td>Car number of the 3rd car behind</td></tr><tr><td>`{NAMEBEHIND}` / `{NAMEBEHIND1}`</td><td>Driver name of the 1st car behind</td></tr><tr><td>`{NAMEBEHIND2}`</td><td>Driver name of the 2nd car behind</td></tr><tr><td>`{NAMEBEHIND3}`</td><td>Driver name of the 3rd car behind</td></tr><tr><td>`{CLOSECAR1}`</td><td>Closest car number (any direction)</td></tr><tr><td>`{CLOSECAR2}`</td><td>2nd closest car number</td></tr><tr><td>`{CLOSECAR3}`</td><td>3rd closest car number</td></tr><tr><td>`{CLOSENAME1}`</td><td>Closest driver name (any direction)</td></tr><tr><td>`{CLOSENAME2}`</td><td>2nd closest driver name</td></tr><tr><td>`{CLOSENAME3}`</td><td>3rd closest driver name</td></tr><tr><td>`{GAPHEAD}` / `{GAPHEAD1}`</td><td>Gap in seconds to 1st car ahead</td></tr><tr><td>`{GAPHEAD2}`</td><td>Gap in seconds to 2nd car ahead</td></tr><tr><td>`{GAPHEAD3}`</td><td>Gap in seconds to 3rd car ahead</td></tr><tr><td>`{GAPBEHIND}` / `{GAPBEHIND1}`</td><td>Gap in seconds to 1st car behind</td></tr><tr><td>`{GAPBEHIND2}`</td><td>Gap in seconds to 2nd car behind</td></tr><tr><td>`{GAPBEHIND3}`</td><td>Gap in seconds to 3rd car behind</td></tr><tr><td>`{TOPX}`</td><td>Comma-separated list of top X race leaders by position (e.g. #3, #11, #27)</td></tr></tbody></table>

## Timing Controls

<table id="bkmrk-variabledescription%7B-4"><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td>`{PAUSE:N}`</td><td>Insert a pause of N milliseconds between message segments</td></tr></tbody></table>

## Skip Marker — ~

Enter `~` (tilde) alone in a message slot to skip that slot entirely. No keystrokes are sent.

## Conditional Statements

iReporter supports a simplified conditional syntax that lets you include or suppress parts of a message based on live race data. The syntax uses parentheses rather than curly braces, keeping it visually distinct from variables.

For full documentation including AND / OR compound conditions, examples, and the current supported condition types, see the dedicated page:

[**Using Conditionals in Messages →**](https://books.speedtech.co.nz/books/ireporter/page/using-conditional-statements-in-messages)