Side project · World of Warcraft
BRAT
Brad's Rotation Assistant Technology is a World of Warcraft add-on. In a fight, it shows the spell to press now and the ones coming next, based on what the best players do.
On screen
Now
The big icon is the spell to press right now, with its key binding on it. It comes from Blizzard's own rotation assistant.
Next and then
Smaller icons show the spells after it, so your hands are ready before the moment comes.
Soon
A heads-up with a countdown, a few seconds before a stronger spell is ready again.
Ranks
For spells you charge up, the icon shows how far to charge, such as "R2", based on how many enemies there are.
Where the advice comes from
| Warcraft Logs | Learn from Blizzard | |
|---|---|---|
| What it uses | What the top 100 or so players cast, boss by boss and dungeon by dungeon | What Blizzard's assistant picked during your own fights |
| Where it lives | Shipped inside the add-on and refreshed with each update | Recorded on your computer as you play |
| Best for | Playing the way top players do (the default) | A rotation that fits your own talents |
How it works
Knows where you are
Each raid boss and Mythic+ dungeon gets its own rotation, with a general raid or dungeon rotation to fall back on. Training dummies count too.
Counts the enemies
Every rotation is split by how many enemies are nearby, from one to eight or more, counted from their nameplates.
Works around hidden data
Since the Midnight expansion, the game hides cooldowns from add-ons during combat. BRAT times them itself from your casts and learns how much each spell shortens another.
Watches glowing buttons
When a proc lights up a spell, BRAT learns how often it should come next, and moves it up when it should.
Three layers
Recorded fights become averages, and averages become the rotation it serves. Both sources go through the same engine.
Checks its own work
Every fight is recorded. BRAT scores its guesses against Blizzard and against top players, and calls a spec ready once it matches Blizzard 90% of the time.
Supported specs
| Spec | Class | Status (patch 12.1.5) |
|---|---|---|
| Shadow | Priest | From guides, not yet confirmed in game |
| Discipline | Priest | Damage spells only. From guides, not yet confirmed in game |
| Holy | Priest | Damage spells only. Confirmed in game |
| Devastation | Evoker | From guides and Warcraft Logs, not yet confirmed in game |
Commands
| /brat | Opens the settings, where every option is explained |
|---|---|
| /brat check | Checks everything BRAT depends on, with a fix for anything wrong |
| /brat why | Explains the current suggestion |
| /brat analyze | Scores your recorded fights and shows the results |
| /brat source | Switches between Warcraft Logs and Learn from Blizzard |
How it's built
Lua
The add-on is written in Lua, the language World of Warcraft add-ons use. Test harnesses run its logic outside the game with LuaJIT.
PowerShell tools
A data manager downloads top players' fights from Warcraft Logs and writes them into the add-on. Another tool studies your recorded fights on your computer.
The code
BRAT is open source.