first round of new documentation!
1
.gitignore
vendored
|
@ -357,3 +357,4 @@ MigrationBackup/
|
|||
/alterNERDtive-VoiceAttack-profiles.vax
|
||||
/Makefile
|
||||
/site
|
||||
/src
|
||||
|
|
183
README.md
|
@ -5,184 +5,27 @@ 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.
|
||||
* EliteAttack: The main Elite VA profile. Anything related to “just” playing the
|
||||
game.
|
||||
* RatAttack: Manages interactions with the FuelRats IRC server.
|
||||
* SpanshAttack: Plots and follows trips along the neutron highway using
|
||||
[Spansh’s neutron plotter](https://spansh.co.uk/plotter).
|
||||
* StreamAttack: Writes various status things to files that can then be read by
|
||||
streaming software like OBS.
|
||||
|
||||
## Requirements ##
|
||||
## Documentation
|
||||
|
||||
* [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. You can also use [my updated fork of
|
||||
that](https://github.com/alterNERDtive/bindED); read the README over there for
|
||||
more information.
|
||||
* [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] <setting>` for on/off switches and `set <setting>`
|
||||
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 ##
|
||||
|
||||
### The Best™ Way ###
|
||||
|
||||
Say “check for profiles update”. If it finds one, say “download profiles
|
||||
update”. Restart VoiceAttack.
|
||||
|
||||
There will also be an update check every time `EliteDangerous.startup` is run.
|
||||
|
||||
**Note**: This is temporarily disabled because version 4.0 will introduce
|
||||
breaking changes that need manual upgrade steps.
|
||||
|
||||
### The Manual Way ###
|
||||
|
||||
If you don’t like automation or do not use all provided profiles, you’ll have to
|
||||
update semi-manually.
|
||||
|
||||
Say “open VoiceAttack import folder”. Download the current release profile
|
||||
package, drop it in there. Restart VoiceAttack.
|
||||
|
||||
### Note about Admin Privileges ###
|
||||
|
||||
The update process will run VoiceAttack with admin privileges. If you do not
|
||||
usually run VoiceAttack with admin privileges, do _not_ have it start
|
||||
VoiceAttack for you after importing the profiles update. It will keep running
|
||||
with elevated privileges. Instead restart it manually. If you are not sure if
|
||||
you are running with elevated privileges check the “VoiceAttack Information”
|
||||
dialog in VoiceAttack General settings → “System Info >”. It will include a line
|
||||
about running with admin prvileges if it does.
|
||||
|
||||
### 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!**
|
||||
You can find [comprehensive documentation on Github
|
||||
Pages](https://alternerdtive.github.io/VoiceAttack-profiles).
|
||||
|
||||
## 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 run into any errors, please make sure you are running the latest version
|
||||
of the profiles and all requirements.
|
||||
|
||||
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
|
||||
If your problem persists, 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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# StreamAttack #
|
||||
|
||||
This profile uses the [EDDI](https://github.com/EDCD/EDI) plugin to write
|
||||
This profile uses the [EDDI](https://github.com/EDCD/EDDI) plugin to write
|
||||
a bunch of information about your commander, your current location and your ship
|
||||
to files that can be accessed e.g. by your streaming software to be displayed on
|
||||
stream.
|
||||
|
|
465
docs/configuration/EliteAttack.md
Normal file
|
@ -0,0 +1,465 @@
|
|||
# EliteAttack #
|
||||
|
||||
This is my personal VoiceAttack profile for Elite: Dangerous. It started out
|
||||
ages ago as a modification of [MalicVR’s public
|
||||
profile](https://forums.frontier.co.uk/threads/malics-voice-attack-profile-for-vr.351050/),
|
||||
then looked less and less and less like that and I added and cleaned up a lot of
|
||||
things while removing the stuff I didn’t use anyway. By now it would have
|
||||
probably been simpler to start from scratch.
|
||||
|
||||
Some of it has grown to a state that it might be useful to others in its own
|
||||
package, so I’ve separated the neutron jumping and Seals stuff into their own
|
||||
profiles.
|
||||
|
||||
The rest is a random conglomerate of all things VA and E:D; from various voice
|
||||
commands to lots of EDDI event handlers.
|
||||
|
||||
Speaking of EDDI; it has become in integral part of my Elite experience,
|
||||
especially the plethora of information it extracts from the game’s journal and
|
||||
presents to you via lots and lots of status variables and by firing various
|
||||
events that can then be handled through VA commands. It’s great. Check it out.
|
||||
(You might want to make it talk a lot less in it’s personality options, or
|
||||
disable the speech responder entirely like I have.)
|
||||
|
||||
## Requirements ##
|
||||
|
||||
In addition to the bindED and EDDI VoiceAttack plugins, this profiles needs my
|
||||
[Python elite-scripts](https://github.com/alterNERDtive/elite-scripts) to do
|
||||
everything properly. The release page here includes a compiled version for
|
||||
Windows that does not need Python installed. If you use the profile package from
|
||||
the release page, they will be installed automatically.
|
||||
|
||||
## Settings ##
|
||||
|
||||
Because Elite’s keyboard handling is … weird you’ll have to set the key to use
|
||||
for pasting text into Elite:Dangerous. If you are not using a “standard”
|
||||
QWERT[YZ] layout, you will have to change it back to the key that is physically
|
||||
in the place where `v` would be on QWERTY.
|
||||
|
||||
For other settings, see the [Configuration Variables](#Configuration-Variables)
|
||||
section.
|
||||
|
||||
## Including the Profile In Another Profile ##
|
||||
|
||||
This is meant to be a standalone profile, including the others in this repo (and
|
||||
a couple more). It was never designed to be included into your existing profile.
|
||||
Nevertheless, it _should_ work properly if you follow some guide lines:
|
||||
|
||||
* Run the startup command. You will need to have a startup command in your
|
||||
profile (= one that is run on profile loading) and call
|
||||
`EliteDangerous.startup` by name from that one.
|
||||
* Make sure all EDDI events that EliteDangerous needs are correctly handled. For
|
||||
all events used in EliteDangerous that you already have handlers for in your
|
||||
profile, you’ll have to include a call to `EliteDangerous.<event name>`. E.g.
|
||||
for “EDDI Jumped”, call `EliteDangerous.EDDI Jumped` by name from your `((EDDI
|
||||
Jumped))` command.
|
||||
|
||||
## Usage ##
|
||||
|
||||
### Chat Commands ###
|
||||
|
||||
There’s a bunch of commands in here to send certain things to chat. Unless
|
||||
stated otherwise, they will only work with the comms panel active, and you
|
||||
should be in the edit window ready to send. They will _not_ hit Enter on their
|
||||
own.
|
||||
|
||||
* `clear [chat;text]`: Clears the chat window. Use from outside the comms panel.
|
||||
* `[local;squad;system;wing] chat`: Puts you into the chosen chat channel.
|
||||
* `paste text`: Pastes your clipboard into Elite. Works outside the comms panel
|
||||
too, e.g. on the galaxy map inside the search field.
|
||||
* `salute; oh seven`: Will put “o7” into the chat.
|
||||
|
||||
### Engineering/Materials ###
|
||||
|
||||
* `how many [<g5 manufactured materials list>] do i have`: Tells you how many of
|
||||
the given g5 manufactured material you currently have on board. I’ve
|
||||
restricted it to just those to not spam speech recognition with too many
|
||||
phrases, and because those are the ones I usually want to know while jumping
|
||||
around the bubble and having an eye on any HGE that might be around.
|
||||
* `open e d engineer`: Opens the ED Engineer tool.
|
||||
* `what [mats;materials] do i need?`: Runs the EDDI responder that tells you
|
||||
which materials are below wanted threshold. Needs setting those first. Gets
|
||||
very spammy if you do it for all of them; personally I only set them for g5
|
||||
manufactured, so I can quickly check if it’s worth looking for HGE in a system
|
||||
I’m in.
|
||||
|
||||
### Events ###
|
||||
|
||||
The main point of this profile is to react to Elite’s journal events (powered by
|
||||
EDDI). Each of the events listed here will trigger a `((EDDI <event>))` command
|
||||
in VoiceAttack which in turn triggers `EliteDangerous.EDDI <event>` and all
|
||||
included profiles’ similar commands, e.g. `SpanshAttack.EDDI <event>`.
|
||||
|
||||
The actual `((EDDI <event>))` command will only be executed once by VoiceAttack,
|
||||
the first one it can find. Keeping it separate from the actual code to be run
|
||||
makes it easier to handle (multiple) included profiles.
|
||||
|
||||
If the command for an event will send key presses to Elite, it focuses the
|
||||
client window first to make sure they get registered properly. If it is not in
|
||||
focus, the first key press might be swallowed otherwise.
|
||||
|
||||
For other commands, the profile just assumes that you are actively doing
|
||||
something in game and it is already focused :)
|
||||
|
||||
#### Body Mapped ####
|
||||
|
||||
Announces an estimate for high-value bodies’ payouts and the remaining mapping
|
||||
candidates in the system as given by EDDI.
|
||||
|
||||
#### Body scanned ####
|
||||
|
||||
Announces any interesting body traits found when scanning:
|
||||
|
||||
* terraformable
|
||||
* Earth-like World, Ammonia World or Water World
|
||||
* landable and >5 g
|
||||
* semimajor axis <1.5 ls (only really interesting for planets, but there’s no
|
||||
proper way to separate them from moons, sadly)
|
||||
* radius <300 km
|
||||
|
||||
Feel free to suggest more!
|
||||
|
||||
#### Carrier Cooldown ####
|
||||
|
||||
Tells you when your carrier is able to do its next jump. Technically only works
|
||||
if you were docked at it when it performed the jump, but I’m doing some
|
||||
behind-the-scenes magic if you weren’t :)
|
||||
|
||||
Might be slightly off (too early) in the latter case.
|
||||
|
||||
#### Carrier Jumped ####
|
||||
|
||||
Announces system and body your carrier has just jumped to.
|
||||
|
||||
#### Carrier Jump Engaged ####
|
||||
|
||||
This event fires when your carrier jumps but you are _not_ docked at it. It
|
||||
provides way less information than the `Carrier Jumped` event, but hey, I don’t
|
||||
use most of it anyway.
|
||||
|
||||
Basically just calls `Carrier Jumped` (and makes sure that a `Carrier cooldown`
|
||||
event is triggered manually at approximately the right time).
|
||||
|
||||
#### Carrier Jump Request ####
|
||||
|
||||
Announces the system and body your carrier has just been scheduled to jump to.
|
||||
Use this to double check ingame information; I’ve had my carrier accept a body
|
||||
as jump target, but then end up around the star. This _might_ give you a heads
|
||||
up on that.
|
||||
|
||||
#### Carrier Pads Locked ####
|
||||
|
||||
Announces your carriers lockdown procedures. This _might_ only work when you are
|
||||
docked (which would make it pretty useless). Feel free to open in issue if
|
||||
that’s the case.
|
||||
|
||||
#### Discovery Scan ####
|
||||
|
||||
Announces the number of bodies (and non-body signals) found in the system. Also
|
||||
compares the number of bodies to the amount reported by EDSM (requires Python
|
||||
scripts).
|
||||
|
||||
#### Docked ####
|
||||
|
||||
Automatically gets your ship into the hangar and opens station services.
|
||||
|
||||
#### Docking Denied ####
|
||||
|
||||
Tells you the reason for docking denial.
|
||||
|
||||
#### Entered Normal Space ####
|
||||
|
||||
Throttles to 0 upon dropping from SC, if `EliteDangerous.hyperSpaceDethrottle` is set.
|
||||
|
||||
#### Fighter Launched ####
|
||||
|
||||
Orders your ship to hold position so it doesn’t chase after you immediately.
|
||||
|
||||
#### Jet Cone Boost ####
|
||||
|
||||
Sets your ship to full throttle immediately after you have supercharged.
|
||||
|
||||
#### Jumped ####
|
||||
|
||||
* zeroes throttle
|
||||
* gets the system’s body count from EDSM (requires Python scripts)
|
||||
* gets stations with outdated data (older than 1 year) from Spansh’s API
|
||||
* if you haven’t visited the systems, starts a discovery scan (see the discovery
|
||||
scan command)
|
||||
* last but not least tells you about planets worth scanning if you are on the
|
||||
R2R
|
||||
|
||||
#### Liftoff ####
|
||||
|
||||
Retracts landing gear for you. Seriously, is there any occasion in which you
|
||||
_don’t_ immediately want to retract it after takeoff?
|
||||
|
||||
#### Low Fuel ####
|
||||
|
||||
Warns you when you reach 25% fuel. Also reports number of jumps you have left or
|
||||
the (rough) range you still have on the fumes left in your tank.
|
||||
|
||||
#### Material Threshold ####
|
||||
|
||||
Warns you when a monitored material falls below it’s minimum stock level. You
|
||||
will have to set a minimum desired amount in EDDI’s material monitor options
|
||||
first for all materials you wish to be monitored.
|
||||
|
||||
#### Message Sent ####
|
||||
|
||||
Checks any message you send for a chat prefix and sends it to the proper chat
|
||||
window. Probably largely useless to you without modification.
|
||||
|
||||
* `.nc`: Actually doesn’t send anything, but runs the
|
||||
`RatAttack.announceNearestCMDR` command with the system given in the rest of
|
||||
the message.
|
||||
* `.dc`: Sends the message to the Discord window.
|
||||
* `.tc`: Sends the message to my twitch channel window (IRC #alternerdtive).
|
||||
|
||||
There are similar event commands in RatAttack and SealAttack handling other chat
|
||||
windows.
|
||||
|
||||
#### Ship FSD ####
|
||||
|
||||
This event actually is several different events in one. Currently the following
|
||||
are handled:
|
||||
|
||||
* charging: Warns you if your target system’s main star is not scoopable,
|
||||
including an extra warning at low fuel levels. (__Note__: This only works if
|
||||
the target system is in EDSM. So it’s kind of useless for its intended use
|
||||
(exploration) and probably going to be removed at some point.)
|
||||
* cooldown complete: Announces FSD cooldown if you are currently in normal
|
||||
space.
|
||||
|
||||
#### Ship interdicted ####
|
||||
|
||||
Tells you when you have been interdicted by a player. Is also supposed to target
|
||||
the interdictor automatically, but randomly sometimes just doesn’t work. Yay!
|
||||
|
||||
#### Ship targeted ####
|
||||
|
||||
This currently doesn’t do anything. I was fiddling around with automatically
|
||||
targeting a certain module on ship targeting, but it was more hassle than I had
|
||||
thought.
|
||||
|
||||
#### SRV Launched ####
|
||||
|
||||
Toggles SRV lights off after launching. Might not work if you drop particularly
|
||||
far after deployment because it works off a timer. Conversely might take
|
||||
a second to turn your lights off on a short drop and/or in high gravity.
|
||||
|
||||
#### System Scan Complete ####
|
||||
|
||||
Lists you all bodies EDDI considers worth mapping in the current system.
|
||||
|
||||
#### Undocked ####
|
||||
|
||||
Retracts landing gear for you. Seriously, is there any occasion in which you
|
||||
_don’t_ immediately want to retract it after takeoff?
|
||||
|
||||
#### VA initialized ####
|
||||
|
||||
Fires when the EDDI VoiceAttack plugin is loaded. Makes sure that EDDI is set to
|
||||
quite mode even if the profile was loaded before plugin initialization had
|
||||
completed.
|
||||
|
||||
### Misc ###
|
||||
|
||||
The commands in here do random more or less useful things.
|
||||
|
||||
* `bind keys;reset key binds`: Reloads your key binds through the bindED plugin.
|
||||
You should do that after changing anything in the controls options.
|
||||
* `copy current system`: Copies the current system name into the clipboard.
|
||||
* `distance [from;to] […]`: Tells you the distance from your current position to
|
||||
the other thing you mentioned and is supported in the command. (requires
|
||||
Python scripts)
|
||||
* `do a barrow roll`: WHOOOOOOO!
|
||||
* `fix window dimensions`: When you start the game in VR, it forces into
|
||||
windowed mode with weird resolution. This changes it back. Hover the “PLAY”
|
||||
entry in the main menu, then run this. Will need adjustment for different
|
||||
graphics cards/drivers and the resolution you want.
|
||||
* `neutron [jump;trip] time`: Shorter version of the same thing in SpanshAttack.
|
||||
* `neutron jumps left`: Shorter version of the same thing in SpanshAttack.
|
||||
* `open copied system on EDSM`: Opens the system in your clipboard on EDSM in
|
||||
your default browser.
|
||||
* `open coriolis`: Opens Coriolis in your default browser.
|
||||
* `open [current;] system on EDSM`: Opens your current system on EDSM in your
|
||||
default browser.
|
||||
* `open EDDI options; configure EDDI`: Opens the EDDI configuration window.
|
||||
* `open e d d b [station;system;faction;] [search;]`: Opens EDDB in your default
|
||||
browser.
|
||||
* `open e d s m`: Opens EDSM in your default browser.
|
||||
* `open inara`: Opens Inara in your default browser.
|
||||
* `open materials finder`: Opens EDTutorials’ materials finder in your default
|
||||
browser.
|
||||
* `open miner’s tool`: Opens https://edtools.ddns.net/miner in your default
|
||||
browser.
|
||||
* `reload bindings`: Reloads your bindings for bindED.
|
||||
* `shut up EDDI`: Immediately stops any ongoing (and queued) EDDI speech.
|
||||
* `[start;stop] [EDISON;navigation]`: Hits `CTRL+ALT+E` which just so happens to
|
||||
be the start/stop hotkey I have set in E.D.I.S.O.N.
|
||||
* `[bodies;what’s;what is] left to [map;be mapped;scan]`: Tells you which bodies
|
||||
EDDI thinks are worth mapping in the system that you haven’t mapped yet.
|
||||
|
||||
### Navigation ###
|
||||
|
||||
There are so many navigation-focused commands now, they deserve there own
|
||||
category. Basically anything that helps you plot anywhere. A lot of those are
|
||||
powered by awesome EDDI so I don’t have to do the work myself!
|
||||
|
||||
* `plot course;[target;] next [waypoint;way point]`: Plots a course to the
|
||||
system set in `~~system` or the one in your clipboard. The former way is
|
||||
usually used by other commands to not interfere with your clipboard.
|
||||
* `[find;target] nearest [encoded;manufactured;raw] material trader`: Targets
|
||||
the nearest respective material trader.
|
||||
* `[find;target] nearest [guardian;human] tech broker`: Targets the nearest respective
|
||||
tech broker.
|
||||
* `[find;target] nearest [interstellar factor;mission system;scoopable star]`: Well,
|
||||
you know the drill by now.
|
||||
* `[find;target] nearest mission system`: Targets the nearest system that has a mission
|
||||
target.
|
||||
* `[find;target] [<system>]`: Targets the given system on the galaxy map. There’s
|
||||
a bunch in there, the list is easily extensible. Drop me a note if you want
|
||||
something included.
|
||||
|
||||
### Ship Controls ###
|
||||
|
||||
Basically anything that is related to directly doing something with your ship.
|
||||
|
||||
* `[abort;cancel;stop] jumping`: Stops a currently charging FSD jump.
|
||||
* `[buggy;exploration] power`: Sets your PD to 0/4/2 or 2/4/0 respectively.
|
||||
Works in SRV too.
|
||||
* `[close;deploy;extend;open;retract;] […] [up;down;]`: Overly complicated
|
||||
command to handle everything related to Cargo Scoop, Hard Points, Landing
|
||||
Gear. You get the gist, I guess. Works in SRV too.
|
||||
* `[disco;discovery scan]`: Executes a discovery scan. To work properly, you’ll
|
||||
have to set the Discovery Scanner to your first fire group, secondary fire.
|
||||
* `[dis;]engage silent running`: Turns silent running on and off.
|
||||
* `[head;spot;] lights [on;off]`: Turns your lights on and off. Works in SRV
|
||||
too, kinda; turning lights off there relies on the state updating fast enough,
|
||||
which sometimes leads to weird results.
|
||||
* `[jump;engage;get me out;punch it chewie] [and scan;] [when ready;]`: Retracts
|
||||
everything that might be protruding from your ship, then jumps to the next
|
||||
system. If the FSD isn’t charging within 1s, it gets you into SC instead (e.g.
|
||||
if your target is obstructed). If given “and scan” runs a discovery scan. If
|
||||
given “when ready” waits for mass lock to clear, your FSD to cool down and you
|
||||
to leave scoop range before jumping.
|
||||
* `night vision [on;off]`: Toggles your night vision on/off. Works in SRV too.
|
||||
* `power to [engines;shields;systems;weapons`: Sets 4 pips to the thing you told
|
||||
it, 1 to the others.
|
||||
* `rapid fire lights`: Flashes your lights 5 times in a row.
|
||||
* `retract [all;everything]`: Retracts, well, everything.
|
||||
* `[start;stop] [firing;mining]`: Starts/stops holding down primary fire. Mostly
|
||||
useful when mining. When triggered with “mining”, also deploys the cargo
|
||||
scoop.
|
||||
* `[super;] cruise [when ready;]`: Retracts everything, then jumps to SC. If
|
||||
given “when ready” will wait for mass lock to clear and your FSD to cool down
|
||||
first.
|
||||
|
||||
### SRV controls ###
|
||||
|
||||
Things relevant to your SRV, but not your ship.
|
||||
|
||||
* `[recall;dismiss] ship`: Recalls or dismisses ship. Currently does the same
|
||||
thing regardless of the state of your ship. I wish it would be possible to
|
||||
restrict it to doing one thing each, but that’s currently not possible sadly.
|
||||
* `[toggle;enable;disable] drive assist`: Handles all your drive assist needs!
|
||||
|
||||
### Targeting ###
|
||||
|
||||
Well … targeting stuff, I guess. Not really sure why I made that it’s own
|
||||
category, but oh well :)
|
||||
|
||||
* `target next system`: Selects the next system on your route.
|
||||
* `target wing man [1;2;3]`: Targets your wing men.
|
||||
* `target’s target`: Targets your target’s target.
|
||||
* `wing man [1;2;3] target`: Targets your wing men’s target.
|
||||
* `wing man nav lock`: Toggles wing man nav lock on the selected wing member.
|
||||
|
||||
### UI Commands ###
|
||||
|
||||
Everything handling stuff that’s not related to controlling your ship, but
|
||||
manipulating some UI element(s).
|
||||
|
||||
* `controls options`: Opens the controls options menu.
|
||||
* `docking request;request dock[ing;]`: Sends a docking request.
|
||||
* `[enter;leave] F S S`: Opens/closes FSS.
|
||||
* `galaxy map`: Opens the galaxy map.
|
||||
* `[main;game] menu`: Opens the ESC menu.
|
||||
* `[relog;reset] to [open;solo]`: Relogs to Open or Solo mode, respectively.
|
||||
* `restart from Desktop`: Quits the game and restarts from an open launcher by
|
||||
clicking the play button.
|
||||
* `set […] filter`: Sets a nav panel filter setting. See the command or just try
|
||||
different things for what is possible. You need to clear filters and hover
|
||||
over the filter button, then run this.
|
||||
* `system map`: Opens the system map.
|
||||
* `take [high res;] screenshot`: Takes a (high res) screenshot.
|
||||
* `toggle orbit lines`: Toggles the visibility of orbit lines.
|
||||
* `[toggle;show;hide] interface`: Toggles the cockpit interface (CTRL+ALT+G).
|
||||
Probably needs to be adjusted if you are not playing with Neo2 keyboard layout
|
||||
:)
|
||||
|
||||
### Update Commands ###
|
||||
|
||||
* `check for profiles update`: Does just that. Is also automatically run each
|
||||
time the profile is started.
|
||||
* `download profiles update`: Downloads a profiles update if applicable. Will
|
||||
prompt you to restart VoiceAttack when the download has finished to import the
|
||||
updated profiles.
|
||||
* `open profiles change log`: Opens `CHANGELOG.md` on Github.
|
||||
|
||||
## Logging ##
|
||||
|
||||
The profile supports logging a bunch of stuff to the VoiceAttack event log. By
|
||||
default, logging is concise and constrained to basically error messages.
|
||||
|
||||
If you need more logging (usually for debugging purposes), say `enable logging`.
|
||||
If you want to enable verbose logging _by default_, call the
|
||||
`Logging.enableLogging` command from your custom profile’s `startup` command.
|
||||
|
||||
## Configuration Variables ##
|
||||
|
||||
There are a bunch of configuration variables. You should not overwrite those
|
||||
manually, instead use the provided commands in the `_configuration` section!
|
||||
|
||||
Basically all the settings are available using the `customize settings` prefix,
|
||||
then saying `[enable;disable] <setting>` for on/off switches and `set <setting>`
|
||||
for text variables.
|
||||
|
||||
* `EDDI.quietMode` (boolean): whether or not to set EDDI to quite mode. Default:
|
||||
true.
|
||||
* `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this
|
||||
is `v`. Default: `p`.
|
||||
* `EliteDangerous.announceEdsmSystemStatus` (boolean): whether to announce the
|
||||
system or some of its bodies missing on EDSM. Default: true.
|
||||
* `EliteDangerous.announceMappingCandidates` (boolean): whether to announce
|
||||
mapping candidates when they are scanned. Default: true.
|
||||
* `EliteDangerous.announceOutdatedStationData` (boolean): whether to announce
|
||||
stations with outdated data in systems you jump to. Default: true.
|
||||
* `EliteDangerous.announceR2RMappingCandidates` (boolean): whether to announce
|
||||
planets worth mapping when jumping into a known system. This is useful for
|
||||
doing some R2R on the side. Default: false.
|
||||
* `EliteDangerous.enableCarrierAnnouncements` (boolean): whether or not to
|
||||
process fleet carrier events. Default: true.
|
||||
* `EliteDangerous.enableAutoUpdateCheck` (boolean): whether or not to
|
||||
automatically check for updates on profile startup. Default: true.
|
||||
* `EliteDangerous.flightAssistOff` (boolean): whether to automatically toggle
|
||||
FlightAssist off on liftoff. Default: true.
|
||||
* `EliteDangerous.hyperspaceDethrottle` (boolean): same thing as the SC assist
|
||||
setting; if on, will throttle to 0 automatically after jumping. Default: true.
|
||||
* `EliteDangerous.oldStationThreshold` (int): Age in days that will cause
|
||||
station data to be considered outdated. Default: 365 (1 year).
|
||||
* `python.ScriptPath` (string): the path you have placed the compiled python
|
||||
scripts in. Default: “{VA_DIR}\Sounds\scripts” (the “\Sounds\scripts” folder
|
||||
in your VoiceAttack installation directory).
|
||||
|
||||
#### Delays / Pauses ####
|
||||
|
||||
Delays needed e.g. between key presses in UI navigation can vary wildly
|
||||
depending on your PC’s specs and configuration. Therefore they should be
|
||||
configurable, shouldn’t they?
|
||||
|
||||
So far those actually are:
|
||||
|
||||
* `EliteDangerous.delays.quitToDesktop`: Delay between quitting to desktop and hitting the
|
||||
play button in the launcher.
|
283
docs/configuration/RatAttack.md
Normal file
|
@ -0,0 +1,283 @@
|
|||
# RatAttack #
|
||||
|
||||
This profile facilitates [Fuel Ratting](https://www.fuelrats.com). It aims to
|
||||
eliminate as much of the required manual task and attention switching as
|
||||
possible via automation and voice commands.
|
||||
|
||||
If you don’t know what the Fuel Rats are, come hang out and ask :)
|
||||
|
||||
## Requirements ##
|
||||
|
||||
Only vanilla VoiceAttack is absolutely required to use this profile. Optionally
|
||||
you can install EDDI and my elite scripts for advanced features.
|
||||
|
||||
* [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin: This
|
||||
will give you a better (IMO) way of using TTS. Be sure to set
|
||||
`RatAttack.useEddiForVoice`. It will also enable you to have ingame chat be
|
||||
transferred to IRC; see below.
|
||||
* [elite-scripts](https://github.com/alterNERDtive/elite-scripts): Using the
|
||||
Python scripts will give RatAttack a way to be aware of where your CMDRs are
|
||||
and give you the nearest one to a rat case. That’s only really needed if you
|
||||
actually _have_ multiple CMDRs, obviously. If you are using the profile
|
||||
package from the release page, they will be installed automatically.
|
||||
|
||||
### EDDI speech responder ###
|
||||
|
||||
For the convenience of people that have not been using EDDI in the past,
|
||||
RatAttack will deactivate the speech responder automatically to not clutter them
|
||||
with unwanted TTS.
|
||||
|
||||
If you are already an EDDI user and want to keep the default speech responder
|
||||
functionality, you will have to disable the `EDDI.quietMode` setting by running
|
||||
the `customize settings disable eddi quiet mode` command.
|
||||
|
||||
## Settings ##
|
||||
|
||||
There are a lot of preferences you can set, including some you really want to
|
||||
concern yourself with before you start using the profile. Some of the more
|
||||
advanced features heavily rely on you giving it the correct things to work with.
|
||||
|
||||
See the [Configuration Variables](#Configuration-Variables) section.
|
||||
|
||||
## Including the Profile ##
|
||||
|
||||
When including the profile, be sure to
|
||||
|
||||
* Run the startup command. You will need to have a startup command in your
|
||||
profile (= one that is run on profile loading) and call `RatAttack.startup`
|
||||
from that one.
|
||||
* Make sure all EDDI events that RatAttack needs are correctly handled. For all
|
||||
events used in RatAttack that you already have handlers for in your profile,
|
||||
you’ll have to include a call to `RatAttack.<event name>`. E.g. for “EDDI
|
||||
Message sent”, call `RatAttack.EDDI Message sent` by name from your `((EDDI
|
||||
Message sent))` command.
|
||||
|
||||
## Usage ##
|
||||
|
||||
### Going On/Off Duty ###
|
||||
|
||||
When you are on duty, RatAttack will automatically announce cases coming in
|
||||
through IRC. When off duty, it won’t.
|
||||
|
||||
* `[enable;disable] rat duty`: puts you on/off duty.
|
||||
* `open [rat;] dispatch board`: opens the web dispatch board.
|
||||
|
||||
### Handling a Case ###
|
||||
|
||||
#### Getting Case Data From IRC ####
|
||||
|
||||
You can setup your IRC client to pass incoming RATSIGNALS to VoiceAttack by
|
||||
writing them to a file (`%appdata%\Ratattack\ratsignal.pipe`), then calling the
|
||||
appropriate command (`RatAttack.announceCaseFromRatsignal` for notification,
|
||||
`RatAttack.getInfoFromRatsignal` for silently putting it into the case list).
|
||||
|
||||
This has two purposes:
|
||||
|
||||
1. announcing a new incoming case
|
||||
1. storing case data and making it available to VoiceAttack, e.g. for copying
|
||||
the case’s system into the clipboard
|
||||
|
||||
You need to make your IRC client
|
||||
|
||||
1. wait until the file disappears (for several cases coming in at once)
|
||||
1. write the RATSIGNAL to the file
|
||||
1. run the VoiceAttack command
|
||||
|
||||
In my case I am running AdiIRC and have the following script setup for handling
|
||||
this:
|
||||
|
||||
```
|
||||
on *:TEXT:RATSIGNAL - CMDR*(??_SIGNAL):#fuelrats:{
|
||||
/mkdir C:\users\<user>\appdata\roaming\RatAttack\
|
||||
/handleratsignal $1-
|
||||
}
|
||||
alias handleratsignal {
|
||||
if ( $exists(C:\users\<user>\appdata\roaming\RatAttack\ratsignal.pipe) ) {
|
||||
/sleep 1 /handleratsignal $1-
|
||||
}
|
||||
else {
|
||||
/write C:\users\<user>\appdata\roaming\RatAttack\ratsignal.pipe $1-
|
||||
if ( $away ) {
|
||||
/run -h "X:\path\to\VoiceAttack\VoiceAttack.exe" -nofocus -command "RatAttack.getInfoFromRatSignal"
|
||||
}
|
||||
else {
|
||||
/run -h "X:\path\to\VoiceAttack\VoiceAttack.exe" -nofocus -command "RatAttack.announceCaseFromRatSignal"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You get the gist; if not and you don’t know how to do the same thing for your
|
||||
IRC client or it doesn’t support copying the control characters in the ratsignal
|
||||
that the profile uses to split the information, either switch to AdiIRC or bribe
|
||||
me to include some other way to get case data into VoiceAttack.
|
||||
|
||||
**Note**: If you are running VoiceAttack as admin you need to run your IRC
|
||||
client as admin, too! Otherwise it can’t talk to VoiceAttack for security
|
||||
reasons. You really should _not_ run VoiceAttack with elevated privileges
|
||||
though. Or anything.
|
||||
|
||||
#### Internal Case List ####
|
||||
|
||||
If you have your IRC client setup properly, VoiceAttack will hold a list with
|
||||
all rat cases that have come in while you had it running. It will save the case
|
||||
number, CMDR name, system, O₂ status and platform. There are several commands
|
||||
you can run on this list, giving it a case number:
|
||||
|
||||
* `rat case number [0..19] details`: Will give you all stored info on a case.
|
||||
* `[current;] rat case details`: Will give you all stored info on the currently
|
||||
open case.
|
||||
* `distance to current rat case`: Will give you the distance from your current
|
||||
location to the currently opened rat case. Requires the use of my
|
||||
`elite-scripts` Python scripts.
|
||||
* `distance to rat case number [0..19]`: Will give you the distance from your
|
||||
current system to a case’s system. Requires the use of my `elite-scripts`
|
||||
Python scripts.
|
||||
* `nearest commander to rat case number [0..19]`: Will give you the nearest of
|
||||
your CMDRs with their distance to a case’s system. Requires some setup and the
|
||||
use of my `elite-scripts` Python scripts.
|
||||
* `nearest commander to [the;] rat case`: Will give you the nearest of your
|
||||
CMDRs with their distance to the current case’s system. Requires some setup
|
||||
and the use of my `elite-scripts` Python scripts.
|
||||
|
||||
#### Opening a Case ####
|
||||
|
||||
* `open rat case number [0..19]`: Opens rat case with the given number. If there
|
||||
is no case data for that case (e.g. because you don’t have your IRC client set
|
||||
up properly), it will still open it, just not have any data on it.
|
||||
* `open [latest;] rat case`: Opens the latest rat case that has come in through
|
||||
IRC. Will probably error out in creative ways if you don’t have your IRC
|
||||
client set up properly. Too tired right now to have proper error handling so
|
||||
just open an issue if you run into problems (it’s 7am, I haven’t slept and
|
||||
want to finish this doc to get the release out (yes, you are allowed to laugh
|
||||
at this section)).
|
||||
|
||||
#### Closing a Case ####
|
||||
|
||||
* `[close;clear] rat case`: Closes the currently open rat case.
|
||||
|
||||
### Making Calls ###
|
||||
|
||||
There are a bunch of calls you can make for a case, the most common are modelled
|
||||
through VoiceAttack commands. The descriptive commands (e.g. “system confirmed”)
|
||||
will be shortened to the usual IRC short hands (e.g. “sysconf”). If you need
|
||||
something more unusual you can either still manually type it into your IRC
|
||||
client or use the “General IRC Integration”, see below.
|
||||
|
||||
* `call [1..20] jumps [and login;and takeoff;left;]`: Calls jump for the
|
||||
currently open case. You can optionally include that you will still have to
|
||||
login to the game or have to take off from your current
|
||||
station/port/outpost/planet.
|
||||
* `call friend [positive;negative] [in pg;in private group;in solo;in main
|
||||
meu;sysconf;system confirmed]`: Friend request confirmations, with all the
|
||||
things you might want to / should call with it.
|
||||
* `call [beacon;fuel;instance;pos;position;prep;sys;system;wing]
|
||||
[positive;negative]`: All the stuff you usually need for ratting after you
|
||||
have received the friend request.
|
||||
* `call wing pending`: Calls “wr pending” for when it takes 30s again to
|
||||
actually show up.
|
||||
* `call client in [exclusion zone;main menu;open;open sysconf;pg;private
|
||||
group;solo;super cruise]`: Callouts for all the various things a client could
|
||||
get themselves into.
|
||||
* `call [client destroyed;client offline;sysconf;system confirmed]`: This is the
|
||||
command you don’t want to use. Include sysconf in your “friend+” or “in open”
|
||||
calls, and make sure you will never have to call “client destroyed”, would
|
||||
you?
|
||||
|
||||
### General IRC Interaction ###
|
||||
|
||||
(requires EDDI)
|
||||
|
||||
Using EDDI to read the game’s journal, you can send messages to IRC from Elite’s
|
||||
ingame chat.
|
||||
|
||||
**Be aware that the chat message will still appear in the ingame chat channel
|
||||
you send it to!**
|
||||
|
||||
I recommend using local chat and limiting the use to instances that will
|
||||
probably not have other players in it (e.g. instanced in normal space with the
|
||||
client or in SC in some remote system out in the black on a long range rescue).
|
||||
|
||||
* #fuelrats: Use “.fr \<message\>” to have VoiceAttack send “#\<caseNumber\>
|
||||
\<message\>” to the #fuelrats channel – or yell at you when you are not on
|
||||
a case.
|
||||
* #ratchat: Use “.rc \<message\>” to have VoiceAttack send “\<message\>” to
|
||||
#ratchat.
|
||||
|
||||
These commands send their text to windows with “#fuelrats” and “#ratchat” in
|
||||
their title, respectively. If your IRC client does not do that, you will have to
|
||||
change the “target” window of the `RatAttack.sendToFuelrats` and
|
||||
`RatAttack.sendToRatchat` commands to reflect the actual window titles on your
|
||||
system. I will look into making this more elegant to change in the future.
|
||||
|
||||
## Logging ##
|
||||
|
||||
The profile supports logging a bunch of stuff to the VoiceAttack event log. By
|
||||
default, logging is concise and constrained to basically error messages.
|
||||
|
||||
If you need more logging (usually for debugging purposes), say `enable logging`.
|
||||
If you want to enable verbose logging _by default_, call the
|
||||
`Logging.enableLogging` command from your custom profile’s `startup` command.
|
||||
|
||||
## Exposed Variables ##
|
||||
|
||||
The following Variables are _global_ and thus readable (and writeable! Please
|
||||
don’t unless it’s a config variable …) from other profiles.
|
||||
|
||||
### Configuration Variables ###
|
||||
|
||||
There are a bunch of configuration variables. You should not overwrite those
|
||||
manually, instead use the provided commands in the `_configuration` section!
|
||||
|
||||
Basically all the settings are available using the `customize settings` prefix,
|
||||
then saying `[enable;disable] <setting>` for on/off switches and `set <setting>`
|
||||
for text variables.
|
||||
|
||||
* `EDDI.quietMode` (boolean): whether or not to set EDDI to quite mode. Default:
|
||||
true.
|
||||
* `EDDI.useEddiForVoice` (boolean): whether to use the EDDI plugin to handle
|
||||
text-to-speech over VoiceAttacks built-in speech function. Default: false.
|
||||
* `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this
|
||||
is `v`. Default: `v`.
|
||||
* `RatAttack.announceNearestCMDR` (boolean): whether or not to automatically
|
||||
announce your nearest CMDR to a case. Requires the `elite-scripts` Python
|
||||
scripts. Will probably break in creative ways if you don’t have them and turn
|
||||
it on anyway. Default: false.
|
||||
* `RatAttack.announcePlatform` (boolean): whether or not to announce the case’s
|
||||
platform by default. Useful to set if you are active on more than one
|
||||
platform. Even with this off, you will still be warned when you open a case
|
||||
that is _not_ on one of your platforms. Default: false.
|
||||
* `RatAttack.CMDRs` (string): list of your CMDR names, delimited by spaces. If
|
||||
your names include spaces, you will have to put them in quotes. Default: “"J
|
||||
Jora Jameson" NameWithNoSpace”.
|
||||
* `RatAttack.confirmCalls` (boolean): whether VoiceAttack should ask you before
|
||||
posting to #fuelrats to make sure there hasn’t been an error in voice
|
||||
recognition and you accidentally post the wrong thing. Default: true.
|
||||
* `RatAttack.autoCloseCase` (boolean): whether or not to automatically close an
|
||||
open rat case on calling “fuel+”. Default: false.
|
||||
* `RatAttack.onDuty` (boolean): whether or not you are currently on rat duty.
|
||||
Default: true.
|
||||
* `RatAttack.platforms` (string): the platforms you want to be informed of
|
||||
incoming cases for. If you are on console, you can still have VoiceAttack
|
||||
running on the PC that you are using for IRC and handle calls and stuff using
|
||||
voice! Delimited by whatever you want. Can include “PC”, “XB”, “PS4”.
|
||||
Default: “PC”.
|
||||
* `python.scriptPath` (string): the path you put the Python scripts in. Default:
|
||||
“{VA_DIR}\Sounds\scripts”.
|
||||
|
||||
### Other Variables ###
|
||||
|
||||
Current case data:
|
||||
|
||||
* `RatAttack.caseNumber` (int): the number of the case you are currently on.
|
||||
Will be `Not Set` if you are not on a case.
|
||||
* `RatAttack.onCase` (boolean): whether or not you are currently on a case.
|
||||
|
||||
Case list:
|
||||
|
||||
* `RatAttack.caseList.<case#>.cmdr` (string)
|
||||
* `RatAttack.caseList.<case#>.system` (string)
|
||||
* `RatAttack.caseList.<case#>.platform` (string)
|
||||
* `RatAttack.caseList.<case#>.codeRed` (boolean)
|
||||
|
||||
… with `<case#>` being a number between 0 and 19.
|
241
docs/configuration/SpanshAttack.md
Normal file
|
@ -0,0 +1,241 @@
|
|||
# SpanshAttack #
|
||||
|
||||
This profile uses the
|
||||
[ED-NeutronRouter](https://github.com/sc-pulgan/ED-NeutronRouter) plugin to plot
|
||||
neutron jumps using [spansh](https://spansh.co.uk/plotter). It fully does
|
||||
everything you need from within the game and VoiceAttack, you won’t have to
|
||||
visit the site at any point.
|
||||
|
||||
## Requirements ##
|
||||
|
||||
In addition to VoiceAttack, you will need the following plugins to use this
|
||||
profile:
|
||||
|
||||
* [bindED](https://forum.voiceattack.com/smf/index.php?topic=564.0)
|
||||
* [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin
|
||||
* [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.
|
||||
|
||||
### EDDI speech responder ###
|
||||
|
||||
For the convenience of people that have not been using EDDI in the past,
|
||||
SpanshAttack will deactivate the speech responder automatically to not clutter
|
||||
them with unwanted TTS.
|
||||
|
||||
If you are already an EDDI user and want to keep the default speech responder
|
||||
functionality, you will have to disable the `EDDI.quietMode` setting by running
|
||||
the `customize settings disable eddi quiet mode` command.
|
||||
|
||||
## Settings ##
|
||||
|
||||
Because Elite’s keyboard handling is … weird you’ll have to set the key to use
|
||||
for pasting text into Elite:Dangerous. If you are not using a “standard”
|
||||
QWERT[YZ] layout, you will have to change it back to the key that is physically
|
||||
in the place where `v` would be on QWERTY.
|
||||
|
||||
For other settings, see the [Configuration Variables](#Configuration-Variables)
|
||||
section.
|
||||
|
||||
The last “setting” in the not-so-strict sense of the word is the
|
||||
`SpanshAttack.getShipRange` command. Any ship listed in there will automatically
|
||||
have its jump range used instead of VA prompting you for it. Since, again, VA
|
||||
will execute the first matching command found, you can create this command in
|
||||
your own profile when you are using SpanshAttack by including it. You can
|
||||
override a saved range for your ship by using the `plot neutron
|
||||
[course;route;trip] with custom range` command.
|
||||
|
||||
The ED-NeutronRouter plugin is technically supposed to read the current jump
|
||||
range from EDDI; sadly a) it’s
|
||||
[bugged](https://github.com/sc-pulgan/ED-NeutronRouter/issues/3) right now, and
|
||||
b) EDDI is storing the _maximum_ distance for your ship instead of the current
|
||||
/ full on fuel one.
|
||||
|
||||
## Including the Profile ##
|
||||
|
||||
When including the profile, be sure to
|
||||
|
||||
* Run the startup command. You will need to have a startup command in your
|
||||
profile (= one that is run on profile loading) and call `SpanshAttack.startup`
|
||||
from that one.
|
||||
* Make sure all EDDI events that SpanshAttack needs are correctly handled. For
|
||||
all events used in SpanshAttack that you already have handlers for in your
|
||||
profile, you’ll have to include a call to `SpanshAttack.<event name>`. E.g.
|
||||
for “EDDI Jumped”, call `SpanshAttack.EDDI Jumped` by name from your `((EDDI
|
||||
Jumped))` command.
|
||||
* (Optional) Have a `SpanshAttack.getShipRange` command in your profile to
|
||||
overwrite the default one with your ship’s ranges. See the default command for
|
||||
pointers.
|
||||
|
||||
## Usage ##
|
||||
|
||||
### Plotting a Route ###
|
||||
|
||||
1. _Target_ the system you want to be routed to (target, do not plot to it).
|
||||
1. Either exit the galaxy map or make sure you are on its first tab (or
|
||||
auto-plotting will break).
|
||||
1. Trigger the `SpanshAttack.plotRoute` command either by voice (`plot neutron
|
||||
[course;route;trip] [with custom range;]`) or calling it from another
|
||||
command.
|
||||
1. Enter your ship’s jump range if prompted.
|
||||
1. Wait for the route to be calculated. The command will automatically open the
|
||||
galaxy map and jump to the first waypoint on your route. If you run into
|
||||
weird behaviour, it’s probably because your target system is not in EDDB.
|
||||
1. Either target the first waypoint or plot to it.
|
||||
1. Start jumping!
|
||||
|
||||
#### Plotting to a System Unknown to the Neutron Router ####
|
||||
|
||||
The router can only plot a route to a system that is in its data base (obviously
|
||||
can also only give you way points that are). If your target system is not, there
|
||||
are several levels of fallback handling to find a system that is.
|
||||
|
||||
1. Check `Next system` coordinates provided by EDDI. If the system is in EDSM,
|
||||
but has for some reason not been sent over EDDN to other sites including
|
||||
Spansh we can get coordinates here.
|
||||
1. If the system is not in EDSM check EDTS. It can calculate approximate
|
||||
coordinates for a given procedurally generated system name.
|
||||
1. If that fails prompt the user for input.
|
||||
1. Query Spansh’ API for the closest system to these coordinates.
|
||||
1. Plot a route to the closest system.
|
||||
|
||||
Generally you should almost never be asked to input coordinates manually. If
|
||||
EDTS provides coordinates with an accuracy that is worse than ±100 ly per axis,
|
||||
you will be prompted to make sure you are going roughly to the right
|
||||
coordinates. You will find the system that is used for plotting, its
|
||||
coordinates and the accuracy in VoiceAttack’s log window.
|
||||
|
||||
### Neutron Jumping ###
|
||||
|
||||
With standard settings, just supercharge off a neutron cone. You should
|
||||
automatically be taken to the galaxy map with the next waypoint selected.
|
||||
|
||||
In case you have disabled auto-plotting to the next waypoint, manually invoke
|
||||
the `SpanshAttack.targetNextNeutronWaypoint` command by voice (`[target;] next
|
||||
neutron [waypoint; way point]`) or calling it from another command.
|
||||
|
||||
Additionally, you can use the `SpanshAttack.copyNextNeutronWaypoint`
|
||||
/ `[get;copy] next neutron [waypoint;way point]` command to copy the next
|
||||
neutron waypoint to the clipboard.
|
||||
|
||||
#### Manual Re-Plot ####
|
||||
|
||||
Trigger the `SpanshAttack.replotRoute` command either by voice (`replot neutron
|
||||
[course;route;trip]`) or calling it from another command. This will start
|
||||
a re-plot of the current route with the same target system and jump range.
|
||||
|
||||
### Refueling ###
|
||||
|
||||
Whenever you refuel off a scoopable star, the profile will automatically
|
||||
throttle back up to 100% speed. Unless you have disabled it in your
|
||||
configuration, you will also automatically target the next system on your route
|
||||
and jump to it once you leave fuel scoop range.
|
||||
|
||||
### Clearing a Route ###
|
||||
|
||||
When you reach your target system, the neutron route will automatically be
|
||||
cleared. If you want to prematurely end your trip, call the
|
||||
`SpanshAttack.clearRoute` / `clear neutron [course;route;trip]` command.
|
||||
|
||||
## Other Commands ##
|
||||
|
||||
### Announcing Jumps Left ###
|
||||
|
||||
You can have VoiceAttack tell you the amount of jumps left on the current route
|
||||
by invoking `SpanshAttack.announceJumpsLeft` or saying
|
||||
`how many [neutron;] jumps [are;] left?`.
|
||||
|
||||
**Note**: Because it’s pretty much impossible to calculate a 100% accurate value
|
||||
for the total jumps left, it will just tell you the jump count _from the current
|
||||
neutron waypoint_.
|
||||
|
||||
### Announce elapsed time on the trip ###
|
||||
|
||||
SpanshAttack keeps track of your start time, even if you have the option to time
|
||||
your trip turned off. This way you can get the time you’ve been jumping with the
|
||||
`SpanshAttack.announceTripTime` or
|
||||
`how long have i been [jumping;on this trip;on this neutron trip]?` commands.
|
||||
|
||||
### Reload bindings ###
|
||||
|
||||
If you change any relevant bindings (e.g. the galaxy map key), you should run
|
||||
the `reload bindings` command to make sure that SpanshAttack presses the right
|
||||
thing for you.
|
||||
|
||||
Eh, just do it every time you edit your controls without re-starting
|
||||
VoiceAttack, just to be sure.
|
||||
|
||||
### Helper Functions ###
|
||||
|
||||
The profile contains a lot of helper functions that get called by the
|
||||
aforementioned commands. Have a look around, maybe learn something about
|
||||
VoiceAttack :)
|
||||
|
||||
## Logging ##
|
||||
|
||||
The profile supports logging a bunch of stuff to the VoiceAttack event log. By
|
||||
default, logging is concise and constrained to basically error messages.
|
||||
|
||||
If you need more logging (usually for debugging purposes), say `enable logging`.
|
||||
If you want to enable verbose logging _by default_, call the
|
||||
`Logging.enableLogging` command from your custom profile’s `startup` command.
|
||||
|
||||
## Exposed Variables ##
|
||||
|
||||
The following Variables are _global_ and thus readable (and writeable! Please
|
||||
don’t unless it’s a config variable …) from other profiles:
|
||||
|
||||
### Configuration Variables ###
|
||||
|
||||
There are a bunch of configuration variables. You should not overwrite those
|
||||
manually, instead use the provided commands in the `_configuration` section!
|
||||
|
||||
Basically all the settings are available using the `customize settings` prefix,
|
||||
then saying `[enable;disable] <setting>` for on/off switches and `set <setting>`
|
||||
for text variables.
|
||||
|
||||
* `EDDI.quietMode` (boolean): whether or not to set EDDI to quite mode. Default:
|
||||
true.
|
||||
* `EDDI.useEddiForVoice` (boolean): whether to use EDDI over VA’s builtin `say`
|
||||
command. Default: false.
|
||||
* `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this
|
||||
is `v`. Default: `v`.
|
||||
* `SpanshAttack.timeTrip` (boolean): whether to automatically tell you at the
|
||||
end of a trip how long it took you to get there. Default: false.
|
||||
* `SpanshAttack.announceWaypoints` (boolean): whether to announce each waypoint
|
||||
of the neutron route. Default: true.
|
||||
* `SpanshAttack.announceJumpsLeft` (string): `;`-separated list of remaining
|
||||
jumps to announce when said amounts are reached. Right now only works if they
|
||||
are _exactly_ reached when supercharging off a neutron. Note the extra `;` at
|
||||
the beginning and end of the string. Default: `;1;3;5;10;15;20;30;50;75;100;`
|
||||
* `SpanshAttack.autoJumpAfterScooping` (boolean): whether to automatically jump
|
||||
after fuel scooping (and moving out of scoop range). Default: true.
|
||||
* `SpanshAttack.autoPlot` (boolean): whether to automatically plot to the next
|
||||
waypoint on supercharging. Default: true.
|
||||
* `SpanshAttack.clearOnShutdown` (boolean): whether or not to automatically
|
||||
clear an active neutron route on Elite client shutdown. Default: true.
|
||||
* `SpanshAttack.defaultToLadenRange` (boolean): whether or not to default to
|
||||
your ship’s laden range (as reported by EDDI) instead of asking for user
|
||||
input. Sadly it’s with _current_ fuel, not full. Setting a ship’s jump range
|
||||
in the `SpanshAttack.getShipRange` command will still overrule this. Default:
|
||||
false.
|
||||
* `SpanshAttack.copyWaypointToClipboard` (boolean): whether to copy the next
|
||||
waypoint into the Windows clipboard for use in other programs. Default: false.
|
||||
* `python.scriptPath` (string): the path you put the Python scripts in.
|
||||
Default: “{VA_DIR}\Sounds\scripts”.
|
||||
|
||||
### Other Variables ###
|
||||
|
||||
These variables can be used to get information about the current neutron route.
|
||||
Please do not set them manually and / or from outside the SpanshAttack profile.
|
||||
|
||||
* `SpanshAttack.plotSystem` (string): the system actually plotted towards using
|
||||
the neutron router (onley used/set if the target system is not in the data
|
||||
base)
|
||||
* `SpanshAttack.targetSystem` (string): the target system for the current
|
||||
neutron route
|
||||
* `SpanshAttack.nextNeutronWaypoint` (string): the next waypoint on the current
|
||||
neutron route
|
||||
* `SpanshAttack.neutronJumpMode` (boolean): neutron jump mode active/inactive
|
||||
* `SpanshAttack.jumpRange` (decimal): the current ship’s jump range
|
120
docs/configuration/StreamAttack.md
Normal file
|
@ -0,0 +1,120 @@
|
|||
# StreamAttack #
|
||||
|
||||
This profile uses the [EDDI](https://github.com/EDCD/EDDI) plugin to write
|
||||
a bunch of information about your commander, your current location and your ship
|
||||
to files that can be accessed e.g. by your streaming software to be displayed on
|
||||
stream.
|
||||
|
||||
Default folder is `%appdata%\StreamAttack\`.
|
||||
|
||||
## Requirements ##
|
||||
|
||||
In addition to VoiceAttack, you will need the following plugins to use this
|
||||
profile:
|
||||
|
||||
* [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin
|
||||
|
||||
### EDDI speech responder ###
|
||||
|
||||
For the convenience of people that have not been using EDDI in the past,
|
||||
StreamAttack will deactivate the speech responder automatically to not clutter
|
||||
them with unwanted TTS.
|
||||
|
||||
If you are already an EDDI user and want to keep the default speech responder
|
||||
functionality, you will have to disable the `EDDI.quietMode` setting by running
|
||||
the `customize settings disable eddi quiet mode` command.
|
||||
|
||||
## Settings ##
|
||||
|
||||
See the [Configuration Variables](#Configuration-Variables) section.
|
||||
|
||||
## Including the Profile ##
|
||||
|
||||
When including the profile, be sure to
|
||||
|
||||
* Run the startup command. You will need to have a startup command in your
|
||||
profile (= one that is run on profile loading) and call `StreamAttack.startup`
|
||||
from that one.
|
||||
* Make sure all EDDI events that StreamAttack needs are correctly handled. For
|
||||
all events used in StreamAttack that you already have handlers for in your
|
||||
profile, you’ll have to include a call to `StreamAttack.<event name>`. E.g.
|
||||
for “EDDI Jumped”, call `StreamAttack.EDDI Jumped` by name from your `((EDDI
|
||||
Jumped))` command.
|
||||
|
||||
## Commands ##
|
||||
|
||||
* `clear jump target`: clears the current jump target.
|
||||
* `set jump target`: sets the jump target to the currently targeted system.
|
||||
Distance will be written to the configured file.
|
||||
|
||||
* `[copy;open] ship build`: copies the current ship build (coriolis) or opens it
|
||||
in your default browser.
|
||||
* `open StreamAttack folder`: opens the configured folder in Explorer.
|
||||
|
||||
## Files the Profile Provides ##
|
||||
|
||||
### Elite ###
|
||||
|
||||
#### Commander ####
|
||||
|
||||
* `Elite\cmdr\name`: the current commander’s name.
|
||||
|
||||
#### Jump Target ####
|
||||
|
||||
* `Elite\jumpTarget\distance`: distance to current jump target in light years.
|
||||
* `Elite\jumpTarget\full`: pretty-printed `<distance> ly to <name>`.
|
||||
* `Elite\jumpTarget\name`: the current jump target’s system name.
|
||||
|
||||
#### Location ####
|
||||
|
||||
* `Elite\location\full`: depending on your status, either the station you are
|
||||
currently docked at (+ system), the body you are currently near, or the system
|
||||
you are currently in.
|
||||
* `Elite\location\system`: the system you are currently in.
|
||||
|
||||
#### Ship ####
|
||||
|
||||
* `Elite\ship\build`: your current ship’s loadout (link to coriolis).
|
||||
* `Elite\ship\full`: `“<name>” | <model> | <build>`.
|
||||
* `Elite\ship\model`: your current ship’s model.
|
||||
* `Elite\ship\name`: your current ship’s name.
|
||||
|
||||
## Logging ##
|
||||
|
||||
The profile supports logging a bunch of stuff to the VoiceAttack event log. By
|
||||
default, logging is concise and constrained to basically error messages.
|
||||
|
||||
If you need more logging (usually for debugging purposes), say `enable logging`.
|
||||
If you want to enable verbose logging _by default_, call the
|
||||
`Logging.enableLogging` command from your custom profile’s `startup` command.
|
||||
|
||||
## Exposed Variables ##
|
||||
|
||||
The following Variables are _global_ and thus readable (and writeable! Please
|
||||
don’t unless it’s a config variable …) from other profiles:
|
||||
|
||||
### Configuration Variables ###
|
||||
|
||||
There are a bunch of configuration variables. You should not overwrite those
|
||||
manually, instead use the provided commands in the `_configuration` section!
|
||||
|
||||
Basically all the settings are available using the `customize settings` prefix,
|
||||
then saying `[enable;disable] <setting>` for on/off switches and `set <setting>`
|
||||
for text variables.
|
||||
|
||||
* `EDDI.quietMode` (boolean): whether or not to set EDDI to quite mode. Default:
|
||||
true.
|
||||
* `EDDI.useEddiForVoice` (boolean): whether to use EDDI over VA’s builtin `say`
|
||||
command. Default: false.
|
||||
* `StreamAttack.outputDir` (string): the directory StreamAttack will save its
|
||||
information to. Default: `%appdata%\StreamAttack\`.
|
||||
* `python.ScriptPath` (string): the path you have placed the compiled Python
|
||||
scripts in. Default: “{VA_DIR}\Sounds\scripts” (the “\Sounds\scripts” folder
|
||||
in your VoiceAttack installation directory).
|
||||
|
||||
### Other Variables ###
|
||||
|
||||
These variables can be used to get information about the current neutron route.
|
||||
Please do not set them manually and / or from outside the StreamAttack profile.
|
||||
|
||||
* `StreamAttack.Elite.jumpTarget` (string): the current jump target.
|
1
docs/configuration/VoiceAttack.md
Normal file
|
@ -0,0 +1 @@
|
|||
# VoiceAttack
|
42
docs/configuration/general.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
# General Configuration
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### 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] <setting>` for on/off switches and `set <setting>`
|
||||
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.
|
BIN
docs/images/ED-NeutronRouter-folder.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
docs/images/VoiceAttack-apps.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
docs/images/VoiceAttack-download.png
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
docs/images/VoiceAttack-edit-new-command.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
docs/images/VoiceAttack-edit-startup-action.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
docs/images/VoiceAttack-edit-startup-actionlist.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
docs/images/VoiceAttack-edit-startup-execute.png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
docs/images/VoiceAttack-edit-startup.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
docs/images/VoiceAttack-edit.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
docs/images/VoiceAttack-import-profile-open.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
docs/images/VoiceAttack-import-profile.png
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
docs/images/VoiceAttack-new-profile-done.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
docs/images/VoiceAttack-new-profile.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
docs/images/VoiceAttack-profile-options-include.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
docs/images/VoiceAttack-profile-options-includelist.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
docs/images/VoiceAttack-profile-options-startup.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/images/VoiceAttack-profile-options.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
docs/images/VoiceAttack-settings-plugin-support.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
docs/images/VoiceAttack-settings-updates.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
docs/images/VoiceAttack-settings.png
Normal file
After Width: | Height: | Size: 10 KiB |
|
@ -1,17 +1,33 @@
|
|||
# Welcome to MkDocs
|
||||
# Elite Dangerous VoiceAttack Profiles
|
||||
|
||||
For full documentation visit [mkdocs.org](https://mkdocs.org).
|
||||
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.
|
||||
|
||||
## Commands
|
||||
## Available Profiles
|
||||
|
||||
* `mkdocs new [dir-name]` - Create a new project.
|
||||
* `mkdocs serve` - Start the live-reloading docs server.
|
||||
* `mkdocs build` - Build the documentation site.
|
||||
* `mkdocs help` - Print this help message.
|
||||
* [EliteAttack](EliteAttack): The main Elite VA profile. Anything related to
|
||||
“just” playing the game.
|
||||
* [RatAttack](RatAttack): Manages interactions with the FuelRats IRC server.
|
||||
* [SpanshAttack](SpanshAttack): Plots and follows trips along the neutron
|
||||
highway using [Spansh’s neutron plotter](https://spansh.co.uk/plotter).
|
||||
* [StreamAttack](StreamAttack): Writes various status things to files that can
|
||||
then be read by streaming software like OBS.
|
||||
|
||||
## Project layout
|
||||
They all require the `alterNERDtive-base` profile that, well, provides basic
|
||||
functionality common to all of the above.
|
||||
|
||||
mkdocs.yml # The configuration file.
|
||||
docs/
|
||||
index.md # The documentation homepage.
|
||||
... # Other markdown pages, images and other files.
|
||||
## Need Help / Want to Contribute?
|
||||
|
||||
Well, you are in the right place. You can find comprehensive documentation right
|
||||
here.
|
||||
|
||||
If you run into any errors, please make sure you are running the latest version
|
||||
of the profiles and all requirements.
|
||||
|
||||
If your problem persists, 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.
|
||||
|
|
194
docs/installing.md
Normal file
|
@ -0,0 +1,194 @@
|
|||
# Installing
|
||||
|
||||
## Install VoiceAttack
|
||||
|
||||
Grab the [most recent VoiceAttack beta
|
||||
version](https://voiceattack.com/#download-1) off the official site and install
|
||||
it. Right now 32bit vs. 64bit does not make any difference, but there is no
|
||||
reason not to choose 64bit unless you are running a 32bit version of Windows (is
|
||||
that even still a thing?).
|
||||
|
||||
If you are using the standalone version you should probably download the
|
||||
executable installer. If you are using the Steam version of VoiceAttack, you
|
||||
will have to download the zipped folder and replace your installed version with
|
||||
its contents.
|
||||
|
||||
![[VoiceAttack-download.png]]
|
||||
|
||||
[Here is the first hit on a Google search for finding the installation
|
||||
folder](https://steamcommunity.com/sharedfiles/filedetails/?id=760447682). It is
|
||||
for a completely unrelated game, but the steps are the same.
|
||||
|
||||
You can potentially also install the latest non-beta version; but I often use
|
||||
features that have only just been added to the beta, so some things might break
|
||||
for you if you are not using that.
|
||||
|
||||
Make sure you have plugin support enabled:
|
||||
|
||||
1. Go to VoiceAttack settings. ![[VoiceAttack-settings.png]]
|
||||
1. Check “enable plugin support” ![[VoiceAttack-settings-plugin-support.png]]
|
||||
|
||||
While you are there, you might also want to enable the automatic update checks.
|
||||
|
||||
![[VoiceAttack-settings-updates.png]]
|
||||
|
||||
## Install EDDI
|
||||
|
||||
Install [the latest release](https://github.com/EDCD/EDDI/releases/latest) from
|
||||
Github (The `EDDI-X.Y.Z.exe` under “Assets”). You will need to [install it as a
|
||||
VoiceAttack
|
||||
plugin](https://github.com/EDCD/EDDI/wiki/VoiceAttack-Integration#using-eddi-with-voiceattack).
|
||||
|
||||
If you do not want to install it into the VoiceAttack installation folder (or
|
||||
already have it installed somewhere else) you can also just make a symbolic
|
||||
link. Open a CMD prompt (Windows key + `R`, enter “cmd”, hit `Enter`) and do
|
||||
|
||||
```cmd
|
||||
>cd x:\path\to\VoiceAttack\Apps
|
||||
>mklink /J EDDI x:\path\to\EDDI
|
||||
```
|
||||
|
||||
If you have installed the non-Steam version of VoiceAttack to the default folder
|
||||
within “ProgramFiles” you will have to run the CMD prompt as admin (Windows key
|
||||
+ `R`, enter “cmd”, hit `Control` + `Shift` + `Enter`).
|
||||
|
||||
## Install ED-NeutronRouter
|
||||
|
||||
**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 (the
|
||||
`EDNeutronRouter.vX.YZ.zip` under “Assets”).
|
||||
|
||||
You will have to extract the contents of the release .zip file to your
|
||||
VoiceAttack Apps folder:
|
||||
|
||||
1. Go into VoiceAttack settings. ![[VoiceAttack-settings.png]]
|
||||
1. Click the folder set as “Apps Folder”. ![[VoiceAttack-apps.png]]
|
||||
|
||||
Now extract the contents of the downloaded file into there. Make sure that they
|
||||
are not naked files under “Apps”, but have their own folder
|
||||
“Apps\ED-NeutronRouter”! The exact folder name does not matter as long as they
|
||||
_are_ in a subfolder. Otherwise the plugin will not load.
|
||||
|
||||
![[ED-NeutronRouter-folder.png]]
|
||||
|
||||
Leave the “Apps” folder open in Windows Explorer, you will need it for the next step.
|
||||
|
||||
## Import Profiles Package
|
||||
|
||||
Acquire [the latest
|
||||
release](https://github.com/alterNERDtive/VoiceAttack-profiles/releases/latest)
|
||||
from Github (the `alterNERDtive-voiceattack-profiles.vax` file under “Assets”).
|
||||
|
||||
1. Go into VoiceAttack settings. ![[VoiceAttack-settings.png]]
|
||||
1. Click the folder set as “Apps Folder”. ![[VoiceAttack-apps.png]]
|
||||
1. Create a sub folder named “Import” if it does not exist yet.
|
||||
1. Drop the downloaded .vax file into the “Import” folder.
|
||||
1. Restart VoiceAttack.
|
||||
1. When prompted, import the profile package. VoiceAttack will restart when completed.
|
||||
|
||||
## Create a Custom Profile
|
||||
|
||||
Last but not least you are going to create your own custom VoiceAttack profile
|
||||
for Elite. It will allow you to add your own commands, override any commands in
|
||||
the profiles that you want to change and add voice triggers or hotkeys.
|
||||
|
||||
You can either use an existing profile, create a new one or use the provided
|
||||
profile example as a basis.
|
||||
|
||||
Regardless of which way you choose, make sure to read the [[#Import Profiles]]
|
||||
section and follow the instructions there!
|
||||
|
||||
### Create a New Custom Profile
|
||||
|
||||
1. Click the “Profile Actions” button, then “Create New Profile”.
|
||||
![[VoiceAttack-new-profile.png]]
|
||||
1. Give it a name and add some commands if you want to.
|
||||
1. Hit “Done” to create the new profile.
|
||||
|
||||
### Use the Profile Example
|
||||
|
||||
1. Click the “Profile Actions” button, then “Import Profile”.
|
||||
![[VoiceAttack-import-profile.png]]
|
||||
1. Navigate to your VoiceAttack Apps folder (see above), go into the
|
||||
“alterNERDtive” subfolder, choose the profile example and hit “Open”.
|
||||
![[VoiceAttack-import-profile-open.png]]
|
||||
|
||||
Once you are done with the setup and configuration process, you can find a bunch
|
||||
of example commands with comments on how to do things in this profile. Make sure
|
||||
to also rename it to something more exciting than “Custom Profile Example”!
|
||||
|
||||
### Import Profiles
|
||||
|
||||
In order to use my profiles with your custom profiles, you will need to take two
|
||||
additional steps:
|
||||
|
||||
1. Include the profiles in your custom profiles. That will make all commands
|
||||
available when your custom profile is active.
|
||||
1. Create a startup command for your custom profile. You can use it to do
|
||||
anything you want when your profile loads, but it will also have to run the
|
||||
startup command for my profiles.
|
||||
|
||||
#### Create a Startup Command
|
||||
|
||||
First off, hit the “Edit” button in VoiceAttack.
|
||||
|
||||
![[VoiceAttack-edit.png]]
|
||||
|
||||
If you are using your existing profile (or have just created a fresh one) you
|
||||
will now have to create the startup command. Hit the “New Command” button.
|
||||
|
||||
![[VoiceAttack-edit-new-command.png]]
|
||||
|
||||
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 do not accidentally run it via voice.
|
||||
|
||||
![[VoiceAttack-edit-startup.png]]
|
||||
|
||||
Add a new action using “Other” → “VoiceAttack Action”→ “Execute Another Command”.
|
||||
|
||||
![[VoiceAttack-edit-startup-execute.png]]
|
||||
|
||||
Choose “Execute by name (Advanced)” and enter “alterNERDtive-base.startup”.
|
||||
|
||||
![[VoiceAttack-edit-startup-action.png]]
|
||||
|
||||
Make sure to leave “Wait until this command completes before continuing” on and
|
||||
have this action at the top of the action list for the command. That way you can
|
||||
be sure that my profiles are initialized properly before your personal startup
|
||||
actions are processed.
|
||||
|
||||
![[VoiceAttack-edit-startup-actionlist.png]]
|
||||
|
||||
You can add anything else you want your profile to do when it loads below this
|
||||
action. You do not have to set any configuration options, this can be done way
|
||||
more elegantly! More on this [later on](general.md).
|
||||
|
||||
#### Set Profile Options
|
||||
|
||||
While editing the profile, hit the “Options” button.
|
||||
|
||||
![[VoiceAttack-profile-options.png]]
|
||||
|
||||
On the section labeled“Include commands from other profiles”, hit the “…”
|
||||
button.
|
||||
|
||||
![[VoiceAttack-profile-options-include.png]]
|
||||
|
||||
Add all my profiles (“EliteDangerous”, “RatAttack”, “SpanshAttack”,
|
||||
`StreamAttack`).
|
||||
|
||||
![[VoiceAttack-profile-options-includelist.png]]
|
||||
|
||||
Technically you can leave out anything you are not planning on using.
|
||||
Practically it probably will nott hurt you to just include everything, and it
|
||||
will then available for you in the future if you choose to check it out! Make
|
||||
sure that“alterNERDtive-base” is on top of the list, the order of the others
|
||||
does not matter. But I like it nice and alphabetical …
|
||||
|
||||
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.
|
||||
|
||||
![[VoiceAttack-profile-options-startup.png]]
|
59
docs/requirements.md
Normal file
|
@ -0,0 +1,59 @@
|
|||
# Requirements
|
||||
|
||||
## VoiceAttack
|
||||
|
||||
Obviously you will need to install [VoiceAttack](https://voiceattack.com). There
|
||||
is a free trial version available, but that one is limited to a single profile
|
||||
and a few commands. This is 4 profiles and … a lot of commands. You will need the
|
||||
full version, available for $10 (official site) or €11.99 (Steam, IIRC $14.99
|
||||
for our US-based friends).
|
||||
|
||||
I recommend buying on the site. Why? Because on Steam, Valve gets a 30% cut.
|
||||
Unlike many other developers Gary (the developer of VoiceAttack) remedies that
|
||||
by having a price on Steam that ends up paying $10 to him. So basically, you are
|
||||
paying Valve out of your own pocket. Many other developers do not do that, and
|
||||
by buying from them directly instead of on Steam you are literally giving them
|
||||
extra money. Please do keep that in mind in the future!
|
||||
|
||||
You also will generally need to opt into the beta version. I am usually at the
|
||||
forefront of bug reports and feature requests, and I do rely on the
|
||||
fixes/additions in beta versions quite often.
|
||||
|
||||
## EDDI
|
||||
|
||||
[EDDI](https://github.com/EDCD/EDDI) is a companion application for Elite:
|
||||
Dangerous, providing responses to events that occur in-game using data from the
|
||||
game as well as various third-party tools.
|
||||
|
||||
EDDI also regularly publishes beta versions. Unless a profiles release
|
||||
explicitly states it, you will _not_ have to run EDDI beta.
|
||||
|
||||
## bindED
|
||||
|
||||
[bindED](https://github.com/alterNERDtive/bindED) reads your Elite Dangerous
|
||||
binding files and makes them available to VoiceAttack as variables. That way
|
||||
commands can be portable and you do not have to manually go through them and
|
||||
change any actions that you happen to not have the standard binds for.
|
||||
|
||||
This plugin is _included_ in the release package.
|
||||
|
||||
## Elite Scripts
|
||||
|
||||
I have wrote a [collection of Python
|
||||
scripts](https://github.com/alterNERDtive/elite-scripts) to interface with
|
||||
various 3ʳᵈ party services like EDSM or Spansh. Those are called by the profiles
|
||||
for various tasks, like checking a system’s body count.
|
||||
|
||||
In the future they will be replaced by VoiceAttack plugin code.
|
||||
|
||||
The scripts are _included_ in the release package.
|
||||
|
||||
## ED-NeutronRouter
|
||||
|
||||
(required for SpanshAttack)
|
||||
|
||||
[ED-NeutronRouter](https://github.com/sc-pulgan/ED-NeutronRouter) interfaces
|
||||
with [Spansh’s neutron plotter](https://spansh.uk/plotter) and makes the result
|
||||
available to VoiceAttack.
|
||||
|
||||
This will also eventually replaced by my own plugins.
|
1
docs/troubleshooting.md
Normal file
|
@ -0,0 +1 @@
|
|||
# Troubleshooting
|
4
docs/upgrading.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
# Upgrading #
|
||||
|
||||
## 4.0.0 ##
|
||||
|
51
mkdocs.yml
|
@ -1,7 +1,48 @@
|
|||
edit_uri: ""
|
||||
site_name: "alterNERDtive VA profiles"
|
||||
site_url: https://alterNERDtive.github.io/VoiceAttack-profiles
|
||||
repo_url: https://github.com/alterNERDtive/VoiceAttack-profiles
|
||||
edit_uri: "edit/release/docs/"
|
||||
site_description: "alterNERDtive VoiceAttack profiles for Elite: Dangerous"
|
||||
site_author: "alterNERDtive"
|
||||
remote_name: "ssh-origin"
|
||||
|
||||
theme:
|
||||
name: readthedocs
|
||||
prev_next_buttons_location: both
|
||||
|
||||
site_name: My Docs
|
||||
theme: readthedocs
|
||||
plugins:
|
||||
- search
|
||||
- roamlinks
|
||||
#- htmlproofer
|
||||
- search
|
||||
- roamlinks
|
||||
- mkpdfs:
|
||||
author: 'alterNERDtive'
|
||||
|
||||
markdown_extensions:
|
||||
- toc:
|
||||
permalink: True
|
||||
- sane_lists
|
||||
|
||||
nav:
|
||||
- 'Home': 'index.md'
|
||||
- 'Install':
|
||||
- 'requirements.md'
|
||||
- 'installing.md'
|
||||
- 'upgrading.md'
|
||||
- 'Configure':
|
||||
- 'configuration/VoiceAttack.md'
|
||||
- 'configuration/general.md'
|
||||
- 'configuration/EliteAttack.md'
|
||||
- 'configuration/RatAttack.md'
|
||||
- 'configuration/SpanshAttack.md'
|
||||
- 'configuration/StreamAttack.md'
|
||||
- 'Use':
|
||||
- 'EliteAttack.md'
|
||||
- 'RatAttack.md'
|
||||
- 'SpanshAttack.md'
|
||||
- 'StreamAttack.md'
|
||||
- 'Issues':
|
||||
- 'troubleshooting.md'
|
||||
- 'Report a Bug': 'https://github.com/alterNERDtive/VoiceAttack-profiles/issues/new'
|
||||
- 'Watch in Action':
|
||||
- 'Twitch': 'https://twitch.tv/alterNERDtive'
|
||||
- 'Youtube': 'https://www.youtube.com/channel/UC3XNZA7xWed1zM1AWOOdmog'
|