Warlock Affliction Rotation & Opener

Data updated 2026-09-06

Built from the current top-100 Mythic parses on WarcraftLogs — the real opener sequences, casts-per-minute and buff uptimes of the best Affliction players, not theorycraft.

Raid 5 top logs sampled Median kill 6:49
AI coach — raid
How to play: Agony never drops (6.5/min), Unstable Affliction is your high-frequency core (top players: 19.5/min), Haunt on cooldown (3.6/min), Shadow Bolt or Malefic Grasp fills. Dark Harvest and Summon Darkglare align with burst — DoTs fully rolled before opening. Watch: every DoT's remaining time — everything Affliction does stands on full DoT coverage; never cap soul shards, bank them before Darkglare windows.

Real Opener Sequences — Mythic boss M2

Sample kills 2026-08-27 – 2026-09-04

First ~12 casts of actual top-ranked kills. Trinkets and racials vary by setup; the skill order is what to copy.

KwrhimomZul'jin · US kill date 2026-09-04 Talents →
PfwMal'Ganis · US kill date 2026-09-03 Talents →
MinxArgent Dawn · EU kill date 2026-08-30 Hero talentSoul HarvesterTalents →
Burst key — from the top parses above Macro commands →
#showtooltip Haunt
/use 13
/use 14
/cast Summon Darkglare
/cast Haunt

A macro can fire only one global-cooldown ability per press — that is the game's limit, not ours. So a burst key is exactly: on-use trinkets + the off-GCD cooldowns top players press in their opener + one opener spell. Nothing else fits.

Off-GCD cooldowns pressed within the first 8 casts by at least 1 of the 3 sampled players, defensives and movement removed. Ends with the first on-GCD opener so everything fires in one press.

Slot 13 / 14: the data cannot tell which slot the on-use trinket sits in, so both are listed; the passive one just prints cannot use.

Compare yourself
Paste one of your WarcraftLogs reports and see, ability by ability, how many casts per minute you are behind the players above.
Analyze my log →

Casts Per Minute — Raid Benchmark

Sample kills 2026-08-27 – 2026-09-04
AbilityTop-player CPM
Unstable Affliction 15.7
Shadow Bolt 10.1
Agony 9.2
Haunt 3.2
Malefic Grasp 2.5
Wither 1.3
Dark Harvest 1.0
Malevolence 1.0
Dark PactOff-GCD 0.9
Burning Rush 0.9
Summon DarkglareOff-GCD 0.6
SoulburnOff-GCD 0.4
Mortal Coil 0.4

CPM = median casts per minute across the sampled top kills. If you're far below on a core ability, that's usually the first thing to fix.

Buff Uptimes to Watch

BuffTop-player uptime
Devotion Aura 95.8%
Cascading Calamity 87.3%
Rune of Critical Power 86.8%
Unstable Empowerment 83.8%
Arcanoweave Insight 75.2%
Soul Leech 65.3%
Halazzi's Rite 57.2%
Malevolence 51.5%
Earthliving Weapon 50.6%
Elemental Resistance 49.7%
Mythic+ Differences 8 top key runs sampled Median run 28:23
AI coach — Mythic+
How to play: Lead packs with Seed of Corruption (one cast blankets everything), hang Agony and UA on primary targets, channel Drain Soul as usual. Dark Pact rhythmically for survival. Watch: detonate Seeds off high-health targets (so they actually pop); your Soul Leech shield (84.7% uptime) is a passive health bar — it keeps flowing as long as your DoTs do.

Real AoE Opener — First Trash Pack

Sample kills 2026-08-29 – 2026-09-05

First ~12 casts after the pull starts, taken from actual top key runs: the AoE opener is the first pack of the run, the single-target opener is the first boss. Trinkets and racials vary by setup; the skill order is what to copy.

SizedotEmerald Dream · US kill date 2026-09-05 pull Primal Juggernaut · 17 enemies Hero talentSoul HarvesterTalents →
SizedotEmerald Dream · US kill date 2026-08-29 pull Defier Draghar · 26 enemies Hero talentSoul HarvesterTalents →
SizedotEmerald Dream · US kill date 2026-09-01 pull Bribed Guard · 27 enemies Hero talentSoul HarvesterTalents →
Burst key — from the top parses above Macro commands →
#showtooltip Curse of Weakness
/use 13
/use 14
/cast Curse of Weakness

A macro can fire only one global-cooldown ability per press — that is the game's limit, not ours. So a burst key is exactly: on-use trinkets + the off-GCD cooldowns top players press in their opener + one opener spell. Nothing else fits.

Off-GCD cooldowns pressed within the first 8 casts by at least 1 of the 3 sampled players, defensives and movement removed. Ends with the first on-GCD opener so everything fires in one press.

Slot 13 / 14: the data cannot tell which slot the on-use trinket sits in, so both are listed; the passive one just prints cannot use.

Real Single-Target Opener — First Boss

