Cogspark Works · Rotation
Protection Warrior
The priority list SimulationCraft plays this spec with · engine build 20261019-1860cd1-w8a2c73d · game data 12.1.5.70448
§1How to read this
A rotation in SimulationCraft is a priority list, not a sequence. Every time the character can act, the sim starts at the top of The main loop and does the first line whose conditions hold. Lower lines only happen when nothing above them fits.
- The page shows the list as a decision tree: set what you know about the fight and your talents, and it lights the lists the sim checks, in order.
- Cast lines use the ability. Hover, focus or tap an icon or a name for its tooltip.
- Go through another list: its lines are checked in order; when none of them fits, the sim comes back and carries on with the next line here.
- Switch to another list: the rest of this list is skipped and the choice is made from that list alone.
- Helpers are values the list works out on the spot, such as “are we holding a cooldown”. Setting one takes no time and the list carries on. The tree works out the ones your situation settles.
The list is written to perform well in the sim, not to be the only right way to play. Every line keeps its original simc text under the simc toggle at its right, and the list author’s note where there is one.
§2Decision tree
Set what you know. The tree lights the lists the sim checks, top to bottom; in each list it presses the first ability whose conditions hold and that is ready. Readiness (cooldowns, resources) isn’t in the list, so a lit ability is the first one allowed, not a promise it is cast.
- The main loop
- Helpers
- Colossus AoE (maybe)
- Thane AoE (maybe)
- Colossus st (maybe)
- Thane st (maybe)
Before the pull, done once before the fight starts (3 steps)
Before the pull3 lines
- Record your stats before the pull (sim bookkeeping)
simc
snapshot_stats - Cast Battle Stance
simc
battle_stance,toggle=on - Use Algethar Puzzle Box
simc
use_item,name=algethar_puzzle_box
The main loop29 lines
- Start auto-attacking
simc
auto_attack go through Helpers, then carry on below if nothing there fits
simc
call_action_list,name=variablesHelpers1 line
- Set execute phase to true when the following holds, otherwise falseany of these:
- all of these:
- you have Massacre talented
- the target is below 35% health
- the target is below 20% health
simc
variable,name=execute_phase,value=(talent.massacre.enabled&target.health.pct<35)|target.health.pct<20 - all of these:
- Cast Charge if the fight hasn't started yet
simc
charge,if=time=0 - Use Tome of Lights Devotion if Inner Resilience is active
simc
use_item,name=tome_of_lights_devotion,if=buff.inner_resilience.up - Use your trinkets
simc
use_items - Cast Avatar if Thunder Blast isn't active or Thunder Blast has 2 or fewer stacks
simc
avatar,if=buff.thunder_blast.down|buff.thunder_blast.stack<=2 - Cast Shield Wall
simc
shield_wall - Cast Blood Fury
simc
blood_fury - Cast Berserking
simc
berserking - Cast Arcane Torrent
simc
arcane_torrent - Cast Light's Judgment
simc
lights_judgment - Cast Fireblood
simc
fireblood - Cast Ancestral Call
simc
ancestral_call - Cast Bag of Tricks
simc
bag_of_tricks - Drink a potion if Avatar is active or (Avatar is active and the target is at or below 20% health)
simc
potion,if=buff.avatar.up|buff.avatar.up&target.health.pct<=20 - Cast Ignore Pain if (the target is at or above 20% health and ((you are 15 or less Rage below maximum and Shield Slam is off cooldown) or (you are 20 or less Rage below maximum and Shield Charge is off cooldown) or (you are 20 or less Rage below maximum and Demoralizing Shout is off cooldown and you have Booming Voice talented) or you are 15 or less Rage below maximum or (you are 40 or less Rage below maximum and Shield Slam is off cooldown and Violent Outburst is active and you have Heavy Repercussions talented and you have Practiced Strikes talented) or (you are 17 or less Rage below maximum and Shield Slam is off cooldown and you have Heavy Repercussions talented) or (you are 18 or less Rage below maximum and Shield Slam is off cooldown and you have Practiced Strikes talented))) or ((you have 70 or more Rage or (Seeing Red has exactly 7 stacks and you have 35 or more Rage)) and Shield Slam comes off cooldown within 1 s and Shield Block is active)Used without waiting for the global cooldown
simc
ignore_pain,if=target.health.pct>=20&(rage.deficit<=15&cooldown.shield_slam.ready|rage.deficit<=20&cooldown.shield_charge.ready|rage.deficit<=20&cooldown.demoralizing_shout.ready&talent.booming_voice.enabled|rage.deficit<=15|rage.deficit<=40&cooldown.shield_slam.ready&buff.violent_outburst.up&talent.heavy_repercussions.enabled&talent.practiced_strikes.enabled|rage.deficit<=17&cooldown.shield_slam.ready&talent.heavy_repercussions.enabled|rage.deficit<=18&cooldown.shield_slam.ready&talent.practiced_strikes.enabled)|(rage>=70|buff.seeing_red.stack=7&rage>=35)&cooldown.shield_slam.remains<=1&buff.shield_block.remains,use_off_gcd=1 - Cast Ravager
simc
ravager - Cast Thunder Blast if you have Booming Voice talented and Thunder Blast has exactly 2 stacks and you have Snap Induction talented
simc
thunder_blast,if=talent.booming_voice.enabled&buff.thunder_blast.stack=2&talent.snap_induction.enabled - Cast Demoralizing Shout if you have Booming Voice talented
simc
demoralizing_shout,if=talent.booming_voice.enabled - Cast Champion's Leap
simc
champions_leap - Cast Champion's Spear
simc
champions_spear - Cast Thunder Blast if Thunder Blast would hit 2 or more enemies and Thunder Blast has exactly 2 stacks
simc
thunder_blast,if=spell_targets.thunder_blast>=2&buff.thunder_blast.stack=2 - Cast Demolish if Colossal Might has 5 or more stacks
simc
demolish,if=buff.colossal_might.stack>=5 - Cast Shield Charge
simc
shield_charge - Cast Shield Block if Shield Block has at most 10 s left, or isn't active
simc
shield_block,if=buff.shield_block.remains<=10 Is it true that you use the Colossus hero talents and Thunder Clap would hit 3 or more enemies?Not set
If so, switch to Colossus AoE, and nothing below is checked
simc
run_action_list,name=colossus_aoe,if=hero_tree.colossus&spell_targets.thunder_clap>=3Colossus AoE9 lines
- Cast Thunder Clap if Ravager is active and Rend Dot isn't on the target
simc
thunder_clap,if=buff.ravager.up&!dot.rend_dot.ticking - Cast Revenge if Revenge is active
simc
revenge,if=buff.revenge.up - Cast Shield Slam if Phalanx is active and (Violent Outburst is active or you have less than 30 Rage)
simc
shield_slam,if=buff.phalanx.up&(buff.violent_outburst.up|rage<30) - Cast Thunder Clap if you have less than 30 Rage
simc
thunder_clap,if=rage<30 - Cast Revenge if Revenge would hit 3 or more enemies
simc
revenge,if=spell_targets.revenge>=3 - Cast Shield Slam
simc
shield_slam - Cast Thunder Clap
simc
thunder_clap - Cast Revenge if you have 30 or more Rage
simc
revenge,if=rage>=30 - Cast Execute if Execute would hit 2 or more enemies and (you have 50 or more Rage or Sudden Death is active) and you have Heavy Handed talented
simc
execute,if=spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled
Is it true that you use the Mountain Thane hero talents and Thunder Clap would hit 3 or more enemies?Not set
If so, switch to Thane AoE, and nothing below is checked
simc
run_action_list,name=thane_aoe,if=hero_tree.mountain_thane&spell_targets.thunder_clap>=3Thane AoE7 lines
- Cast Thunder Blast
simc
thunder_blast - Cast Shield Slam if Phalanx is active
simc
shield_slam,if=buff.phalanx.up - Cast Thunder Clap
simc
thunder_clap - Cast Revenge if Revenge is active
simc
revenge,if=buff.revenge.up - Cast Shield Slam
simc
shield_slam - Cast Revenge
simc
revenge - Cast Execute if Execute would hit exactly 3 enemies and (you have 50 or more Rage or Sudden Death is active) and you have Heavy Handed talented
simc
execute,if=spell_targets.execute=3&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled
Is it true that you have Demolish talented?Not set
If so, switch to Colossus st, and nothing below is checked
simc
run_action_list,name=colossus_st,if=talent.demolishColossus st12 lines
- Cast Shield Slam
simc
shield_slam - Cast Thunder Clap if Phalanx isn't active
simc
thunder_clap,if=!buff.phalanx.up - Cast Execute
simc
execute - Cast Revenge if Revenge is active
simc
revenge,if=buff.revenge.up - Cast Thunder Clap
simc
thunder_clap - Cast Revenge
simc
revenge - Cast Wrecking Throw if you have Javelineer talented
simc
wrecking_throw,if=talent.javelineer.enabled - Cast Shattering Throw if you have Javelineer talented
simc
shattering_throw,if=talent.javelineer.enabled - Cast Devastate
simc
devastate
Is it true that you have Lightning Strikes talented?Not set
If so, switch to Thane st, and nothing below is checked
simc
run_action_list,name=thane_st,if=talent.lightning_strikesThane st10 lines
- Cast Thunder Blast
simc
thunder_blast - Cast Shield Slam
simc
shield_slam - Cast Execute
simc
execute - Cast Revenge if Revenge is active
simc
revenge,if=buff.revenge.up - Cast Thunder Clap
simc
thunder_clap - Cast Wrecking Throw if you have Javelineer talented
simc
wrecking_throw,if=talent.javelineer.enabled - Cast Shattering Throw if you have Javelineer talented
simc
shattering_throw,if=talent.javelineer.enabled - Cast Revenge
simc
revenge - Cast Devastate
simc
devastate
Read from ActionPriorityLists/default/warrior_protection.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.
Blizzard’s own suggestion system (the one-button rotation), as simc carries it. It is simpler than SimulationCraft’s list and is not what Cogspark simulates.
§2Decision tree
Set what you know. The tree lights the lists the sim checks, top to bottom; in each list it presses the first ability whose conditions hold and that is ready. Readiness (cooldowns, resources) isn’t in the list, so a lit ability is the first one allowed, not a promise it is cast.
- The main loop
- Cooldowns
- Assisted Combat
Before the pull, done once before the fight starts (2 steps)
Before the pull2 lines
- Record your stats before the pull (sim bookkeeping)
simc
snapshot_stats - Cast Battle Stance
simc
battle_stance,toggle=on
The main loop4 lines
go through Cooldowns, then carry on below if nothing there fits
simc
call_action_list,name=cooldownsCooldowns12 lines
- Use your trinketsSome cooldowns are not used by the Assisted Combat system. This simple default cooldown usage has been provided by simc.
simc
use_items - Drink a potion
simc
potion - Cast Blood Fury
simc
blood_fury - Cast Berserking
simc
berserking - Cast Fireblood
simc
fireblood - Cast Ancestral Call
simc
ancestral_call - Cast Demoralizing Shout if you have Booming Voice talented
simc
demoralizing_shout,if=talent.booming_voice.enabled - Cast Shield Charge
simc
shield_charge - Cast Avatar
simc
avatar - Cast Shield Block if Shield Block has at most 10 s left, or isn't active
simc
shield_block,if=buff.shield_block.remains<=10 - Cast Shield Wall
simc
shield_wall - Cast Ignore Pain if you have 65 or more Rage
simc
ignore_pain,if=rage>=65
go through Assisted Combat, then carry on below if nothing there fits
simc
call_action_list,name=assisted_combatAssisted Combat14 lines
- Cast Battle Shout if Battle Shout Highlight is activeThis is the default action priority list from the game's Assisted Combat system.
simc
battle_shout,if=buff.battle_shout_highlight.up - Cast Avatar if Heroic Throw is off cooldownThis is for Blizzard automation and is not included in the game's Assisted Combat system.
simc
avatar,if=cooldown.heroic_throw.ready - Cast Ravager
simc
ravager - Cast Demolish
simc
demolish - Cast Thunder Blast if Thunder Blast is active and your distance to the target is at most 8
simc
thunder_blast,if=buff.thunder_blast.up&target.distance<=8 - Cast Shield Slam
simc
shield_slam - Cast Thunder Clap if your distance to the target is at most 8
simc
thunder_clap,if=target.distance<=8 - Cast Revenge if your distance to the target is at most 6 and there are more than 3 enemies(Overridden from 'target.distance<=5&active_enemies>3')
simc
revenge,if=target.distance<=6&active_enemies>3 - Cast Shield ChargeThis is for Blizzard automation and is not included in the game's Assisted Combat system.
simc
shield_charge - Cast Execute
simc
execute - Cast Revenge if your distance to the target is at most 6(Overridden from 'target.distance<=5')
simc
revenge,if=target.distance<=6 - Cast Devastate if you don't have Devastator talented
simc
devastate,if=!talent.devastator - Cast Heroic Throw if your distance to the target is more than 15
simc
heroic_throw,if=target.distance>15
- Start auto-attacking
simc
auto_attack - Cast Charge if at most 0.5 s into the fight or the distance you still have to move is more than 5
simc
charge,if=time<=0.5|movement.distance>5
Read from ActionPriorityLists/assisted_combat/warrior_protection.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.