Changelog
Release notes for each version of iRaceDeck. The newest release is listed first. For installation help, see the installation guide; to grab the latest build, head to the downloads page.
2026-10-28
Features
- iRaceDeck can now switch your Stream Deck to a profile of your choosing whenever the session type changes, and back to the profile it was on when iRacing closes: turn on Automatically switch to profile on the Settings window’s Profiles tab and pick a bundled profile for a test drive, practice, qualifying, the race or a saved replay. Three new profiles to start from ship with it, iRaceDeck Test, iRaceDeck Qualifying and iRaceDeck Race, yours to edit in the Stream Deck app, and a manual switch mid-session is left alone until the next session type. Elgato Stream Deck only. See Stream Deck Profiles.
- The Stream Deck + now gets every bundled iRaceDeck profile, where the Settings window’s Switch button used to do nothing on it. The Profiles tab now lists only the profiles the Stream Deck you pick has, and says so when iRaceDeck has no ready-made profiles for it yet, as on the Mini, the Neo and the Galleon 100 SD. See Stream Deck Profiles.
- Audio Controls and AI Spotter Controls volume keys get the paired +/− key styles the setup actions have, so an up and a down key side by side read as one volume control, and holding a key in any style but Legacy keeps stepping. Race Engineer and Radar keys show their live level, or OFF while the feature is switched off; iRacing reports no master, voice chat or spotter volume, so those keys show a big + or − with a one-word label. New keys start on Split and existing keys keep their look. See Audio Controls and AI Spotter Controls.
- Audio Controls and AI Spotter Controls now play a short tick on every volume step, higher going up and lower going down, so you can count steps by ear: the Spotter, Master and Voice Chat keys and dial tick at your Radar volume for every press sent to a running iRacing, and Race Engineer and Radar steps tick at the level they set, and a press that changes nothing at 0 or 100 makes no tick. See Audio Controls.
- A new bundled iRaceDeck Practice profile gives practice sessions a layout of their own, alongside Default, Replay, Car Selector and Race Admin Per Car. Installing it never moves you off the profile you are on, and a Switch Profile key pointing at it shows its own icon. See Stream Deck Profiles.
- Car Control Starter keys now flash while you crank: the START badge flashes slowly at first and then faster for as long as you hold the key, and turns green the moment the engine catches. See Car Control.
- The Replay Control dial has two new Modes, Cars by Number and Cars by Position: turning moves the replay camera to the next car by car number or by race position, as on the Camera Controls dial, with the car on screen and the cars either side of it on the dial’s display, and on a Stream Deck+ a long press takes the camera back to your own car. See Replay Control.
- The Force Feedback dial, on a Stream Deck+ or a Mirabox knob, can now show iRacing’s FFB Strength instead of the max force in Nm: set the new Show as option to Strength while the dial’s Mode is FFB Force. See Force Feedback.
- Replay Markers has a new Add / Delete Marker mode: one key that shows and does Delete Marker while a marker is within its Delete Window and Add Marker otherwise, switching its icon as the replay plays; once the key shows Delete after you add a marker, a press undoes it. See Replay Markers.
- A new Wipers and Visor mode for Car Control puts the visor and the windshield wipers on one key that follows the car you are in: in an open-cockpit car a press tears off the visor, and in a car with a windshield a tap wipes once and a long press turns the wipers on or off (or the other way round, with the Wipers on tap setting), using the key bindings you already have. See Car Control.
Improvements
- The bundled iRaceDeck Test, Practice, Qualifying and Race Stream Deck profiles now ship fuller layouts made for their session type. A profile you have already installed keeps your version. See Stream Deck Profiles.
- Replay Markers Delete Marker keys and the marker dial now have a Delete Window setting, 1 to 60 seconds (10 by default, as before), for how far from a marker a delete reaches, and a Delete Marker key now turns grey whenever a press would delete nothing. See Replay Markers.
- Replay Control keys now handle a replay jump the way the dial does: a camera key pressed while a jump is landing switches the camera once it has landed and no longer stops a marker jump or a jump from iRaceDeck’s replay record, and a speed press held behind a jump shows as the speed it is waiting to set, never as a speed that was not sent; a Jump to Fastest Lap or Jump to Race Start search also stops shortly after you leave the replay instead of running until it gives up. See Replay Control.
Bug Fixes
- Fuel Service Add Fuel and Reduce Fuel keys, and the dial in Add Amount mode, now change the fuel request on every press in cars that fuel in whole gallons, such as the Global MX-5 Cup. A small amount like 1 L used to be rounded straight back by iRacing, so the press did nothing; now the request is stepped until it moves, and iRaceDeck remembers each car’s step so later presses land at once. See Fuel Service.
- Chat-based keys, such as the Tire Service tire selection, no longer stop working after a key bound to a Ctrl+Alt combination like Toggle Driving Line or Trigger Windshield Wipers.
- When Windows cannot load iRaceDeck’s iRacing or audio component (for example after an antivirus quarantines it), keys now show iRacing as not running instead of made-up telemetry, and every Property Inspector shows a banner saying what to do. See Troubleshooting.
- The Race Engineer no longer finishes the limiter dropped warning after you have left pit road: a warning not yet spoken stays silent, and one already being spoken is cut short with a quick “never mind” and the radio click.
- Camera Controls keys and dials, and the Car Selector’s car keys, pressed while a replay jump is landing now switch the camera once it has landed instead of being lost, and a camera key pressed while Jump to Fastest Lap or Jump to Race Start is searching the replay now puts the replay back where it was, at the speed it had, before switching, instead of leaving it paused partway through the search. See Camera Controls and Replay Control.
- Jump to Fastest Lap now remembers the lap start its replay search finds, so the next press for that lap is a single jump instead of another search, and it no longer logs a warning on every press; Jump to Race Start’s search now finds where the pole car really starts lap 1, and lands five seconds before it takes the line. See Replay Control.
2026-10-19
Bug Fixes
- Cars whose iRacing session data repeats an entry, such as the Euro NASCAR car, no longer break Camera Controls and every other feature that reads session info, and no longer push the plugin’s CPU use up while you drive them.
2026-10-18
Features
- Replay Control now works on a Stream Deck+ dial and a Mirabox knob. A press plays or pauses, resuming at the speed the replay last played at, and on a Stream Deck+ a long press goes back to 1x, or jumps the camera to your own car in Track Order; turning does what the dial’s Mode says: Speed Control steps the replay speed along a ladder of speeds you choose, from fast rewind through pause to fast forward; Frame Jog steps the replay one frame per detent to find the exact frame of a contact; Lap, Session and Incident step through the laps of the car you are watching, the sessions and the incidents, a whole turn being one jump where iRaceDeck recorded the laps or sessions; and Track Order moves the camera to the car ahead or behind on track. See Replay Control.
- The Race Engineer now talks you through a rolling-start formation. As the pace car pulls away he names the car you form up behind and, on an oval running double file, your lane: “Pace car’s rolling. Inside line, behind car …”. On a formation of two pace laps the last one is called as “One lap to green” with the car and lane again, and he tells you if the car ahead of you changes. The three calls are switchable under Race Engineer Callouts → Rolling Start; One lap to green is the former One pace lap to go switch from Flags, moved and renamed with your setting kept. See Pit Crew.
- Session Info has a new Tire Temperatures item: the temperatures your tires came off the last run with, all four on one key or one tire’s outside, middle and inside zones, colored by a temperature window you set in °C or °F. It is a pit-stop reading, not a live gauge, because iRacing only updates tire temperatures when the car comes in. See Session Info.
- Under a full-course caution the Race Engineer now tells you when you have dropped back from the car you line up behind: “Close it up. Catch car …”. He judges your gap against how tightly the rest of the field is running, not against a fixed distance, and reminds you up to twice, thirty seconds apart, while you are not closing it. He stays quiet while the caution is still waving, on pit road, and while you are being sent round on a wave-around. Two new switches, Catch the car ahead and Catch-up reminders, are under Race Engineer Callouts → Caution, both on by default. See Pit Crew.
- A new Replay jump playback setting chooses what the replay does after Replay Control’s Jump to Fastest Lap and Jump to Race Start and Replay Markers’ Previous / Next Marker, keys and dial: Remember state carries on at the speed the replay had before the press, Play always plays at normal speed, and Stopped always pauses on the new spot. Remember state is the default, so a paused replay now stays paused after a jump, where Jump to Fastest Lap used to start playing every time. See Settings.
- Replay Control has a new Jump to Race Start mode: one press takes a race replay to five seconds before the race start, with the camera left on the car you were watching, and the replay then carries on as the Replay jump playback setting says. It jumps straight to the green from a record iRaceDeck keeps while the session is live, and for a replay it did not record it uses the pole car’s first lap instead. The jump is also a press option on the Replay Control dial. See Replay Control.
- Template expressions have a new
empty()function for showing a fallback when a value is missing:{{= empty(race_ahead.position) ? '--' : 'P' + race_ahead.position }}shows--while nobody is ahead of you, where the expression used to go blank. It counts a missing variable and empty text as empty, but not0. See Template Variables. - Replay Control and Replay Markers keys and dials now show what became of a press: dots going round while the replay jumps or searches, three still dots while the press waits for another jump to land, and a red cross for a second when it could not be done. See Replay Control.
- The Settings window has a new Support iRaceDeck tab: what iRaceDeck costs to keep going, a Buy Me a Coffee button for anyone who wants to chip in, and ways to help that cost nothing. iRaceDeck stays free, and nothing else in the plugin points you at the tab. See Settings.
Improvements
- Replay Control’s Next / Previous Lap and Next / Previous Session keys now jump straight to the frame iRaceDeck recorded while the session was live, a second before the car you are watching takes the line or just inside the session, and then follow the Replay jump playback setting; where there is no record they use iRacing’s own search, as before. iRaceDeck also now records when each session starts and every incident. See Replay Control.
- The audio output device now stays open for as long as iRacing runs with the Race Engineer or the Radar on, instead of being opened for each burst of callouts and closed five seconds after the last one. A race could open it dozens of times, each one initialising the audio driver; now it opens once, when iRacing launches. With iRacing closed the device is still open only while a sound plays, so the PC can sleep. See Settings.
- Camera Controls’ Switch by Car Number and Switch by Position keys now show the car they switch to, the car number in its box or the position as
P3, instead of a fixed00or#. A row of them can be told apart without typing each number into the title, and the key follows the setting as soon as you change it. Their default titles now readSWITCH TO CARandSWITCH TO POS. See Camera Controls. - Telemetry Control’s Take Snapshot now also records what iRaceDeck itself had worked out at that moment (your fuel use per lap and laps of fuel left, the race order and gaps it was tracking, the caution state, what the Race Engineer was saying or had queued, and your iRaceDeck settings), which makes a snapshot taken the moment iRaceDeck says, shows or does something wrong the file to attach to your report; see Telemetry Control for what the files contain about you.
- The website’s Download page now shows a way to support iRaceDeck under the download buttons, as the homepage does, and both mention the iRaceDeck Supporter membership and its Discord role.
Bug Fixes
- The plugin no longer freezes when the Windows default output device changes while one of its sounds is playing or has just played. Naming the plugin’s entry in the Volume Mixer could lock up against Windows moving the audio to the new device, after which no key responded until the deck host was restarted.
- A Replay Control key or dial input made while the replay is still jumping or searching, such as during a Replay Markers jump, a fast Frame Jog spin or a Next Lap, Next Session or Next Incident search, no longer throws the replay thousands of frames to another place: it now acts once the replay has landed, and pressing again during a search acts at once. See Replay Control.
- The PC can go to sleep again after the Windows default output device was changed while one of the plugin’s sounds was playing. With SteelSeries Sonar the plugin could leave an audio stream open afterwards, which kept Windows awake until the deck host was restarted, and every such change used up a little more memory.
- The Race Engineer no longer makes gap calls such as “We’ve caught the car ahead.” or gives the every-3-laps race status while a full-course caution is out, where gaps open and close behind the pace car for reasons that are not pace and the order is frozen. The race status also skips the lap that ends the caution, and the first lap after the restart is treated like the opening lap of the race, so the closing-in and pulling-away calls return on the third lap under green. See Pit Crew.
- The
{{session.time_remaining}}template variable now shows hours once an hour or more is left, as Session Info’s Time / Laps Remaining key does: two hours read2:00:00where the variable used to read120:00, and nothing changes below an hour. An expression that compares or cuts up that text sees the new form too; for math, usetelemetry.SessionTimeRemain. See Template Variables. - Session Info keys now use much less CPU and memory in a race, most noticeably in a large field with a key on iRating Gain/Loss. Each key worked out its value on every telemetry update, about 60 times a second, even though it only refreshes ten times a second (on iRating Gain/Loss that meant re-running the whole estimate each time); it now does that work only when it refreshes. Incident and flag flashes still start the moment they happen. See Session Info.
- Camera Controls’ Switch by Car Number key can now switch to a car whose number has leading zeros, such as
07or007. The key ignored the zeros, so one set to07could only reach car7;07and7are now different cars, and a key already set to a number with leading zeros now switches to that car. See Camera Controls. - Replay Control’s Jump to Fastest Lap now finds the lap of a car that left the session before the end of the recording, and no longer gives up on a recording longer than about an hour; a search that cannot find its lap puts the replay back where it was instead of leaving it at the end of the tape. See Jump to Fastest Lap.
- Keys still set up with the older Replay Navigation, Replay Speed and Replay Transport actions, which Replay Control replaced, now stop a running Jump to Fastest Lap the way Replay Control’s own keys do, instead of fighting it for the replay. A Replay Markers jump straight after one of them also measures from where the replay now is, not from the marker it was last headed to. See Replay Control.
- In a timed race, the Race Engineer no longer announces that you are closing on a car when, at your current rate, you would only catch it after the chequered flag. He now judges the laps left by whichever limit ends the race first, counting the white-flag and chequered laps still run after the clock reaches zero. Before, a lap limit won whenever the race had one, even when the clock would end the race long before it, and once the clock ran out, the last laps fell back to the lap limit or to no limit at all.
- Jumping around a replay no longer looks like a return to the car for a moment. iRacing briefly reports the replay as closed after every jump, and that was enough for the Race Engineer to call a flag or a pit-lane entry from the replay, for Session Info to flash an incident, and for Jump to Fastest Lap to refuse a press made right after a jump. A saved replay now never counts as live, even while paused or scrubbed, and leaving a replay takes effect about a second after you return to the car.
- The website’s icon gallery no longer shows unfilled placeholder text on Replay Control’s Speed Display key.
2026-10-05
Features
- Replay Markers now works on a Stream Deck+ dial and a Mirabox knob. Turn it in the replay to jump to the next marker clockwise or the previous one counter-clockwise — a fast spin walks as many markers as you turn and stops at the first or last — and press it to add a marker, from the car or in the replay, with its own Seconds Back. On a Stream Deck+ a long press deletes the marker you are on, and holding past the threshold shows which marker will go before you let go; on a Mirabox knob, set the press to Delete Marker to delete instead. The dial’s screen shows how many markers the session has, which one is playing (
2 / 5), arrows for the directions a turn can jump, and from the car a reminder of what a press adds. See Replay Markers. - New Race Engineer driver names: Matthias, Brandon, Zoltán, Robin, Manfred, Liam, Ade, Chip, Elias, Andris, Yeray, and Jimmy.
- iRaceDeck can now show what it is spending CPU on. Capture CPU profile on the Settings window’s Diagnostics tab, or a key set to Telemetry Control’s new Capture CPU Profile mode for use mid-race, records 30 seconds of the plugin’s work into two files you can attach to a report, and the plugin log now warns, with the figures, when iRaceDeck’s own CPU use stays high for three minutes. See If iRaceDeck uses a lot of CPU.
Improvements
- The Default (Terse) voice is now called Default (Short callouts), a name that says what you get without needing the word “terse”. Only the name changes: if it is your selected voice it stays selected, and an installed copy picks up the new name when it updates itself at the next plugin start. See Race Engineer Voices.
- Installing or updating a voice pack no longer loads the whole download into memory, so an install stays light on a running plugin whatever the pack’s size, and voice packs of up to 2 GB can now be installed. See Race Engineer Voices.
Bug Fixes
- The Race Engineer’s session-start and race-start briefs are no longer lost when iRacing is slow to report the track conditions after a session change, which could silence the qualifying and race briefs of a weekend. He now waits up to 10 seconds for the conditions, then speaks with whatever is known: a missing temperature is left out, and a missing track wetness becomes “Track conditions are still unknown.” See Pit Crew.
- The Test button beside Background volume in the Settings window now plays the selected voice’s own radio frame, so a voice pack with its own beeps previews those beeps rather than iRaceDeck’s. A voice that defines no radio frame still previews the built-in beeps and pit ambience. See Settings.
- Telemetry Control’s Take Snapshot report no longer prints lap times of a minute or more with an extra zero: a 1:08.985 lap now reads
1:08.985instead of1:008.985, a time a hair under a whole minute no longer reads:60, and a lap-time counter past an hour now shows hours. See Telemetry Control. - The Race Engineer no longer loses incident, damage and lap-invalidation calls just because the spotter is calling a car alongside or another call is playing: they now wait their turn and play as soon as the radio is free. After a crash he reports the incident before the damage (in a crash that brings out a full-course caution, the caution calls can come in between, or the incident call can be skipped as too late), and he skips the damage call if the car has been repaired by then. Calls that pile up in a busy moment, such as a crash bringing out a full-course caution, now wait their turn instead of crowding each other out, and a call that would come too late to still be news is skipped. See Pit Crew.
- The Race Engineer no longer announces an opponent’s pit stop a second time as the car drives out of its pit box. When a car took more than about 30 seconds from pit entry to leaving its box, its line, such as “The car behind is pitting.” or “The leader is pitting.”, used to play again on the way out.
- The Race Engineer no longer says the car ahead is pulling away lap after lap while the gap holds or shrinks. His “closing in” and “pulling away” calls now follow how the gap changes from one lap to the next at the same point on the track, so a rival who is only quicker down the straights no longer counts as escaping. As a result they wait for a full racing lap with the same car ahead or behind, so the first one can come on lap 3. See Pit Crew.
- When iRacing runs as Administrator and iRaceDeck does not, pressing a key while iRacing is behind another window no longer holds up iRaceDeck for a second or sends a stray Alt key to the window in front. iRaceDeck now stops trying to bring iRacing forward once it has detected the mismatch, since Windows will not allow it (View Adjustment’s Mouse to Sim still tries, as that is what the key is for); run both at the same privilege level to get your actions working. See Focus iRacing Window.
- An Audio Controls key or dial set up with a combination its settings never offer, such as Master with Mute or Mute a Driver, now shows the warning triangle instead of looking like a working control. An imported or hand-edited profile can carry such a combination. A key like that used to show a working-looking icon, often the Push to Talk microphone, and a dial’s press was still described in the Stream Deck app. Opening a key’s or a dial’s settings also no longer changes a setting that only the other surface uses. See Audio Controls.
- The Race Engineer no longer says “Change” under a full-course caution for the car he has just named, and no longer cuts off the two-to-green or one-to-go call to repeat it.
- On Ulanzi decks, a newly placed key now works as set up from its very first press. Settings iRaceDeck saves for a key by itself were ignored until the key was next shown, after a page change or a restart, so until then a new key acted like one created by an old version: a new Tire Service key on Toggle Tires, for example, flipped each tire instead of using its default Select configured tires behavior. See Tire Service.
- The Race Engineer no longer announces penalty flags on cars you are not racing. Opponent flags are now called only for a car in your class and on your lap, up to three places ahead of you or directly behind, and within a new Opponent flag range (s) setting (1 to 10 seconds, 3 by default) under Opponent Flags in the Settings window. Cars in the pits are never called, nothing is called while you are in the pits, and a car with several flags gets one call, for the worst. He names the car by its number (“Car 42 ahead has a slowdown penalty.”), calls a furled black flag a slowdown penalty, and waits for a black flag to stay up for three seconds before calling it. The “car ahead on track” calls about any nearby car are gone, and the Furled black flag (warning) checkbox is now Slowdown (furled black flag). See Pit Crew.
- The Default voice now pronounces non-English corner names the way a local would, as the Default (Short callouts) voice already did: Brünnchen, Südkurve and Château d’Eau instead of an English reading of “Bruennchen”, “Suedkurve” and “Chateaou d’Eau”, and Italian, French, German, Dutch, Spanish and Portuguese names in their own language. An installed copy of the voice picks up the new recordings when it updates itself at the next plugin start. See Pit Crew.
- The Race Engineer now says “Done. Go.” after a pit stop with nothing to do, such as every service unticked or auto-fuel clearing the fuel request on the way in. Such a stop used to end in silence, sometimes right after “Pit stop in progress.”, leaving you waiting in the box for a release that never came. “Pit stop in progress.” is no longer said for a stop with nothing to do.
- Keys showing live values, such as
{{self.position}}in a Chat key’s text, a Telemetry Display key or a key title, now use much less CPU and memory, most noticeably in a large field. Chat keys no longer cost more the more of them are on your deck, which could add up to a quarter of a CPU core. Every such key now reads only the values it shows, instead of every driver, telemetry and session value, and refreshes at most ten times a second. See Chat.
Maintenance
- Race Engineer debug logs now say which car an opponent-flag call was about and why, and why a flagged car was left unannounced.
- If the plugin ever stops responding, its log now records where it got stuck, and a switch of the Windows audio output device is logged too, so a rare freeze can be diagnosed from the log alone.
2026-09-29
Features
- New Replay Markers action for bookmarking moments of a session. Press Add Marker right after something happens — the marker lands a few seconds earlier, 5 by default and set per key, so it catches the lead-up — then, in the replay, Previous Marker or Next Marker jumps straight there — the key greys out while there is no marker to jump to — and Delete Marker removes the nearest one. Markers are saved per session, so they are still there when you open the saved replay days later; offline sessions keep them only until you leave (thanks @moartl31 for the request). See Replay Markers.
- A second Race Engineer voice, Default (Terse): the Default engineer in radio shorthand. Once a session is running his calls are shorter, most of them the fact itself — “Blue flag.”, “Too far left.”, “Leader’s pitting.” — while the greetings and the session-start briefing keep a friendlier tone. It makes every callout Default makes. It is not installed automatically: install it from Available to Download in the Voice Packs card on the Settings window’s Race Engineer tab, and from then on it updates itself at plugin start whenever a newer version is published (thanks @projektdotnet). See Race Engineer Voices.
- The sixteen dial actions can now be placed on a Mirabox knob: each draws its live readout on the screen above the knob, drawn for that screen rather than scaled from the Stream Deck+ strip, with the same colour settings. A knob has turn and push only — the Stream Dock software gives plugins no long press, push + turn or screen touch — so on Mirabox the dial settings offer the Push slot and hide the rest; everything those slots do can be put on Push. Audio Controls’ Push to Talk stays Stream Deck+ only, because a knob never reports when you let go. See Dials.
- Session Info keys can now speak: with the new Speak value on press setting (on by default), pressing a Session Info key has the Race Engineer read out the value it shows, for when you can’t see the deck. It starts with Fuel set to Used last lap or Average per lap — early in a stint the average names the laps it actually covers, and before your first clean lap he tells you there’s no figure yet — and two new Session Info items, Track Temperature and Air Temperature, which show and speak the value in your iRacing display units. More items will follow (thanks @projektdotnet42 for the request). See Session Info.
Improvements
- The Template Variables page now lists what the numbers behind twelve coded telemetry variables mean, such as
{{telemetry.SessionState}},{{telemetry.SessionFlags}}and{{telemetry.EngineWarnings}}, and shows how to test a single flag inside a bitfield. That makes a key title that blanks itself after the checkered flag a one-line expression:SessionStatereads5or6once the leader has finished, so a key can show--instead of the last number from the race (thanks @arbishop11 for the request). See Template Variables. - Show black box on Fuel Service and Setup Chassis now works when a black box is bound to a SimHub role instead of a key. The two presses then go out one after the other, so the box used to prime may flash briefly before the one you want opens; with keyboard bindings it opens as before. See Fuel Service.
- When iRaceDeck cannot use its settings file — after a hand edit left a stray comma in it, say — a red banner in the Settings window and in every Property Inspector now tells you so, instead of your settings silently changing. It names the line and column of the mistake, says your settings were replaced with the copy your deck software keeps, and names the file your version was set aside as, so you can fix it and put it back. A settings file saved as UTF-16, as Windows PowerShell’s
Out-Filedoes, is now read instead of being set aside. See Settings. - The Race Engineer Voice dropdown now names iRaceDeck’s own voices iRaceDeck: Default and iRaceDeck: Default (Terse) and lists them above every other voice pack, whatever the others are called. A pack counts as iRaceDeck’s when iRaceDeck installed it from its own catalog. See Race Engineer Voices.
- The Settings window’s Race Engineer tab has a Voice Packs card of its own, and each installed pack now shows the voices it provides alongside its version and where it came from — so packs that share a name are easy to tell apart, and long pack names no longer squeeze into a narrow column. See Settings.
- AI Spotter Controls’ spotter silence key now says what it does: the mode is called Skip Spotter Call and the key reads SKIP CALL / SPOTTER, because it stops the call playing right now rather than muting the spotter — iRacing has no permanent spotter mute. On a Stream Deck+ dial, the Audio Controls Spotter press is now Skip Spotter Call too, in place of Mute / Unmute, and dials already set to Mute / Unmute carry over on their own. See AI Spotter Controls and Audio Controls.
- The Windows Volume Mixer now lists iRaceDeck’s audio as iRaceDeck, with its logo, instead of Node, so its volume is easy to find there.
Bug Fixes
- Session Info’s Position item no longer keeps changing after you take the checkered flag. It now shows your official finishing position and holds it, instead of following cars that finish behind you and pass you on the cool-down lap, or switching again as you drive into the pits. See Session Info.
- The Race Engineer no longer announces your finishing position a lap early when you cross the line just ahead of the leader as they take the checkered flag. Your race now ends at the first crossing you make with the flag already out.
- Replay Control’s Jump to Fastest Lap no longer leaves the replay frozen. When iRaceDeck was running while the lap was driven, it now jumps straight to that lap — also in the saved replay opened later — landing just before the car takes the line and playing from there. Without that record it searches the replay as before, and the search now ends playing the lap instead of stuck (thanks @jameslangevin for reporting). See Replay Control.
- Show black box on Fuel Service and Setup Chassis no longer fails to open a key-bound box when Lap Timing is bound to a SimHub role: it now primes with another key-bound box when one exists.
- The Race Engineer no longer announces heavy contact with another car for an incident iRacing scored as an off-track. He now checks the kind of incident against how far your incident count actually moved, so a light car contact followed a moment later by an off-track is called as the one-point off-track it was. Light contact, which costs no points, is no longer announced at all. See Pit Crew.
- The
{{session.time_remaining}}template variable is now blank in a session with no time limit instead of showing10080:00— the same way{{session.laps_remaining}}is blank in a session with no lap limit — and shows0:00once a timed race’s clock has run out, where it used to go blank, the way Session Info’s Time / Laps Remaining key shows zero. See Template Variables. - The Race Engineer no longer says the pace car is coming in, peeling off or gone when iRacing holds the green before a rolling start or restart. That flag goes up several seconds before the pace car actually leaves the track, so those lines now only warn that the green is coming, and “Pace car’s off.” plays when the pace car actually leaves. That call now also plays at an opening rolling start, not only at a caution restart.
- On a car without a pit limiter, the Race Engineer no longer says “Pit entry. Mind the limit.” when your car is placed in its pit stall, for example when you click Drive. The reminder now plays as you head into the pit lane, and stays silent when the car appears in its stall. See Pit Crew.
- Replay Control’s slow-motion speeds now play at the speed you picked. Every one of them used to play one step slower in iRacing, so Set Speed at 1/5x played at 1/6x and 1/16x at 1/17x. The same was true of Slow Motion, Slow Motion Rewind and Increase / Decrease Speed, and the Speed Display key showed 1/5x while iRacing played 1/6x. See Replay Control.
- The Fuel Service dial no longer shows a red
AUTOFUEL: OFFwhile iRacing’s autofuel is on. When autofuel planned no fuel for the next stop, the dial read that as autofuel being off and disagreed with the Toggle Autofuel key and the in-sim black box. It now shows a greenAUTOFUEL: ONwhenever autofuel is on, and theAUTO → <add>readout below it shows how much fuel the next stop will add. See Fuel Service. - On a Stream Deck+ dial, Audio Controls’ missing-key warning is now centered on the touch strip like every other dial’s. The triangle used to sit left of centre and against the bottom edge, over the readout. See Audio Controls.
- Camera Controls’ Cycle by Track Order keys and dial mode now use iRacing’s own Next Car / Previous Car (
V/Shift+V, shared with Replay Control), so in a replay they land on the car really ahead of or behind the one you are watching instead of jumping around the field; the dial’s touch strip now shows only the focused car (thanks @arbishop11). See Camera Controls. - Camera Controls’ Cycle by Car # and Cycle by Race Position dial modes, the Cycle Car key and Replay Control’s Next / Previous Car (Number Order) now reach every car in the session, including cars that have already finished and left. They used to skip those cars, so in a replay after the race you could not focus the cars that had left; now you can flip through the whole field, and the dial’s touch strip previews those cars too. See Camera Controls.
pnpm lint:packnow judgesvoice-pack.jsonby the plugin’s own rules and reports each problem in the plugin’s words — it no longer refuses av-prefixed version the plugin accepts, and it catches an emptyauthoror a label with control characters.
Maintenance
- The Stream Deck plugin now runs on version 3.0 of Elgato’s plugin SDK. Settings kept by the Stream Deck app from an older iRaceDeck still carry over into iRaceDeck’s own settings file on first start, as before.
2026-09-23
Features
- The plugin no longer carries the Default Race Engineer voice inside its own folder — every download is about 8 MB smaller. Instead iRaceDeck installs Default from its catalog the first time the plugin starts, keeps it up to date afterwards, and also updates any other voice you installed from the catalog when a newer version is published. All of it runs quietly in the background — a failed download is retried on its own, more often while the Race Engineer is on — and Default now shows Kept up to date by iRaceDeck in place of a Remove button. If you upgraded from 3.2.0 you already have the voice and nothing is downloaded. See Race Engineer Voices.
- The Race Engineer now talks you through a full-course caution, from the flag to the green. As soon as iRacing settles the order behind the pace car he names the car you line up behind — by its number, spoken the way the sim spells it, so
09and9are never confused. He calls the pace car onto the track; calls “Two to green.” with the car to follow as the pace car gathers the field (on ovals — a road course shows no flag for that moment); reports each extra lap if the caution is extended; calls “One lap to green.” with the car ahead of you and, on an oval forming up double file, the lane you take; reads out your race position — the number your display shows — a third of the way around the last caution lap; calls the pace car peeling off; and calls the restart itself. If the car ahead of you changes mid-caution — somebody pits, or the field re-forms — he tells you that too. Two calls that made no sense under yellow now stay quiet — on the lap that ends the caution too, which you complete a few seconds after the green: a lap behind the pace car announced as your best yet, and the frozen running order read out as though you had lost places. Pit open and pit closed calls are unchanged, because that is exactly what you need to hear under a caution. And “Yellow cleared.” no longer lands a few seconds into the restart — that line is for a local yellow, which ends with no flag shown at all, while a caution now ends with a restart call of its own. All nine new calls are individually switchable under Race Engineer Callouts → Caution. See Pit Crew. - After a pit stop the Race Engineer now tells you how much tread is left on all four tires, front to rear, once you have left pit road and the “To confirm” readback has played: “Tire wear at the pit stop: Left front: ninety-eight percent. Right front: ninety-nine percent. Left rear: ninety-nine percent. Right rear: ninety-nine percent. Wear is heaviest on the left front, inside shoulder.” Each number is the tread on that tire’s most-worn zone — inside shoulder, middle or outside shoulder — rounded to a whole percent and spoken with its unit, and the closing sentence names the tire and zone with the least left, or is left out while every tire still reads one hundred. iRacing only updates tire wear while you are in your pit box, so after a tire change the numbers describe the set that came off: the stint you just drove. It follows only a stop you drove into — never leaving the garage or a tow — in every session type, and has its own switch under Race Engineer Callouts → Pit Service → Tire wear report, on by default. See Pit Crew.
- Camera Controls knows five more camera groups — TV Static, TV Mixed, TV4, Spotter and Spectator — each with its own icon. Pick one for a Change Camera key, or tick it in the Cycle Camera grid on a key or a dial, where the five start unchecked so the cycles you already have stay as they are. Not every track has them: TV Static and TV Mixed are on most, the other three only on some, such as oval and dirt tracks. A Cycle Camera key simply skips a group the session doesn’t have, and a Change Camera key set to one now does nothing there instead of switching to an unrelated camera. See Camera Controls.
- Cycle Camera keys have a new Icon Shows setting. Next camera, the default, keeps showing the group your next press will switch to; Current camera shows the group iRacing is on right now — however the camera got there, and even when that group isn’t one the key cycles through — the way a pit-service key shows its current value. See Camera Controls.
- Session Info’s Time Remaining mode is renamed Time / Laps Remaining, and now lives up to it: in a race counted in laps it shows the laps to go, under the title
LAPS LEFT, instead of readingUNLIMfor the whole race. A timed session still counts the clock down as before, and a race carrying both a lap limit and a time limit shows whichever of the two will end it first. Keys you have already set to this mode keep working and keep their settings. See Session Info. - The Race Engineer now tells you when iRacing’s autofuel is switched on or off, and what your fuel request is left at: “Auto fuel is on. We’re refueling at the next pit stop.”, “Auto fuel is on. We’re not refueling at the next pit stop.”, “Auto fuel is off. The plan is still to refuel during the next pit stop.” or “Auto fuel is off. We’re not refueling at the next pit stop.” That third line matters, because autofuel sets the ordinary fuel request when it decides to fuel, and switching autofuel off leaves it set. You hear the same lines when iRacing switches autofuel on by itself on the pit approach and clears the fuel you queued by hand. And while autofuel is armed, a change to the fuel request is no longer confirmed as though you had asked for it — the sim writes that request itself, so a session with autofuel no longer buries everything else in fuel confirmations. Switchable under Race Engineer Callouts → Pit Service → Autofuel changes. See Pit Crew.
- Audio Controls can now mute a single driver. The Voice Chat mode has a new Mute a Driver action, and a Stream Deck+ dial offers the same thing as a press while its Mode is Voice Chat: it taps iRacing’s own Mute a Driver control, which silences whoever is transmitting on voice chat at that moment and leaves the rest of the channel audible — so one loud or distracting driver no longer costs you everybody else. It ships with iRacing’s default key,
Shift+Ctrl+Alt+D. See Audio Controls. - Holding a Stream Deck+ dial’s button past the long-press threshold now shows you what letting go will do, so you can hold until you see the change and then release instead of holding “long enough” and hoping. Fuel Service previews the fueling toggle, fill to max, the autofuel toggle and the mode switch; Setup Brakes and Setup Traction preview the ABS or TC state you are about to switch to; Setup Chassis previews the spring side. Camera Controls previews the car number a Focus My Car press will jump to. Turning the dial while held cancels the press and the strip reverts at once, and the action still runs only when you let go. Dials whose long-press result cannot be worked out in advance — recentering VR, opening a black box, letting the camera director pick — leave the strip unchanged while you hold, rather than showing you a guess. See Dials.
Improvements
- Focus iRacing on the General tab is now a three-way choice. Always is the default and what it did before; When required brings iRacing forward only before a keyboard binding, a chat command or a touch-strip gesture that taps a binding, so a key that talks to iRacing over its API, a SimHub role or a plugin-only key no longer pulls the sim over whatever you were doing; Never turns it off. Stream Deck+ touch-strip gestures that tap a binding now focus iRacing too. Your existing choice is kept: on becomes Always, off becomes Never. See Focus iRacing Window.
- Tire Service’s Toggle Tires mode now knows which tires your car’s pit crew can change on their own. On a car that only changes a whole side or all four at once, a button asking for a tire the crew cannot change by itself now asks for its whole side, or all four, instead — and the key shows the tires that will actually be changed. On a car that changes a whole side at a time, a fronts or rears button set to Select configured tires used to switch all four on with every press and never off; it now switches them off again too. Your tire choices are kept as they are, so the same button still changes exactly those tires on a car that can change them one at a time. See Tire Service.
- The iRaceDeck Settings window now carries the iRaceDeck mark in its title bar, on the taskbar and in alt-tab, instead of the placeholder globe your browser shows a page with no icon of its own.
- The Black Box Selector’s F9 box is now called Quick Access with a new icon, following iRacing’s 2026 Season 4, which turned that black box into a Quick Access menu. Keys you have already set to it keep working and pick up the new name and icon on their own. See Black Box Selector.
- The Race Engineer’s session-start and race-start briefs now read each temperature as one smooth phrase — “Track temperature is twenty eight degrees, air temperature is twenty degrees” — instead of a number with a separately recorded unit stitched on after it, which never quite joined. The unit is no longer named; the figure still follows iRacing’s Celsius or Fahrenheit display setting. A reading below zero is now spoken too (“minus four degrees”), where before the whole temperature clause was silently left out. See Pit Crew.
- Two voice packs can now each include a voice with the same name: both appear in the Race Engineer Voice dropdown and each plays its own recordings, where before one of them was left out with only a line under Installed Voices to say why. The voice you have selected stays selected. See Race Engineer Voices.
Bug Fixes
- The Race Engineer no longer falls silent on a position or gap readout for the length of the cooldown after an earlier readout was dropped before it could play.
- A pit-service readback that a more urgent call cut off now picks up where it left off in a voice pack that records more than one take of a readback line, instead of starting the readback over. The bundled Default voice records one take per line, so it was never affected.
- The Race Engineer’s Your name list no longer shows a voice pack’s recordings of a name as separate names, such as Niklas-01 beside Niklas. Whichever of them you had picked, every voice that knows your name now says it, in the radio check and the Test button too, and your setting is kept as it is.
- The
{{session.laps_remaining}}template variable no longer renders iRacing’s placeholder number in a session with no lap limit. A Telemetry Display key using it now shows nothing there, the way the other session variables already did.
Breaking changes
- Voice pack authors: the Race Engineer’s temperature figures now come from a
numbers-degreesclip group — one clip per value fromminus20to176, with the word “degrees” recorded in it (“one degree” for1) — instead ofsession-start-temp-numbers. A pack that has not recorded the new group skips the temperature clauses and speaks the rest of the brief. The optional unit word is nowsession-start/unit-celsius/unit-fahrenheit.
Maintenance
- The plugins now install the same
yamlandwsversions they are built and tested with, which clears a moderateyamladvisory in every plugin and a high-severitywsadvisory on Mirabox.
2026-09-06
Features
- Race Engineer voices are now voice packs, living outside the plugin folder in
%LOCALAPPDATA%\iRaceDeck\Race Engineer\Voices— so a voice you install survives every plugin update and reinstall, and all three iRaceDeck plugins share one copy of it. The Race Engineer section of iRaceDeck Settings now lists the voices we publish, and Install fetches and checks one for you: about 8 MB per voice, downloaded only when you choose it, so an extra voice no longer has to ship inside the plugin for you to be able to use it. Downloads run quietly in the background and never put a window in front of you, so starting one mid-session is safe; Update and Remove sit alongside. Installed Voices shows what is loaded and where each pack came from, and lists anything iRaceDeck could not load together with the reason — so a pack sitting in the folder doing nothing tells you why instead of just not turning up. A pack from anywhere else works exactly the same way: drop its folder in and press Rescan voices. Whichever you install, you keep the voice you already had until you pick a different one yourself. See Race Engineer Voices. - A voice pack now decides what the Race Engineer says, not only whose voice says it. Each voice in a pack carries a callout script alongside its recordings, and that script settles the wording of a line, the order its pieces are spoken in, and which callouts the voice makes at all — so a pack can phrase a call its own way, or leave one out, and a callout it leaves out simply stays quiet in that voice without touching any other. What a pack can never change is when a callout fires, or what it is allowed to interrupt: that stays with iRaceDeck, so no pack can have the engineer talk over a flag or nag you more often than he should. A voice that comes without a script is still listed and still selectable, but every callout is skipped in it, and a banner in the Settings window and in every key’s panel names the voice so a quiet engineer is never a mystery. The radio beeps that open and close each line and the pit ambience that runs underneath are now two separate switches under Race Engineer → Radio Frame — Radio beeps and Pit ambience, both on by default — so you can drop either one without losing the other; the Background volume still sets the level of both. See Race Engineer Voices.
- Writing a voice pack of your own is now documented. The new Voice Packs section of the site explains what a pack can change and what it cannot, walks you through a first pack of three callouts — from recording the lines to hearing them play — and spells out the
callouts.jsonformat. Beside it is a reference generated from the plugin itself, so it can never fall behind: every callout the Race Engineer makes and when it fires, every variable, condition and case a script may use and which callouts use it, and the full recording script of the bundled voice — every line, every take. For authors working from a clone of the repo,pnpm lint:packchecks a pack folder and reports everything the plugin would otherwise skip quietly. - New Race Engineer driver names: Juan, Senior, Marty, Viperbiker, Hope, Jack, Jørgen, Jurgen, Jurgmaister, Tony, Marco, Dominik, and Shannon.
Bug Fixes
- In Offline Testing and Lone Practice sessions the green, white and checkered flag callouts now use the practice wording instead of the race one, matching what the engineer already said in an ordinary practice session.
- The Race Engineer’s position readout after an overtake was silent when it followed another readout closely; it speaks the position again — just the “P4”, without the “We’re currently” lead-in, as it was designed to.
2026-09-02
Features
- The Race Engineer now warns you the moment you go over the pit lane speed limit. A short tick repeats for as long as you are over it and stops shortly after you are back at or under it — brief enough to reach you in time to lift, with just enough of a pause that a momentary dip across the limit doesn’t chop the tone into pieces. It sounds on every car, whether or not yours has a pit limiter. Without a limiter it is exact, because you are the one holding the speed; with the limiter engaged it allows about 0.3 km/h first, since the limiter parks you on the limit and there is nothing left for you to do about it — though a limiter car that is genuinely speeding still gets told. Stay over it and the engineer follows the tick with a spoken warning worded for your car: “You are speeding. Slow down.” when there is a limiter to reach for, “Over the limit. Lift.” when there is not. The tick is switched off under Race Engineer Callouts → Pit Speeding and plays at your Radar volume; each spoken line has its own switch beside the limiter reminders below.
- The Race Engineer now keeps an eye on your pit limiter and says something when it needs attention: when you are a couple of seconds down pit road and still have not engaged it, when it drops off again mid-stop, and when you rejoin the circuit with it still on, quietly capping your speed. The first of those waits deliberately: the pit service recap already reminds you as you arrive, so the engineer only escalates if that went unheeded, and each of these re-reads the car when it speaks rather than when the moment began — fix it in the meantime and you hear nothing. Cars with no pit limiter get the other half instead — the pit lane speed limit spoken as you enter, since there is nothing on the car holding you under it and no dashboard cue to glance at. Which car you are in decides which you hear, so you are never told to reach for a button you do not have. All of them are individually switchable under Race Engineer Callouts → Pit Limiter and → No Pit Limiter in the Settings window, on by default.
- A Getting Started page now opens itself the first time you run iRaceDeck: what to do first, which ready-made layout to start from, what the Race Engineer is and how to switch it on, and the one setup mistake — running iRacing and your deck software at different levels — that swallows every command without an error. It is a tab in the Settings window, built into the plugin so it works with no internet connection, and the same page is on the website as First Steps. Upgrading does not count as a first run: an installation that has started up even once before is left alone, and the page never opens while iRacing is running. Three of its steps do something rather than only describe it — one press turns the Race Engineer on and plays a line so you know your audio is working, one opts you in to seeing what changed after an update, and one switches on Focus iRacing window if you happen to have it off.
- Camera Controls has a Cycle by Track Order mode on a key. A press moves the camera to the car physically ahead of or behind the one you are watching — the order you see out of the windscreen rather than the running order, so it takes you straight between the cars involved in an incident even when the timing screen says they are nowhere near each other. Pick Ahead or Behind under Direction, as with the other cycle modes; the camera group and sub-camera you are on are kept, the pace car and cars that have left the world are skipped, and no key binding is needed. It is the keypad counterpart of the dial mode of the same name and behaves identically — including reading live car placement, so scrubbing a replay from inside a live session follows the live field rather than the replay cursor.
Improvements
- Mouse to Sim now lets you choose where your pointer lands in the sim window. Pick a horizontal and a vertical anchor — a corner, an edge or the centre — and nudge it from there with an offset, under Mouse to Sim on the Settings window’s General tab. Leave it alone and the pointer keeps arriving exactly where it always has.
- Splits & Reference’s Reset to Start Point mode can now be held. iRacing acts on both the press and the release of that control: tap the key and the car is restored and running immediately, as before, but hold it and the sim pauses the moment the car is moved back and resumes only when you let go — so you get a beat to settle your hands and pick your moment instead of being dropped straight back into a car already at speed. Nothing needs configuring; a quick press behaves exactly as it did. On a Stream Deck+ dial the same option stays a momentary tap, because a dial press is only recognised once you release it.
- Car Control’s Ignition and Starter keys now report the car’s live state on the icon: green when the ignition is live or the engine is running, red when it isn’t, and gray when there’s no telemetry to read it from. A glance at the deck tells you where the car actually is in the starting procedure, without taking your eyes off the road.
- iRaceDeck no longer opens its release notes in your browser after an update unless you have asked it to. Previously the What’s New page opened by itself after any update that added features; now nothing opens on its own, and the new Getting Started page asks once whether you want it — one press to opt in, or the full choice of every update, feature updates only, once a month, or never on the What’s New tab. This changes the starting point for new installations only: if you have used iRaceDeck before, whatever you had is untouched. The notes themselves have not moved — they ship inside the plugin and are always on that tab.
- Replay Control’s Next Car and Previous Car keys carry a new marker — a double chevron in place of the single triangle — shared with Camera Controls’ new Cycle by Track Order keys, so stepping the camera to the next car along the road looks the same wherever you do it.
Bug Fixes
-
On Ulanzi Deck, a key’s settings panel showed every key binding as unset, even ones that were configured and working. The panel had no way to read them back from UlanziStudio, so it looked like nothing had ever been set — while the Settings window and the plugin itself had them all along. Panels now load the real values, stay in sync with the Settings window both ways, and a binding changed in a panel reaches iRaceDeck instead of being quietly discarded.
-
On Ulanzi Deck, upgrading to 3.0 could start iRaceDeck with empty settings rather than the ones you had configured. iRaceDeck copies your existing settings out of UlanziStudio the first time the new version runs, but that request only got an answer if one of your keys happened to appear within a few seconds of startup — so with no deck plugged in it was never answered at all, and after a few such starts iRaceDeck quietly settled for the empty set. The request is now addressed so UlanziStudio answers it on every start, whether or not a deck is attached. Whether iRaceDeck was still trying to copy your settings across or had already given up on them, this version tries again the next time you start UlanziStudio, and now that the request is answered your settings should come across. If your settings were already replaced before this version — on a machine that reached that point under 3.0 — there is nothing left to bring back and they will need setting up again.
-
On every deck, iRaceDeck no longer overwrites the deck software’s own copy of your settings when it has not managed to read it, and each newer version tries once more instead of giving up for good. If the copy is ever missed — a slow start, or deck software that does not answer — iRaceDeck used to settle for what it had and then replace that copy with it; now it leaves it alone, and the next newer version you install asks again. If that attempt goes unanswered too — or the deck software answers with nothing stored — iRaceDeck simply keeps the settings you already have and waits for the version after it. Most people will never see this: it only matters where the two could not talk to each other on the first few startups.
-
On Mirabox and Ulanzi Deck, iRaceDeck could give up on copying your existing settings across while the deck software was still connecting. Copying has a time limit, and the clock started when iRaceDeck asked — which on these devices is before the connection is open, so the wait for the connection came out of the same allowance and a slow start could run out of time before the deck software ever had the chance to answer. The clock now restarts once the connection is up — and if the connection is taking longer than the whole allowance, iRaceDeck waits one more allowance rather than giving up on it. It still gives up eventually, so deck software that never answers cannot hold up your settings forever. Stream Deck was never affected: its software holds the request until it is connected. Maintenance
-
The website now names every Stream Deck device iRaceDeck runs on. Stream Deck Neo, Stream Deck Studio, Stream Deck + XL, Galleon 100 SD, Stream Deck Mobile and the Virtual Stream Deck are all supported, but the download card and the installation guide listed only the original four models — so owners of the others read that their device was not covered.
2026-08-23
Features
- The Audio Controls dial gains a Spotter mode: turn to raise or lower iRacing’s AI spotter volume (through the same Spotter Louder / Spotter Quieter key bindings as the AI Spotter Controls action, configured once and shared by both), and set the press to Mute / Unmute to tap Spotter Silence.
- The Setup Chassis spring controls now show what you’ve dialed in: the modes are named LR Spring / RR Spring to match iRacing’s pit-stop rows, the Stream Deck+ dial strip and two new View key modes display the pending next-pit-stop spring offset live (in whole millimeters or three-decimal inches — following the sim’s display units, or forced metric/imperial per key and per dial) with lit left/right arrows showing which side you’re editing, the spring keys support the paired +/− key styles, new dial gestures can bring up the Pit Stop black box or switch the dial between the two springs, and every Setup Chassis key gains a Show Black Box option that opens the box the adjusted value lives in (In-Car or Pit Stop) as you press it. Existing spring key bindings and placed keys carry over automatically.
- The Camera Controls dial gains a Cycle by Track Order mode: turn to jump to the car physically ahead of or behind the focused car on the road, regardless of standings — the order you see in front of you, ideal for hopping between the cars involved in an incident while reviewing a replay. It reads live car placement, so scrubbing a replay from inside a live session follows the live field rather than the replay cursor. Clockwise selects the car ahead (Reverse rotation flips it), the pace car and cars that have left the world are skipped, and the touch strip shows the focused car number with the ahead / behind cars previewed on the side each turn lands on.
- View Adjustment gains a Mouse to Sim mode: one press focuses the iRacing window and moves your mouse pointer into it, near the top centre of the sim window where iRacing’s own on-screen UI sits — for VR drivers who can’t see where the pointer wandered off to across their monitors. It moves the pointer without clicking, so it’s safe to hit blind, and it needs no key binding. Also available as a Stream Deck+ dial press or touch gesture.
- New Race Engineer driver names: Carl, Schumi, Craig, Holger, Alexei, Lex, Martin, Ivo, and Rickybobby.
- iRaceDeck gains a dedicated Settings window: click the small iRaceDeck Settings cog button that sits directly under any key’s own settings, and every plugin-wide setting opens in a proper full-size window — key bindings for every action in one searchable table (236 across 25 categories), Appearance defaults, the Race Engineer voice, radar, callout opt-ins and Test buttons, Stream Deck Profiles with a picker for which deck to switch (Stream Deck only), timing tunables, SimHub, the What’s New page preference alongside the release notes themselves — which ship inside the plugin, so they read the same offline, match the window’s dark theme, and open on the version you are actually running, marked Installed, rather than on whatever the website currently says — and Diagnostics. It is served by the plugin itself and opened as a chromeless app window in your Edge or Chrome (falling back to a normal tab if neither is installed), remembers its size and position, closes itself when the deck software shuts down, and works the same on Elgato, Mirabox, and Ulanzi. On the rare machine where it cannot open at all — a firewall blocking the local connection it needs, or no browser accepting the page when iRaceDeck hands it over — every Property Inspector now shows a banner saying which of the two happened, what to try, and where your settings file is, instead of leaving you with a button that does nothing; where the blocked connection also stops Property Inspector edits reaching the plugin, the banner says that too rather than letting key binding changes look saved and quietly do nothing. It clears itself the moment the window opens again. With the window in place those settings are no longer repeated inside every Property Inspector: a key’s panel is about that key now — its own settings, then the button through to everything else, then its per-key title, colour, border and graphic-scale overrides and a single Key Bindings section at the bottom holding just the bindings that action uses. Actions that use no key bindings say so instead of showing an empty section, and the Race Engineer voice, volumes, callout opt-ins and setup-warning patterns have moved off the Pit Crew key’s panel onto the window’s Race Engineer tab. Bindings stay in sync both ways on Stream Deck and Mirabox — change one in the window and an open Property Inspector follows live, and the other way round; on Ulanzi Deck that follows once UlanziStudio’s in-session settings read is confirmed, and until then set bindings from the window. Your plugin-wide settings now live in a file iRaceDeck owns (
%LOCALAPPDATA%\iRaceDeck\Settings\…, shown under Diagnostics with an Open folder button so you can back it up), migrated automatically from the deck software the first time this version starts: window edits and persistence reach the plugin-owned file on all three deck ecosystems, so settings survive plugin updates and reinstalls and no longer depend on the deck software’s own storage, which also fixes settings not persisting at all on Ulanzi Deck. - The Race Engineer and the radar each get a live Enabled toggle in the Settings window plus a separate On startup setting — remember last used, always on, or always off. Ticking Enabled turns the feature on or off there and then, exactly like a Pit Crew toggle key and in sync with it, while On startup only decides what it comes up as next time. Previously the single On startup checkbox did both, silently overriding whatever your Pit Crew key had set mid-session. Upgrading carries your old checkbox over as Always on or Always off, so nothing changes until you pick something else.
- The Settings window’s What’s New tab now tells you when a newer version of iRaceDeck exists. While the window is open it checks the website at most once an hour: if something newer has been released, the tab gets an UPDATE badge and the newer releases appear above yours, marked Not installed, with their full release notes and a link to the downloads page — so you can read what an update contains before taking it. The notes for the version you are running still ship inside the plugin, so the tab reads the same offline; the check adds to that list rather than replacing it, and never changes what the tab shows when it cannot reach the site. Switch it off with Check for new versions on the same tab and iRaceDeck never contacts the website on its own.
Improvements
- iRaceDeck now brings iRacing to the foreground before sending keystrokes out of the box: the Focus iRacing window before sending keys setting is enabled by default on new installations, so key-binding and chat actions are no longer silently swallowed when another window has focus. Existing installations keep whatever setting they already had — to switch it on, tick the box on the Settings window’s General tab.
- Every action’s mode selector in the Property Inspector is now labeled Mode — on keypad and dial alike — instead of the inconsistent Setting, Adjustment, Control, Direction, or Element it used to show (the Car Setup keys and dials, Camera Editor Adjustments, View Adjustment, Cockpit Misc, Car Control, Camera Editor Controls, AI Spotter Controls, Look Direction, and Toggle UI Elements). Purely a label change — nothing else about how these actions work is different.
- Race positions now exist before the green flag. From the moment the grid is set, through the formation and parade laps, the whole field holds its starting grid order instead of showing nothing: the
race_aheadandrace_behindtemplate variables resolve to the cars you line up between, and the Camera Controls dial’s Cycle by Race Position mode can flip through the field from pole backwards while the pace car is still leading them round — exactly when a broadcaster is setting up shots. The order comes from iRacing’s starting grid rather than from how far round the lap each car happens to be, because on a double-file parade lap that would swap every single pair. Drivers still in the garage keep their grid number but are skipped when cycling the camera, and at the green the live running order takes over as usual. - The Settings window is now documented tab by tab on the website, with a screenshot of each: what every control does and when you would change it. Documentation elsewhere that still pointed at the old Common Settings section in a key’s Property Inspector now points at the tab the setting actually lives on.
Bug Fixes
- The Disable buttons when iRacing is not connected option is reachable again: it had no control anywhere in the Property Inspectors, and now sits on the Settings window’s General tab.
- Cycle Sub-Camera now actually switches the camera, on both the keypad mode and the camera dial. iRacing’s camera commands turned out to have no working control over the individual camera within a group, so the mode now triggers the sim’s own Next / Previous Sub Camera controls instead — preconfigured to iRacing’s defaults (
BandShift+B), so it works without setup, and configurable under Related Key Bindings if you have rebound them. The camera focus stays put while the shot changes, so it works with any car, the pace car, or a scenic view focused. - Cycling the camera between cars works again while the field is still on its first lap. The Camera Controls dial’s Cycle by Car # mode, the keypad’s Cycle Car mode, and Replay Control’s Next / Previous Car (Number Order) modes were doing nothing during the formation lap, because a car that had not yet completed a lap was treated as not being on track — so on the pace lap the plugin considered the whole field absent. Cycle by Track Order was never affected.
- The Camera Controls dial’s Cycle by Race Position mode now falls back to iRacing’s own position numbers whenever the plugin’s live running order has nobody ranked — for example after the race finishes, where the mode previously stopped responding.
- The Race Engineer no longer calls a pit-box positioning error only once: while the car sits too far left, right, forward, back, or at a bad angle, a short correction now repeats every couple of seconds — “Still too far forward.”, “Back it up.” — until you’re in the box or iRacing reports a different error, so backing up and stopping short no longer leaves you parked in silence getting no service. The repeats stay quiet while you’re moving the car and pick up again once it comes to rest, over-correcting into a different error plays that error’s full call instead, and they ride the existing per-status toggles rather than adding new ones.
- Warning banners no longer outlast what they were warning about. iRaceDeck now starts every session with none and re-checks each condition itself, so a banner raised by a previous run — or by an older version that had the check at all — can no longer come back on every restart with nothing in the interface able to clear it. A banner you see is always about the copy of iRaceDeck running right now.
Breaking changes
- The Camera Controls dial’s Cycle by Car # mode now counts down when turned clockwise —
#94to#77instead of the other way around — so the two modes that cycle by a number follow one rule: clockwise makes that number go down, matching Cycle by Race Position (which has worked that way since 2.3.0). Cycle by Track Order is ordered by the road rather than by a number, so it keeps taking you to the car physically ahead. Every existing Cycle by Car # dial changes direction with this update — including one that already has Reverse rotation ticked — so flip that checkbox in the dial settings, whichever way it is set today, to get the old feel back. The touch-strip previews follow whichever direction is in effect. - The Stream Deck plugin no longer declares macOS support: from this version it is offered and installable on Windows only, matching what the Mirabox and Ulanzi plugins already declared. Nothing changes for Windows users — the macOS entry only ever told the Stream Deck software it was allowed to install the plugin on a Mac, where it could do nothing useful, because iRaceDeck controls iRacing and iRacing has no macOS build.
Maintenance
- The Telemetry Control page on iracedeck.com now documents the Take Snapshot mode (shipped in 1.21.0 but missing from the action page): what the JSON and Markdown files contain, where they go, and how the Output Folder setting is resolved.
- iracedeck.com answers “will this work with my device?” up front: a Works with strip on the front page and inside each download card names the supported hardware brands across the Elgato, Ulanzi, and Mirabox Stream Dock ecosystems.
- The installation guide no longer claims Stream Deck+ dials are unsupported — it now points at the Dials page, which describes what turning, pressing, holding, and the touch strip do.
2026-08-12
Features
- The Race Engineer now announces when other drivers enter the pits — the race leader plus same-lap competitors within two positions of you (your class in multi-class), with lines like “The leader is pitting” and “The car in, P4, is pitting” — and collapses caution pit trains into a single “other cars pitting as well” call. Two new per-callout toggles (Leader pitting / Nearby competitor pitting), both on by default.
- Session Info gains a Wind mode: an arrow that always points the way the wind is pushing your car, with the wind speed below it in m/s, km/h, or mph. The arrow turns in fine 5° steps — 72 positions rather than a handful of fixed ones — and shows either the wind relative to your car — up is a tailwind, down a headwind, sideways a crosswind, turning with you through a corner — or the compass direction with north up (thanks @JCRTR for the request).
- The Race Engineer now warns about penalty flags on cars around you — furled warnings, black flags, meatballs, and disqualifications for the cars you’re racing or slow traffic you’re catching — and announces when the race leader starts their final lap.
- Session Info gains a Gaps mode showing the live time gap to the car one class position ahead and behind — measured as a true crossing-time difference accurate to about a tenth of a second — with each row color-coded green or red by whether the gap is moving in your favor, and the Race Engineer calls out what’s actually relevant: when a rival is projected to catch you (or you them) within a handful of laps — escalating as it gets serious, and never for a catch that would only complete after the race ends — when either car breaks away from a battle, and when a gap first closes under a configurable threshold — all spaced by a configurable cooldown, with a configurable minimum gap movement between calls about the same car so a hovering gap never ping-pongs, and the opening lap assumes grid spacing so being close off the start is never treated as news.
Bug Fixes
- The Race Engineer’s contact and collision callouts now announce the penalty point count iRacing actually scores instead of a count assumed from the incident type — a dirt car collision is announced as two points (not four), and a crash that escalates after the first callout, like an off-track that ends in the wall a few seconds later, announces the incident’s full value and corrects the earlier call instead of naming only the newly added points; when no matching count line exists the engineer describes the contact without naming a number.
- The Race Engineer no longer misses a directly-issued black flag (a pit-lane speeding penalty, a race-admin black flag, or a disqualification) that lands while another callout is playing — the penalty line now waits its turn and plays as soon as the current line finishes.
2026-08-04
Features
- Any key title can now show live iRacing data: put a template variable like
{{track_ahead.car_number}}— or an{{= … }}expression — in the Title Text of any action’s Title Overrides section (or the Telemetry Display Title setting) and the title resolves against live telemetry, updating on the key as the values change. See the Template Variables reference. - The Race Engineer announces upcoming corner names in practice and test sessions (“Eau Rouge”, “Turn five”), timed to land just before each corner with a speed-scaled lead you can tune in the Pit Crew settings, and a new Corner Names mode on the Pit Crew action toggles the callouts from a deck key with a spoken confirmation. Corner data by Lovely Sim Racing’s lovely-track-data (corner names by Racing Circuits, CC BY-NC-SA 4.0, used with permission) — covers roughly 68 iRacing track configurations.
- New Race Engineer driver names: Dustin, Peter, Robbie, Carter, and Alex.
Improvements
- Session Info’s iRating Gain/Loss estimate no longer waits for the race to go green: during qualifying it scores the current qualifying standings as if they were the finish, and on the race grid and pace lap it starts from the qualifying grid, so a value shows the moment positions exist. The same applies to the
irating_change/irating_new/session.softemplate variables, and in practice and test sessions the key now shows--instead of staying empty. - Race Admin’s Black Flag keys now label themselves with the configured penalty —
BLACK 30Sfor a 30-second time penalty,BLACK 3Lfor a 3-lap penalty,BLACK DTfor a drive-through — so a page of black-flag presets no longer needs custom titles. The bundled Race Admin Per Car profile’s three black-flag keys drop their static titles and show the selected car’s number again. - The Administrator-mismatch check (iRacing running as Administrator while the deck software is not, which silently blocks every button) now logs its outcome on every connection at the default log level — including a confirmation when everything matches — so a support log shows whether the check ran and what it found without turning on debug logging first.
- The What’s New page now defaults to opening only after updates with new features, so small bug-fix updates no longer pop up the page. If you’ve picked a different option in the What’s New page setting (Common Settings → Updates), your choice is unchanged.
Bug Fixes
- Key bindings (and other settings) no longer get lost or revert to defaults: the plugin no longer overwrites stored settings when it writes before the deck software has delivered them (e.g. right after a mid-session plugin update), a delayed settings sync from the deck software can no longer roll back or clobber recent changes, and one corrupt stored value no longer makes every key binding appear unset.
- Spotter proximity calls (“Car left.”, “Two cars right.”, “Three wide.”) are now always heard immediately: they cut any other Race Engineer line mid-sentence — even critical ones — instead of being silently dropped when another callout occupied the voice channel. Critical lines they displace (meatball, fuel-critical, start-gantry calls) replay right after the proximity call instead of being lost, and the informational “Clear.” and “Still there.” lines yield to both critical calls and a proximity call still being spoken.
- Template expressions no longer render as empty text when they reference a driver text field iRacing left blank — such as
abbrev_namefor AI drivers. Blank fields now count as empty strings in expressions, so fallback patterns like{{= track_ahead.abbrev_name ? track_ahead.abbrev_name : track_ahead.name }}work as expected. - The What’s New page no longer pops up in your browser while iRacing is running — if the deck software updates the plugin mid-session, the page now waits and opens right after you exit the sim (or on the next start of the deck software without iRacing). How the page works, and the setting that controls when it opens, are now documented in the What’s New Page feature guide.
- The Race Engineer no longer suggests pitting for fuel when the tank already covers the rest of the race — in every race format: lap-limited races compare against the laps left, timed races estimate the remaining laps from the session clock and recent lap times (leader-aware, so multiclass works), races with both limits use whichever ends sooner, and your own final lap and everything after the checkered stay quiet (even through a caution replacing the white flag). Instead of going silent, the engineer now says so: once the race is inside its last 10 laps and the tank covers them with a lap to spare, a one-time “We have enough fuel to finish the race. No need to box for fuel.” confirmation plays (new Enough fuel to finish checkbox under Race Engineer Callouts → Fuel, on by default), re-armed after refuels — and if consumption spikes, the warnings come back. The estimates ignore slow caution laps, and a race that gets extended past your white flag (overtime or a restart) re-opens the fuel callouts. When the remaining race length can’t be determined, the callouts keep coming as before.
- The Race Engineer no longer replays the session or race intro brief when the plugin reconnects mid-session (for example after a deck-software auto-update): connecting with the car already on track in practice or qualifying, or into a race that’s already underway, stays silent. Connecting in the garage, or reconnecting on the pre-green race grid, still gets the brief.
- Cycling the camera through cars no longer goes dead after the race: cars that have finished and left (or towed out mid-race) kept their spot in the running order, and a switch targeting one did nothing — over and over. Camera Controls (the dial’s Cycle by Race Position and Cycle by Car Number modes and the keypad’s Cycle Car mode) and Replay Control’s Next/Previous Car (Number Order) modes now skip cars that are no longer in the sim world and move straight to the next present car, and the Camera Controls touch-strip side previews show the car a detent will actually land on.
- Watching a replay no longer floods the plugin log with a repeated “replay-only session” line on every telemetry update (about sixty per second) — the note is now logged once per replay viewing.
- Action settings panels (Property Inspectors) no longer leak polling timers: every opened panel used to start several timers that were never stopped, which made memory and CPU use grow over time in UlanziStudio the longer the app ran. Each panel’s polling now runs on a single shared timer, and every timer stops when the panel goes away, which also trims the settings panels’ background CPU use on every platform.
Breaking changes
- The Camera Controls dial’s Cycle by Race Position mode now selects the car ahead when turned clockwise (the position number decreases) instead of the car behind — existing race-position dials change direction with this update. A new Reverse rotation checkbox in the dial settings restores the old feel, and can also flip the rotation direction of any other dial mode. The touch-strip previews follow whichever direction is in effect.
Maintenance
- The Mirabox and Ulanzi plugins now clean up their own log files — logs older than 14 days are deleted automatically, so the log folder no longer grows forever — and packed plugin downloads can no longer accidentally include log files.
- Plugin downloads now include the iRaceDeck license and a
THIRD-PARTY-LICENSES.mdcollecting every third-party license notice — the iRacing SDK, the audio and rendering libraries, the bundled Arimo fonts, and the Lovely Sim Racing corner-data attribution.
2026-07-16
Features
- Force Feedback now works on a Stream Deck+ dial: turn it to adjust FFB strength or the wheel / bass-shaker LFE level through your existing key bindings, with the live max force shown in Nm on the touch strip for the FFB Force setting. An optional press can run Auto FFB (off by default, since it overwrites the force you’ve been tuning). Dials are Elgato Stream Deck+ only for now.
- Camera Controls now works on a Stream Deck+ dial: turn it to flip through cameras or cars (clockwise for next, counter-clockwise for previous — pick the target with the dial’s Mode setting, including cycle by car number or by live race position), and the touch strip names the mode on its top line and shows what that mode controls below — the current camera, the current sub-camera by name, or the car you’re watching — with the previous and next either side where they can be previewed. For Cycle Camera you choose which camera groups it steps through, and a press, long-press, or touchscreen tap can jump the camera to your own car, the leader, the latest incident, the most exciting car, or the next camera angle. Dials are Elgato Stream Deck+ only for now.
- Camera Editor Adjustments now works on a Stream Deck+ dial: turn it to nudge one camera-tool parameter (latitude, longitude, altitude, yaw, pitch, FOV zoom, F-number, focus depth, vanishing point, blimp radius/velocity, key step, or mic gain), pick which one from the dial’s Adjustment dropdown, and optionally assign each press and touch gesture to auto-set the mic gain or fire any Camera Editor Controls command (open the camera tool, a toggle, save/load a camera, and so on). Because iRacing exposes no camera-tool values, the touch strip shows the selected parameter’s full name rather than a live value. Dials are Elgato Stream Deck+ only for now.
- Cockpit Misc now works on a Stream Deck+ dial: turning it cycles through the in-car dashboard pages (dash page 1 or 2, your choice) and the touch strip shows the live page number the car is on — or
---when the car has no dash pages. The dial press and touchscreen can optionally run any of the keypad’s one-shot controls — toggle or trigger the wipers, in-lap mode, or report latency. Dials are Elgato Stream Deck+ only for now. - View Adjustment now works on a Stream Deck+ dial: one action for buttons and dials. On a dial you pick which view setting it adjusts (FOV, horizon, driver height, or UI size) and turn to change it, and a press recenters your VR headset by default. Your existing View Adjustment key bindings are reused, and the settings panel shows dial settings on a dial and button settings on a button. iRacing reports no value for these, so the touch strip shows the setting’s name. Dials are Elgato Stream Deck+ only for now.
- Splits & Reference now works on a Stream Deck+ dial: turning the dial cycles through iRacing’s splits/delta display modes (clockwise for next, counter-clockwise for previous) and a press toggles the reference car by default. The touch strip shows the action label — iRacing doesn’t report which delta mode is selected. Dials are Elgato Stream Deck+ only for now.
- Black Box Selector now works on a Stream Deck+ dial: turn to step through iRacing’s black boxes (clockwise for the next, counter-clockwise for the previous) and optionally press to open one box you pick. It reuses your existing black-box key bindings, and the settings panel shows dial settings on a dial and button settings on a button. Because iRacing reports no telemetry for which box is open, the touch strip shows the action’s identity only. Dials are Elgato Stream Deck+ only for now.
- The Race Engineer now estimates how many laps of fuel you have left and calls the count out mid-lap — “We’re estimating that we have about 3 laps of fuel left after completing this lap.” — ending in a dedicated “Box this lap for fuel.” call when the tank won’t cover another full lap. Each count from 10 down to 1 plus the box call has its own checkbox (5, 3, 2, 1 and Box on by default), and a safety-margin slider (0–3 laps, default 0.3) makes the spoken estimate deliberately conservative relative to Session Info’s Laps to Empty display. Counts announce once per stint on the way down — saving fuel never repeats a higher count — and a refuel re-arms them all.
Improvements
- The developer documentation on iracedeck.com now includes a searchable gallery of every icon shipped with the plugin, plus a designing-icons guide for contributing custom icons or a full alternative icon set.
Bug Fixes
- Fixed the Race Engineer announcing “Black flag cleared.” when a furled black-flag warning escalated into the actual black flag — which also silenced the black-flag callout itself. The escalation now plays the black-flag (or disqualification) call and nothing else; a genuinely withdrawn warning still announces “Black flag cleared.” as before.
- The Force Feedback action no longer offers separate Wheel/Haptic LFE Intensity modes — iRacing’s “More Intense / Less Intense” options are the very same controls as Wheel LFE and BassShaker LFE Louder/Quieter, just labeled differently on another settings page, so the duplicates were merged into the Wheel LFE and BassShaker LFE modes. Existing buttons and key bindings saved under the old modes migrate automatically.
- The plugin now shows its icon in Ulanzi Studio’s Settings > Plugins list.
- The documentation and Downloads links at the bottom of an action’s settings now open in the browser on Ulanzi Deck.
Maintenance
- Reworked the Race Engineer’s voice-clip catalog to be fully config-driven: which lines, variants, and values the engineer can speak now derives from the audio clips that actually ship instead of lists in code, a callout missing any required clip skips cleanly as a whole (never a half-sentence), and voices may carry different variant counts or omit lines entirely — groundwork for additional Race Engineer voices.
2026-07-15
Bug Fixes
- The plugin no longer keeps an audio stream open while the Race Engineer is silent, so iRaceDeck no longer prevents your PC from going to sleep — the audio device now runs only while something is actually playing.
2026-07-14
Features
- Redesigned over 170 key icons across sixteen icon sets — Force Feedback, Media Capture, Camera Editor Adjustments, Look Direction, Cockpit Misc dash pages and in-lap mode, Telemetry Control, all seven Setup actions, Chat, View Adjustment, and the Black Box selector — in a clean flat style with real per-setting artwork. Increase/decrease keys carry a big
+/-mark beside the artwork and a single-line title (no more INCREASE/DECREASE words), automatic modes get an amber “A” badge, and pairs whose drawing already shows the direction (brake bias, FOV, horizon, driver height, UI size) keep direction-aware artwork instead. ABS Toggle and TC Toggle now show a live ON/OFF status bar with a matching key border (N/A when telemetry isn’t available), and Cockpit Misc’s duplicate FFB Max Force mode has been folded into Force Feedback (existing buttons keep working). - Setup actions can render increase/decrease keys as space-saving paired buttons that show the live value (unit-less) in several selectable styles, with three-key layouts around a value key, horizontal or vertical, plus hold-to-repeat.
- Setup Traction, Setup Hybrid, Setup Fuel, Setup Engine, Setup Aero, and Setup Chassis now work on a Stream Deck+ dial — one action for buttons and dials each. On a dial you pick which value it adjusts and turn to change it, with the live value shown big and color-coded on the touch strip; settings with no telemetry (engine boost, qualifying tape, and the chassis springs and shocks) show the setting’s label instead. Setup Fuel’s dial can toggle FCY mode and Setup Aero’s can toggle the RF brake ducts on press. Your existing setup key bindings are reused, and the settings panel shows dial settings on a dial and button settings on a button.
- Fuel Service keys can optionally pop iRacing’s Fuel black box when pressed (off by default), so you can see the value you just changed — including the autofuel lap margin, which no telemetry reports. The box is switched with a single atomic keystroke pair, so you effectively never see the box it switches through.
- Added six more names the Race Engineer can call you by — Ant, Anthony, Bird, Brad, Kanki, and Shamoy — selectable from the Pit Crew action’s Your Name setting.
- Session Info gained an iRating Gain/Loss mode showing your estimated iRating change if the race ended now — green when gaining, red when losing, live from the opening lap onward, scored within your car class like iRacing does. The same estimate is available as template variables —
irating_changeandirating_newon every driver prefix, plussession.soffor your class’s Strength of Field — for Telemetry Display, Chat, and Race Admin templates, expressions included.
Improvements
- The Race Engineer’s pre-start countdown (“Ninety/Sixty/Thirty/Ten seconds to race start”) now plays even while you’re out of the car — in the garage, the session screen, or the in-session replay view — so it works as the “get in the car” reminder; watching a saved standalone replay stays silent, and the gantry lines (“Lights…” / “Go, go, go!”) remain in-car only.
- Redesigned the Tire Service icons: Change Compound now shows the compound as a bold colour-coded badge (F1 style — soft red, medium yellow, hard white, inter green, wet blue, dry grey) with the compound initial, and says whether the next stop will change to it or stay on the fitted one; Change All Tires and Clear Tires became a matching four-corner tire set.
- Redesigned the Toggle Wipers and Trigger Wipers key icons around a windshield, so the two keys are clearly distinct from each other and read unmistakably as wipers at deck size.
- The Setup dial touch-strip “dash box” (Setup Brakes, Traction, Fuel, Engine, Aero, Chassis, and Hybrid) is now customizable: set the border, label, value, and background colors independently. The border, label, and value default to the setting’s built-in accent and the background to the near-black panel, so existing dials look exactly as before until you change them.
- Key and dial icons are now rendered to pixels by the plugin itself instead of each deck app’s SVG engine, so icons look identical on every device and effects like the border glow work on Mirabox and Ulanzi decks too.
Bug Fixes
- A Fuel Service dial in Target Amount mode no longer changes the fuel request while the car is being fueled during a pit stop. It used to keep re-sending the shrinking remaining amount as fuel was pumped in, which could stop fueling well short of the target; the target top-up now pauses during pit service and resumes afterward.
2026-07-08
Features
- Setup Brakes now works on a Stream Deck+ dial — one brake action for buttons and dials. On a dial it adjusts one brake setup value — brake bias, peak brake bias, brake bias fine, brake misc, engine braking, or ABS adjust — by turning, with the live value shown big and color-coded on the touch strip. Pressing runs a configurable gesture (short and long press), defaulting to Toggle ABS, and your existing Setup Brakes key bindings are reused. The settings panel shows dial settings on a dial and button settings on a button.
- Fuel Service now works on a Stream Deck+ dial — one fuel action for buttons and dials. On a dial, a bare turn adjusts fuel manually (Add Amount, or Target Amount kept topped up as fuel burns), or — when iRacing’s autofuel is on — adjusts the autofuel lap margin, with a dedicated
AUTOFUEL: ON/OFF/N/Astatus band and a two-segment fuel bar on the touch strip. Every gesture — Push, Long Press, Push + Turn, Tap Display, and Long Touch — is configurable, with Long Press defaulting to Toggle Autofuel (a blind-safe choice for VR) and the touch gestures off for VR safety. The readout shows the fuel iRacing actually banks (read live from telemetry), and whether fueling is on or off is unmistakable at a glance: a full-width status band across the top readsREFUEL: ONon green when the next stop takes fuel andREFUEL: OFFon red when it won’t — withAUTOFUELvariants in autofuel mode and a grayN/Awhen it’s unavailable. The settings panel shows dial settings on a dial and button settings on a button. - Audio Controls now works on a Stream Deck+ dial: rotate adjusts the volume of your chosen audio — iRacing voice chat or master, or iRaceDeck’s Race Engineer and Radar levels — and the press is configurable as push-to-talk (with an
ON AIRindicator on the touch strip while transmitting) or mute/unmute. The Race Engineer and Radar levels show a live level bar on the touch strip; iRacing exposes no volume state for voice chat and master, so those show the category name instead. - iRaceDeck now bundles ready-made Stream Deck profiles — iRaceDeck Default and iRaceDeck Replay, each tailored to your device (the classic Stream Deck, the Stream Deck XL, and the Stream Deck + XL) — so you get a full iRacing layout without building one yourself. A new Switch Profile action lets you put a profile switch on any key — it targets iRaceDeck Default out of the box (shown as a clean, title-less iRaceDeck logo), the icon reflects whichever profile you choose instead, and a Back to previous option walks back through the iRaceDeck profiles you visited, returning to iRaceDeck Default when there’s nowhere further back — and a Stream Deck Profiles section in every action’s settings lets you switch from there too. The Stream Deck app installs a profile the first time you switch to it. Switch Profile keys and the car-selector number keys stay border-less even when plugin-wide borders are enabled (per-key border overrides still apply).
- Race Admin gained a dynamic car selector for race control (Elgato). A new Select Car mode auto-fills one key per car in the session — a big car number with the driver’s name below, sorted by number and paged for large fields — and a new Selected Car target makes every admin command — black flag, EOL, DQ, clear penalty, wave-around, and the rest — act on whichever car you picked. Pick a car once and the whole admin page targets it, so there’s no more hand-building a page per car number. Selector keys work in any layout: place any number of them anywhere on a page (each page can hold a different number), and page flips show quiet blank keys instead of flashing placeholder artwork. Ships with iRaceDeck Car Selector (the selector) and iRaceDeck Race Admin Per Car (the command page) profiles for the classic Stream Deck, the Stream Deck XL, and the Stream Deck + XL.
- The Car Selector doubles as a camera director (Elgato): a new Camera Controls mode — Focus Car (pick from grid) — opens the selector with one key per car, and each press focuses the camera on that car. You stay on the grid to hop car to car, the key of the car you’re watching is highlighted, and the Back key returns you to where you came from — ideal alongside the Replay profile.
- Car Control gained four backup driver input modes — Handbrake, Second Clutch, Second Up Shift, and Second Down Shift — so you can keep driving when a shifter paddle, clutch pedal, or handbrake fails mid-session. Handbrake and Second Clutch stay engaged while the button is held; the shifts are single taps. None have default iRacing bindings, so set the binding in both iRacing and the Property Inspector.
- Session Info’s Fuel mode can now show your fuel consumption — Used last lap or Average per lap over a configurable window of 1–20 laps — alongside the existing tank-level display. Only clean flying laps count: laps with a pit stop, out-laps and in-laps, and towed laps are excluded automatically, so a stop never corrupts the average. The data survives garage visits and replays, and after a session change the previous values stay visible until you’re back on track (in a race, until the green flag).
- Session Info gained a Laps to Empty mode: how many laps the fuel in your tank will last, computed live from the tank level and your average consumption per lap (the same clean-laps-only average the Fuel mode shows, over the same configurable 1–20 lap window). The estimate shortens as you burn fuel, jumps up the moment you refuel, and shows
--until the first clean lap exists.
Improvements
- Fuel Service’s Add Fuel, Reduce Fuel, and Set Fuel Amount now go through the iRacing API instead of typed
#fuelchat commands — adjustments are instant, nothing flashes the chat window, and holding Add/Reduce repeats briskly. The fuel unit can also follow iRacing’s display units automatically: Auto (from iRacing) is the new default for new buttons, kilograms convert via the car’s fuel weight, and existing buttons keep the unit they were configured with. - You can now choose when this What’s New page opens after an iRaceDeck update — after every update (the default), only after updates with new features, at most once a month, or never — via the new Updates setting in the Common Settings section of any action’s settings.
- The Race Engineer’s white-flag call is now two-stage in races: a heads-up when the white flag comes out (“we’re about to start the final lap”), then “this is the last lap” as you cross start/finish and begin yours — leader included. If you cross while the heads-up is still playing, the second call is skipped so the two lines never talk over each other. Both stages share the existing White callout toggle.
Bug Fixes
- The Race Engineer’s pit-box countdown now takes priority over the pit-service readback: a countdown mark cuts the readback instead of being silently dropped while it plays, and the interrupted readback resumes from where it left off once the countdown is done — so you always hear the countdown on your approach to the box.
- Camera Controls’ Cycle Camera mode now applies your custom Title Text to the button instead of always showing “CYCLE CAM”, and its mode selector is now labeled Mode (it was mislabeled Target).
- Race Admin’s driver-management commands — Grant Admin, Revoke Admin, Enable/Mute Chat for a driver, and Remove Driver — now refuse to send when the target is an AI car, the pace car, or a car number that isn’t in the session (the key flashes a warning instead). iRacing applies these commands to you when the target isn’t a real user, which could revoke your own admin and end your session. Revoke Admin additionally refuses your own car, so you can’t accidentally revoke your own admin. Race-control commands (black flag, EOL, DQ, and the rest) still work against AI cars as before.
- The Race Engineer’s checkered-flag callout in qualifying and races now waits until you actually take the flag at the start/finish line instead of firing the moment the session ends — previously it could play most of a lap early, e.g. “that’s it for qualifying” while you were still on your final flying lap. When your own finish ends the race, the call still lands right as you cross the line; practice sessions keep the immediate call, since the flag there just means the session is over.
- During a rolling-start formation, the Race Engineer’s “one pace lap to go” call now fires when the pace car crosses the start/finish line — the moment the field is committed to another pace lap — instead of when your own car reaches the line, so you hear it as the final pace lap actually begins rather than seconds later from the mid or back of the grid.
- The Race Engineer no longer announces “This lap will be invalidated. We’re out of qualifying laps…” for incidents picked up while circulating after your counted qualifying laps are done — those extra laps aren’t timed attempts, so nothing is invalidated and the engineer stays quiet. An incident on your final counted lap still gets the out-of-laps announcement.
Breaking changes
- Knobs and dials on Mirabox and Ulanzi devices no longer offer iRaceDeck actions. The rebuilt dial experience is Stream Deck+ only for now, because it has not been verified on Mirabox and Ulanzi dial hardware yet — so any knob or dial assignments made with 1.x on those devices will disappear. Dial support for them will return in a future release once verified.
1.23.1
Section titled “1.23.1”2026-07-07
Bug Fixes
- Fuel Service keys no longer fall back to the Toggle Fuel Fill (“REFUEL”) icon and behavior when their stored settings contain a fuel unit this version doesn’t know — such as the
autounit written by iRaceDeck 2.0 pre-release builds sharing the same profiles. The unknown unit is now read as liters and the key’s selected mode is kept.
1.23.0
Section titled “1.23.0”2026-06-30
Features
- Template variables gained a
focusedprefix that follows the car your camera is focused on ({{focused.car_number}},{{focused.name}}, and the rest of the driver fields), usable anywhere templates are — Telemetry Display, Chat, and Race Admin. Pair a Telemetry Display with a Camera Focus button so it tracks whoever you’re watching — handy for spotting, broadcasting, and race control. It works in replays too. - Added five more names the Race Engineer can call you by — Dean, Dylan, Ron, Jakub, and Tom — selectable from the Pit Crew action’s Your Name setting.
Improvements
- Driver-info template prefixes (
self,track_ahead/track_behind,race_ahead/race_behind,focused) now report the live race order for both overall and class position — they update continuously as cars move (like the Session Info Position readout while racing on track), instead of only refreshing at the start/finish line. - The action list is now sorted alphabetically by name across all devices, so actions are easier to find when adding them to a key.
Bug Fixes
- Cars that are towed into the pits no longer briefly jump ahead of you in the running order while they sit in their pit box — they hold their on-track position for the whole stop and drop back only once they rejoin the track. This keeps the Race Engineer’s spoken position, the Session Info Position readout, and the driver-info template prefixes from reading a place too high during another car’s pit stop.
- Links in an action’s settings (such as Documentation and Downloads) now open in your default web browser instead of the deck app’s small built-in browser window.
Maintenance
- Standardized on “dial” (instead of “encoder”) across the documentation and website, matching Stream Deck’s own terminology and the SDK’s dial event names.
1.22.2
Section titled “1.22.2”2026-06-25
Bug Fixes
- Fixed towed cars (and cars that briefly dropped out) staying stuck at their pre-tow position in the running order — which drifted the Race Engineer’s spoken position and the Session Info display off, sometimes by several places over a long race. Positions now recover the moment the car is moving normally again.
1.22.1
Section titled “1.22.1”2026-06-18
Maintenance
- Expanded the Ulanzi Deck documentation (installation, troubleshooting, and developer guides) and renamed the Ulanzi plugin download to a self-describing
.zipfile. No functional changes to the plugin.
1.22.0
Section titled “1.22.0”2026-06-15
Features
- iRaceDeck now runs on Ulanzi Deck devices (D200, D200H, D200X, and Dial). A dedicated plugin for the UlanziStudio app brings the full action catalog and Property Inspector to the Ulanzi ecosystem.
- Telemetry Display now supports expressions — use
{{= … }}alongside the usual{{variable}}placeholders to compute and format values: arithmetic, comparisons, ternaries (cond ? "A" : "B"), string concatenation, and theround,floor,ceil,abs,min, andmaxfunctions. For example,{{= round(telemetry.dpFuelAddKg / (sessionInfo.DriverInfo.DriverCarFuelKgPerLtr * 0.264172), 2) }}shows the fuel to add in gallons. Expressions are evaluated safely — no arbitrary code execution. - New Changelog page (this one). When you update to a new version, iRaceDeck now opens it in your browser so you can see what’s new at a glance.
1.21.0
Section titled “1.21.0”2026-06-13
Features
- Race-start voice callouts. Standing starts get a countdown into the lights (“Ninety… sixty… thirty… ten seconds to race start.”), “Lights. Get ready to go.” as the gantry comes alive, and “Go, go, go!” the instant they drop — and the countdown only speaks marks that fit the pre-start window, so short procedures never blurt stale numbers. Rolling starts get “Pace car’s rolling”, “One pace lap to go”, and “Green’s coming”.
- Voice spotter — the Race Engineer spots traffic for you: “Car left.” / “Car right.”, “Two cars left.”, “Three wide.”, a “Still there.” reminder while you’re side-by-side, and “Clear.” when you’re free. Road courses use left/right, ovals inside/outside, and routine chatter is held back while a car is alongside so spotter calls and safety flags own the radio.
- Pit window open/closed callouts, announced the moment they change so you can react under caution.
- Black flag callouts — disqualification, a debounced furled black-flag warning with a paired “furled cleared” call, and late-race “Ten to go” / “Five to go” calls.
- Setup sanity check — heading into a race on a qualifying setup (or the other way around), the engineer spots it from the setup name and asks you to double-check. Match patterns are configurable.
- New Telemetry Control Snapshot mode — a developer/diagnostic key that saves the current telemetry and session info to disk, handy when reporting issues.
- New Race Engineer driver names: Mike, Guido, and Fox.
- As always, every new callout has its own on/off toggle in the Property Inspector.
Improvements
- The Race Engineer now knows your car: no pit-limiter chatter on cars that don’t have one, and the pit-entry service readback works on dirt ovals.
- Reworked radio discipline — critical calls (meatball, “Go, go, go!”, fuel-critical) cut through instantly, while background commentary waits its turn instead of talking over them.
- No more P0 on the grid — Session Info shows your qualifying grid slot through the formation lap, and the engineer no longer calls phantom position changes during the pre-green shuffle.
- The Pit Limiter button is now tri-state — on cars without a pit limiter it greys out (keeping the pit-speed number) instead of pretending to toggle.
- The practice and qualifying session-start brief now plays right at session start.
Bug Fixes
- “Yellow cleared.” is back — it was silently dropped whenever the radio was busy, and now waits for a gap so it gets through.
- The “approaching pits” call no longer repeats when you drift out of the pit entry and straight back in.
Maintenance
- Dependency updates and assorted cleanup.
1.20.0
Section titled “1.20.0”2026-06-02
Features
- Session Info Position mode adds a Position Type setting (Class / Overall, with Class the default). Multi-class drivers see their live in-class position on the key, updating as you pass and get passed — not just at the start/finish line. Show Total Cars follows along: P2/8 for your class versus P5/24 for the whole field.
- Every action’s Property Inspector now shows its communication method (iRacing API, key binding, or chat command) under the Mode selector, with a live binding status and a “set it here” shortcut. A required key binding that isn’t configured shows a ⚠️ on the key icon until you set one, and SimHub users get a live “SimHub not connected” indicator.
- The Car Control Enter/Exit/Tow key is now context-aware, mirroring iRacing’s own session button: out of the car it shows Test, Practice, Qualify, Grid, or Race; in the car the exit, reset-to-pits, and tow states switch to a red background.
- An Administrator mismatch warning detects when iRacing runs as Administrator but Stream Deck doesn’t (which silently blocks every command) and explains how to fix it in the Property Inspector.
Improvements
- Plugin logs now default to info level instead of flooding with debug output. A new “Enable debug logging” checkbox under Common Settings → Diagnostics turns on verbose logs immediately, no restart needed.
1.19.0
Section titled “1.19.0”2026-05-31
Features
- Race Engineer race-start brief — at the green he greets you with your grid position and the conditions (track temp, air temp, wetness).
- Race Engineer overtake calls — “Nice pass!” when you gain a spot and “Come on,
<name>!” when you lose one, with a live position readout. Class-aware in multi-class and smart enough to ignore momentary position flickers. - Race Engineer race status and finish — periodic position updates through the race, plus a dedicated call when you take the checkered.
- Race Engineer qualifying calls — your new position after each qualifying lap, and a heads-up when a lap is invalidated.
- Race Engineer pit-box count-in — heading down pit lane he counts down the distance to your box (“5, 4, 3, 2, 1, pit now”).
- New Race Engineer volume and Radar volume buttons in Audio Controls, so you can balance each voice independently.
- New Jump to Fastest Lap action in Replay Control — skip straight to the fastest lap of your car or the car you’re watching.
- Chat Send Message timing is now configurable, so you can tune the Enter hold and delays for reliable delivery.
- More driver names in the callout pool (Jon, James, Noj), and every new callout has its own on/off toggle.
Bug Fixes
- The Race Engineer now stops mid-sentence (and kills ambient audio) the instant you toggle him off.
- Multi-class overtake detection fixed.
Maintenance
- Dependency updates and assorted cleanup.
1.18.0
Section titled “1.18.0”2026-05-16
Features
- Race Engineer session-start callout greets you the first time you go on track each session with a briefing: your name, session type, pit speed limit, track and air temperature, and track wetness. It fires once per session, about 3 seconds after going on track, and defaults on.
- Race Engineer best-lap callout announces your time when you set a new personal best or complete your first valid lap. Sub-one-minute laps skip the minute clip; laps 11 minutes or longer stay silent. Defaults on.
- Race Engineer toggle acknowledgement — pressing the toggle confirms the new state out loud.
- Race Engineer telemetry-connect radio check plays a “radio check, standing by” line on a real SDK connection; reconnects re-fire.
- Setup actions gain live-value View sub-modes that render the live telemetry value on the key — 28 new entries across Aero, Brakes, Chassis, Engine, Fuel, Hybrid, and Traction. The PI dropdowns are reorganized into Adjust and Display value groups.
- Setup action View sub-modes double as one-key dual-press controls: a short press fires one direction, a long press the opposite. The threshold (200–2000 ms, default 500) and direction are configurable, with a per-action opt-out.
- Toggle Driving Line added as a tenth mode on Toggle UI Elements (default keybind Ctrl+Alt+L).
- Three new driver names — Dominic, Miguel, and Jasper.
Improvements
- Voice clips re-encoded to 16 kHz mono 32 kbps (the radio filter band-limits them to 250–3500 Hz anyway), cutting file sizes about 64% with no audible difference.
Maintenance
- The audio generator config was split into self-contained per-voice files, with a parity test ensuring every voice covers the same callouts; the voice “luca” was renamed to “default” (transparent to users).
- No manual migration is needed; setup action layouts are backward-compatible, and TC Slot 1–4 was renamed to TC1–TC4 (cosmetic only).
1.17.0
Section titled “1.17.0”2026-05-11
Features
- Race Engineer incident callouts react to six distinct situations: going off-track, spinning out, light contact with the wall or another car, and harder collisions. Collision lines mention the penalty points inline, multi-step crashes get one combined callout, and each category has its own toggle (all default on).
- Race Engineer track wetness callouts announce every step transition as the track gets wetter or drier, with directional phrasing — twelve unique lines covering all the states.
- Session Info gains a Track Wetness mode: a six-segment cyan-to-blue bar that fills as conditions worsen, with the live state name as the title.
- Race Flags gains a “Blank when no flag” option to hide the “–” placeholder until a flag actually appears (opt-in, default off).
- Replay Control gains progressive slow-motion stepping — Slow Motion walks from 1/2x down to 1/16x in configurable steps, and long-press holds it down the ladder; Slow Motion Rewind works the same in reverse.
Improvements
- Volume sliders now follow a perceptual loudness curve, giving fine control at low volumes; radar SFX was re-mastered to match the engineer’s loudness; and default levels were rebalanced (Race Engineer and Radar 100→50, Background 35→25).
- Telemetry now polls at 100 Hz with frame-level de-duplication (up from 4 Hz), unlocking sub-100 ms features; Telemetry Display and Car Control icons are capped at 10 Hz for visibly smoother updates.
- Every static icon was re-authored — viewBoxes trimmed to the artwork, padding added, and several redesigned (Ignition, Reset to Pits, Restart Recording, Launch RPM, and more); decrease-variant icons were rebuilt to mirror their increase counterparts.
1.16.0
Section titled “1.16.0”2026-05-06
Features
- Race Engineer pit-service status callouts: once the car is in the box he reads iRacing’s pit-stop status out loud (“Crew working”, “All done, ready to roll”, “Too far left/right/forward/back”, “Bad angle”, “Can’t fix that this stop”), each individually toggleable.
- Replay Control gains a configurable Fast Forward / Rewind step rate and slow-motion rewind.
- Chat gains an on/off toggle mode for cleaner one-button workflows.
- Session Info gains display sizing, handy on the larger Mirabox touch surfaces (first contribution from @RCkanki).
Improvements
- SimHub Control Mapper roles are now sorted alphabetically in the binding dropdown.
Bug Fixes
- Race Engineer and Radar now default off. A schema migration deletes persisted enable values from older versions, every voice scenario and radar tick is master-gated, and a plugin-level audio listener keeps a deck without a Pit Crew button silent. Re-enable with the Race Engineer Toggle or Radar Toggle (thanks @thesewheels and @Lazagna42 for reporting).
- Autofuel no longer ships a default key binding, so there are no accidental conflicts on first install.
- The camera focus labelled “Focus on Exiting” (a typo) is now “Most Exciting”, matching iRacing.
Maintenance
- The “Respond to Last PM” Chat mode is hidden — the unified Reply mode covers it, and existing buttons auto-migrate to Reply.
1.15.1
Section titled “1.15.1”2026-05-03
Features
- New Pit Crew action with two features at launch: a Race Engineer voice assistant that reads out pit-action toggles, tells you what’s planned for the next pit stop, calls out flags, and warns when your car is damaged; and Audio Radar, which ticks in your left or right ear when there’s a car alongside so you can keep your eyes on the road. Both are off by default.
- Race Admin gains a “Type in Chat” car-selection mode that types the command to the chat window for you; you fill in the car number and press Enter.
- Flag overlay maximum flashing time limits how long flag overlays flash, useful on long tracks where green flags can persist for minutes (see Global Settings).
Bug Fixes
- Added default key bindings for Next and Previous car in replay (v and Shift+V); previously these had no defaults.
1.14.0
Section titled “1.14.0”2026-04-19
Features
- Auto-hold for the Enter/Exit/Tow Car mode, with per-state behavior (Exit in the pit stall, Reset on track in non-race sessions, Tow on track in a race). A single tap holds Shift+R for 1.5 s; tap again to cancel. Manual press-and-hold still works.
- A build-time platform feature-flag system per plugin. Its first use strips border glow (QT6.7+ only) from the Mirabox bundle and Property Inspector while Stream Deck keeps it.
Improvements
- All 12 audio-controls and AI spotter icons were redesigned with new, Mirabox-compatible artwork (artwork by Hesham).
- Toggle Autofuel no longer shows the fuel amount, matching the Fast Repair look.
- AI Spotter volume labels now follow the audio-controls convention (VOL UP / SPOTTER, and so on).
- Black-box Next/Previous artwork is centered with the other black-box icons.
- New Mirabox dev workflow scripts (relink, unlink, switch-test-env) with expanded setup docs.
Bug Fixes
- Replay Next/Previous Car no longer becomes a no-op during the warmup/formation lap.
- The Master “Mute” option was removed from Audio Controls (it had no key binding and was a silent no-op).
- Icon title alignment fixed for 21 icons by stripping a phantom leading newline that pushed artwork about 11 px too high.
Maintenance
- Long-press repeat logic extracted into a single shared RepeatController.
- Shared PI assets moved into a dedicated @iracedeck/pi-components package consumed by both plugins.
- Each action’s PI template, icon, and key art now live alongside its code.
- Package renames (@iracedeck/actions → @iracedeck/iracing-actions, plus the two plugin packages).
1.13.1
Section titled “1.13.1”2026-04-15
Bug Fixes
- Fixed fuel and replay long-press sticking under rapid presses — the 1.13.0 fix wasn’t enough. The root cause (a synchronous native chat send blocking the event loop just long enough for keyUp events to race past timer setup) is fixed, and held-button tracking is now the authoritative source of truth, so a release always stops the repeat immediately.
1.13.0
Section titled “1.13.0”2026-04-12
Features
- New Force Feedback action to adjust FFB from the Stream Deck. Modes: Auto-compute FFB Force, FFB Force (+/−), Wheel LFE (+/−), Bass Shaker LFE (+/−), Wheel LFE Intensity (+/−), and Haptic LFE Intensity (+/−).
- New “Auto-enable fueling on amount change” global setting (off by default) that arms fueling when you adjust the fuel amount (thanks @navy-exe).
Improvements
- The color picker now remembers recently used colors and shows preset swatches.
- Status-bar icons show a gray “N/A” indicator when telemetry isn’t available, instead of stale or zero values.
- Toggle Tires gains a Toggle Mode setting: Select (default for new actions) replaces the current selection, while Toggle (legacy) flips each configured tire individually.
- Toggle Autofuel adopts the status-bar style with border color and shows the current fuel amount (thanks @navy-exe).
- Replay Set Speed uses the configured speed as its default title (e.g., “2×”, “8×”).
- The Silence icon exposes its two graphic colors for per-action and global overrides.
- Action documentation on iracedeck.com is now organized per mode.
- The primary selector on every action is consistently labelled “Mode”.
Bug Fixes
- Fuel increase/decrease long-press looping now has a safety timeout.
- The replay play/pause toggle correctly resets when iRacing disconnects.
- Fuel Service global settings are no longer hidden in non-keyboard modes.
Maintenance
- The build now generates a config.json carrying the plugin version and target platform, so the version is read at runtime rather than hardcoded.
- Actions can declare addedWithVersion on CommonSettings, enabling version-dependent defaults without breaking existing settings.
1.12.0
Section titled “1.12.0”2026-04-08
Features
- New Push-to-Talk mode for Audio Controls — hold to talk, release to mute, with a dedicated mic icon.
- Dynamic icon scaling: artwork automatically scales and repositions based on title visibility and placement. A per-action scale override (50–150%) and a global Graphic Scale default were added.
Improvements
- The flags overlay now shows green, white, and checkered flags; the checkered flag uses a 2×2 pattern, and blue is suppressed when green is active (thanks @navy-exe).
- Toggle Tires was redesigned with a race-car silhouette and per-tire color indicators (green changing, red configured but off, black not configured), and tire selection moved to a 2×2 checkbox grid (icon by Niklas, grid by @navy-exe).
- Toggle Tires now sends shorthand iRacing pit macros when the selected tires match a recognized group (all four, left-side, right-side), fixing cars like the SF23 that only support all-or-nothing tire changes (reported by @rafeautie).
- A new color picker adds a proper “not set” state, inline hex editing, and a clear button; legacy values auto-migrate.
- A new synced slider-and-number range input replaces the old sliders across the Property Inspector.
Bug Fixes
- Toggle Fuel, DRS, Push-to-Pass, Windshield Tearoff, and Fast Repair now lock their essential title fields so global title settings can’t suppress them.
- Fixed a race condition that overwrote the saved title font size when opening the Property Inspector.
- Fixed opening an action’s Property Inspector writing the icon’s default border color to settings.
- Fixed border and glow rects being half-clipped at the SVG viewBox edges.
1.11.0
Section titled “1.11.0”2026-04-02
Features
- Customizable button title text: override the default title on any action and control bold, font size, and position (top/middle/bottom/custom offset). Three-state Inherit/Yes/No controls and a four-level resolution chain (per-action → global → icon metadata → defaults) keep it predictable, with a global Title Defaults section.
- Border indicator with inner glow: add a configurable border (width, color, optional glow) to any key icon. Toggle actions get state-driven border colors (green on, red off, gray N/A). Icon backgrounds also gain rounded corners.
- Dynamic grid icon for Camera Cycling: the Cycle Camera target shows a miniature grid of your selected camera group icons, adapting the layout to the group count with a “+N” overflow indicator.
- The Property Inspector was reorganized: Action and Global settings are separated by section headers, overrides are wrapped in collapsible accordions, global settings are split into focused sections, and accordion open/closed state persists across key selections.
Improvements
- Black box icon titles simplified to concise one-line labels (e.g., “LAP TIMING”).
Bug Fixes
- Race position is now calculated in real time from laps completed plus track distance percentage, giving instant updates during races. Practice and qualifying still use the official positions, with the official position as a fallback on pit road.
1.10.0
Section titled “1.10.0”2026-03-29
Features
- Long-press repeat for fuel controls — hold Fuel Add/Reduce to continuously adjust the amount.
- Escape control added to the Car Control action.
Improvements
- Locked color slots protect semantic colors (like flag overlays) from global color overrides.
- New artwork for the Report Laps, Damage Report, and Weather Report icons (artwork by @NAVY).
- Bottom-positioned icon labels moved lower for better readability.
Bug Fixes
- Fixed replay next/previous car track navigation.
- The fuel toggle now shows a “–” placeholder when no telemetry is available.
- Fixed a hardcoded background color in replay car icons not respecting color overrides.
2026-03-28
Improvements
- Redesigned camera select icons and improved Property Inspector usability.
Bug Fixes
- Fixed camera group selection being shared across all buttons instead of stored per-action.
2026-03-27
Features
- Telemetry-driven pit service states: pit toggles (Windshield Tearoff, Fast Repair) and a new Toggle Fuel Fill action now show live ON/OFF status from telemetry, and Toggle Fuel Service also shows the amount of fuel to be added.
- Context-aware Enter/Exit/Tow: the Car Control action adapts its icon and behavior to your current state, with updated icons.
Improvements
- The plugin version and a downloads link are now shown in all Property Inspector panels.
- A documentation link was added to all Property Inspector panels.
2026-03-26
Bug Fixes
- Fixed the Enter / Exit / Tow button.
2026-03-24
Features
- SimHub Control Mapper integration: every key binding can now be routed through SimHub’s Control Mapper instead of keyboard shortcuts. A per-binding dropdown switches between Keyboard and SimHub mode; in SimHub mode you pick a Control Mapper role name (with autocomplete) and iRaceDeck sends the command over the network. Configure the SimHub host and port once in Global Settings (contributed by @kelchm).
2026-03-23
Features
- Change Camera: switch directly to a specific camera group (Cockpit, Chase, TV1, and so on) with a single press. Pick from all 20 iRacing camera groups via a dropdown; the key icon updates to match.
- Camera Group Subset Cycling: choose which camera groups to cycle through via a checkbox grid.
- Car Control gains four new modes — Headlight Flash, Push to Pass (with live status), DRS (with live status), and Tear Off Visor.
- Splits & Delta gains four new modes — Custom Sector Start/End for personalized split timing, and Active Reset for set-and-run reset points.
Improvements
- Color overrides now work on dynamic template actions (Car Control, Session Info, Tire Service, Telemetry Display).
- Telemetry Display updated with an improved default template, title, and font size.
Maintenance
- The Stream Dock plugin was renamed to the Mirabox plugin to reflect the actual hardware brand.
2026-03-20
Features
- Customizable icon colors: change background, text, and graphic colors on every action. Per-action overrides, global defaults, and preset buttons (Default / White / Black) make it easy to match your Stream Deck layout.
- Splits & Reference (renamed from Splits Delta Cycle) now includes a “Toggle Reference Car” mode alongside the cycle mode. Dial rotation always cycles splits delta regardless of mode.
Improvements
- The global key bindings section now starts collapsed for a cleaner Property Inspector.
Bug Fixes
- Windshield Tearoff and Fast Repair now correctly toggle on/off instead of always enabling, and tire compound cycling is fixed for multi-compound cars.
- Leading zeros are preserved in car numbers (e.g., “08”) for Race Admin commands and camera operations.
2026-03-15
Features
- New Race Admin action (27 modes): quick access to admin chat commands for league race directors and hosted-session admins — throw yellows, issue black flags, disqualify drivers, manage pits, control restarts, and more. It can target the currently viewed car or a pre-defined car number.
- Jump to car by number added to Replay Control.
- Configurable font size for Chat action key text.
2026-03-15
Features
- Jump to next, previous, and my car: new camera sub-actions added to Replay Control.
2026-03-14
Features
- Progressive replay speed control spanning the full 1/16x to 16x range.
- Long-press repeat for replay speed and transport controls.
- Play backward mode with improved play/pause behavior.
- Direction-aware speed control with turtle/rabbit icons.
- Redesigned replay icons — a film strip for frame forward/backward, an oval track for next/previous lap, and a dynamic needle gauge for set-speed.
Improvements
- Improved iRacing window focus reliability.
- New website with documentation at iracedeck.com.
2026-03-14
Features
- New Replay Control action that replaces the three separate replay actions with a single, unified action covering transport, speed, and navigation.
- New AI Spotter Controls action: volume, silence, damage report, weather report, toggle report laps, and announce leader at the start/finish line.
- Flag overlay: optional live flag indicators available for every action, displayed directly on your Stream Deck buttons.
- Change All Tires sub-action added to Tire Service.
- Toggle Wipers option added to Cockpit Misc.
- Focus iRacing window: an optional setting to automatically focus iRacing before sending inputs, great for drivers using windowed mode.
Improvements
- Template variables now resolve in chat message icon display when Key Text is not defined.
- Chat modes reordered with Send Message as the default, and the chat window now closes automatically after sending.
- Differentiated louder/quieter icons for audio controls, plus various icon improvements.
Breaking changes
- Existing Replay Transport, Replay Speed, and Replay Navigation buttons still work but are hidden from the action list. Use the new Replay Control action going forward.
- Spotter controls have moved from Audio Controls to the new AI Spotter Controls action. Reconfigure any existing spotter buttons using the new action.
0.13.0
Section titled “0.13.0”Features
- New Telemetry Display action: show any iRacing data on your Stream Deck using custom templates, with multiline support, configurable font size, and text color.
- Template variables: use dynamic variables like car number, track name, and session info in chat messages.
Improvements
- Boolean telemetry values now display as Yes/No instead of 0/1.
- Updated fuel service icon designs and improved sub-label readability.
- Reduced plugin package size.
Bug Fixes
- Fixed an installation issue preventing some users from installing via Marketplace or by double-clicking the downloaded file.
- Fixed the settings panel not showing default options on first load.

