Cogspark

Cogspark Works · Rotation

Arcane Mage

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
Your talents (click: talented, not talented, not set)
Checked
  1. The main loop
  2. Cooldowns
  3. Spellslinger (maybe)
  4. Sunfury (maybe)
Before the pull, done once before the fight starts (13 steps)

Before the pull13 lines

  1. Cast Arcane Intellect
    simcarcane_intellect
  2. Set aoe count to 2 plus (3 if you have Spellfire Spheres talented, else 0)
    simcvariable,name=aoe_count,op=set,value=2+(3*talent.spellfire_spheres)
  3. Set 20ssteroid trinket equipped to true when the following holds, otherwise false
    any of these:
    • you have Signet of the Priory equipped
    • you have Incorporeal Essencegorger equipped
    • you have Sealed Chaos Urn equipped
    • you have Hex Lords Dooming Idol equipped
    simcvariable,name=20ssteroid_trinket_equipped,op=set,value=equipped.signet_of_the_priory|equipped.incorporeal_essencegorger|equipped.sealed_chaos_urn|equipped.hex_lords_dooming_idol
  4. Set 15ssteroid trinket equipped to true when the following holds, otherwise false
    any of these:
    • you have Lily of the Eternal Weave equipped
    • you have Sunblood Amethyst equipped
    • you have Astral Gladiators Badge of Ferocity equipped
    • you have Arazs Ritual Forge equipped
    • you have Freightrunners Flask equipped
    • you have Emberwing Feather equipped
    • you have Vaelgors Final Stare equipped
    • you have Galactic Gladiators Badge of Ferocity equipped
    • you have Vile Vial of Volatile Venom equipped
    • you have Venomous Gladiators Badge of Ferocity equipped
    simcvariable,name=15ssteroid_trinket_equipped,op=set,value=equipped.lily_of_the_eternal_weave|equipped.sunblood_amethyst|equipped.astral_gladiators_badge_of_ferocity|equipped.arazs_ritual_forge|equipped.freightrunners_flask|equipped.emberwing_feather|equipped.vaelgors_final_stare|equipped.galactic_gladiators_badge_of_ferocity|equipped.vile_vial_of_volatile_venom|equipped.venomous_gladiators_badge_of_ferocity
  5. Set 12ssteroid trinket equipped to true when the following holds, otherwise false
    any of these:
    • you have Nevermelting Ice Crystal equipped
    • you have Ever Collapsing Void Fissure equipped
    simcvariable,name=12ssteroid_trinket_equipped,op=set,value=equipped.nevermelting_ice_crystal|equipped.ever_collapsing_void_fissure
  6. Set steroid trinket equipped to true when the following holds, otherwise false
    any of these:
    • you have Lily of the Eternal Weave equipped
    • you have Sunblood Amethyst equipped
    • you have Astral Gladiators Badge of Ferocity equipped
    • you have Arazs Ritual Forge equipped
    • you have Freightrunners Flask equipped
    • you have Emberwing Feather equipped
    • you have Vaelgors Final Stare equipped
    • you have Galactic Gladiators Badge of Ferocity equipped
    • you have Nevermelting Ice Crystal equipped
    • you have Ever Collapsing Void Fissure equipped
    • you have Signet of the Priory equipped
    • you have Incorporeal Essencegorger equipped
    • you have Sealed Chaos Urn equipped
    • you have Venomous Gladiators Badge of Ferocity equipped
    • you have Vile Vial of Volatile Venom equipped
    • you have Stormbound Emblem of Dazar equipped
    • you have Hex Lords Dooming Idol equipped
    simcvariable,name=steroid_trinket_equipped,op=set,value=equipped.lily_of_the_eternal_weave|equipped.sunblood_amethyst|equipped.astral_gladiators_badge_of_ferocity|equipped.arazs_ritual_forge|equipped.freightrunners_flask|equipped.emberwing_feather|equipped.vaelgors_final_stare|equipped.galactic_gladiators_badge_of_ferocity|equipped.nevermelting_ice_crystal|equipped.ever_collapsing_void_fissure|equipped.signet_of_the_priory|equipped.incorporeal_essencegorger|equipped.sealed_chaos_urn|equipped.venomous_gladiators_badge_of_ferocity|equipped.vile_vial_of_volatile_venom|equipped.stormbound_emblem_of_dazar|equipped.hex_lords_dooming_idol
  7. Set nonsteroid trinket equipped to true when the following holds, otherwise false
    any of these:
    • you have Mereldars Toll equipped
    • you have Perfidious Projector equipped
    • you have Chaotic Nethergate equipped
    • you have Wraps of Cosmic Madness equipped
    • you have Astalors Anguish Agitator equipped
    • you have Sethraliss Defiled Relic equipped
    • you have Vexhuls Everflowing Gland equipped
    • you have Font of Venomous Rage equipped
    • you have Ophidian Bone Whistle equipped
    • you have Spiritrending Poison equipped
    simcvariable,name=nonsteroid_trinket_equipped,op=set,value=equipped.mereldars_toll|equipped.perfidious_projector|equipped.chaotic_nethergate|equipped.wraps_of_cosmic_madness|equipped.astalors_anguish_agitator|equipped.sethraliss_defiled_relic|equipped.vexhuls_everflowing_gland|equipped.font_of_venomous_rage|equipped.ophidian_bone_whistle|equipped.spiritrending_poison
  8. Set hex double on use to true when the following holds, otherwise false
    all of these:
    • any of these:
      • you have Lily of the Eternal Weave equipped
      • you have Sunblood Amethyst equipped
      • you have Astral Gladiators Badge of Ferocity equipped
      • you have Arazs Ritual Forge equipped
      • you have Freightrunners Flask equipped
      • you have Emberwing Feather equipped
      • you have Vaelgors Final Stare equipped
      • you have Galactic Gladiators Badge of Ferocity equipped
      • you have Nevermelting Ice Crystal equipped
      • you have Ever Collapsing Void Fissure equipped
      • you have Signet of the Priory equipped
      • you have Incorporeal Essencegorger equipped
      • you have Sealed Chaos Urn equipped
      • you have Venomous Gladiators Badge of Ferocity equipped
      • you have Vile Vial of Volatile Venom equipped
      • you have Stormbound Emblem of Dazar equipped
    • you have Hex Lords Dooming Idol equipped
    simcvariable,name=hex_double_on_use,op=set,value=(equipped.lily_of_the_eternal_weave|equipped.sunblood_amethyst|equipped.astral_gladiators_badge_of_ferocity|equipped.arazs_ritual_forge|equipped.freightrunners_flask|equipped.emberwing_feather|equipped.vaelgors_final_stare|equipped.galactic_gladiators_badge_of_ferocity|equipped.nevermelting_ice_crystal|equipped.ever_collapsing_void_fissure|equipped.signet_of_the_priory|equipped.incorporeal_essencegorger|equipped.sealed_chaos_urn|equipped.venomous_gladiators_badge_of_ferocity|equipped.vile_vial_of_volatile_venom|equipped.stormbound_emblem_of_dazar)&equipped.hex_lords_dooming_idol
  9. Record your stats before the pull (sim bookkeeping)
    simcsnapshot_stats
  10. Cast Mirror Image
    simcmirror_image
  11. Drink a potion if you have Spellfire Spheres talented
    simcpotion,if=talent.spellfire_spheres
  12. Cast Arcane Surge if you have Spellfire Spheres talented
    simcarcane_surge,if=talent.spellfire_spheres
  13. Cast Arcane Blast
    simcarcane_blast

