Extend DRE with VoiceAttack using DRE Lynx

DRE Lynx connects DRE to VoiceAttack. It lets a VoiceAttack profile invoke DRE actions, react to DRE events, and access selected DRE variables.

Lynx runs locally through a Windows named pipe. It does not open a network port and does not provide remote access between PCs.

 

Requirements

You need:

  • DRE with a Performance subscription or higher
  • VoiceAttack installed on the same Windows PC as DRE
  • DRE Lynx installed through DRE Settings

DRE does not currently publish an exact minimum supported VoiceAttack version.

 

Install DRE Lynx

  1. Install VoiceAttack.
  2. Open DRE Settings and find the Lynx API settings.
  3. Install DRE Lynx.DRE copies the plugin into:VoiceAttack\Apps\DRE.Lynx\
  4. Restart DRE and VoiceAttack.
  5. Import DRE Lynx Example-Profile.vap into VoiceAttack.
  6. Enable the Lynx API in DRE Settings.
  7. Run the example Connect command in VoiceAttack.

If needed, Lynx can start DRE using the StartDRE plugin context.

 

How VoiceAttack calls Lynx

Add an Execute an External Plugin Function action to a VoiceAttack command. Select DRE Lynx and set the plugin context for the operation you want to perform.

Available contexts include:

Connection

  • Connect
  • Disconnect
  • StartDRE

DRE actions

  • GetAllActions
  • InvokeAction

DRE variables

  • GetAllVariables
  • GetVariableOnce
  • EnableVariable
  • DisableVariable
  • SubscribeVariable
  • UnsubscribeVariable

DRE events

  • GetAllEvents
  • SubscribeEvent
  • UnsubscribeEvent

Use GetAllActions, GetAllVariables, and GetAllEvents to retrieve the identifiers available in your installed DRE version.

 

Invoke a DRE action

Use the InvokeAction context and set these VoiceAttack text variables:

  • action: the DRE action intent
  • parameters: optional parameters, separated by semicolons

Use the action intent rather than one of DRE’s spoken phrases. Spoken phrases can change or be translated, while the intent is the stable action identifier.

 

Example: “Are we there yet?”

Create a VoiceAttack command with the spoken phrase:

Are we there yet?

Add an external plugin action with:

  • Context: InvokeAction
  • action: TimeLeft
  • parameters: leave empty

DRE will run its normal session-time-left action.

 

Example: ask for oil temperature every 20 seconds

Create an external plugin action with:

  • Context: InvokeAction
  • action: PlayerOilTemperature
  • parameters: leave empty

Use VoiceAttack’s own repeating-command or scheduling features to run the command every 20 seconds. Lynx invokes the DRE action but does not provide the timer.

 

React to DRE events

Use SubscribeEvent with these VoiceAttack text variables:

  • event: the DRE event identifier
  • callback: the name of an existing VoiceAttack command

When the event occurs, Lynx runs the callback command.

Event arguments are passed through VoiceAttack variables such as:

  • ~passedBoolean1
  • ~passedText1
  • ~passedInteger1
  • ~passedDecimal1
  • ~passedDate1

The numbering is separate for each value type.

 

Example: play sounds when entering or leaving the car

Subscribe to:

  • event: EnteredExitedCar
  • callback: the name of your VoiceAttack sound command

Inside the callback, inspect:

{BOOL:~passedBoolean1}

  • True: the player entered the car
  • False: the player left the car

Use that value to select the appropriate sound.

 

Coordinate speech with other VoiceAttack plugins

DRE exposes the Boolean variable TTSSpeaking.

  • True: DRE is currently speaking
  • False: DRE has finished speaking

DRE also exposes:

  • TTSSpeakingTimestampUTC: when the latest DRE speech started
  • TTSSpeakingEndTimestampUTC: when the latest DRE speech ended

A VoiceAttack profile or custom plugin can monitor TTSSpeaking and delay its own speech while DRE is talking. The end timestamp can be used if your speech coordinator needs a short delay after DRE finishes.

Lynx does not impose a coordination policy. Your VoiceAttack profile decides whether to wait, cancel, queue, or lower the priority of competing speech.

 

Access DRE variables

Lynx exposes Boolean, text, integer, decimal, date, and enum values.

VoiceAttack token formats include:

  • Boolean: {BOOL:name}
  • Text or enum: {TXT:name}
  • Integer: {INT:name}
  • Float or double: {DEC:name}
  • Date and time: {DATE:name}

