Set up simulator bindings and controller inputs
The video shows an older controls setup. Follow the current guide below.
Open Controls from DRE’s left side-menu. The DRE tab contains DRE-global shortcuts and controller inputs, such as Push To Talk.
For built-in simulator commands, configure the desired key in the simulator. DRE reads that saved simulator binding. When you request the action by voice or by an optional controller assigned in DRE, DRE sends the simulator binding. Pressing the key on your physical keyboard is handled directly by the simulator and does not activate the DRE command.

With your simulator connected, open Controls → Sim. The table has three columns:
- Function: The action to perform.
- Controller: An optional controller button that requests the action through DRE.
- Simulator Binding: The read-only binding DRE reads from the connected simulator. Only iRacing shows the smaller Profile: name label underneath.
Optionally assign a controller button in DRE. Change the simulator assignment in its own controls settings, not in DRE’s read-only Simulator Binding column.
Actions sent as keypresses need a supported keyboard assignment in the simulator. Actions DRE controls directly through the simulator do not need one. An optional controller assignment in DRE requests the action; it does not replace a required simulator assignment.
As an iRacing example, give Headlight Flash a supported keyboard assignment in iRacing and save it. DRE reads that binding. You can then request Headlight Flash by voice or assign an optional controller button in DRE.

iRacing example: Report Latency has an optional controller input and uses binding L from the saved XBox profile.
Note: A binding or mapping assigns an input to an action.

Tabs
Here’s what you can find in each of the 3 tabs on the Controls page.
![]()
DRE
These binds trigger actions mainly in DRE. Keyboard and controller triggers remain editable and independent. Global DRE controls, including Push To Talk, remain global.
Sim
These rows are built-in simulator actions.
For supported actions, DRE reads the simulator binding or controls the action directly through the simulator. Request the action by voice or assign an optional controller button in DRE.
The physical keyboard belongs directly to the simulator: typing its assigned key is handled by the simulator and does not activate the DRE command. Global DRE controls and custom Command Binds remain separate.
Choose and save your iRacing controls profile
The screenshots below show iRacing as a setup example. This named-profile selection and saving process is specific to iRacing.
- In iRacing, open Settings → Keybinds and choose the intended Control Profile at the bottom left.
- For actions DRE sends as keypresses, give them supported keyboard assignments in iRacing.
- Use Save in the menu beside the profile, or Apply & Close.
- With DRE connected, check Controls → Sim. Confirm the Profile: name label and the iRacing Binding values.
Choose the intended Control Profile, save it, then check the profile label in DRE.
When connecting, DRE first uses the car-specific default profile, then falls back to the Global profile selection recorded in iRacing’s app.ini. The profile menu lets you choose Set as Default or Set as Default for this Car.
Use the menu beside Control Profile to save the profile or choose a default.
While connected, DRE follows the latest saved controls file it detects and reloads bindings when profile or current-control saves occur. Simply selecting a profile without saving is not a guaranteed update. After changing profiles or bindings, save in iRacing and check DRE’s profile label. DRE follows saved files, so the label is not a guaranteed live view of an unsaved selection.
If an iRacing binding is unavailable
- Unassigned: Give the action a supported keyboard assignment in iRacing and save it.
- Controller only: The iRacing action is assigned only to a controller. Give it a supported keyboard assignment so DRE can send it. You can still assign a controller button in DRE.
- Unsupported: DRE cannot send this assignment. Not every keyboard key is supported; comma is currently unsupported. Choose a supported assignment in iRacing and save again.
- Error: DRE could not read or resolve the binding. Follow the explanation in DRE, save the intended profile again and check the profile label.
DRE sends no guessed replacement key for these states. Profile reading supports the currently tested iRacing controls-profile format; it does not promise compatibility with every past or future format.
Command Binds
These binds trigger DRE commands.
- To create a new command bind, go to `Commands` view from the side-menu
- Find the command you want to bind and right-click -> Bind
- Map the first bind to this command
- Confirm the bind
- The view changes to `Controls -> Command Binds`
- Here you can edit the command phrase by clicking in the `Command` field, edit the binds, or delete the command binding

Multiple Command Binds for the same command
It’s possible to bind multiple binds to the same command, in order to trigger a special condition for this command. For example, you can bind to the command that changes tires in the pitstop:
Control | Car | Pit
Change [all;front;rear;left;right] tires;Change [front left;front right;rear left;rear right] tire
Changes the tires without pressure adjustments. Change either all, fronts, rears, lefts, rights, or individual tires
By default, this binds to the first text variation, “change all tires “. But what if you wanted a button press to change all tires and another button to take only right-side tires?

You can rename the newly created Command Bind command phrase, change all tires to change right tires. Or you can:
- Go back to Commands and find the command again
- Click the “+” button to see all phrase variations
- Right-click the variation you want, like Change right tires and hit Bind
- You can now bind to that exact phrase which will trigger changing right-side tires

Rules for Command Binds edits
Tags
- It’s important that command phrases are human-speakable. This means any tags or square/curly braces must be resolved to actual values/words
- When using dynamic values like positions (eg. P1), names, or numbers, their respective dynamic grammar should be enabled in Sound -> Recognition -> Dynamic Grammar
- More info on tags and dynamic values – see ‘The {DRIVER} tag’
- Example:
Camera focus on <Driver>should be resolved toCamera focus on car behindfor DRE to know exactly what and who to take action on
Execute multiple commands
- To trigger multiple commands in succession with one push of a button, you simply have to delimit the spoken command phrases using a semicolon `;`
- Example:
Do tear off;Change all tires
Repeat commands
- To repeat a command multiple times with one push of a button, you simply have to add an asterisk followed by an integer like `*12`
- When using the repeater option, DRE will only speak the initial execution and not the repeats
- Example:
increase fuel mix*12
*N works only in the editable Command field under Controls → Command Binds. It cannot be added to mappings under Controls → Sim.
Create the bind through Commands → right-click the command → Bind. Then open Controls → Command Binds and append the multiplier:
Increase right spring*5Decrease right spring*5
For separate ±1 and ±5 buttons, leave the normal buttons mapped under Controls → Sim. Remove the fast buttons from those Sim mappings and assign them only to the *5 Command Binds. Otherwise, the direct Sim mapping may also execute.
*5 means five executions total from one button press.

