EliteG19s VoiceAttack Guide

Use the EliteG19s VoiceAttack plugin to trigger any IRemoteControl action through spoken commands. This guide covers installation, supported command contexts, and the VoiceAttack variables that the plugin populates.

1. Install the Plugin

  1. Locate the VoiceAttack assets that ship with EliteG19s, typically under %LocalAppData%\Programs\EliteG19s\VoiceAttack.
  2. Copy the contents of the Apps subfolder into VoiceAttack's global apps folder (default C:\Program Files (x86)\VoiceAttack\Apps).
  3. Copy the sample profile EliteG19s-Profile.vap if you want ready-made commands, or inspect it to see how the contexts are wired.
  4. In VoiceAttack, open Settings â–¸ General and turn on Enable Plugin Support.

2. Configure VoiceAttack

On plugin startup VoiceAttack automatically runs what's playing and status to prime the most commonly used variables. Make sure the EliteG19s app is already running or these calls will log a warning instead.

3. Command Catalogue

Every row below is triggered by setting the plugin context to the string in the Command Context column. Unless noted, commands complete silently and VoiceAttack receives no direct response. Parameter ranges mirror the webhook service.

3.1 Audio & Volume

| Command Context | Parameters | Effect | | --------------- | ---------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | | volume | <delta> | <delta> integer -100..100 | Adjusts master volume by delta/100. Values outside the range clamp to mute/100%. | | mute | None | Toggles the global mute state and keeps space-traffic chatter in sync. |

3.2 Music Sources

| Command Context | Parameters | Effect | | --------------- | ----------- | ---------------------------- | ----------------------------------------------------------------------------------------------- | | radio | <station> | <station> string | Plays the named radio preset defined in options.json (RadioStations). Case-insensitive. | | spotify | <playlist> | <playlist> string | Starts the configured Spotify playlist preset (Premium account required). | | podcast | <podcast> | <podcast> string | Streams the most recent episode of the configured podcast preset. | | youtube | <preset> | <preset> string | Opens the YouTube/Twitch web screen using the named preset from the options file. | | play folder | <path> | <path> absolute folder | Recursively queues supported media from disk and resumes the last play position when available. | | play playlist | <path> | <path> to .m3u/.m3u8 | Loads an M3U playlist and begins playback. | | stream url | <url> | <url> absolute HTTP(S) URI | Streams audio from the provided URL. |

3.3 Playback Transport

Command Context Parameters Effect
stop music None Releases the active audio provider.
pause music None Pauses or resumes the current track.
next track None Skips forward in the queue.
previous track None Skips backward in the queue.
skip forward None Jumps ahead ~30 seconds when supported.
skip back None Jumps back ~30 seconds when supported.
shuffle music None Toggles shuffle mode.

3.4 Screens & Visualizations

| Command Context | Parameters | Effect | | -------------------------- | ---------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | screen | <name> | <name> string | Switches every display to the named screen. Accepts the screen identifiers listed in section 5. | | visualization | <name> | <name> string | Activates an audio visualization. Valid names: Cassette, Orrery, Equalizer, Full Screen Cover Art, Full Screen Equalizer, Starfield, Waveform, Spectrogram. | | button | <button> | <button> one of up, down, left, right, menu, ok, cancel | Simulates the corresponding Logitech G19 button press. | | select interactive option | <option> | <option> string | Chooses an option on interactive overlays and question prompts. |

3.5 Space Traffic & NPC Audio

| Command Context | Parameters | Effect | | --------------- | ---------- | ------------------------------------------------------- | ---------------------------------------------- | | traffic | <state> | <state> string (on enables, anything else disables) | Turns space-traffic control chatter on or off. | | traffic volume | <delta> | <delta> integer -100..100 | Adjusts traffic-control volume by delta/100. | | npc volume | <delta> | <delta> integer -100..100 | Adjusts NPC speech volume by delta/100. |

3.6 Messaging & Speech

| Command Context | Parameters | Effect | | --------------- | ---------- | --------------------------------------------------- | ----------------------------------------------------------- | | show message | <text> | <text> string | Displays a toast message on the EliteG19s screen. | | speak | <text> | <text> string | Plays the Ship AI voice line using cached speech synthesis. | | unrecognized | None | Speaks the ShipAI_UnrecognizedCommand TTS prompt. |

3.7 Navigation, Shopping & Utilities

Command Context Parameters Effect
mark position None Stores the current location in the GPS manager.
next waypoint None Advances to the next GPS waypoint.
find commodity Uses VoiceAttack vars ~commodity (text) and ~isBuying (bool) Runs the Inara commodity lookup and announces the best result. Defaults to buying when ~isBuying is unset.
read shoppinglist None Reads the shopping list contents aloud.
clear shoppinglist None Empties the shopping list.
update shopping list Uses VoiceAttack vars ~commodity (text) and ~amountText (text) Adds or updates a shopping-list entry. When ~amountText parses to <= 0, the entry is removed.

