KeybindTrainer is an addon to help you learn your keybinds by testing how well you know them. It is usable anywhere and anytime, in or out of combat.
Here are a few terms to know when using KeybindTrainer:
When KeybindTrainer iterates through a set of keybinds, it is running a Trial. There are two types of Trials, Default Trials and Custom Trials.
A Default Trial is a Trial that is defined by the current state of user action bars at the time the Trial is run. For example, the Default Trial "All Visible Keybinds" scans visible action slots to determine what to show the user.
Custom Trials are KeybindTrainer Trials built from user input. They can test any combination of keybinds. For example, the "Rogue: Cloak and Vanish" Custom Trial tests a common sequence for PvP Rogues. The language used to construct Custom Trials is covered in more detail in a later section.
All Trials are made up of sequence of one or more Action Tuples. An Action Tuple is a set of icons displayed all at once by KeybindTrainer. Each icon represents an . . .
An Action is any spell, item, ability, or other action that can be placed on in an action bar slot.
To run a trial:
1. Select the trial you wish to run (for example, "All Visible Keybinds") from the Select Trial menu.
2. The Start Trial button will appear in the middle of the Trial area (middle box). Click it to start the trial.
3. As each Action Tuple appears, press the button(s) corresponding to each Action.
Unless the Run Continuously option is checked, the Trial will finish once all Action Tuples have been displayed. You can also move your mouse out of the Trial area at any time to halt the trial.
KeybindTrainer supports a variety of options around creating, editing, and running Trials.
To resize KeybindTrainer, click and drag on the bottom right pull handle. To move any KeybindTrainer window, click and drag its title bar.
To hide the addon window, you can click the top right 'X', click the KeybindTrainer minimap icon, or type |ccFFEE4400/kbt hide from the command line. To show the addon window, you can click the minimap icon, or type |ccFFEE4400/kbt show from the command line.
To have the current Trial loop continuously, select the Run Continuously option. To randomize the order Action Tuples are displayed, select Randomize Bind Order.
KeybindTrainer offers a variety of options for how Actions are displayed during Trials. Mouse over each option for a tooltip explaining its function.
KeybindTrainer can collect and display a variety of statistics to measure your keybind performance. Statistics are saved on a per-character basis and can be reset at any time from the Statistics dialog. The following statistics are available:
Shows how much time you spent per bind for the last KeybindTrainer trial.
Shows how many misses you had per bind for the last KeybindTrainer trial.
Show the maximum amount time you spent per bind since the last time you cleared your statistics.
Show how much time you spent per bind on average since the last time you cleared your statistics.
Show how misses you had per bind on average since the last time you cleared your statistics.
Descriptions of each graph are also available as tooltips in the Keybind Stats dialog window.
The /kbt or /keybindtrainer slash commands have the following arguments:
/kbt show
Show the KeybindTrainer window.
/kbt hide
Hide the KeybindTrainer window.
/kbt help
Show the KeybindTrainer help window.
/kbt stats
Show the KeybindTrainer statistics window.
/kbt trial create
Shows a window to create a new custom trial.
/kbt trial edit NAME
Requires argument NAME. Shows a window to edit custom trial NAME.
Custom Trials are easy to create and share. To add a Custom Trial to KeybindTrainer, click the Add Trial button (or type /kbt trial create) and type or paste the string into the input box. Click 'Save' when finished. To save your trial to your Account profile (accessible by all your characters), make sure the Save to Profile option is selected.
A Custom Trial is just a string that tells KeybindTrainer what to display. These directions are specified using formant called 'JSON'. If you are not familiar with JSON, don't worry--you don't need to be.
Let's start by going through an example Custom Trial:
{"name":"basic","desc":"An example trial","gcd":1.5,"binds":[{"action":"Auto Attack", "cd": 1.2}]}
Let's go through this in more detail:
{ }
All Custom Trials must start and end with curly brackets ( { } ).
"name":"basic"
This is the name of the Custom Trial. Note that quotes are required both for the key and the value.
"desc":"An example trial"
A description for the Custom Trial, used to populate the tooltip in the Select Trial menu.
"gcd":1.5
The GCD time to use for this Custom Trial. This is the delay used between Actions unless an Action cooldown is specified (see below).
"binds":[]
The list of key-bound Actions KeybindTrainer will iterate over for this Trial. Note that the entire list of Actions must be enclosed in square brackets ( [ ] ). The label for this section is 'binds'.
{"action":"Auto Attack", "cd": 1.2}
An Action in this Custom Trial corresponding to a key-bound action on your bar. The action name is specified by the 'action': section. This name can be a string (such as 'Auto Attack'), tan integer spell id in the form of 'spell:1234', or an item id in the form of 'item:1234'. The cooldown for the action is specified by a number following the 'cd' label. This cooldown overrides the 'gcd' entry specified for the entire Custom Trial.
Action Tuples in Custom Trials can contain more than one action. This allows the user to create tests for sequences of keybinds. A multi-action Tuple is just multiple Actions listed together inside of square brackets ( [ ] ).
As an example, consider the "Rogue: Cloak and Vanish" Custom Trial included by default. The string used to construct this Custom Trial is below:
{"name":"Rogue: Cloak and Vanish", "gcd":1.5, "binds":[{"action":"Stealth"}, [{"action":"Cloak of Shadows", "cd":0}, {"action":"Vanish"}] ]}
Looking at the 'binds' list, there is a single bind Action Tuple for 'Stealth'. To test 'Cloak of Shadows' and 'Vanish' in sequence, we create a multi-action Action Tuple:
[{"action":"Cloak of Shadows", "cd":0}, {"action":"Vanish"}]
Here we have two actions in a list surrounded by square brackets ( [ ] ) to create a multi-action Action Tuple. The bracketed sequence is then included in the 'binds' list with single Actions. To cancel out the GCD for 'Cloak of Shadows' (which is off the GCD), we set its cooldown ('cd') value to 0.
The Custom Trial language is defined via EBNF as follows. Note: for readability, space means concatenate.
trial ='{' name ',' binds [gcd ','] [desc ','] '}'
binds = '"binds":[' trial_set ']'
trial_set = '[' action_tuple {',' action_tuple} ']'
action_tuple = '{action:' action [',' cooldown] '}'
action = string | 'spell:' int | 'item:' int
cooldown = '"cd":' float | '"cd":"random"'
gcd = '"gcd":' float
name = '"name":' string
desc = '"desc":' string
string = '"' (*any sequence of JSON-legal characters*) '"'
float = (*a floating point number*)
int = (*an integer*)
To edit a Custom Trial, select the trial in the Select Trial menu, and then click Edit Trial. Alternatively, type /kbt trial edit NAME, where NAME is the name of the trial to edit. This will bring the trial string up in an edit box, where you can make changes, or copy it for sharing with others.
To delete a Custom Trial, select the trial in the Select Trial menu, and then click Edit Trial. Alternatively, type /kbt trial edit NAME, where NAME is the name of the trial to edit. This will open the trial in the edit box. Once it's open, click Delete to remove the trial from KeybindTrainer. Note: this will also remove the Trial from your account profile.
A: KeybindTrainer scans your keybinds for all action bar slots before each trial is run. If you change your binds between trials, the next trial you run will reflect your updated binds.
A: The current trial will stop when you open the WoW keybind configuration window. When you start your next trial, the new keybind will be picked up by KeybindTrainer.
A: KeybindTrainer will accept any of the binds for that action during a Trial.
A: Unfortunately, there is not much KeybindTrainer can do in this case. The trial will still run, but for unknown spells a '?' icon will be displayed, and any key will be accepted for the bind.
A: Action names in Custom Trials are mapped to numeric WoW spell ids by KeybindTrainer. Some spell ids share the same name, such as 'Feral Charge'. If action bars contain multiple spells with the same name, KeybindTrainer will prefer the spell id that is bound to a visible action bar at the time the Trial is run. If there is more than one visible bind to actions sharing the same name, or if no binds to actions with identical names are visible, KeybindTrainer will not be able to map the name to a specific bind, and will display a '?' for that action. Any key will be accepted for the bind when the Trial is run.
A: The icon for the action will display during the trial, but a '?' will be overlaid because no bind for the action was found. Any key will be accepted for the bind when the Trial is run.