Cogspark Works · Rotation
Subtlety Rogue
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
- Race
- Item
- Cooldowns
- Finish (maybe)
- Build (maybe)
- Fill (maybe)
Before the pull, done once before the fight starts (6 steps)
Before the pull6 lines
- Cast Apply Poison
simc
apply_poison - Record your stats before the pull (sim bookkeeping)
simc
snapshot_stats - Set priority rotation to true when the following holds, otherwise falsethe sim's “priority rotation” setting is on
simc
variable,name=priority_rotation,value=priority_rotation - Set trinket sync slot to 1all of these:Check for on-use stat trinkets and which slot has the most powerful effect (ie longest cooldown).
- trinket 1 has an on-use effect that grants a stat buff
- any of these:
- trinket 2 has no on-use effect that grants a stat buff
- trinket 1's cooldown is at least trinket 2's cooldown
simc
variable,name=trinket_sync_slot,value=1,if=trinket.1.has_use_buff&(!trinket.2.has_use_buff|trinket.1.cooldown.duration>=trinket.2.cooldown.duration) - Set trinket sync slot to 2all of these:
- trinket 2 has an on-use effect that grants a stat buff
- any of these:
- trinket 1 has no on-use effect that grants a stat buff
- trinket 2's cooldown is more than trinket 1's cooldown
simc
variable,name=trinket_sync_slot,value=2,if=trinket.2.has_use_buff&(!trinket.1.has_use_buff|trinket.2.cooldown.duration>trinket.1.cooldown.duration) - Cast Stealth
simc
stealth
The main loop15 lines
- Set stealth to true when the following holds, otherwise falseany of these:
- Shadow Dance is active
- Stealth is active
- Vanish is active
simc
variable,name=stealth,value=buff.shadow_dance.up|buff.stealth.up|buff.vanish.up - Set targets to the number of enemies Shuriken Storm would hit
simc
variable,name=targets,value=spell_targets.shuriken_storm - Set racial sync to true when the following holds, otherwise falseany of these:
- all of these:
- Shadow Blades is active
- Shadow Dance is active
- the fight ends within 20 s
simc
variable,name=racial_sync,value=(buff.shadow_blades.up&buff.shadow_dance.up)|fight_remains<20 - all of these:
- Set dance condition to true when the following holds, otherwise falseall of these:
- stealth is false
- you have 30 or more Energy
- Slice and Dice is active
- any of these:
- all of these:
- you have 2 or fewer Combo Points
- you have Deathstalker's Mark talented
- you have 6 or more Combo Points
- all of these:
simc
variable,name=dance_condition,value=!variable.stealth&energy>=30&buff.slice_and_dice.up&(combo_points<=2&talent.deathstalkers_mark|combo_points>=6) - Set build at max for apex to true when the following holds, otherwise falseall of these:
- you have Ancient Arts talented
- Ancient Arts isn't active
- Shadow Techniques has 5 or more stacks
simc
variable,name=build_at_max_for_apex,value=talent.ancient_arts_3&!buff.ancient_arts.up&buff.shadow_techniques.stack>=5 - Cast Stealth
simc
stealth go through Race, then carry on below if nothing there fits
simc
call_action_list,name=raceRace5 lines
- Cast Blood Fury if racial sync is trueRace Cooldowns
simc
blood_fury,if=variable.racial_sync - Cast Berserking if racial sync is true
simc
berserking,if=variable.racial_sync - Cast Fireblood if racial sync is true
simc
fireblood,if=variable.racial_sync - Cast Ancestral Call if Shadow Blades is active
simc
ancestral_call,if=buff.shadow_blades.up - Get Power Infusion from an ally if racial sync is true
simc
invoke_external_buff,name=power_infusion,if=variable.racial_sync
go through Item, then carry on below if nothing there fits
simc
call_action_list,name=itemItem4 lines
- Drink a potion if Shadow Blades is active or the fight ends within 30 sTrinket and Items
simc
potion,if=buff.shadow_blades.up|fight_remains<30 - Use Algethar Puzzle Box if Shadow Blades is off cooldown and Secret Technique comes off cooldown within 2 s and you have 6 or more Combo Points
simc
use_item,name=algethar_puzzle_box,if=cooldown.shadow_blades.ready&cooldown.secret_technique.remains<=2&combo_points>=6 - Use your trinkets if (trinket sync slot is 1 and (Shadow Blades is active or the fight ends within 20 s)) or (trinket sync slot is 2 and trinket 2 is on cooldown and Shadow Blades has more than 20 s of cooldown left) or trinket sync slot is false
simc
use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(buff.shadow_blades.up|fight_remains<=20)|(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot) - Use your trinkets if (trinket sync slot is 2 and (Shadow Blades is active or the fight ends within 20 s)) or (trinket sync slot is 1 and trinket 1 is on cooldown and Shadow Blades has more than 20 s of cooldown left) or trinket sync slot is false
simc
use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(buff.shadow_blades.up|fight_remains<=20)|(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot)
go through Cooldowns, then carry on below if nothing there fits
simc
call_action_list,name=cdsCooldowns7 lines
- Cast Goremaw's Bite if (Shadow Dance is active and Ancient Arts isn't active) or the fight ends within 14 sCooldowns
simc
goremaws_bite,if=buff.shadow_dance.up&!buff.ancient_arts.up|fight_remains<=14 - Cast Shadow Blades if (dance condition is true and the charges (counting partial ones) of Shadow Dance is at least 1 plus (0.8 if you have Deathstalker's Mark talented, else 0) and (Ancient Arts is active or you don't have Unseen Blade talented)) or the fight ends within 20 s or
target.time_to_die.remainsis at most 20simc
shadow_blades,if=variable.dance_condition&cooldown.shadow_dance.charges_fractional>=1+0.8*talent.deathstalkers_mark&(buff.ancient_arts.up|!talent.unseen_blade)|(fight_remains<=20|target.time_to_die.remains<=20) - Cast Shadow Dance if (dance condition is true and you have Deathstalker's Mark talented and ((targets is at most 3 and (Darkest Night is active or (Secret Technique is off cooldown and Deathstalker's Mark has 1 or fewer stacks on the target))) or (targets is more than 3 and Deathstalker's Mark has 2 or more stacks on the target)) and Shadow Blades has at least 35 s minus Secret Technique's cooldown of cooldown left) or the fight ends within 10 s or the time until the target dies minus the time left on Shadow Dance is at most 9 sDeathstalker: Send Shadow Dance when Darkest Night is up on ST and when its not up on AoE.
simc
shadow_dance,if=variable.dance_condition&talent.deathstalkers_mark&(variable.targets<=3&(buff.darkest_night.up|cooldown.secret_technique.ready&debuff.deathstalkers_mark.stack<=1)|variable.targets>3&debuff.deathstalkers_mark.stack>=2)&(cooldown.shadow_blades.remains>=35-cooldown.secret_technique.duration)|(fight_remains<=10|target.time_to_die-remains<=9) - Cast Shadow Dance if (dance condition is true and you have Unseen Blade talented and Secret Technique is off cooldown and Shadow Blades has at least 25 s minus Secret Technique's cooldown of cooldown left) or the fight ends within 10 s or the time until the target dies minus the time left on Shadow Dance is at most 9 sTrickster: Send Shadow Dance whenever Secret Technique is ready
simc
shadow_dance,if=variable.dance_condition&talent.unseen_blade&(cooldown.secret_technique.ready&(cooldown.shadow_blades.remains>=25-cooldown.secret_technique.duration))|(fight_remains<=10|target.time_to_die-remains<=9) - Cast Shadow Dance if Shadow Blades is active and (you have Unseen Blade talented or targets is at least 3)Trickster: Second Shadow Dance later during Shadow Blades for better alignment.
simc
shadow_dance,if=buff.shadow_blades.up&(talent.unseen_blade|variable.targets>=3) - Cast Vanish if stealth is false and you have 50 or more Energy and Subterfuge isn't active and you have 2 or fewer Combo PointsVanish whenever outside of CDs.
simc
vanish,if=!variable.stealth&energy>=50&!buff.subterfuge.up&combo_points<=2 - Cast Shadowmeld if you have 50 or more Energy and stealth is false and you are 2 or more Combo Points below maximum
simc
shadowmeld,if=energy>=50&!variable.stealth&combo_points.deficit>=2
- Cast Shuriken Storm if build at max for apex is true and targets is at least 3 and (Supercharge 1 is active or Secret Technique is off cooldown)
simc
shuriken_storm,if=variable.build_at_max_for_apex&variable.targets>=3&(buff.supercharge_1.up|cooldown.secret_technique.ready) - Cast Gloomblade if build at max for apex is true and targets is at most 2 and (Darkest Night is active or (you have Unseen Blade talented and Supercharge 1 is active) or Secret Technique is off cooldown) and Lingering Shadow has 35 or more stacks
simc
gloomblade,if=variable.build_at_max_for_apex&variable.targets<=2&(buff.darkest_night.up|(talent.unseen_blade&buff.supercharge_1.up)|cooldown.secret_technique.ready)&buff.lingering_shadow.stack>=35 - Cast Shadowstrike if build at max for apex is true and targets is at most 2 and (Darkest Night is active or (you have Unseen Blade talented and Supercharge 1 is active) or Secret Technique is off cooldown)
simc
shadowstrike,if=variable.build_at_max_for_apex&variable.targets<=2&(buff.darkest_night.up|(talent.unseen_blade&buff.supercharge_1.up)|cooldown.secret_technique.ready) Is it true that your Combo Points is at least the most Combo Points a finisher can spend minus (1 if Darkest Night isn't active, else 0)?Not set
If so, go through Finish, then carry on below if nothing there fits
simc
call_action_list,name=finish,if=combo_points>=cp_max_spend-!buff.darkest_night.upIs it true that stealth is true or you have more than 60 Energy?Not set
If so, go through Build, then carry on below if nothing there fits
simc
call_action_list,name=build,if=variable.stealth|energy>60Is it true that stealth is false?Not set
If so, go through Fill, then carry on below if nothing there fits
simc
call_action_list,name=fill,if=!variable.stealth
Read from ActionPriorityLists/default/rogue_subtlety.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 Apply Poison
simc
apply_poison
The main loop2 lines
go through Cooldowns, then carry on below if nothing there fits
simc
call_action_list,name=cooldownsCooldowns7 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 Shadow Blades if Shadow Dance is active
simc
shadow_blades,if=buff.shadow_dance.up
go through Assisted Combat, then carry on below if nothing there fits
simc
call_action_list,name=assisted_combatAssisted Combat22 lines
- Cast Shadow BladesThis is the default action priority list from the game's Assisted Combat system. This is for Blizzard automation and is not included in the game's Assisted Combat system.
simc
shadow_blades - Cast Goremaw's Bite if you have 2 or fewer Combo Points (as a finisher would count them)
simc
goremaws_bite,if=effective_combo_points<=2 - Cast Shadow Dance if there are 1 or more enemies and Backstab is off cooldown
simc
shadow_dance,if=active_enemies>=1&cooldown.backstab.ready - Cast Eviscerate if you have 5 or more Combo Points (as a finisher would count them) and Darkest Night is active
simc
eviscerate,if=effective_combo_points>=5&buff.darkest_night.up - Cast Coup de Grace if you have 5 or more Combo Points (as a finisher would count them) and Darkest Night is active
simc
coup_de_grace,if=effective_combo_points>=5&buff.darkest_night.up - Cast Shuriken Storm if there are 3 or more enemies and you have Deeper Stratagem talented and you have Secret Stratagem talented and you have 5 or fewer Combo Points (as a finisher would count them)
simc
shuriken_storm,if=active_enemies>=3&talent.deeper_stratagem&talent.secret_stratagem&effective_combo_points<=5 - Cast Shadowstrike if there are 3 or fewer enemies and you have Deeper Stratagem talented and you have Secret Stratagem talented and you have 5 or fewer Combo Points (as a finisher would count them)
simc
shadowstrike,if=active_enemies<=3&talent.deeper_stratagem&talent.secret_stratagem&effective_combo_points<=5 - Cast Backstab if Shadow Dance isn't active and there are 2 or fewer enemies and you have Deeper Stratagem talented and you have Secret Stratagem talented and you have 5 or fewer Combo Points (as a finisher would count them)
simc
backstab,if=buff.shadow_dance.down&active_enemies<=2&talent.deeper_stratagem&talent.secret_stratagem&effective_combo_points<=5 - Cast Gloomblade if Shadow Dance isn't active and there are 2 or fewer enemies and you have Deeper Stratagem talented and you have Secret Stratagem talented and you have 5 or fewer Combo Points (as a finisher would count them)
simc
gloomblade,if=buff.shadow_dance.down&active_enemies<=2&talent.deeper_stratagem&talent.secret_stratagem&effective_combo_points<=5 - Cast Secret Technique if Shadow Dance is active and you have 5 or more Combo Points (as a finisher would count them) and Darkest Night isn't active
simc
secret_technique,if=buff.shadow_dance.up&effective_combo_points>=5&buff.darkest_night.down - Cast Eviscerate if you have 5 or more Combo Points (as a finisher would count them) and Coup de Grace can be used now
simc
eviscerate,if=effective_combo_points>=5&action.coup_de_grace.ready - Cast Coup de Grace if you have 5 or more Combo Points (as a finisher would count them) and Coup de Grace can be used now
simc
coup_de_grace,if=effective_combo_points>=5&action.coup_de_grace.ready - Cast Black Powder if there are 3 or more enemies and you have 5 or more Combo Points (as a finisher would count them) and Darkest Night isn't active
simc
black_powder,if=active_enemies>=3&effective_combo_points>=5&buff.darkest_night.down - Cast Eviscerate if you have 5 or more Combo Points (as a finisher would count them) and Darkest Night isn't active
simc
eviscerate,if=effective_combo_points>=5&buff.darkest_night.down - Cast Coup de Grace if you have 5 or more Combo Points (as a finisher would count them) and Darkest Night isn't active
simc
coup_de_grace,if=effective_combo_points>=5&buff.darkest_night.down - Cast Shuriken Storm if there are 3 or more enemies
simc
shuriken_storm,if=active_enemies>=3 - Cast Shadowstrike
simc
shadowstrike - Cast Backstab if Shadow Dance isn't active
simc
backstab,if=buff.shadow_dance.down - Cast Gloomblade if Shadow Dance isn't active
simc
gloomblade,if=buff.shadow_dance.down - Cast Shuriken Toss if Stealth isn't active and Vanish isn't active and your distance to the target is more than 15 and Stealth isn't active
simc
shuriken_toss,if=buff.stealth.down&buff.vanish.down&target.distance>15&buff.stealth.down - Cast Backstab
simc
backstab - Cast Gloomblade
simc
gloomblade
Read from ActionPriorityLists/assisted_combat/rogue_subtlety.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.