Cogspark

Cogspark Works · Rotation

Balance Druid

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
  • Starfall talents: not set · when (there are fewer than 3 enemies and you have Starweaver talented and you don't have Aetherial Kindling talented and you don't have Meteorites talented and ((you have Stellar Amplification talented and you have Power of Goldrinn talented) or (you have Stellar Amplification talented and you have Power of Goldrinn talented and you have Meteor Storm talented) or (you have Power of Goldrinn talented and you don't have Meteor Storm talented))) or (you have Rattle the Stars talented and you don't have Meteorites talented and (you have Stellar Amplification talented or you have Power of Goldrinn talented) and you don't have Aetherial Kindling talented)
  • ca opener: yes · when always
Your talents (click: talented, not talented, not set)
More conditions (3)
opener is true
mini is true
cds is true
Checked
  1. The main loop
  2. Opener (maybe)
  3. Mini (maybe)
  4. Cooldowns (maybe)
  5. Ec st (maybe)
  6. Kotg st (maybe)
  7. AoE (maybe)
Before the pull, done once before the fight starts (12 steps)

Before the pull12 lines

  1. Record your stats before the pull (sim bookkeeping)Snapshot raid buffed stats before combat begins and pre-potting is done.
    simcsnapshot_stats
  2. Set Starfall talents to true when the following holds, otherwise false
    any of these:
    • all of these:
      • there are fewer than 3 enemies
      • you have Starweaver talented
      • you don't have Aetherial Kindling talented
      • you don't have Meteorites talented
      • any of these:
        • all of these:
          • you have Stellar Amplification talented
          • you have Power of Goldrinn talented
        • all of these:
          • you have Stellar Amplification talented
          • you have Power of Goldrinn talented
          • you have Meteor Storm talented
        • all of these:
          • you have Power of Goldrinn talented
          • you don't have Meteor Storm talented
    • all of these:
      • you have Rattle the Stars talented
      • you don't have Meteorites talented
      • any of these:
        • you have Stellar Amplification talented
        • you have Power of Goldrinn talented
      • you don't have Aetherial Kindling talented
    simcvariable,name=Starfall_talents,value=(spell_targets<3&(talent.starweaver&!talent.aetherial_kindling&!talent.meteorites&(talent.stellar_amplification&talent.power_of_goldrinn|talent.stellar_amplification&talent.power_of_goldrinn&talent.meteor_storm|talent.power_of_goldrinn&!talent.meteor_storm))|(talent.rattle_the_stars&!talent.meteorites&((talent.stellar_amplification|talent.power_of_goldrinn)&!talent.aetherial_kindling)))
  3. Set no cd talent to true when the following holds, otherwise false
    any of these:
    • all of these:
      • you don't have Celestial Alignment talented
      • you don't have Incarnation: Chosen of Elune talented
    • druid.no_cds
    simcvariable,name=no_cd_talent,value=!talent.celestial_alignment&!talent.incarnation_chosen_of_elune|druid.no_cds
  4. Set ca opener to 1
    simcvariable,name=ca_opener,op=set,value=1
  5. Set opener to 1
    simcvariable,name=opener,op=set,value=1
  6. Add whether trinket 1 has an on-use effect that grants a stat buff to on use trinket
    simcvariable,name=on_use_trinket,op=add,value=trinket.1.has_use_buff
  7. Add 2 if trinket 2 has an on-use effect that grants a stat buff, else 0 to on use trinket
    simcvariable,name=on_use_trinket,op=add,value=(trinket.2.has_use_buff)*2
  8. Cast Moonkin Form
    simcmoonkin_form
  9. Cast Wrath
    simcwrath
  10. Cast Wrath
    simcwrath
  11. Cast Wrath if you have Dream Surge talented and the number of enemies in the fight is at most 2
    simcwrath,if=talent.dream_surge&enemies<=2
  12. Cast Starfire if you use the Elunes Chosen hero talents or the number of enemies in the fight is more than 2
    simcstarfire,if=hero_tree.elunes_chosen|enemies>2

The main loop21 lines

  1. Drink a potion if ((opener is true or cds is true) and ((your last spell on the global cooldown was Force of Nature and you use the Keeper of the Grove hero talents) or (your last spell on the global cooldown was Fury of Elune and you use the Elunes Chosen hero talents) or (you don't have Force of Nature talented and you don't have Fury of Elune talented))) or the fight ends within 30 s
    simcpotion,if=((variable.opener|variable.cds)&((prev_gcd.1.force_of_nature&hero_tree.keeper_of_the_grove|prev_gcd.1.fury_of_elune&hero_tree.elunes_chosen)|!talent.force_of_nature&!talent.fury_of_elune))|fight_remains<=30
  2. Use your trinkets if (trinket 1 isn't Wraps of Cosmic Madness and trinket 2 isn't Wraps of Cosmic Madness and trinket 1 isn't Font of Venomous Rage and trinket 2 isn't Font of Venomous Rage and (opener is true or cds is true) and ((your last spell on the global cooldown was Force of Nature and you use the Keeper of the Grove hero talents) or (your last spell on the global cooldown was Fury of Elune and you use the Elunes Chosen hero talents) or (you don't have Force of Nature talented and you don't have Fury of Elune talented)) and (Harmony of the Grove is active or you use the Elunes Chosen hero talents)) or the fight ends within 20 s
    simcuse_items,if=!trinket.1.is.wraps_of_cosmic_madness&!trinket.2.is.wraps_of_cosmic_madness&!trinket.1.is.font_of_venomous_rage&!trinket.2.is.font_of_venomous_rage&((variable.opener|variable.cds)&((prev_gcd.1.force_of_nature&hero_tree.keeper_of_the_grove|prev_gcd.1.fury_of_elune&hero_tree.elunes_chosen)|!talent.force_of_nature&!talent.fury_of_elune))&(buff.harmony_of_the_grove.up|hero_tree.elunes_chosen)|fight_remains<20
  3. Use Wraps of Cosmic Madness if Eclipse isn't active
    simcuse_item,name=wraps_of_cosmic_madness,if=!buff.eclipse.up
  4. Use Font of Venomous Rage if Eclipse isn't active
    simcuse_item,name=font_of_venomous_rage,if=!buff.eclipse.up
  5. Set cd overflow to 1
    any of these:
    • Ca Inc has more than 1.9 charges
    • the fight ends within the cooldown left on trinket 1
    simcvariable,name=cd_overflow,op=set,value=1,if=cooldown.ca_inc.charges_fractional>1.9|fight_remains<trinket.1.cooldown.remains
  6. Set cd overflow to 0
    Ca Inc has fewer than 1 charge
    simcvariable,name=cd_overflow,op=set,value=0,if=cooldown.ca_inc.charges_fractional<1
  7. Cast Berserking if (Ca Inc is active and (Harmony of the Grove is active or you don't have Dream Surge talented)) or the fight ends within the cooldown left on Ca Inc
    simcberserking,if=buff.ca_inc.up&(buff.harmony_of_the_grove.up|!talent.dream_surge)|fight_remains<cooldown.ca_inc.remains
  8. Get Power Infusion from an ally if Ca Inc is active
    simcinvoke_external_buff,name=power_infusion,if=buff.ca_inc.up
  9. Set eclipse timings to true when the following holds, otherwise false
    all of these:
    • any of these:
      • all of these:
        • any of these:
          • Eclipse is fully recharged within the largest of (the cooldown left on Force of Nature times (1 if you use the Keeper of the Grove hero talents, else 0)), the cooldown left on Fury of Elune and (Eclipse's duration plus 2 s)
          • the larger of ((the cooldown left on trinket 1 times (1 if cd overflow is false, else 0)) times (1 if you use the Keeper of the Grove hero talents, else 0)) and the cooldown left on Ca Inc is less than the largest of (the cooldown left on Force of Nature times (1 if you use the Keeper of the Grove hero talents, else 0)), the cooldown left on Fury of Elune and (Eclipse's duration plus 2)
        • any of these:
          • Eclipse's duration is at most the largest of the cooldown left on Ca Inc, the cooldown left on Fury of Elune and the cooldown left on Force of Nature
          • you don't have Fury of Elune talented
          • you use the Elunes Chosen hero talents
          • you have Radiant Moonlight talented
      • the fight ends within Eclipse's duration
    • any of these:
      • all of these:
        • Eclipse has less than 2 s left, or isn't active
        • the sim's fight style is DungeonRoute
      • the sim's fight style isn't DungeonRoute
    simcvariable,name=eclipse_timings,value=((cooldown.eclipse.full_recharge_time<((cooldown.force_of_nature.remains*hero_tree.keeper_of_the_grove)<?(cooldown.fury_of_elune.remains)<?((buff.eclipse.duration+2)))|((trinket.1.cooldown.remains*!variable.cd_overflow*hero_tree.keeper_of_the_grove)<?cooldown.ca_inc.remains)<((cooldown.force_of_nature.remains*hero_tree.keeper_of_the_grove)<?(cooldown.fury_of_elune.remains)<?(buff.eclipse.duration+2)))&(buff.eclipse.duration<=(cooldown.ca_inc.remains<?cooldown.fury_of_elune.remains<?cooldown.force_of_nature.remains)|!talent.fury_of_elune|hero_tree.elunes_chosen|talent.radiant_moonlight)|fight_remains<buff.eclipse.duration)&(buff.eclipse.remains<2&fight_style.dungeonroute|!fight_style.dungeonroute)
  10. Set opener to 0
    Ca Inc is active
    simcvariable,name=opener,op=set,value=0,if=buff.ca_inc.up
  11. Set starfall cosmos to true when the following holds, otherwise false
    all of these:
    • any of these:
      • all of these:
        • you have Starweaver talented
        • any of these:
          • all of these:
            • you have Meteorites talented
            • any of these:
              • all of these:
                • you have Incarnation: Chosen of Elune talented
                • you have Meteor Storm talented
                • you don't have Power of Goldrinn talented
              • all of these:
                • Ca Inc isn't active
                • any of these:
                  • you have Incarnation: Chosen of Elune talented
                  • you have Stellar Amplification talented
                  • you don't have Power of Goldrinn talented
          • all of these:
            • Eclipse isn't active
            • any of these:
              • you have Meteorites talented
              • you have Aetherial Kindling talented
              • all of these:
                • you have Stellar Amplification talented
                • you don't have Power of Goldrinn talented
      • all of these:
        • Ca Inc isn't active
        • you have Meteorites talented
        • you have Aetherial Kindling talented
        • you have Stellar Amplification talented
        • you don't have Power of Goldrinn talented
      • all of these:
        • Eclipse isn't active
        • you have Meteorites talented
        • any of these:
          • you have Aetherial Kindling talented
          • you have Stellar Amplification talented
          • you don't have Power of Goldrinn talented
    • Touch the Cosmos is active and you've had time to react to it
    • Starweaver's Weft isn't active, or only just appeared
    simcvariable,name=starfall_cosmos,value=(talent.starweaver&(talent.meteorites&(talent.incarnation_chosen_of_elune&talent.meteor_storm&!talent.power_of_goldrinn|buff.ca_inc.down&(talent.incarnation_chosen_of_elune|talent.stellar_amplification|!talent.power_of_goldrinn))|buff.eclipse.down&(talent.meteorites|talent.aetherial_kindling|talent.stellar_amplification&!talent.power_of_goldrinn))|buff.ca_inc.down&talent.meteorites&talent.aetherial_kindling&talent.stellar_amplification&!talent.power_of_goldrinn|buff.eclipse.down&talent.meteorites&(talent.aetherial_kindling|talent.stellar_amplification|!talent.power_of_goldrinn))&buff.touch_the_cosmos.react&!buff.starweavers_weft.react
  12. Set cds to 1
    all of these:
    • the largest of (the cooldown left on Force of Nature times (1 if you use the Keeper of the Grove hero talents, else 0)), the cooldown left on Fury of Elune, ((the cooldown left on trinket 1 times (1 if cd overflow is false, else 0)) times (1 if you use the Keeper of the Grove hero talents, else 0)), the cooldown left on Ca Inc, (the time left on Eclipse minus (10 times ((1 if Bloodlust is active, else 0) times (1 if Ascendant Stars isn't active, else 0)))) and the time left on Ca Inc is less than 1
    • any of these:
      • the number of enemies with Moonfire is at least the number of enemies
      • Moonfire is on 10 or more enemies
      • all of these:
        • there is a single enemy
        • you use the Keeper of the Grove hero talents
      • all of these:
        • you use the Elunes Chosen hero talents
        • there is a single enemy
    • the target lives more than 20 s longer
    simcvariable,name=cds,op=set,value=1,if=((((cooldown.force_of_nature.remains*hero_tree.keeper_of_the_grove)<?(cooldown.fury_of_elune.remains)<?((trinket.1.cooldown.remains*!variable.cd_overflow*hero_tree.keeper_of_the_grove)<?cooldown.ca_inc.remains)<?(buff.eclipse.remains-(10*(buff.bloodlust.up*buff.ascendant_stars.down)))<?buff.ca_inc.remains)<1)&(active_dot.moonfire>=active_enemies|active_dots.moonfire>=10|spell_targets=1&hero_tree.keeper_of_the_grove|hero_tree.elunes_chosen&spell_targets=1))&target.time_to_die>20
  13. Set cds to 0
    Ca Inc is active
    simcvariable,name=cds,op=set,value=0,if=buff.ca_inc.up
  14. Set mini to 1
    all of these:
    • the largest of the cooldown left on Eclipse, the cooldown left on Force of Nature, the cooldown left on Fury of Elune and the time left on Eclipse is less than 1 s
    • (the larger of (the cooldown left on trinket 1 times (1 if cd overflow is false, else 0)) and the cooldown left on Ca Inc) plus 10 is more than the larger of Force of Nature's cooldown and (Fury of Elune's cooldown minus 15)
    • you use the Keeper of the Grove hero talents
    simcvariable,name=mini,op=set,value=1,if=(((cooldown.eclipse.remains<?cooldown.force_of_nature.remains<?cooldown.fury_of_elune.remains<?buff.eclipse.remains)<1)&((((trinket.1.cooldown.remains*!variable.cd_overflow)<?cooldown.ca_inc.remains)+10)>(cooldown.force_of_nature.duration<?cooldown.fury_of_elune.duration-15)))&hero_tree.keeper_of_the_grove
  15. Set mini to 0
    your last spell on the global cooldown was Eclipse
    simcvariable,name=mini,op=set,value=0,if=prev_gcd.1.eclipse
  16. Is it true that opener is true?Not set

    If so, switch to Opener, and nothing below is checked

    simcrun_action_list,name=opener,if=variable.opener

    Opener12 lines

    1. Cast Moonfire if you don't have Convoke the Spirits talentedAt most once every 999 s
      simcmoonfire,if=!talent.convoke_the_spirits,line_cd=999
    2. Cast Moonfiretarget on the first enemy where Moonfire is missing from the target or due for a refresh and the time until the target dies minus the time left on Moonfire is more than 6 s and Moonfire is on fewer than 10 enemies and Moonfire would hit more than 1 enemy
      simcmoonfire,target_if=refreshable&(target.time_to_die-remains)>6&active_dots.moonfire<10&spell_targets>1
    3. Cast SunfireAt most once every 999 s
      simcsunfire,line_cd=999
    4. Cast Eclipse if you don't have Convoke the Spirits talentedAt most once every 999 s
      simceclipse,if=!talent.convoke_the_spirits,line_cd=999
    5. Cast Starsurge if Ascendant Stars is active and you use the Elunes Chosen hero talents and you don't have Lunation talented and Starsurge would hit exactly 1 enemy
      simcstarsurge,if=buff.ascendant_stars.up&hero_tree.elunes_chosen&!talent.lunation&spell_targets=1
    6. Cast Wrath if you have less than 80 Astral Power and you use the Keeper of the Grove hero talents and Starfire would hit fewer than 3 enemies and you don't have Convoke the Spirits talented
      simcwrath,if=astral_power<80&hero_tree.keeper_of_the_grove&spell_targets.starfire<3&!talent.convoke_the_spirits
    7. Cast Starfire if you don't have Convoke the Spirits talented and ((you have less than 80 Astral Power and Starfire would hit 3 or more enemies and you use the Keeper of the Grove hero talents) or (you use the Elunes Chosen hero talents and ((Ascendant Fires is active and you have Lunation talented) or (you don't have Lunation talented and you have less than 80 Astral Power and Starfire would hit exactly 1 enemy))))
      simcstarfire,if=!talent.convoke_the_spirits&(astral_power<80&spell_targets>=3&hero_tree.keeper_of_the_grove|hero_tree.elunes_chosen&(buff.ascendant_fires.up&talent.lunation|!talent.lunation&(astral_power<80&spell_targets=1)))
    8. Cast Moonfire if you don't have Convoke the Spirits talented and Moonfire has less than 15 s minus (8 if you have Aetherial Kindling talented, else 0) left on the target, or isn't on it and Force of Nature is off cooldown and you use the Elunes Chosen hero talents and Fury of Elune is off cooldownAt most once every 999 s
      simcmoonfire,if=!talent.convoke_the_spirits&(dot.moonfire.remains<15-(8*talent.aetherial_kindling))&cooldown.force_of_nature.ready&hero_tree.elunes_chosen&cooldown.fury_of_elune.ready,line_cd=999
    9. Cast Sunfire if you don't have Convoke the Spirits talented and Sunfire has less than 15 s left on the target, or isn't on it and Force of Nature is off cooldown and Fury of Elune is off cooldownAt most once every 999 s
      simcsunfire,if=!talent.convoke_the_spirits&dot.sunfire.remains<15&cooldown.force_of_nature.ready&cooldown.fury_of_elune.ready,line_cd=999
    10. Cast Fury of Elune
      simcfury_of_elune
    11. Cast Force of Nature
      simcforce_of_nature
    12. Cast Celestial Alignment
      simccelestial_alignment,add_queue_lag=1
  17. Is it true that mini is true and opener is false?Not set

    If so, switch to Mini, and nothing below is checked

    simcrun_action_list,name=mini,if=variable.mini&!variable.opener

    Mini3 lines

    1. Cast Fury of Elune
      simcfury_of_elune
    2. Cast Force of Nature
      simcforce_of_nature
    3. Cast Eclipse
      simceclipse
  18. Is it true that cds is true and opener is false?Not set

    If so, switch to Cooldowns, and nothing below is checked

    simcrun_action_list,name=cooldowns,if=variable.cds&!variable.opener

    Cooldowns6 lines

    1. Cast Moonfiretarget on the first enemy where you use the Elunes Chosen hero talents and Moonfire has less than 12 s left on the target, or isn't on it and Moonfire would hit exactly 1 enemy and Fury of Elune comes off cooldown within 1 sAt most once every 20 s
      simcmoonfire,target_if=hero_tree.elunes_chosen&dot.moonfire.remains<12&spell_targets=1&cooldown.fury_of_elune.remains<1,line_cd=20
    2. Cast Moonfiretarget on the first enemy where Moonfire is missing from the target or due for a refresh and the time until the target dies minus the time left on Moonfire is more than 6 s and Moonfire is on fewer than 10 enemies and Moonfire would hit more than 1 enemy
      simcmoonfire,target_if=refreshable&(target.time_to_die-remains)>6&active_dots.moonfire<10&spell_targets>1
    3. Cast Sunfire if Sunfire has less than 18 s left on the target, or isn't on it and Fury of Elune comes off cooldown within 1 s and ((Force of Nature comes off cooldown within 1 s and you use the Keeper of the Grove hero talents) or you don't use the Keeper of the Grove hero talents)At most once every 10 s
      simcsunfire,if=dot.sunfire.remains<18&cooldown.fury_of_elune.remains<1&(cooldown.force_of_nature.remains<1&hero_tree.keeper_of_the_grove|!hero_tree.keeper_of_the_grove),line_cd=10
    4. Cast Fury of Elune
      simcfury_of_elune
    5. Cast Force of Nature if you use the Keeper of the Grove hero talents
      simcforce_of_nature,if=hero_tree.keeper_of_the_grove
    6. Cast Celestial Alignment
      simccelestial_alignment,add_queue_lag=1
  19. Is it true that you use the Elunes Chosen hero talents and there is a single enemy?Not set

    If so, switch to Ec st, and nothing below is checked

    simcrun_action_list,name=ec_st,if=hero_tree.elunes_chosen&spell_targets=1

    Ec st15 lines

    1. Cast Sunfiretarget on the first enemy where Sunfire has less than 2 s left on the target, or isn't on it or (Sunfire is missing from the target or due for a refresh and Eclipse isn't active and the target lives more than 10 s longer)
      simcsunfire,target_if=remains<2|refreshable&buff.eclipse.down&target.time_to_die>10
    2. Cast Moonfiretarget on the first enemy where (Moonfire has less than 2 s left on the target, or isn't on it or (Moonfire is missing from the target or due for a refresh and Eclipse isn't active and 1 if Force of Nature is off cooldown, else 0 is less than the time left on Moonfire)) and the target lives more than 10 s longer
      simcmoonfire,target_if=(remains<2|refreshable&!buff.eclipse.up&!cooldown.force_of_nature.remains<dot.moonfire.remains)&target.time_to_die>10
    3. Cast Celestial Alignment if the fight ends within 20 s
      simccelestial_alignment,if=fight_remains<20
    4. Cast Convoke the Spirits if ((Balance Of All Things Arcane has fewer than 5 stacks or Balance Of All Things Nature has fewer than 5 stacks or you have less than 40 Astral Power) and Ca Inc is active) or (Ca Inc has more than 40 s of cooldown left and Eclipse is active)
      simcconvoke_the_spirits,if=(buff.balance_of_all_things_arcane.stack<5|buff.balance_of_all_things_nature.stack<5|astral_power<40)&buff.ca_inc.up|cooldown.ca_inc.remains>40&buff.eclipse.up
    5. Cast Fury of Elune if the fight ends within 10 s or Ca Inc has more than Fury of Elune's cooldown of cooldown left or you have Lunation talented
      simcfury_of_elune,if=fight_remains<10|cooldown.ca_inc.remains>cooldown.fury_of_elune.duration|talent.lunation
    6. Cast Force of Nature if the fight ends within 10 s or Force of Nature's cooldown is less than the cooldown left on Ca Inc
      simcforce_of_nature,if=fight_remains<10|cooldown.force_of_nature.duration<cooldown.ca_inc.remains
    7. Cast Eclipse if eclipse timings is true
      simceclipse,if=variable.eclipse_timings
    8. Cast Starfall if Starweaver's Warp is active and you've had time to react to it
      simcstarfall,if=buff.starweavers_warp.react
    9. Cast Starfall if starfall cosmos is true
      simcstarfall,if=variable.starfall_cosmos
    10. Cast Starsurge if (Eclipse isn't active and you are less than 20 Astral Power below maximum) or (Eclipse is active and Starsurge's cost is more than 1) or Touch the Cosmos is active and you've had time to react to it or Starweaver's Weft is active and you've had time to react to it
      simcstarsurge,if=buff.eclipse.down&astral_power.deficit<20|buff.eclipse.up&action.starsurge.cost>1|buff.touch_the_cosmos.react|buff.starweavers_weft.react
    11. Cast New Moon if you are more than the resources New Moon generates Astral Power below maximum
      simcnew_moon,if=astral_power.deficit>energize_amount
    12. Cast Half Moon if you are more than the resources Half Moon generates Astral Power below maximum
      simchalf_moon,if=astral_power.deficit>energize_amount
    13. Cast Full Moon if you are more than the resources Full Moon generates Astral Power below maximum
      simcfull_moon,if=astral_power.deficit>energize_amount
    14. Cast Wild Mushroom if Eclipse is active or Wild Mushroom is fully recharged within the cooldown left on Ca Inc
      simcwild_mushroom,if=buff.eclipse.up|cooldown.wild_mushroom.full_recharge_time<cooldown.ca_inc.remains
    15. Cast Starfire
      simcstarfire
  20. Is it true that there is a single enemy?Not set

    If so, switch to Kotg st, and nothing below is checked

    simcrun_action_list,name=kotg_st,if=spell_targets=1

    Kotg st15 lines

    1. Cast Sunfiretarget on the first enemy where Sunfire has less than 2 s left on the target, or isn't on it or (Sunfire is missing from the target or due for a refresh and Eclipse isn't active and the target lives more than 10 s longer)
      simcsunfire,target_if=remains<2|refreshable&buff.eclipse.down&target.time_to_die>10
    2. Cast Moonfiretarget on the first enemy where Harmony of the Grove isn't active and (Moonfire has less than 2 s left on the target, or isn't on it or (Moonfire is missing from the target or due for a refresh and Eclipse isn't active and 1 if Force of Nature is off cooldown, else 0 is less than the time left on Moonfire)) and the target lives more than 10 s longer
      simcmoonfire,target_if=buff.harmony_of_the_grove.down&(remains<2|refreshable&!buff.eclipse.up&!cooldown.force_of_nature.remains<dot.moonfire.remains)&target.time_to_die>10
    3. Cast Celestial Alignment if the fight ends within Ca Inc's duration
      simccelestial_alignment,if=fight_remains<=buff.ca_inc.duration
    4. Cast Fury of Elune if the fight ends within 20 s or Force of Nature has more than Fury of Elune's cooldown of cooldown left
      simcfury_of_elune,if=fight_remains<20|cooldown.force_of_nature.remains>cooldown.fury_of_elune.duration
    5. Cast Force of Nature if the fight ends within 20 s
      simcforce_of_nature,if=fight_remains<20
    6. Cast Convoke the Spirits if (you have less than 40 Astral Power and Harmony of the Grove is active) or the fight ends within 10 s
      simcconvoke_the_spirits,if=astral_power<40&buff.harmony_of_the_grove.up|fight_remains<10
    7. Cast Eclipse if (eclipse timings is true and (you have more than 60 Astral Power or Eclipse has exactly 2 charges)) or the fight ends within 15 s plus (Ca Inc's duration times (1 if Ca Inc comes off cooldown within the time left in the fight minus 20 s, else 0))
      simceclipse,if=variable.eclipse_timings&(astral_power>60|charges_fractional=2)|fight_remains<(15+(buff.ca_inc.duration*(cooldown.ca_inc.remains<fight_remains-20)))
    8. Cast Starfall if Starweaver's Warp is active and you've had time to react to it
      simcstarfall,if=buff.starweavers_warp.react
    9. Cast Starfall if starfall cosmos is true
      simcstarfall,if=variable.starfall_cosmos
    10. Cast Starsurge if (Eclipse isn't active and you are less than 20 Astral Power below maximum) or (Eclipse is active and Starsurge's cost is more than 1 and (you are less than 10 Astral Power below maximum or Force of Nature has more than 5 s plus the time left on Eclipse of cooldown left or Ascendant Stars is active)) or Touch the Cosmos is active and you've had time to react to it or Starweaver's Weft is active and you've had time to react to it
      simcstarsurge,if=buff.eclipse.down&astral_power.deficit<20|buff.eclipse.up&action.starsurge.cost>1&(astral_power.deficit<10|cooldown.force_of_nature.remains>5+buff.eclipse.remains|buff.ascendant_stars.up)|buff.touch_the_cosmos.react|buff.starweavers_weft.react
    11. Cast New Moon if you are more than the resources New Moon generates Astral Power below maximum
      simcnew_moon,if=astral_power.deficit>energize_amount
    12. Cast Half Moon if you are more than the resources Half Moon generates Astral Power below maximum
      simchalf_moon,if=astral_power.deficit>energize_amount
    13. Cast Full Moon if you are more than the resources Full Moon generates Astral Power below maximum
      simcfull_moon,if=astral_power.deficit>energize_amount
    14. Cast Wild Mushroom if Eclipse is active or Wild Mushroom is fully recharged within the cooldown left on Ca Inc
      simcwild_mushroom,if=buff.eclipse.up|cooldown.wild_mushroom.full_recharge_time<cooldown.ca_inc.remains
    15. Cast Wrath
      simcwrath
  21. Is it true that there is more than one enemy?Not set

    If so, switch to AoE, and nothing below is checked

    simcrun_action_list,name=aoe,if=spell_targets>1

    AoE19 lines

    1. Cast Celestial Alignment if the fight ends within 20 s
      simccelestial_alignment,if=fight_remains<20
    2. Cast Wrath if eclipse.lunar and Wrath would hit 2 or fewer enemies and you use the Keeper of the Grove hero talents and Eclipse isn't active
      simcwrath,if=eclipse.lunar&spell_targets<=2&hero_tree.keeper_of_the_grove&buff.eclipse.down
    3. Cast Starfire if eclipse.solar and Starfire would hit more than 2 enemies and you use the Keeper of the Grove hero talents and Eclipse isn't active
      simcstarfire,if=eclipse.solar&spell_targets>2&hero_tree.keeper_of_the_grove&buff.eclipse.down
    4. Cast Eclipse if opener is false and Eclipse is fully recharged within one global cooldown
      simceclipse,if=!variable.opener&(cooldown.eclipse.full_recharge_time<gcd.max)
    5. Cast Moonfiretarget on the first enemy where Moonfire is missing from the target or due for a refresh and the time until the target dies minus the time left on Moonfire is more than 6 s and Moonfire is on fewer than 10 enemies and Eclipse isn't active
      simcmoonfire,target_if=refreshable&(target.time_to_die-remains)>6&active_dots.moonfire<10&buff.eclipse.down
    6. Cast Sunfiretarget on the first enemy where (Sunfire has less than 2 s left on the target, or isn't on it or (Sunfire is missing from the target or due for a refresh and Eclipse isn't active)) and the target lives more than 5 s longer
      simcsunfire,target_if=(remains<2|refreshable&buff.eclipse.down)&target.time_to_die>5
    7. Cast Fury of Elune if the fight ends within 10 s or Ca Inc has more than 10 s of cooldown left or you have Lunation talented
      simcfury_of_elune,if=fight_remains<10|cooldown.ca_inc.remains>10|talent.lunation
    8. Cast Force of Nature if (you use the Elunes Chosen hero talents and you have less than 50 Astral Power and Ca Inc has more than 10 s of cooldown left and Eclipse is active) or the fight ends within 15 s
      simcforce_of_nature,if=hero_tree.elunes_chosen&astral_power<50&cooldown.ca_inc.remains>10&buff.eclipse.up|fight_remains<15
    9. Cast Eclipse if eclipse timings is true
      simceclipse,if=variable.eclipse_timings
    10. Cast Convoke the Spirits if ((Ca Inc is active and you have less than 40 Astral Power) or (Ca Inc has more than 50 s of cooldown left and Harmony of the Grove is active and Ca Inc isn't active)) and (Orbit Breaker has fewer than 10 stacks or you use the Keeper of the Grove hero talents)
      simcconvoke_the_spirits,if=(buff.ca_inc.up&astral_power<40|cooldown.ca_inc.remains>50&buff.harmony_of_the_grove.up&buff.ca_inc.down)&(buff.orbit_breaker.stack<10|hero_tree.keeper_of_the_grove)
    11. Cast Starsurge if ((you have more than 80 Astral Power or (Eclipse is active and Starsurge's cost is more than 1)) and Starfall talents is true and Starweaver's Warp isn't active, or only just appeared and Touch the Cosmos isn't active, or only just appeared) or Starweaver's Weft is active and you've had time to react to it
      simcstarsurge,if=(astral_power>80|buff.eclipse.up&action.starsurge.cost>1)&variable.Starfall_talents&!buff.starweavers_warp.react&!buff.touch_the_cosmos.react|buff.starweavers_weft.react
    12. Cast Starfall if (((your Astral Power is more than 80 minus (79 if you use the Elunes Chosen hero talents, else 0) or (Eclipse is active and Starfall's cost is more than 1)) and Starfall would hit 2 or more enemies) or Starweaver's Warp is active and you've had time to react to it or Touch the Cosmos is active and you've had time to react to it) and the target lives more than 5 s longer
      simcstarfall,if=((astral_power>80-79*hero_tree.elunes_chosen|buff.eclipse.up&action.starfall.cost>1)&spell_targets>=2|buff.starweavers_warp.react|buff.touch_the_cosmos.react)&target.time_to_die>5
    13. Cast Starfire if Ascendant Fires is active and Eclipse (Lunar) is active
      simcstarfire,if=buff.ascendant_fires.up&buff.eclipse_lunar.up
    14. Cast New Moon if you are more than the resources New Moon generates Astral Power below maximum and Atmospheric Exposure has less than New Moon's cast time plus 0.5 s left on the target, or isn't active
      simcnew_moon,if=astral_power.deficit>energize_amount&debuff.atmospheric_exposure.remains<execute_time+0.5
    15. Cast Half Moon if you are more than the resources Half Moon generates Astral Power below maximum and Atmospheric Exposure has less than Half Moon's cast time plus 0.5 s left on the target, or isn't active
      simchalf_moon,if=astral_power.deficit>energize_amount&debuff.atmospheric_exposure.remains<execute_time+0.5
    16. Cast Full Moon if you are more than the resources Full Moon generates Astral Power below maximum and Atmospheric Exposure has less than Full Moon's cast time plus 0.5 s left on the target, or isn't active
      simcfull_moon,if=astral_power.deficit>energize_amount&debuff.atmospheric_exposure.remains<execute_time+0.5
    17. Cast Wild Mushroom if Eclipse (Solar) is active or Wild Mushroom is fully recharged within the cooldown left on Ca Inc
      simcwild_mushroom,if=buff.eclipse_solar.up|cooldown.wild_mushroom.full_recharge_time<cooldown.ca_inc.remains
    18. Cast Starfire if you use the Elunes Chosen hero talents or (Eclipse isn't active and Starfire would hit more than 2 enemies) or (Eclipse (Lunar) is active and Starfire would hit more than 2 enemies)
      simcstarfire,if=hero_tree.elunes_chosen|buff.eclipse.down&spell_targets.starfire>2|buff.eclipse_lunar.up&spell_targets.starfire>2
    19. Cast Wrath if Wrath would hit 2 or fewer enemies
      simcwrath,if=spell_targets<=2

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