Description
⚠️ BIG CHANGES — READ BEFORE USE ⚠️
This is not the WeakAuras you're used to. Many auras will not work as before.
WoW Forever looks like Classic, but it runs on the modern game engine (12.1). That engine uses "secret values": addons receive combat data but can't read, compare or do math on it, especially during combat.
Buffs, debuffs and cooldowns become unreadable when you are in combat, during a boss encounter, or in a PvP match. Out of combat, almost everything works like before.
NEW: IN-GAME TUTORIAL
Type /wa tutorial to learn how to create auras that work on WoW Forever. It comes with two ready-made auras you can import in one click: a DoT timer started from your own cast, and a pre-pull checklist.
HOW TO THINK YOUR AURAS NOW
Don't build auras that read the game in combat. Build them to prepare before the pull or deduce from your own actions.
- Debuff on target, show timer → You cast the DoT, start a fixed timer
- Buff missing in combat, alert → Check buffs and consumables before the pull
- Boss casts X, alert → Boss timeline from the pull (
ENCOUNTER_START) - Cooldown ready, flash → Let the action bar show the cooldown
- Low mana, alert → Show the mana bar, no conditions on it in combat
WHAT WORKS
The addon itself
- All display types: icons, progress bars, texts, textures, models and groups
- Event triggers and custom code that don't use the combat log
- Custom code using the modern C_ API (
C_Spell,C_UnitAuras,C_Item…) - Spells entered by ID
- Wago imports and your existing auras load without conversion (they may still need adapting)
- No Lua error spam in combat: when the game hides data, auras keep their last known state
Readable even in combat (based on the engine documentation, report anything that doesn't match)
- Your own spell casts and your pet's:
UNIT_SPELLCAST_SUCCEEDED:player,_START,_STOP,_CHANNEL - Combo points
- Your max health and max power
- Global cooldown (spell ID
61304) and combat res cooldowns - Target / focus / mouseover checks
- Item counts in bags: ammo, Soul Shards, reagents
- States: in combat, group, zone, mounted, resting, stealth, druid form
- Encounter start and end:
ENCOUNTER_START,ENCOUNTER_END - Damage taken, through the
UNIT_COMBAT:playerevent - Your target's death, through the
PLAYER_TARGET_DIEDevent - Durability, bags, XP, gold, reputation
Out of combat only
- Buff and debuff triggers (they update when combat ends). Perfect for pre-pull reminders
- Cooldown triggers: a cooldown started before combat still becomes ready at its end time, a cooldown started in combat is only seen when combat ends
- Weapon enchants (poison, oil, sharpening stone)
Display only (no conditions on them in combat)
- Mana, energy, rage and health bars
WHAT THE ENGINE DOES NOT ALLOW
- Combat log triggers (CLEU, "Combat Log" event) never fire
- Target debuffs in combat (DoTs, Sunder, Faerie Fire) freeze until combat ends
- Your buffs and cooldowns started in combat freeze until combat ends
- Mana / energy / rage conditions in combat (low mana alert, tick timer)
- Other players' casts and enemy names / IDs in instances are hidden
- Chat Message action is blocked during encounters and PvP matches
- The swing timer does not reset on melee hits
- Talent load options are empty
- Spells cannot be searched by name, only by ID
- Custom code calling old game functions errors and must be updated to
- Auras anchored to nameplates only work with the default Blizzard nameplates (not with ElvUI, Plater, Kui, EllesmereUI…)
Most auras made for Classic Era, SoD or Retail need to be adapted, especially the ones with custom code.
Not tested in dungeons and raids yet. Reports are welcome.
RECIPE: DOT OR BUFF TIMER FROM YOUR CAST
Target debuffs are hidden in combat, but your own casts are not. So start the timer when you cast. A ready-made example is in /wa tutorial.
/wa→ New → Icon (or Progress Bar)- Trigger tab → Type: Custom, Event Type: Event
- Event(s):
UNIT_SPELLCAST_SUCCEEDED:player - Custom Trigger:
function(event, unit, castGUID, spellID) if issecretvalue and issecretvalue(spellID) then return false end return spellID == 11672 -- replace with your spell ID end
- Hide: Timed, Duration: the spell duration from its tooltip
- Display tab: set the spell icon manually
One aura per spell. Recasting restarts the timer. No resist/dispel detection, one target only.
TIPS
- Use spell IDs. Get your rank's ID out of combat:
/dump C_Spell.GetSpellInfo("Spell Name") - In custom code, check
issecretvalue(x)before comparing anything, or you'll get Lua errors. - Test in real combat: no training dummies, so pull any mob or duel a friend.
- Let the Blizzard UI show what only it can see: debuffs on nameplates ("only my debuffs") and on the target frame.
IMPORTANT
Do not install it next to the official WeakAuras.
It uses the same folder, slash commands and saved settings.
SUPPORT
- Found a bug? Report it on GitHub
- Something listed here doesn't match what you see in game? Tell us, this list is based on the engine documentation and in-game tests.
- Discord: coming soon
LICENSE
WeakAuras Forever is a modified version of WeakAuras2 by The WeakAuras Team, released under the GNU GPL v2. Changes © 2026 dldvlpr, same license.