The main loop17 lines

  1. Cast Counterspell
    simccounterspell
  2. Get Power Infusion from an ally if (Arcane Surge is active and Touch of the Magi is active on the target) or the fight ends within 16 s
    simcinvoke_external_buff,name=power_infusion,if=(buff.arcane_surge.up&debuff.touch_of_the_magi.up)|(fight_remains<16)
  3. Drink a potion if Arcane Surge is off cooldown or the fight ends within 35 s
    simcpotion,if=cooldown.arcane_surge.ready|fight_remains<35
  4. Cast Berserking if (Arcane Surge is active and Touch of the Magi is active on the target) or the fight ends within 13 s
    simcberserking,if=(buff.arcane_surge.up&debuff.touch_of_the_magi.up)|(fight_remains<13)
  5. Cast Blood Fury if (Arcane Surge is active and Touch of the Magi is active on the target) or the fight ends within 9 s
    simcblood_fury,if=(buff.arcane_surge.up&debuff.touch_of_the_magi.up)|(fight_remains<9)
  6. Cast Fireblood if (Arcane Surge is active and Touch of the Magi is active on the target) or the fight ends within 16 s
    simcfireblood,if=(buff.arcane_surge.up&debuff.touch_of_the_magi.up)|(fight_remains<16)
  7. Cast Ancestral Call if (Arcane Surge is active and Touch of the Magi is active on the target) or the fight ends within 16 s
    simcancestral_call,if=(buff.arcane_surge.up&debuff.touch_of_the_magi.up)|(fight_remains<16)
  8. Use Font of Venomous Rage if (((Arcane Surge isn't active and Arcane Soul isn't active and Touch of the Magi isn't active on the target) or (your potion isn't Liquid Luster and less than 5 s into the fight)) and (more than 25 s into the fight or steroid trinket equipped is false or you have Hex Lords Dooming Idol equipped)) or the fight ends within 30 s
    simcuse_item,name=font_of_venomous_rage,if=((buff.arcane_surge.down&buff.arcane_soul.down&debuff.touch_of_the_magi.down)|(!potion.liquid_luster&time<5))&(time>25|!variable.steroid_trinket_equipped|equipped.hex_lords_dooming_idol)|fight_remains<30
  9. Use Hex Lords Dooming Idol if (the stacks of Hex Lord's Doom is more than 24 minus (15 if you have Vile Vial of Volatile Venom equipped, else 0) and (Arcane Surge is off cooldown or Arcane Surge is active) and hex double on use is true) or ((Arcane Surge is off cooldown or Arcane Surge is active) and hex double on use is false)
    simcuse_item,name=hex_lords_dooming_idol,if=(buff.hex_lords_doom.stack>(24-(15*equipped.vile_vial_of_volatile_venom))&(cooldown.arcane_surge.ready|buff.arcane_surge.up)&variable.hex_double_on_use)|((cooldown.arcane_surge.ready|buff.arcane_surge.up)&!variable.hex_double_on_use)
  10. Use Stormbound Emblem of Dazar if Arcane Surge comes off cooldown within 2 s or Arcane Surge is off cooldown or the fight ends within 22 s
    simcuse_item,name=stormbound_emblem_of_dazar,if=(cooldown.arcane_surge.remains<2)|cooldown.arcane_surge.ready|(fight_remains<22)
  11. Use your trinkets if (Arcane Surge is active and ((12ssteroid trinket equipped is true and Touch of the Magi is active on the target) or 15ssteroid trinket equipped is true)) or (Arcane Surge is off cooldown and 20ssteroid trinket equipped is true) or (the fight ends within 13 s and 12ssteroid trinket equipped is true) or (the fight ends within 16 s and 15ssteroid trinket equipped is true) or (the fight ends within 21 s and 20ssteroid trinket equipped is true) or (nonsteroid trinket equipped is true and ((Arcane Surge isn't active and Arcane Surge has more than 20 s of cooldown left) or steroid trinket equipped is false)) or the fight ends within (20 s times steroid trinket equipped) plus (20 s times nonsteroid trinket equipped) plus (10 if you have Hex Lords Dooming Idol equipped, else 0)
    simcuse_items,if=((buff.arcane_surge.up&((variable.12ssteroid_trinket_equipped&debuff.touch_of_the_magi.up)|variable.15ssteroid_trinket_equipped))|(cooldown.arcane_surge.ready&variable.20ssteroid_trinket_equipped))|(fight_remains<13&variable.12ssteroid_trinket_equipped)|(fight_remains<16&variable.15ssteroid_trinket_equipped)|(fight_remains<21&variable.20ssteroid_trinket_equipped)|(variable.nonsteroid_trinket_equipped&((buff.arcane_surge.down&cooldown.arcane_surge.remains>20)|!variable.steroid_trinket_equipped))|fight_remains<((20*variable.steroid_trinket_equipped)+(20*variable.nonsteroid_trinket_equipped)+(10*equipped.hex_lords_dooming_idol))
  12. Use Hex Lords Dooming Idol if the fight ends within 40 s plus (3 s times nonsteroid trinket equipped) plus (20 s times hex double on use) minus (15 if you have Vile Vial of Volatile Venom equipped, else 0)
    simcuse_item,name=hex_lords_dooming_idol,if=(fight_remains<(40+(3*variable.nonsteroid_trinket_equipped)+(20*variable.hex_double_on_use)-(15*equipped.vile_vial_of_volatile_venom)))
  13. Cast Arcane Barrage if the fight ends within 2 global cooldowns and Arcane Charge has exactly 4 stacks
    simcarcane_barrage,if=fight_remains<gcd.max*2&buff.arcane_charge.stack=4
  14. go through Cooldowns, then carry on below if nothing there fits

    simccall_action_list,name=cooldowns

    Cooldowns6 lines

    1. Cast Arcane Orb if you have Splintering Sorcery talentedAt most once every 999 s
      simcarcane_orb,if=talent.splintering_sorcery,line_cd=999
    2. Cast Touch of the Magi if (your last spell on the global cooldown was Prismatic Bolt or your last spell on the global cooldown was Arcane Barrage or (Arcane Surge is active and Arcane Surge has less than 12 s left, or isn't active)) and (Arcane Surge is active or Arcane Surge has more than 30 s of cooldown left)Used without waiting for the global cooldown
      simctouch_of_the_magi,use_off_gcd=1,if=(prev_gcd.1.prismatic_bolt|prev_gcd.1.arcane_barrage|(buff.arcane_surge.up&buff.arcane_surge.remains<12))&(buff.arcane_surge.up|cooldown.arcane_surge.remains>30)
    3. Cast Arcane Surge if Lustrous Gleam has 2 or more stacks or Lustrous Gleam isn't active
      simcarcane_surge,if=buff.lustrous_gleam.stack>=2|buff.lustrous_gleam.down
    4. Stop what you are casting if you are channeling Evocation and your Mana is at or above 95%
      simccancel_action,if=action.evocation.channeling&mana.pct>=95
    5. Cast Evocation if your Mana is below 10% and Arcane Surge isn't active and Touch of the Magi isn't active on the target and Arcane Surge has more than 10 s of cooldown left
      simcevocation,if=mana.pct<10&buff.arcane_surge.down&debuff.touch_of_the_magi.down&cooldown.arcane_surge.remains>10
    6. Cast Presence of Mind if Arcane Charge has fewer than 1 stack and Prismatic Bolt isn't active and Arcane Orb is on cooldown and Arcane Pulse is on cooldown and Touch of the Magi is on cooldown and (Clearcasting isn't active, or only just appeared or you don't have High Voltage talented) and your last spell on the global cooldown was Arcane BarrageUsed without waiting for the global cooldown
      simcpresence_of_mind,use_off_gcd=1,if=buff.arcane_charge.stack<1&!buff.prismatic_bolt.up&!cooldown.arcane_orb.ready&!cooldown.arcane_pulse.ready&!cooldown.touch_of_the_magi.ready&(buff.clearcasting.react=0|!talent.high_voltage)&prev_gcd.1.arcane_barrage
  15. Is it true that you have Splintering Sorcery talented?Not set

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

    simccall_action_list,name=spellslinger,if=talent.splintering_sorcery
  16. Is it true that you don't have Splintering Sorcery talented?Not set

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

    simccall_action_list,name=sunfury,if=!talent.splintering_sorcery
  17. Cast Arcane Barrage if you have Spellfire Spheres talented and Arcane Surge isn't active
    simcarcane_barrage,if=talent.spellfire_spheres&!buff.arcane_surge.up

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