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, Driver & Chat Management, and — on Elgato Stream Deck — Car Selection.

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

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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>.

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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>.

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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).

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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].

  • Method: Chat command
  • 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.

  • Method: Chat command
  • 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>.

  • Method: Chat command
  • 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.

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

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

  • Method: Chat command
  • 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>.

  • Method: Chat command
  • 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>.

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

Required. Supports template variables.


Elgato Stream Deck only. Turns a key into a self-populating car button for a race-control car selector. It auto-fills with one car from the live session and, when pressed, remembers that car as the shared admin target and switches to your per-car commands profile. Combine it with the bundled iRaceDeck Car Selector selector profile and any command mode set to the Selected Car target (see Shared settings) so a whole page of admin commands acts on the car you picked — instead of hand-building a page per car number. The selection is per-session: when a new session starts (car numbers reshuffle), a stale selection is voided rather than silently pointing at a different driver.

This mode sends no iRacing command itself; it’s navigation plus shared state.

  • Method: Navigation (stores the admin target, switches profile) — no iRacing command
  • Dial: No rotation support (keypad only)
  • Default binding: No keyboard binding
  • Telemetry-aware icon: Yes — shows the car’s number big and centered (fixed size, fits 3-digit numbers) with the driver’s last name below, updating as the field changes. An empty slot (fewer cars than keys) shows a blank black key.

The field is sorted by car number (pace car and spectators excluded), then fills your Select Car keys left-to-right, top-to-bottom. Place any number of keys anywhere on the page — corners included, mixed freely with other actions — and every page of a multi-page selector may hold a different number of car keys. Nothing is reserved: the Back-to-profile and Previous/Next page keys in the bundled profile are ordinary keys that simply aren’t Select Car keys.

On a multi-page selector, the plugin learns how many car keys each page holds as you visit the pages. Profile switches always land on the first page and page navigation moves one page at a time, so the counts are known by the time you reach a later page. If a later page briefly shows blank keys (for example right after a plugin restart mid-browse), step back to the first page once and the field fills in.

0-based page number for this key. Leave at 0 for a single-page selector; on a multi-page selector, set it to the page each key lives on so the cars stay in order across pages.

The bundled profile to switch to after a car is picked, chosen from the profiles available for this device. Leaving it unset uses the bundled iRaceDeck Race Admin Per Car profile for this device.

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

  • 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 followed by 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.
  • Selected Car (Elgato only) — Targets whichever car was last picked with a Select Car button (the shared admin target). The button shows the selected car’s number, or NO CAR when nothing is selected. This is the target you put on a per-car commands page so every command acts on the car chosen in the selector.

Driver-management modes refuse non-user targets

Section titled “Driver-management modes refuse non-user targets”

Grant Admin, Revoke Admin, Enable Chat (Driver), Mute Driver, and Remove Driver manage users, not cars — and iRacing applies them to you when the target isn’t a real user, which can revoke your own admin and end your session. So these five modes refuse to send when the resolved target is an AI car, the pace car, or a car number that isn’t in the current session: the key flashes a warning and nothing is sent. Revoke Admin additionally refuses your own car — revoking your own admin can end the session you’re hosting, and it’s an easy slip with the Use Viewed Car or Selected Car targets. Race-control commands (Black Flag, EOL, DQ, Clear Penalties, Wave Around) are car-targeted and still work against AI cars. The Type in Chat target bypasses these checks — you type the number yourself and submit manually.

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

Run race control on one car at a time (Elgato Stream Deck only):

  1. Switch your Stream Deck to the bundled iRaceDeck Car Selector profile — from the Stream Deck Profiles section in any action’s settings, or with a Switch Profile key. The Stream Deck app asks to install the profile the first time you switch to it.
  2. The selector fills its keys with the cars in the session, sorted by car number — one big car number per key with the driver’s name below. Use the page keys to reach larger fields. Press the car you need to act on.
  3. Your Stream Deck switches to the iRaceDeck Race Admin Per Car profile, where every command key — black flag, end-of-line, disqualify, clear penalties, wave around, and the rest — uses the Selected Car target and acts on the car you picked.
  4. When you’re done with that car, the profile’s back key (a Switch Profile key set to Back to previous) returns you to the car selector to pick the next one.