Subtlety Rogue
PvE guide, updated for Patch 12.1.5
DPS Rotation & Cooldowns
How to play Subtlety Rogue in each rotation style: the full rotation SimulationCraft sims play by default, and the game’s Assisted Highlight and One Button rotations beside it.
Rotation style comparison
How Subtlety Rogue’s DPS compares when using the game’s assisted modes instead of the full rotation, based on Single Target simulations.
- Full rotationBaseline
- Assisted Highlight-9.2%
- One Button-18.7%
The full rotation is the one SimulationCraft’s sims play by default. Its priority list is SimC’s own for the spec, read here for one build and one kind of fight.
Rotation
Beta15 abilities- 1StealthWhen ready
- 2Racial ability
- 3Goremaw's Bite
- 4Shadow Blades
- 5Shadow Dance
- 6Vanish
- 7Shadowmeld
- 8Eviscerate
- 9Secret Technique
- 10Coup de Grace
- 11Black Powder
- 12Shuriken Storm
- 13Shadowstrike
- 14Gloomblade
- 15Backstab
Every step also needs the ability off cooldown and affordable. Range checks are left out. A blank Targets cell means any number of targets.
Before the pull
Things to do before entering combat.
- 1Apply Poison
- 2Stealth
Cooldowns
When each cooldown was used across the sample fight, so you can see how often each comes back and which ones line up.
- Light's Potential2
- Vanish3
- Shadow Blades4
- On-use items4
- Goremaw's Bite8
Sample opener
One simulated fight from the start, played by this list on the profile in the Gear section with the guide’s Single target build, whichever build the list above is read for. Procs and timing change the order from fight to fight, so use it to get a feel for the start rather than as a script.
The full priority list
simc@ff0d07fEverything above is read from this SimulationCraft list, including the steps the page hides (the potion and on-use items) and the branches your build and fight leave out.
# This default action priority list is automatically created based on your character. # It is a attempt to provide you with a action list that is both simple and practicable, # while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps. # Feel free to edit, adapt and improve it to your own needs. # SimulationCraft is always looking for updates and improvements to the default action lists. # Executed before combat begins. Accepts non-harmful actions only. actions.precombat=apply_poison actions.precombat+=/snapshot_stats actions.precombat+=/variable,name=priority_rotation,value=priority_rotation # Check for on-use stat trinkets and which slot has the most powerful effect (ie longest cooldown). actions.precombat+=/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) actions.precombat+=/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) actions.precombat+=/stealth # Executed every time the actor is available. actions=variable,name=stealth,value=buff.shadow_dance.up|buff.stealth.up|buff.vanish.up actions+=/variable,name=targets,value=spell_targets.shuriken_storm actions+=/variable,name=racial_sync,value=(buff.shadow_blades.up&buff.shadow_dance.up)|fight_remains<20 actions+=/variable,name=dance_condition,value=!variable.stealth&energy>=30&buff.slice_and_dice.up&(combo_points<=2&talent.deathstalkers_mark|combo_points>=6) actions+=/variable,name=build_at_max_for_apex,value=talent.ancient_arts_3&!buff.ancient_arts.up&buff.shadow_techniques.stack>=5 actions+=/stealth actions+=/call_action_list,name=race actions+=/call_action_list,name=item actions+=/call_action_list,name=cds actions+=/shuriken_storm,if=variable.build_at_max_for_apex&variable.targets>=3&(buff.supercharge_1.up|cooldown.secret_technique.ready) actions+=/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 actions+=/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) actions+=/call_action_list,name=finish,if=combo_points>=cp_max_spend-!buff.darkest_night.up actions+=/call_action_list,name=build,if=variable.stealth|energy>60 actions+=/call_action_list,name=fill,if=!variable.stealth actions.build=shuriken_storm,if=buff.shadow_dance.up&buff.premeditation.up&(debuff.deathstalkers_mark.up|buff.darkest_night.up|!talent.deathstalkers_mark) actions.build+=/shadowstrike,if=!debuff.deathstalkers_mark.up&talent.deathstalkers_mark&!buff.darkest_night.up|variable.targets<=2-set_bonus.midnight_season_2_2pc|variable.priority_rotation actions.build+=/shuriken_storm,if=variable.targets>1 actions.build+=/gloomblade,if=variable.targets<2&!variable.stealth actions.build+=/backstab,if=variable.targets<2&!variable.stealth # Cooldowns actions.cds=goremaws_bite,if=buff.shadow_dance.up&!buff.ancient_arts.up|fight_remains<=14 actions.cds+=/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) # Deathstalker: Send Shadow Dance when Darkest Night is up on ST and when its not up on AoE. actions.cds+=/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) # Trickster: Send Shadow Dance whenever Secret Technique is ready actions.cds+=/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) # Trickster: Second Shadow Dance later during Shadow Blades for better alignment. actions.cds+=/shadow_dance,if=buff.shadow_blades.up&(talent.unseen_blade|variable.targets>=3) # Vanish whenever outside of CDs. actions.cds+=/vanish,if=!variable.stealth&energy>=50&!buff.subterfuge.up&combo_points<=2 actions.cds+=/shadowmeld,if=energy>=50&!variable.stealth&combo_points.deficit>=2 # This list usually contains Cooldowns with negligible impact that causes global cooldowns actions.fill=arcane_torrent,if=energy.deficit>=15+energy.regen actions.fill+=/arcane_pulse actions.fill+=/lights_judgment actions.fill+=/bag_of_tricks actions.finish=eviscerate,if=buff.darkest_night.up|!buff.slice_and_dice.up actions.finish+=/secret_technique,if=buff.shadow_dance.up # Cast Secret Technique on cooldown as trickster if Shadow Dance is not ready actions.finish+=/secret_technique,if=talent.unseen_blade&cooldown.secret_technique.duration<18&!cooldown.shadow_dance.ready actions.finish+=/coup_de_grace,if=cooldown.secret_technique.remains>=3|buff.shadow_dance.up # Pool some Shadow Technique Stacks as Trickster before entering Shadow Dance by not finishing right before. actions.finish+=/black_powder,if=talent.unseen_blade&variable.targets>=(3-talent.potent_powder)&(cooldown.secret_technique.remains>=3|buff.shadow_dance.up|buff.shadow_blades.up) # As Deathstalker just press BP actions.finish+=/black_powder,if=talent.deathstalkers_mark&variable.targets>=2 # Pool some Shadow Technique Stacks as Trickster before entering Shadow Dance by not finishing right before. actions.finish+=/eviscerate,if=cooldown.secret_technique.remains>=3&talent.unseen_blade|buff.shadow_dance.up|buff.shadow_blades.up|debuff.deathstalkers_mark.stack>1|debuff.deathstalkers_mark.stack=1&buff.shadow_techniques.stack>=5 # Trinket and Items actions.item=potion,if=buff.shadow_blades.up|fight_remains<30 actions.item+=/use_item,name=algethar_puzzle_box,if=cooldown.shadow_blades.ready&cooldown.secret_technique.remains<=2&combo_points>=6 actions.item+=/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) actions.item+=/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) # Race Cooldowns actions.race=blood_fury,if=variable.racial_sync actions.race+=/berserking,if=variable.racial_sync actions.race+=/fireblood,if=variable.racial_sync actions.race+=/ancestral_call,if=buff.shadow_blades.up actions.race+=/invoke_external_buff,name=power_infusion,if=variable.racial_sync
Is this rotation built for your talents?
The rotation follows your talent build. Sim your highest-DPS build on your own gear, for the mode and rotation style you play.