Skip to content

Race Admin

Quick access to iRacing session admin chat commands from your Stream Deck. Designed for league race directors and hosted session admins who need to issue commands like !yellow, !black, !pitclose, and more without typing them manually. Every mode sends its command through the iRacing SDK chat API — no keyboard bindings, no telemetry awareness.

Every command that accepts an optional [message] parameter supports template variables, so you can include live data like lap number, session time, or track name in the messages you send.

Select the mode from the Mode dropdown in the Property Inspector. The dropdown is grouped by Race Control, Session Management, and Driver & Chat Management.

Throw a caution flag — sends !yellow [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

Optional caution message (supports template variables).


Issue a penalty — sends !black <driver> [time/laps/D]. Black Flag supports three penalty types.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.

  • Time (default) — Penalty duration in seconds (e.g., 30)
  • Laps — Number of laps to serve (e.g., 2)
  • Drive-Through — Drive-through penalty (D)

Disqualify a driver without removing them — sends !dq <driver> [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.

Optional disqualification message (supports template variables).


Display disqualifications for the entire field — sends !showdqs.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Display disqualifications for a specific driver — sends !showdqs <driver>.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.


Clear all penalties for a driver — sends !clear <driver> [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.

Optional explanation (supports template variables).


Clear all penalties for the entire field — sends !clearall.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Wave a car to the next lap and the end of the pace line — sends !waveby <driver> [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.

Optional explanation (supports template variables).


Move a driver to the end of the pace line — sends !eol <driver> [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.

Optional explanation (supports template variables).


Close pit entrances during green flag running — sends !pitclose.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Open pit entrances during green flag running — sends !pitopen.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Add, subtract, or set pace laps until green — sends !pacelaps <+n|-n|n>.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • + (default) — Add the given number of pace laps
  • — Subtract the given number of pace laps
  • = — Set the absolute pace lap count

The number of laps passed with the operation.


Switch to single-file restart rules — sends !restart single.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Switch to double-file restart rules — sends !restart double.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Advance to the next session (e.g., qualify to grid) — sends !advance [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

Optional message to broadcast with the session change (supports template variables).


Disable auto-race start for a number of minutes — sends !gridset [minutes] (max 10 minutes).

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

Number of minutes to delay. iRacing caps this at 10.


Initiate the pace car or standing start sequence — sends !gridstart.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Set the track usage percentage for the next session — sends !trackstate [percent].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

Track usage percent from 0 to 100, or -1 to carry the current state forward.


Grant admin privileges to a driver — sends !admin <driver> [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.

Optional message (supports template variables).


Revoke admin privileges from a driver — sends !nadmin <driver> [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.

Optional message (supports template variables).


Permanently remove a driver from the session — sends !remove <driver> [message].

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.

Optional removal message (supports template variables).


Re-enable chat for all drivers — sends !chat.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Re-enable chat for a specific driver — sends !chat <driver>.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.


Disable chat for all non-admin drivers — sends !nchat.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No
  • No additional settings

Mute a specific driver — sends !nchat <driver>.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

See Shared settings below — this mode needs a driver.


Send a message to every participant, bypassing chat disables — sends /all <message>.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

Required. Supports template variables.


Send a message visible only to administrators — sends /rc <message>.

  • Dial: No rotation support
  • Default binding: No keyboard binding
  • Telemetry-aware icon: No

Required. Supports template variables.

Every mode that accepts a <driver> parameter shares a single targeting setting with three options:

  • Type in Chat (default) — One-tap “open chat with the right command pre-filled, let me type the number myself”. The action opens iRacing chat, pastes the command prefix (e.g. !clear , with a trailing space), and stops — it does not press Enter. You type the car number off the standings sheet and press Enter to submit. Useful for league admins who handle a different driver each lap and don’t want to pre-bind a specific number.
  • Use Viewed Car — The action reads the car number of the car currently being followed in the replay / broadcast view at send time. View a car and press the button; the command targets that car.
  • Specific Car Number — Selecting this reveals a number input. The same car number is used on every press, regardless of which car is being viewed, and is also rendered on the button icon so you can tell which car the button targets.

Every [message] parameter supports template variables, so you can include live telemetry or session data in the messages you send. Examples:

!advance Race starting in {{session.time_remaining}}
!yellow Caution for incident on lap {{self.lap}}
/all Welcome to {{track.short_name}}!

Issue a black flag:

  1. Set the mode to Black Flag Driver with your desired penalty type
  2. View the offending car in the replay / broadcast
  3. Press the button — the command targets the viewed car automatically

Throw a yellow with a message:

  1. Set the mode to Throw Yellow Flag
  2. Enter a message like Caution for debris
  3. Press the button when you need the caution

Quick pit control:

  1. Set up two buttons: one for Close Pit Entrance, one for Open Pit Entrance
  2. Press to toggle pit status during green flag racing