# Elite Dangerous VoiceAttack Profiles # These are various profiles for [VoiceAttack](https://voiceattack.com) (VA) I use to enhance my Elite experience. They give me important info, facilitate day-to-day gaming and do some special things for [Fuel Rats](https://fuelrats.com) and [Hull Seals](https://hullseals.space) work. Each of the profiles is documented in `docs/`. ## Available Profiles ## * [EliteDangerous](docs/EliteDangerous.md): My main Elite VA profile. Here be dragons; things may be heavily tailored towards how _I_ play the game and may not apply to how you play it. Included for reference and as a baseline or inspiration to create your own stuff. * [RatAttack](docs/RatAttack.md): profile for interactions with the Fuel Rats’ IRC server. * [SpanshAttack](docs/SpanshAttack.md): profile to plot and follow trips along the neutron highway using [spansh](https://spansh.co.uk/plotter). * [StreamAttack](docs/StreamAttack.md): profile for writing various things to files that can then be read by streaming software like OBS. ## Requirements ## * [VoiceAttack](https://voiceattack.com): absolutely required (duh). * [bindED](https://forum.voiceattack.com/smf/index.php?topic=564.0): required for EliteDangerous and SpanshAttack; makes anything involving hitting E:D key binds portable. * [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin: required for EliteDangerous, SpanshAttack and Streamattack, optional for RatAttack. * [ED-NeutronRouter](https://github.com/sc-pulgan/ED-NeutronRouter): required for SpanshAttack. **Make sure to [grab the pre-release 1.02](https://github.com/sc-pulgan/ED-NeutronRouter/releases/tag/1.02)** since 1.01 has a bug with a hardcoded 50 ly jump range. * [elite-scripts](https://github.com/alterNERDtive/elite-scripts): required for EliteDangerous, SpanshAttack and StreamAttack, recommended for RatAttack (included). Additionally, you need to have keyboard binds setup at least as secondary bindings in Elite’s controls options. VA _cannot_ “push” joystick buttons for you, it can only do keyboard inputs. Hence its only way to interact with Elite is through keyboard emulation, even if you otherwise play the game with a controller or HOTAS. Or racing wheel. Or Rock Band set. Or bananas. ## Installing ## 1. Install [VoiceAttack](https://voiceattack.com). 1. Install the plugins listed in [Requirements](#Requirements). 1. Download the profile package (`alterNERDtive-voiceattack-profiles.vax`) from the [release page](https://github.com/alterNERDtive/VoiceAttack-profiles/releases/latest) and import it as a profile into VoiceAttack. This will install all included profiles, the referenced sound files and the Python scripts. (You can also download the profiles individually from the `profiles/` folder on github.) ## Getting Started ## You will want to create your own profile and then import the downloaded ones into your custom profile. This way you can easily add commands (to your custom profile), change commands (by copying them into your custom profile and editing them) and change settings (by overriding them in your custom profile). Note that most settings can be changed with voice commands. If you find any that cannot but you feel should, please file an issue or report it on Discord. ### Creating a Custom Profile ### Hit the second button next to the profile dropdown menu and choose “Create new Profile”. Give it a name and add some commands if you want to. You can also just keep using a profile you have already created. ### Importing profiles ### First off, create a startup command. You can name it anything you want, but I recommend calling it “startup” or similar, and to deactivate the “when i say” checkbox in the command options to make sure you don’t accidentally run it via voice. We will need this command later. While editing the profile, hit the “Options” button. On the section labeled “Include commands from other profiles”, hit the “…” button and add all profiles (`EliteDangerous`, `RatAttack`, `SpanshAttack`, `StreamAttack`). All commands defined in these profiles will be available to you. Make sure that “EliteDangerous” is on top of the list. Now switch to the “Profile Exec” tab. Tick the “Execute a command each time this profile is loaded” checkbox, and select the “startup” command you have created earlier. Edit your startup command. Add a new action using “Other” → “VoiceAttack Action” → “Execute Another Command”. Choose “Execute by name (Advanced)” and enter “EliteDangerous.startup”. ### Settings ### All profiles will load sane defaults if you haven’t changed anything. You no longer need to fiddle with the `startup` commands of each profile, instead you can use voice commands to change settings! See the `docs/` and the `_configuration` commands section of each profile. Basically all the settings are available using the `customize settings` prefix, then saying `[enable;disable] ` for on/off switches and `set ` for text variables. One caveat applies: settings will only be saved in the profile you have selected, but be preserved if you switch around. ### Making changes ### If you want to edit a command or add your own, _do not edit the profiles directly_. Instead create commands in your custom profile, and copy commands you want to change over to that before editing them. This will make sure no changes are lost if you update the profiles. Because of limitations of VoiceAttack itself, only the first matching command found will be executed, _including EDDI events_. That means that if you create commands to handle EDDI events, you are going to have to check the imported profiles if they rely on these event handlers as well, and call them manually if they do. E.g. if you want to create a custom `((EDDI Message sent))` handler in your profile, you will have to make it excute the `EliteDangerous.EDDI Message sent` and `RatAttack.EDDI Message sent` commands. Otherwise stuff _will_ break. If you have no idea what the previous two paragraphs were about, you can most likely just ignore them. ## Updating ## Sadly VoiceAttack doesn’t let you overwrite an existing profile when you import a different (newer) version of it. So you’ll have to follow these steps: 1. Look at the release page and see which profiles have been updated (they’ll also be attached as single `.vap` files to the release) 1. Delete these profiles from your VoiceAttack. 1. Import the updated profiles. 1. Fix all profiles that include the updated profiles. You are going to have to re-add the includes (“Edit Profile” → “Options” → “Include commands from other profiles”). You could also delete _all_ the profiles, then re-import the entire release package (the `.vax` file). You will still have to fix the includes. If you have followed the installation instructions above, you will not lose any of the changes you have made since they will be in a separate profile. **Do not delete** that profile! If you delete anything by accident or something didn’t work out quite like you intended, you can find backups of VoiceAttacks data file in `%AppData%\VoiceAttack\Backup`. They get saved every time you change settings or profiles. To restore, close VoiceAttack, find the file with the right timestamp just before you made the changes, copy it to the parent directory, remove the old “VoiceAttack.dat” file and rename the backup to that. ### Major Version Changes ### If a profile’s major version number changes (e.g. SpanshAttack 1.x.x to 2.0.0) there _will_ be changes to the profile that include one or any amount of the following changes: * command names / command invocation have changed * configuration variable name or format have changed * features removed * _major_ features added **If you see a major version number change in the release notes, please pay attention to said notes to know what you might have to change to get it to work!** ## Need Help / Want to Contribute? ## If you run into any errors, please try running the profile in question on its own / get a fresh version. If that doesn’t fix the error, look at the [devel](https://github.com/alterNERDtive/VoiceAttack-profiles/tree/devel) branch and see if it’s fixed there already. If you have no idea what I was saying in that last parargraph and / or the things mentioned there don’t fix your problem, please [file an issue](https://github.com/alterNERDtive/VoiceAttack-profiles/issues). Thanks! :) You can also [say “Hi” on Discord](https://discord.gg/kXtXm54) if that is your thing.