Race Engineer Voices
The Race Engineer speaks with a voice pack — a folder of recorded lines that iRaceDeck plays during a session, plus a callout script for each voice that says how those lines are put together. iRaceDeck publishes two voices of its own — Default, which it downloads the first time the plugin starts, and Default (Short callouts), the same engineer in radio shorthand, which you install when you want it — and you can add more, downloaded from iRaceDeck itself or installed by hand.
Voice packs live outside the plugin folder, in your own AppData directory:
%LOCALAPPDATA%\iRaceDeck\Race Engineer\Voices\That location matters: because packs are not inside the plugin, updating or reinstalling iRaceDeck never removes them. Install a voice once and it stays until you delete it.
The folder is shared by all three iRaceDeck plugins. If you use a Stream Deck and a Mirabox on the same PC, they read the same voices — you never download or store the same pack twice.
iRaceDeck’s Own Voices
Section titled “iRaceDeck’s Own Voices”iRaceDeck publishes two voice packs. Both are the same engineer, making the same callouts at the same moments; what differs is how many words he uses.
Default
Section titled “Default”The voice every install gets. iRaceDeck downloads it the first time the plugin starts and keeps it up to date from then on — see Choosing a Voice below. Default speaks in full sentences, and its lines are the ones quoted throughout the Pit Crew page.
Default (Short callouts)
Section titled “Default (Short callouts)”The Default engineer in radio shorthand. Once a session is running his calls are shorter: most come down to the fact itself, with far less of Default’s explanation of what a flag or a state means, while a few — a pass made, a place lost — still carry a word from him:
| Default | Default (Short callouts) |
|---|---|
| “Blue flag. Faster car approaching.” | “Blue flag.” |
| “Car’s too far left, line it up.” | “Too far left.” |
| “The leader is pitting.” | “Leader’s pitting.” |
| “Mind the track limits.” | “Off track.” |
| “That hit broke something on the car. The spotter likely has more information.” | “We’ve got damage.” |
| “We’re still leading our class. Keep it up.” | “Still class leader.” |
Outside the racing itself he keeps a friendlier tone: the welcome, the greetings by name at the start of a session, at the start of a race and at its end, and the session-start briefing read much as they do in Default. It makes every callout Default makes, so switching to it never costs you a call — only words.
Default (Short callouts) is not installed automatically — Default stays the one voice every install gets. To add it, open iRaceDeck Settings, go to the Race Engineer tab, and press Install beside Default (Short callouts) under Available to Download in the Voice Packs card (see Downloading a Voice Pack). Then pick iRaceDeck: Default (Short callouts) from the Race Engineer Voice dropdown. Once installed it keeps itself up to date: whenever a newer version is published, iRaceDeck updates it at the next plugin start, the same way it updates Default. You can remove it again from the same card; if it was your selected voice, the engineer speaks with Default until you install it again, and your choice comes back with it.
Choosing a Voice
Section titled “Choosing a Voice”Open iRaceDeck Settings from any action’s Property Inspector, go to the Race Engineer section, and pick from the Race Engineer Voice dropdown. Every installed voice appears there. The change takes effect on the next callout — there is no need to restart anything.
iRaceDeck’s own voices are listed first, as iRaceDeck: Default and — once you have installed it — iRaceDeck: Default (Short callouts), above every other voice, whatever the others are called. The rest follow in alphabetical order, each under the name its pack gave it. A voice counts as iRaceDeck’s when iRaceDeck itself installed it — downloaded from its catalog, or placed there by an earlier version of the plugin. A copy of one of iRaceDeck’s packs other than Default that you put into the folder by hand is listed like any other pack, under its own name among the rest, and iRaceDeck does not keep it up to date. A folder you put in Default’s place is a different case: iRaceDeck replaces it with its own copy of Default at the next start (see below).
Among the other packs, some voices are listed with their pack’s name in front, as Pack: Voice. That happens when the voice’s name alone could be ambiguous — a pack providing more than one voice, or a pack whose own name differs from its voice’s. A pack that provides a single voice with a matching name is listed by that name alone. The rule depends only on the pack itself, so installing another pack never renames a voice you have already chosen.
Two packs may each include a voice of the same name. Both are listed, and each plays its own recordings — installing the second never hides the first, and never changes which one you have selected.
Installed Voices, in the Voice Packs card on the Race Engineer tab, lists every pack iRaceDeck has loaded, with its version and where it came from — Downloaded for one from iRaceDeck’s own catalog, Installed by iRaceDeck for one an earlier version of the plugin placed there, and Installed by hand for one you placed in the folder yourself. Each row also names the voices the pack provides, so two packs with the same name that provide different voices are easy to tell apart. Anything in the folder that iRaceDeck could not load is listed underneath, with the reason — so a pack that is present but silent tells you why without you going looking for it.
The Default voice is managed by iRaceDeck. The plugin no longer ships a voice inside its own folder: at every start it checks iRaceDeck’s catalog, downloads Default (about 15 MB, from GitHub) if it is missing, and updates it — and any other voice you installed from the catalog — when a newer version is published. If the download fails, it is retried quietly in the background, more often while the Race Engineer is switched on. The row for Default reads Kept up to date by iRaceDeck in place of a Remove button. Because iRaceDeck keeps this folder matching the catalog, anything you change inside it is eventually replaced — the next published version of Default swaps the whole folder rather than merging into it, and a folder iRaceDeck cannot recognise as its own copy is replaced at the next start. A Default folder whose recordings have gone missing is downloaded again at the next start, too. To customise the Default voice, copy the folder to a new name first and edit the copy; a pack under its own name is never touched.
What a Voice Pack Decides
Section titled “What a Voice Pack Decides”A voice is more than its recordings. Beside the clips, each voice in a pack carries a callout script — the file voice/<voice>/callouts.json inside the pack — and that script is what turns the recordings into callouts. It decides the wording of every line, the order its pieces are spoken in, and which callouts the voice makes at all. A pack can phrase a call its own way, reorder the pieces of a lap time or drop its lead-in, or leave a callout out altogether — and one it leaves out simply stays quiet in that voice, without affecting any other callout or any other voice.
What a pack can never change is when a callout fires and what it may interrupt. The moment the engineer speaks up, how often he is allowed to repeat himself, and which calls take priority over which stay with iRaceDeck, the same for every voice — so a pack can never have the engineer talk over a flag, or nag you more often than he should. The script only says what he says, never whether.
Every callout comes from the script. Flags, pit service and the readback, the start lights, position and gap readouts, lap times, incidents, the spotter — each one is a line in the voice’s callouts.json, so a pack decides the wording of all of them, and the radio frame around them, from the same file. A voice with no script therefore has nothing to say: it loads, it can be selected, and it stays quiet, with the banner below telling you why.
A pack that ships a voice without a script — one built before scripts existed, or one whose script file went missing — still loads. The voice is listed under Installed Voices and you can select it, but every callout is skipped in it — the script is where every callout comes from — so the engineer goes quiet. While a scriptless voice is the one selected, a banner at the top of the Settings window and of every key’s Property Inspector names it and says what to do: reinstall the pack, or pick another voice. The banner clears by itself as soon as the selected voice has a script.
If you build packs, the script is an ordinary JSON file that references iRaceDeck’s own vocabulary of callouts, conditions and spoken values by name. The Voice Packs section is written for you: what a pack can and cannot change, the format of the script, a tutorial that ends with your own voice playing three callouts, and reference pages — generated from iRaceDeck’s code and its own Default pack — listing every callout, everything a script may name, and every line a full pack records.
Downloading a Voice Pack
Section titled “Downloading a Voice Pack”iRaceDeck publishes its own voice packs and can download and install one for you — no folder to find, no archive to extract.
Open iRaceDeck Settings, go to the Race Engineer tab, and look in the Voice Packs card. Under Available to Download, below the packs you already have, iRaceDeck lists any pack from its own catalog that you don’t, each with an Install button — or Update, once a newer version of a pack you already have has been published. Press it, and iRaceDeck downloads, verifies, and installs the pack for you.
The download can happen while iRacing is running, including mid-race — iRaceDeck never opens a window to ask about it or report on it. Progress appears in the Voice Packs card of the Settings window, if you happen to have it open. If you do not, the download is silent by design: the pack is simply there next time you look, and the Race Engineer keeps using whatever voice you already had until the new one is ready. Nothing interrupts a session to tell you about it.
If iRaceDeck can’t reach the catalog — no connection, or a bad one — nothing already installed is affected. Every voice you have keeps working exactly as before; iRaceDeck just has nothing new to offer until it can check again.
A downloaded pack is verified against a checksum before it replaces anything, so a corrupted or incomplete download is discarded rather than installed. A pack you no longer want can be removed from the same Voice Packs card — every pack except Default, which iRaceDeck keeps current.
The Available to Download list shows only what you can act on. A pack you do not have is listed with Install; once it is installed and up to date it moves to Installed Voices and leaves that list. A pack you have that has a newer version published stays in both places — under Installed Voices as the version you have, and under Available to Download with Update. When you have every voice iRaceDeck publishes, all up to date, the section says so rather than sitting empty.
Installing a Voice Pack by Hand
Section titled “Installing a Voice Pack by Hand”Not every voice pack comes from iRaceDeck’s catalog — a pack someone shared with you directly, or one you built yourself, still installs the way voice packs always could. Voice packs are ordinary folders, so you can install one yourself:
- Open
%LOCALAPPDATA%\iRaceDeck\Race Engineer\Voices\— paste that path into the File Explorer address bar. Create the folders if they do not exist yet. - Put the pack’s folder inside it. The folder must contain a
voice-pack.jsonfile and the pack’s audio — and, for each voice, its callout script atvoice/<voice>/callouts.json, or that voice loads without one (see What a Voice Pack Decides). - In iRaceDeck Settings, press Rescan voices.
The new voice appears in the dropdown immediately. You do not need to restart the deck software.
The folder name must match the pack’s own name — if a pack calls itself luca, its folder has to be luca. A pack whose folder has been renamed is ignored, because iRaceDeck would then have two different names for the same thing.
When a Pack Does Not Appear
Section titled “When a Pack Does Not Appear”If you rescan and the voice does not appear, iRaceDeck ignored the pack — and it says so: the pack is listed under Installed Voices with the reason beside it. The same reason is written to the plugin log, at the normal logging level, so you do not need to turn anything on to find it there either. The usual causes:
- No
voice-pack.json— the folder is not a voice pack, or you copied the audio without the file that describes it. voice-pack.jsoncould not be read — the file is there, but something is holding it open or blocking access: a cloud-sync client still uploading it, an antivirus scanner, or a folder your account cannot read. The error code is shown with the message. Wait for the sync to finish, or check the folder’s permissions, then rescan.- The folder name does not match the pack’s name — rename the folder to match.
- No audio in the pack — the pack declares a voice but ships no clips for it.
- Clips iRaceDeck cannot play — the pack has audio under the voice, but not where iRaceDeck looks for it. Clips must sit at
voice/<voice>/<group>/<name>.mp3— one folder per group inside the voice folder — and the extension must be lowercase.mp3. A pack whose files are one level too shallow, or exported as.MP3, is refused with this reason rather than installing and then saying nothing. - A voice’s callout script is broken —
voice/<voice>/callouts.jsonis there but is not valid JSON, is not a script iRaceDeck can read, or could not be opened. That one voice is left out and the reason names the file and the place in it that failed; the pack’s other voices still load. A voice with no script file at all is not an error — it loads, and simply skips the callouts its script would have given it, as described under What a Voice Pack Decides. - The pack claims the id
default— that name belongs to the pack iRaceDeck keeps current, so this one is not listed with a reason: the pack loads, and then a folder with that name is replaced with the catalog’s copy at the next start. Use a different id.
Third-Party Voice Packs
Section titled “Third-Party Voice Packs”Anyone can build a voice pack, and iRaceDeck will load one you install by hand.
A third-party pack is its author’s, not ours. It is distributed by whoever made it, on their terms; iRaceDeck has nothing to do with it beyond being able to play it. We do not host it, endorse it, verify it, or support it, and installing one is between you and its author — trust it the way you would trust any other file you choose to download. If you make a pack, it stays yours, and it is on you to have the right to distribute the voice in it.
There is no submission process for iRaceDeck’s own catalog — it lists only the packs we publish ourselves, and a third-party pack reaches you by sideload, never by appearing there.