Sample kills 2026-08-29 – 2026-09-05
SizedotEmerald Dream · US kill date 2026-09-05 pull Melidrussa Chillworn Hero talentSoul HarvesterTalents →
SizedotEmerald Dream · US kill date 2026-08-29 pull Melidrussa Chillworn Hero talentSoul HarvesterTalents →
SizedotEmerald Dream · US kill date 2026-09-01 pull Kystia Manaheart Hero talentSoul HarvesterTalents →
Burst key — from the top parses above Macro commands →
#showtooltip Agony
/use 13
/use 14
/cast Summon Darkglare
/cast Agony

A macro can fire only one global-cooldown ability per press — that is the game's limit, not ours. So a burst key is exactly: on-use trinkets + the off-GCD cooldowns top players press in their opener + one opener spell. Nothing else fits.

Off-GCD cooldowns pressed within the first 8 casts by at least 1 of the 3 sampled players, defensives and movement removed. Ends with the first on-GCD opener so everything fires in one press.

Slot 13 / 14: the data cannot tell which slot the on-use trinket sits in, so both are listed; the passive one just prints cannot use.

Casts Per Minute — Mythic+ Benchmark

Sample kills 2026-08-29 – 2026-09-05
AbilityTop-player CPM
Seed of Corruption 11.0
Shadow Bolt 10.2
Agony 7.6
Unstable Affliction 5.5
Haunt 3.2
Malefic Grasp 2.1
Dark Harvest 1.2
Dark PactOff-GCD 0.7
Corruption 0.4
Empowering Venom 0.4
Summon DarkglareOff-GCD 0.4
Curse of Tongues 0.4

Mythic+ Buff Uptimes

BuffTop-player uptime
Soul Link 97.4%
Cascading Calamity 88.7%
Soul Leech 82.9%
Rune of Critical Power 81.2%
Unstable Empowerment 80.1%
Demonic Circle 61.8%
Arcanoweave Insight 60.8%
Halazzi's Rite 51.2%
Nightfall 37.2%
Succulent Soul 37.1%
Spec macros · 12.1 8 macros

Collected from public Patch 12.1 guides and checked for this patch. Spell names follow the language you selected on this site and must match your game client. If a macro does not work on your client, report it with the button on the card.

Spell names below are shown in this site's language . Your game client must use the same language, or the macro will say unknown spell.
Corruption (mouseover)
#showtooltip Corruption
/use [@mouseover,harm,nodead][harm] Corruption
DoTs the mouseover enemy, otherwise your target
Agony (mouseover)
#showtooltip
/cast [@mouseover,harm,nodead][] Agony
DoTs the mouseover enemy, otherwise your target
Haunt (mouseover)
#showtooltip
/cast [@mouseover,harm,nodead][] Haunt
Casts on the mouseover enemy, otherwise your target
Banish (Shift = focus)
#showtooltip Banish
/use [mod:shift,@focus][] Banish
Hold Shift to banish your focus
Soulstone (mouseover)
#showtooltip Soulstone
/target [@mouseover] Soulstone
/use Soulstone
/targetlasttarget
Works around the dead-mouseover bug, returns to your previous target
Demonic Circle (Shift = place)
#showtooltip
/stopcasting
/use [mod:shift] Demonic Circle(Summon); [nomod] Demonic Circle: Teleport(Teleport)
Shift places the circle, plain press teleports and cancels your cast
Shadowfury (cursor) / Howl of Terror
#showtooltip
/use [known:Shadowfury,@cursor] Shadowfury; [known:Howl of Terror] Howl of Terror
Whichever talent you have; Shadowfury lands at the cursor
Pet attack / follow / move
/petattack
Also bind /petfollow and /petmoveto to control your demon
Keybind suggestion by casts per minute

Keybinds are personal — this is not a layout to copy wholesale. What it does say is which abilities you press most, measured from the same top parses above: the more often an ability is cast, the less effort its key should take. Interrupts, defensives and movement are deliberately left out; they barely register in cast data yet must always be within reach, so choose those yourself.

Rows marked Passive are not pressed at all — they fire on their own (auto-attacks, procs) and get no key, even though they top the casts-per-minute table.

KeyAbilityTop-player CPM
1 Unstable Affliction 15.7
2 Seed of Corruption 11.0
3 Shadow Bolt 10.2
4 Agony 9.2
5 Haunt 3.2
Z Malefic Grasp 2.5
X Wither 1.3
C Dark Harvest 1.2
V Malevolence 1.0
R Dark PactOff-GCD 0.9
F Burning Rush 0.9
T Summon DarkglareOff-GCD 0.6
G SoulburnOff-GCD 0.4
Shift+1 Mortal Coil 0.4
Shift+2 Corruption 0.4
Shift+3 Empowering Venom 0.4
Shift+4 Curse of Tongues 0.4

Compare yourself in-game, live

The GearInsight addon overlays your own CPM and buff uptimes next to these benchmarks during combat.

Get the addon →
CurseForge  ·  Wago.io  ·  Gear Analyzer