3.8 Data Queries

Command Context Parameters Effect
what's playing None Updates the EliteG19s_Current_* text variables with live metadata.
status None Updates all EliteG19s_* status variables with commander, ship, and situational data.

4. VoiceAttack Variables

The plugin exposes structured data by writing to VoiceAttack variables.

4.1 Now Playing (what's playing)

Variable Type Description
EliteG19s_Current_Station Text Current radio station or source.
EliteG19s_Current_Artist Text Artist for the active track (if known).
EliteG19s_Current_Album Text Album title for the active track (if known).
EliteG19s_Current_Title Text Track title.

4.2 Commander & Ship Status (status)

Variable Type Description
EliteG19s_CommanderName Text Commander name.
EliteG19s_Credits Decimal Current credit balance.
EliteG19s_CombatRank Text Combat rank.
EliteG19s_CQCRank Text Close Quarters Combat rank.
EliteG19s_ExplorationRank Text Exploration rank.
EliteG19s_TradeRank Text Trade rank.
EliteG19s_FederationRank Text Federation rank.
EliteG19s_EmpireRank Text Empire rank.
EliteG19s_GameMode Text Current game mode (Open / Private / Solo).
EliteG19s_IsGameInBeta Boolean Indicates participation in a beta build.
EliteG19s_Ship Text Ship model.
EliteG19s_ShipName Text Ship name.
EliteG19s_ShipId Text Ship identifier.
EliteG19s_CurrentSystem Text Present star system.
EliteG19s_ClosestStation Text Closest station (if known).
EliteG19s_ClosestBody Text Closest body or planet (if known).
EliteG19s_AssignedLandingPad Integer Landing pad assigned during docking.
EliteG19s_IsCockpitBreached Boolean Cockpit breach state.
EliteG19s_IsInCrew Boolean Multicrew participation.
EliteG19s_IsInWitchspace Boolean Currently in Witchspace.
EliteG19s_CurrentLongitude Decimal Planetary longitude (999 when unknown).
EliteG19s_CurrentLatitude Decimal Planetary latitude (999 when unknown).
EliteG19s_CurrentAltitude Decimal Altitude above surface (-1 when unknown).
EliteG19s_CurrentHeading Decimal Current heading.
EliteG19s_Firegroup Integer Active firegroup index.
EliteG19s_GuiFocus Text Cockpit UI focus element.
EliteG19s_PipsSystem Integer Pips allocated to systems (0-8, halves counted).
EliteG19s_PipsEngine Integer Pips allocated to engines.
EliteG19s_PipsWeapons Integer Pips allocated to weapons.
EliteG19s_IsDocked Boolean Currently docked.
EliteG19s_IsLanded Boolean Landed on a surface.
EliteG19s_IsLandingGearDown Boolean Landing gear deployed.
EliteG19s_IsShieldsUp Boolean Shield state.
EliteG19s_IsInSuperCruise Boolean In supercruise.
EliteG19s_IsFlightAssistOff Boolean Flight assist disabled.
EliteG19s_IsHardpointsDeployed Boolean Hardpoints deployed.
EliteG19s_IsInWing Boolean Wing membership.
EliteG19s_IsLightsOn Boolean External lights on.
EliteG19s_IsCargoScoopDeployed Boolean Cargo scoop deployed.
EliteG19s_IsSilentRunning Boolean Silent running active.
EliteG19s_IsScoopingFuel Boolean Fuel scooping in progress.
EliteG19s_IsSrvHandbrake Boolean SRV handbrake engaged.
EliteG19s_IsSrvTurret Boolean SRV turret deployed.
EliteG19s_IsSrvUnderShip Boolean SRV positioned under ship.
EliteG19s_IsSrvDriveAssist Boolean SRV drive assist active.
EliteG19s_IsFsdMassLocked Boolean FSD mass-locked.
EliteG19s_IsFsdCharging Boolean FSD charging.
EliteG19s_IsFsdCooldown Boolean FSD cooling down.
EliteG19s_IsLowFuel Boolean Fuel below 25%.
EliteG19s_IsOverHeating Boolean Heat above 100%.
EliteG19s_HasLatLong Boolean Latitude/longitude data available.
EliteG19s_IsInDanger Boolean In danger (warning indicator).
EliteG19s_IsBeingInterdicted Boolean Being interdicted.
EliteG19s_IsInMainShip Boolean Currently in main ship.
EliteG19s_IsInFighter Boolean Currently in fighter.
EliteG19s_IsInSrv Boolean Currently in SRV.

5. Valid Screen Names

Use these identifiers with the screen|<name> command (case-insensitive):

6. Tips & Troubleshooting