Cogspark Works · Rotation
Enhancement Shaman
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
- Single sb (maybe)
- Cooldowns (maybe)
- Single totemic (maybe)
- AoE (maybe)
Before the pull, done once before the fight starts (9 steps)
Before the pull9 lines
- Cast Windfury Weapon
simc
windfury_weapon - Cast Flametongue Weapon
simc
flametongue_weapon - Cast Lightning Shield
simc
lightning_shield - Set trinket1 is weird to true when the following holds, otherwise falseany of these:
- trinket 1 is Algethar Puzzle Box
- trinket 1 is Unyielding Netherprism
- trinket 1 is Font of Venomous Rage
simc
variable,name=trinket1_is_weird,value=trinket.1.is.algethar_puzzle_box|trinket.1.is.unyielding_netherprism|trinket.1.is.font_of_venomous_rage - Set trinket2 is weird to true when the following holds, otherwise falseany of these:
- trinket 2 is Algethar Puzzle Box
- trinket 2 is Unyielding Netherprism
- trinket 2 is Font of Venomous Rage
simc
variable,name=trinket2_is_weird,value=trinket.2.is.algethar_puzzle_box|trinket.2.is.unyielding_netherprism|trinket.2.is.font_of_venomous_rage - Record your stats before the pull (sim bookkeeping)Snapshot raid buffed stats before combat begins and pre-potting is done.
simc
snapshot_stats - Use Algethar Puzzle Box
simc
use_item,name=algethar_puzzle_box - Drink a potion if your potion isn't Liquid Luster
simc
potion,if=!potion.liquid_luster - Drink a potion if your potion is Liquid Luster
simc
potion,pre_pot_time=12,if=potion.liquid_luster
The main loop9 lines
- Set target nature mod to (1 plus ((1 if Chaos Brand is active on the target, else 0) times Chaos Brand's current value)) times (1 plus ((1 if (1 if Hunter's Mark is active on the target, else 0) times the target's health is at least 80, else 0) times Hunter's Mark's current value))
simc
variable,name=target_nature_mod,value=(1+debuff.chaos_brand.up*debuff.chaos_brand.value)*(1+(debuff.hunters_mark.up*target.health.pct>=80)*debuff.hunters_mark.value) - Set expected lb funnel to the expected damage of Lightning Bolt times (1 plus (((1 if Lightning Rod is active on the target, else 0) times target nature mod) times (1 plus the number of enemies with Flame Shock) times Lightning Rod's current value))
simc
variable,name=expected_lb_funnel,value=action.lightning_bolt.damage*(1+debuff.lightning_rod.up*variable.target_nature_mod*(1+active_dot.flame_shock)*debuff.lightning_rod.value) - Set expected cl funnel to the expected damage of Chain Lightning times (1 plus (((1 if Lightning Rod is active on the target, else 0) times target nature mod) times the number of enemies times Lightning Rod's current value))
simc
variable,name=expected_cl_funnel,value=action.chain_lightning.damage*(1+debuff.lightning_rod.up*variable.target_nature_mod*active_enemies*debuff.lightning_rod.value) - Set flame shock saturated to true when the following holds, otherwise falseany of these:
- the number of enemies with Flame Shock is the number of enemies
- Flame Shock is on exactly 6 enemies
simc
variable,name=flame_shock_saturated,value=((active_dot.flame_shock=active_enemies)|(active_dot.flame_shock=6)) - Cast BloodlustAt most once every 600 s
simc
bloodlust,line_cd=600 - Start auto-attacking
simc
auto_attack Is it true that there is a single enemy and you don't have Surging Totem talented?Not set
If so, go through Single sb, then carry on below if nothing there fits
simc
call_action_list,name=single_sb,if=active_enemies=1&!talent.surging_totem.enabledIs it true that there is a single enemy and you have Surging Totem talented?Not set
If so, go through Single totemic, then carry on below if nothing there fits
simc
call_action_list,name=single_totemic,if=active_enemies=1&talent.surging_totem.enabledIs it true that there is more than one enemy?Not set
If so, go through AoE, then carry on below if nothing there fits
simc
call_action_list,name=aoe,if=active_enemies>1
Read from ActionPriorityLists/default/shaman_enhancement.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 Flametongue Weapon if you have Flametongue Weapon talented
simc
flametongue_weapon,if=talent.flametongue_weapon
The main loop2 lines
go through Cooldowns, then carry on below if nothing there fits
simc
call_action_list,name=cooldownsCooldowns8 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 Ascendance
simc
ascendance - Cast Doom Winds
simc
doom_winds
go through Assisted Combat, then carry on below if nothing there fits
simc
call_action_list,name=assisted_combatAssisted Combat29 lines
- Cast Lightning Shield if Lightning Shield isn't activeThis is the default action priority list from the game's Assisted Combat system.
simc
lightning_shield,if=buff.lightning_shield.down - Cast Windfury Weapon if Windfury Weapon isn't active
simc
windfury_weapon,if=buff.windfury_weapon.down - Cast Surging Totem if Surging Totem isn't active
simc
surging_totem,if=buff.surging_totem.down - Cast Doom Winds if your distance to the target is at most 8This is for Blizzard automation and is not included in the game's Assisted Combat system.
simc
doom_winds,if=target.distance<=8 - Cast Crash Lightning if Ascendance is active and you have Thorim's Invocation talented and your distance to the target is at most 10
simc
crash_lightning,if=buff.ascendance.up&talent.thorims_invocation&target.distance<=10 - Cast Windstrike if Ascendance is active and you have Thorim's Invocation talented
simc
windstrike,if=buff.ascendance.up&talent.thorims_invocation - Cast Stormstrike if Ascendance is active and you have Thorim's Invocation talented
simc
stormstrike,if=buff.ascendance.up&talent.thorims_invocation - Cast Flame Shock if Flame Shock isn't on the target
simc
flame_shock,if=!dot.flame_shock.ticking - Cast Lava Lash if there are more than 3 enemies and Flame Shock is on 2 or fewer enemies
simc
lava_lash,if=active_enemies>3&active_dot.flame_shock<=2 - Cast Primordial Storm if you don't have Raging Maelstrom talented and Maelstrom Weapon has 5 or more stacks and Primordial Storm is active
simc
primordial_storm,if=!talent.raging_maelstrom&buff.maelstrom_weapon.stack>=5&buff.primordial_storm.up - Cast Primordial Storm if Primordial Storm is active and Maelstrom Weapon has 10 or more stacks and you have Raging Maelstrom talented
simc
primordial_storm,if=buff.primordial_storm.up&buff.maelstrom_weapon.stack>=10&talent.raging_maelstrom - Cast Sundering if Primordial Storm isn't active
simc
sundering,if=buff.primordial_storm.down - Cast Chain Lightning if Maelstrom Weapon has 5 or more stacks and there are more than 3 enemies and you don't have Raging Maelstrom talented
simc
chain_lightning,if=buff.maelstrom_weapon.stack>=5&active_enemies>3&!talent.raging_maelstrom - Cast Chain Lightning if Maelstrom Weapon has 10 or more stacks and there are more than 3 enemies and you have Raging Maelstrom talented
simc
chain_lightning,if=buff.maelstrom_weapon.stack>=10&active_enemies>3&talent.raging_maelstrom - Cast Tempest if Maelstrom Weapon has 5 or more stacks and you don't have Raging Maelstrom talented
simc
tempest,if=buff.maelstrom_weapon.stack>=5&!talent.raging_maelstrom - Cast Lightning Bolt if Maelstrom Weapon has 5 or more stacks and you don't have Raging Maelstrom talented
simc
lightning_bolt,if=buff.maelstrom_weapon.stack>=5&!talent.raging_maelstrom - Cast Tempest if Maelstrom Weapon has 10 or more stacks and you have Raging Maelstrom talented
simc
tempest,if=buff.maelstrom_weapon.stack>=10&talent.raging_maelstrom - Cast Lightning Bolt if Maelstrom Weapon has 10 or more stacks and you have Raging Maelstrom talented
simc
lightning_bolt,if=buff.maelstrom_weapon.stack>=10&talent.raging_maelstrom - Cast Crash Lightning if your distance to the target is at most 10
simc
crash_lightning,if=target.distance<=10 - Cast Lava Lash if you have Lively Totems talented
simc
lava_lash,if=talent.lively_totems - Cast Voltaic Blaze
simc
voltaic_blaze - Cast Windstrike
simc
windstrike - Cast Stormstrike
simc
stormstrike - Cast Lava Lash
simc
lava_lash - Cast Flame Shock
simc
flame_shock - Cast Frost Shock
simc
frost_shock
Read from ActionPriorityLists/assisted_combat/shaman_enhancement.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.