Cogspark

Cogspark Works · Rotation

Marksmanship Hunter

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.

Your situation
Enemies in range
Your talents (click: talented, not talented, not set)
Checked
  1. The main loop
  2. Cooldowns
  3. Trinkets
  4. Draoe (maybe)
  5. Sentaoe (maybe)
  6. Drst (maybe)
  7. Sentst (maybe)
Before the pull, done once before the fight starts (4 steps)

Before the pull4 lines

  1. Record your stats before the pull (sim bookkeeping)
    simcsnapshot_stats
  2. Cast Summon Pet if you have Unbreakable Bond talented
    simcsummon_pet,if=talent.unbreakable_bond
  3. Use Algethar Puzzle Box
    simcuse_item,name=algethar_puzzle_box
  4. Cast Aimed Shot
    simcaimed_shot

The main loop10 lines

  1. Set trueshot ready to true when the following holds, otherwise false
    any of these:
    • you don't have Bullseye talented
    • all of these:
      • any of these:
        • more than Trueshot's cooldown plus 10 s of the fight remain
        • the stacks of Bullseye is the maximum stacks of Bullseye
      • any of these:
        • Explosive Shot has at least 15 s of cooldown left
        • Explosive Shot is off cooldown
    • the fight ends within 25 s
    • less than 10 s into the fight
    simcvariable,name=trueshot_ready,value=!talent.bullseye|(fight_remains>cooldown.trueshot.duration+10|buff.bullseye.stack=buff.bullseye.max_stack)&(cooldown.explosive_shot.remains>=15|cooldown.explosive_shot.ready)|fight_remains<25|time<10
  2. Set trueshot ready to whether the time left in the current pull is more than 20 s or the next pull starts in more than 45 s (or never) or you have Calling the Shots talented when the following holds, otherwise to trueshot ready
    the sim's fight style is DungeonRoute
    For DungeonRoute, hold Trueshot at the end of pulls.
    simcvariable,name=trueshot_ready,op=setif,condition=fight_style.dungeonroute,value_else=variable.trueshot_ready,value=raid_event.pull.remains>20|raid_event.pull.in>45|talent.calling_the_shots
  3. Switch your target if the sim's fight style is DungeonRoutetarget on the enemy with the highest target's healthAt most once every 5 s
    simcretarget,target_if=max:target.health,line_cd=5,if=fight_style.dungeonroute
  4. Cast Auto Shot
    simcauto_shot
  5. go through Cooldowns, then carry on below if nothing there fits

    simccall_action_list,name=cds

    Cooldowns8 lines

    1. Get Power Infusion from an ally if Trueshot has more than 12 s left or the fight ends within 13 s
      simcinvoke_external_buff,name=power_infusion,if=buff.trueshot.remains>12|fight_remains<13
    2. Cast Berserking if Trueshot is active or the fight ends within 13 s
      simcberserking,if=buff.trueshot.up|fight_remains<13
    3. Cast Blood Fury if Trueshot is active or Trueshot has more than 30 s of cooldown left or the fight ends within 16 s
      simcblood_fury,if=buff.trueshot.up|cooldown.trueshot.remains>30|fight_remains<16
    4. Cast Ancestral Call if Trueshot is active or Trueshot has more than 30 s of cooldown left or the fight ends within 16 s
      simcancestral_call,if=buff.trueshot.up|cooldown.trueshot.remains>30|fight_remains<16
    5. Cast Fireblood if Trueshot is active or Trueshot has more than 30 s of cooldown left or the fight ends within 9 s
      simcfireblood,if=buff.trueshot.up|cooldown.trueshot.remains>30|fight_remains<9
    6. Cast Light's Judgment if Trueshot isn't active
      simclights_judgment,if=buff.trueshot.down
    7. Drink a potion if (Trueshot is active and (Bloodlust is active or the fight ends within 120 s minus (30 if you have Calling the Shots talented, else 0))) or the fight ends within 31 s
      simcpotion,if=buff.trueshot.up&(buff.bloodlust.up|fight_remains<120-30*talent.calling_the_shots)|fight_remains<31
    8. Drink a potion if (your potion is Potion of Recklessness and Bullseye is active and Trueshot comes off cooldown within 7 s and (the sim's fight style is DungeonRoute or Explosive Shot has at least 25 s of cooldown left or Explosive Shot comes off cooldown within 10 s)) or the fight ends within 31 sPotion of Recklessness (Crit) has little to no value for execute Trueshots as we are crit hard-capped, so use Luster instead. Luster 7s before Trueshot allows for Font to be used in the last 3s of Luster (since the on-use trinket popped with Trueshot puts Font on a 20s CD).
      simcpotion,name=liquid_luster_2,if=potion.potion_of_recklessness&buff.bullseye.up&cooldown.trueshot.remains<7&(fight_style.dungeonroute|cooldown.explosive_shot.remains>=25|cooldown.explosive_shot.remains<10)|fight_remains<31
  6. go through Trinkets, then carry on below if nothing there fits

    simccall_action_list,name=trinkets

    Trinkets4 lines

    1. Use your trinkets if this trinket has an on-use effect that grants a stat buff and the remainder of this trinket's cooldown divided by Trueshot's cooldown is 0 and (Trueshot has more than 14 s left or (this trinket is Algethar Puzzle Box and trueshot ready is true and Trueshot comes off cooldown within 5 s))A buff trinket that lines up cleanly with Trueshot; use with Trueshot.
      simcuse_items,check_existing=0,slots=trinket1:trinket2,if=this_trinket.has_use_buff&this_trinket.cooldown.duration%%cooldown.trueshot.duration=0&(buff.trueshot.remains>14|this_trinket.is.algethar_puzzle_box&variable.trueshot_ready&cooldown.trueshot.remains<5)
    2. Use your trinkets if this trinket has an on-use effect that grants a stat buff and the other trinket has an on-use effect that grants a stat buff and the remainder of the other trinket's cooldown divided by Trueshot's cooldown is 0 and ((Trueshot has more than 14 s left and the other trinket is on cooldown) or (Trueshot has more than 20 s of cooldown left and the other trinket comes off cooldown within the cooldown left on Trueshot))A buff trinket paired with a trinket that matches the above line; use with Trueshot if the other trinket is not ready or use without Trueshot if the other trinket will come up for the next Trueshot.
      simcuse_items,check_existing=0,slots=trinket1:trinket2,if=this_trinket.has_use_buff&other_trinket.has_use_buff&other_trinket.cooldown.duration%%cooldown.trueshot.duration=0&(buff.trueshot.remains>14&other_trinket.cooldown.remains|cooldown.trueshot.remains>20&other_trinket.cooldown.remains<=cooldown.trueshot.remains)
    3. Use your trinkets if this trinket has an on-use effect that grants a stat buff and (Trueshot has more than 14 s left or (Trueshot is active and the fight ends within the cooldown left on Trueshot plus 15 s) or the fight ends within 21 s)A buff trinket, use with Trueshot or in the last ~20 seconds of the fight.
      simcuse_items,check_existing=0,slots=trinket1:trinket2,if=this_trinket.has_use_buff&(buff.trueshot.remains>14|buff.trueshot.up&fight_remains<cooldown.trueshot.remains+15|fight_remains<21)
    4. Use your trinkets if this trinket has an on-use effect that deals damage and Trueshot has more than 20 s of cooldown leftA damage trinket; use when Trueshot has at least 20 seconds remaining on its cooldown.
      simcuse_items,check_existing=0,slots=trinket1:trinket2,if=this_trinket.has_use_damage&cooldown.trueshot.remains>20
  7. Is it true that there are more than 2 enemies and you have Trick Shots talented and you use the Dark Ranger hero talents?Not set

    If so, go through Draoe, then carry on below if nothing there fits

    simccall_action_list,name=draoe,if=active_enemies>2&talent.trick_shots&hero_tree.dark_ranger
  8. Is it true that there are more than 2 enemies and you have Trick Shots talented and you use the Sentinel hero talents?Not set

    If so, go through Sentaoe, then carry on below if nothing there fits

    simccall_action_list,name=sentaoe,if=active_enemies>2&talent.trick_shots&hero_tree.sentinel
  9. Is it true that you use the Dark Ranger hero talents?Not set

    If so, go through Drst, then carry on below if nothing there fits

    simccall_action_list,name=drst,if=hero_tree.dark_ranger
  10. Is it true that you use the Sentinel hero talents?Not set

    If so, go through Sentst, then carry on below if nothing there fits

    simccall_action_list,name=sentst,if=hero_tree.sentinel

Read from ActionPriorityLists/default/hunter_marksmanship.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.