Advanced rotations (KRC)
Updated October 18, 2026
We recommend building rotations with an AI agent
It is much faster and more convenient than setting a rotation up by hand. The more advanced the AI agent, the closer the rotation matches your requirements on the first try. We recommend the latest Anthropic and OpenAI models with the reasoning level "Extra (xhigh)". How to do it: Building with an AI agent.
An advanced rotation is your own list of rules: which ability to press and when. KeyRota checks the rules in combat and presses the first button that fits. The format and the engine of these rotations are called KRC (KeyRota Customization).
Basic or advanced#
| Blizzard (basic) | Advanced (KRC) | |
|---|---|---|
| Who picks the button | The game: Blizzard's suggestion | Your rules |
| Setup | None | Slots, auras and rules: in the builder or from a file |
| Specializations | Any damage (melee and ranged DPS) or tank specialization | The one the rotation is written for |
| Burst and target mode | Not used | The Burst and Targets buttons; the rules decide what they mean |
| When to choose | To start quickly on any character | You need an exact priority: DoTs, resource pooling, cooldowns in a burst window, your own multi-target logic |
In the app's Rotation block the Blizzard profile comes first, your rotations below it, under "Your rotations". You can switch at any time while the rotation is stopped.
What a rotation is made of#
| Part | What it is | How many |
|---|---|---|
| Slots | The rotation's buttons. Rotation slot N is slot N of the Better Assistant profile. | up to 12 |
| Auras | Your buffs and your debuffs on the target, by spell ID. Rotation aura N is aura N of the Better Assistant list. | up to 12 |
| Resources | Player and target health and the specialization's resources: energy, combo points, rage, mana and others. All values are percentages. | per specialization |
| Combat | The number of enemies nearby and the distance to the target. | 2 |
| Toggles | The quick settings panel buttons: target mode (two flags in rules: aoe and st), Burst, Healing / defense, Ground, Movement. | 6 |
| Rules | Which slot to press and under which conditions. The order of the rules is the priority. | unlimited |
A rule is made of condition groups. A rule holds when at least one of its groups holds (OR), and a group holds when all of its conditions hold (AND). A rule without groups always holds.
use Envenom when # Envenom
Combo_Points >= 70 and Envenom_Buff.down # 5+ CP, no buff
or
Combo_Points >= 70 and Energy >= 70 # 5+ CP, plenty of energy
{
"use": "Envenom",
"name": "Envenom",
"when": [
{"all": ["Combo_Points >= 70", "Envenom_Buff.down"], "comment": "5+ CP, no buff"},
{"all": ["Combo_Points >= 70", "Energy >= 70"], "comment": "5+ CP, plenty of energy"}
]
}
It reads: "Press Envenom if there are 5 or more combo points and no Envenom buff, or if there are 5 or more combo points and at least 70% energy". Why 5 combo points is 70 is explained in Resources.
How KeyRota chooses a button#
- Rules are checked from top to bottom, in list order.
- For each rule its groups are checked. If none holds, KeyRota moves on to the next rule.
- If the rule holds but its spell can't be used right now (cooldown, not enough resource, target too far, no target, spell not learned), KeyRota also moves on to the next rule. You don't need a condition for the slot's own readiness.
- The first rule that holds and whose spell can be used is chosen. The global cooldown (GCD) doesn't change the choice: a rule waiting for the end of the GCD stays chosen, and the rules below don't overtake it.
- If no rule fits: with "Ignore main icon" on, KeyRota waits; with it off, it presses the game's suggestion.
Waiting is normal. A rotation that pools energy, for example, often presses nothing for half a second or a second until there is enough energy for a rule above.
An unknown value never allows a rule#
Sometimes KeyRota doesn't know a value: an aura isn't read (its ID is not in the Better Assistant profile), there is no target (the target's health and distance are unknown), enemies weren't counted. A condition that reads an unknown value is false: X.up and X.down, TargetHP >= 50 and TargetHP < 50 alike. An unknown value can only forbid a rule, never allow it: better to skip a press than to press the wrong thing.
Tip
If a rule never fires, first check that every aura it reads is in the Better Assistant profile with the right ID. More in FAQ and troubleshooting.
When a button is pressed#
- A normal spell (on the GCD) is pressed in the spell queue window at the very end of the GCD: the game casts it as soon as the GCD ends.
- Slot flags change that: "Manual only (M)", "Channel (C)", "Off the GCD (O)", "In the queue window (Q)". What each does and how to combine them is in Slot flags.
- Channels. While a channel is going, KeyRota presses nothing so as not to break it. During a cast KeyRota waits until only the queue window is left.
- Your own presses. When you press an ability key yourself, KeyRota steps aside and doesn't fight you.
Quick start#
If KeyRota isn't installed yet, begin with the first steps.
- In KeyRota open Rotation — New — In the builder….
- On the General page choose the specialization and name the rotation.
- On the Slots page add the buttons and their spell IDs; on the Auras page, the buffs and debuffs the rules will read.
- On the Rules page add the rules in priority order.
- On the General page click "Build from slots and auras", then "Copy". In the game:
/ba— the Profile tab — paste the string — Apply. - Put the slot spells on your action bars and bind keys to them (a macro with
#showtooltipworks too). - Click Save, choose the profile in the list and start the rotation with F1 (on macOS, ⌃⇧Space).
Every button, with a worked example, is in Rotation builder.