Use the exact variable identifier and casing returned by GetAllVariables.

A subscription sends the current value and then sends updates when the value changes.

 

Example: write current weather values to the VoiceAttack log

Enable or subscribe to these variables:

  • CurrentTrackTempCrewFloat
  • CurrentWindStrengthFloat
  • WeatherAirTempCurrent

Then use:

{DEC:CurrentTrackTempCrewFloat}

{DEC:CurrentWindStrengthFloat}

{TXT:WeatherAirTempCurrent}

 

Migrating from DRE 3

DRE can import much of your DRE 3 configuration, including keybinds and several DRE configuration files. The importer may overwrite existing DRE settings, so back up your current configuration first.

VoiceAttack profiles and custom plugins are separate from the DRE configuration importer. They are not migrated automatically.

A practical migration process is:

  1. Keep a backup of your existing VoiceAttack profile and custom plugins.
  2. Import your DRE 3 configuration into DRE.
  3. Install DRE Lynx through DRE.
  4. Import the DRE Lynx example profile.
  5. Test Connect, one action, and one event.
  6. Replace old DRE 3 integrations one command at a time.
  7. Map old spoken commands to DRE action intents.
  8. Replace old callbacks with Lynx event subscriptions.
  9. Update custom speech coordination to monitor TTSSpeaking.
  10. Keep your original profile available until every required integration has been tested.

Existing VoiceAttack command phrases can usually remain unchanged. Change the actions behind those phrases to call Lynx.

 

Current limitations

  • Lynx connects DRE and VoiceAttack on the same Windows PC.
  • It does not provide remote communication between two PCs.
  • DRE does not currently publish an exact VoiceAttack compatibility range.
  • VoiceAttack scheduling, sound playback, command queues, and speech-priority rules remain the responsibility of your VoiceAttack profile.
  • DRE 3 VoiceAttack profiles and custom plugins are not converted automatically.
  • Do not use DRE’s internal /input bridge. It is a development feature, not the supported Lynx action interface.

 

Validate your setup

Before adapting a large profile:

  1. Connect VoiceAttack to DRE with Connect.
  2. Run GetAllActions, GetAllVariables, and GetAllEvents.
  3. Invoke TimeLeft.
  4. Subscribe to EnteredExitedCar and test entering and leaving the car.
  5. Monitor TTSSpeaking while DRE speaks.
  6. Confirm every variable required by your profile updates correctly.

Once these checks pass, migrate the rest of your VoiceAttack commands in small groups.

Latest Updates from the blog

iRacing Control Profile Bindings

DRE reads the active saved iRacing profile for supported voice requests and optional controller actions, including changes you save during a session.

Smart Turn and Echo Cancellation

Introduced in 2026.4.0, Smart Turn and Acoustic Echo Cancellation handle natural pauses and speaker feedback more reliably, helping you finish voice commands and interrupt DRE while driving.

Your League Classes, Not the Sim’s

DRE 2026.3.0 brings your league’s Pro, Pro-Am, Am, and other custom classes into live race information, the roster, track map, and Analytics.

Braking Overlap Signal

DRE now catches brake + throttle overlap in braking zones and gives one short sound cue when it happens.

DRE 2026.2: Assetto Corsa Support, Braking Overlap Coaching, and Faster Startup

DRE v2026.2.0 adds full Assetto Corsa support, Braking Overlap coaching, adjustable pit speeding offsets, app keybind control, faster startup, and fixes.

DRE 2026.1 is live

DRE 2026.1 is live with pit stall location alerts before pitting, rollback installs when moving down release lanes, no Neural word caps, faster chat recall, and Turkish support.

DRE Now Supports Le Mans Ultimate

Le Mans Ultimate now works with DRE, bringing voice race engineering, spotter awareness, fuel guidance, and quick mid-race answers into LMU.

Speak with intents

Tired of memorizing exact voice commands? DRE’s new Neural and Hybrid recognition lets you speak naturally. Your race engineer just got a whole lot smarter.

Black Friday 2025 is here

Black Friday Sale: Save big on DRE subscriptions! New users get 50% off the first year, existing subscribers enjoy 25% off on renewals. Use codes: BFNEW2025 for new sign-ups, BFRENEW2025 for renewals. Act before Nov 30th!

DRE 2025.1 is now in beta

DRE 2025.1 beta is here, Read the quick run-down of the major features in this new release.

GET STARTED NOW WITH THE DRE

Email Email icon Discord Discord icon