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.
- The main loop
- Opener (maybe)
- Mini (maybe)
- Cooldowns (maybe)
- Ec st (maybe)
- Kotg st (maybe)
- AoE (maybe)
Before the pull, done once before the fight starts (12 steps)
Before the pull12 lines
- Record your stats before the pull (sim bookkeeping)Snapshot raid buffed stats before combat begins and pre-potting is done.
simc
snapshot_stats - Set Starfall talents to true when the following holds, otherwise falseany 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:
- 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
simc
variable,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))) - all of these:
- Set no cd talent to true when the following holds, otherwise falseany of these:
- all of these:
- you don't have Celestial Alignment talented
- you don't have Incarnation: Chosen of Elune talented
druid.no_cds
simc
variable,name=no_cd_talent,value=!talent.celestial_alignment&!talent.incarnation_chosen_of_elune|druid.no_cds - all of these:
- Set ca opener to 1
simc
variable,name=ca_opener,op=set,value=1 - Set opener to 1
simc
variable,name=opener,op=set,value=1 - Add whether trinket 1 has an on-use effect that grants a stat buff to on use trinket
simc
variable,name=on_use_trinket,op=add,value=trinket.1.has_use_buff - Add 2 if trinket 2 has an on-use effect that grants a stat buff, else 0 to on use trinket
simc
variable,name=on_use_trinket,op=add,value=(trinket.2.has_use_buff)*2 - Cast Moonkin Form
simc
moonkin_form - Cast Wrath
simc
wrath - Cast Wrath
simc
wrath - Cast Wrath if you have Dream Surge talented and the number of enemies in the fight is at most 2
simc
wrath,if=talent.dream_surge&enemies<=2 - Cast Starfire if you use the Elunes Chosen hero talents or the number of enemies in the fight is more than 2
simc
starfire,if=hero_tree.elunes_chosen|enemies>2
The main loop21 lines
- 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
simc
potion,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 - 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
simc
use_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 - Use Wraps of Cosmic Madness if Eclipse isn't active
simc
use_item,name=wraps_of_cosmic_madness,if=!buff.eclipse.up - Use Font of Venomous Rage if Eclipse isn't active
simc
use_item,name=font_of_venomous_rage,if=!buff.eclipse.up - Set cd overflow to 1any of these:
- Ca Inc has more than 1.9 charges
- the fight ends within the cooldown left on trinket 1
simc
variable,name=cd_overflow,op=set,value=1,if=cooldown.ca_inc.charges_fractional>1.9|fight_remains<trinket.1.cooldown.remains - Set cd overflow to 0Ca Inc has fewer than 1 charge
simc
variable,name=cd_overflow,op=set,value=0,if=cooldown.ca_inc.charges_fractional<1 - 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
simc
berserking,if=buff.ca_inc.up&(buff.harmony_of_the_grove.up|!talent.dream_surge)|fight_remains<cooldown.ca_inc.remains - Get Power Infusion from an ally if Ca Inc is active
simc
invoke_external_buff,name=power_infusion,if=buff.ca_inc.up - Set eclipse timings to true when the following holds, otherwise falseall 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
- any of these:
- the fight ends within Eclipse's duration
- all of these:
- 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
- all of these:
simc
variable,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) - any of these:
- Set opener to 0Ca Inc is active
simc
variable,name=opener,op=set,value=0,if=buff.ca_inc.up - Set starfall cosmos to true when the following holds, otherwise falseall 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:
- 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:
- 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
- all of these:
- Touch the Cosmos is active and you've had time to react to it
- Starweaver's Weft isn't active, or only just appeared
simc
variable,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 - any of these:
- Set cds to 1all 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
simc
variable,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 - Set cds to 0Ca Inc is active
simc
variable,name=cds,op=set,value=0,if=buff.ca_inc.up - Set mini to 1all 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
simc
variable,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 - Set mini to 0your last spell on the global cooldown was Eclipse
simc
variable,name=mini,op=set,value=0,if=prev_gcd.1.eclipse Is it true that opener is true?Not set
If so, switch to Opener, and nothing below is checked
simc
run_action_list,name=opener,if=variable.openerOpener12 lines
- Cast Moonfire if you don't have Convoke the Spirits talentedAt most once every 999 s
simc
moonfire,if=!talent.convoke_the_spirits,line_cd=999 - 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
simc
moonfire,target_if=refreshable&(target.time_to_die-remains)>6&active_dots.moonfire<10&spell_targets>1 - Cast SunfireAt most once every 999 s
simc
sunfire,line_cd=999 - Cast Eclipse if you don't have Convoke the Spirits talentedAt most once every 999 s
simc
eclipse,if=!talent.convoke_the_spirits,line_cd=999 - 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
simc
starsurge,if=buff.ascendant_stars.up&hero_tree.elunes_chosen&!talent.lunation&spell_targets=1 - 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
simc
wrath,if=astral_power<80&hero_tree.keeper_of_the_grove&spell_targets.starfire<3&!talent.convoke_the_spirits - 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))))
simc
starfire,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))) - 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
simc
moonfire,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 - 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
simc
sunfire,if=!talent.convoke_the_spirits&dot.sunfire.remains<15&cooldown.force_of_nature.ready&cooldown.fury_of_elune.ready,line_cd=999 - Cast Fury of Elune
simc
fury_of_elune - Cast Force of Nature
simc
force_of_nature - Cast Celestial Alignment
simc
celestial_alignment,add_queue_lag=1
Is it true that mini is true and opener is false?Not set
If so, switch to Mini, and nothing below is checked
simc
run_action_list,name=mini,if=variable.mini&!variable.openerMini3 lines
- Cast Fury of Elune
simc
fury_of_elune - Cast Force of Nature
simc
force_of_nature - Cast Eclipse
simc
eclipse
Is it true that cds is true and opener is false?Not set
If so, switch to Cooldowns, and nothing below is checked
simc
run_action_list,name=cooldowns,if=variable.cds&!variable.openerCooldowns6 lines
- 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
simc
moonfire,target_if=hero_tree.elunes_chosen&dot.moonfire.remains<12&spell_targets=1&cooldown.fury_of_elune.remains<1,line_cd=20 - 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
simc
moonfire,target_if=refreshable&(target.time_to_die-remains)>6&active_dots.moonfire<10&spell_targets>1 - 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
simc
sunfire,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 - Cast Fury of Elune
simc
fury_of_elune - Cast Force of Nature if you use the Keeper of the Grove hero talents
simc
force_of_nature,if=hero_tree.keeper_of_the_grove - Cast Celestial Alignment
simc
celestial_alignment,add_queue_lag=1
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
simc
run_action_list,name=ec_st,if=hero_tree.elunes_chosen&spell_targets=1Ec st15 lines
- 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)
simc
sunfire,target_if=remains<2|refreshable&buff.eclipse.down&target.time_to_die>10 - 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
simc
moonfire,target_if=(remains<2|refreshable&!buff.eclipse.up&!cooldown.force_of_nature.remains<dot.moonfire.remains)&target.time_to_die>10 - Cast Celestial Alignment if the fight ends within 20 s
simc
celestial_alignment,if=fight_remains<20 - 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)
simc
convoke_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 - 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
simc
fury_of_elune,if=fight_remains<10|cooldown.ca_inc.remains>cooldown.fury_of_elune.duration|talent.lunation - 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
simc
force_of_nature,if=fight_remains<10|cooldown.force_of_nature.duration<cooldown.ca_inc.remains - Cast Eclipse if eclipse timings is true
simc
eclipse,if=variable.eclipse_timings - Cast Starfall if Starweaver's Warp is active and you've had time to react to it
simc
starfall,if=buff.starweavers_warp.react - Cast Starfall if starfall cosmos is true
simc
starfall,if=variable.starfall_cosmos - 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
simc
starsurge,if=buff.eclipse.down&astral_power.deficit<20|buff.eclipse.up&action.starsurge.cost>1|buff.touch_the_cosmos.react|buff.starweavers_weft.react - Cast New Moon if you are more than the resources New Moon generates Astral Power below maximum
simc
new_moon,if=astral_power.deficit>energize_amount - Cast Half Moon if you are more than the resources Half Moon generates Astral Power below maximum
simc
half_moon,if=astral_power.deficit>energize_amount - Cast Full Moon if you are more than the resources Full Moon generates Astral Power below maximum
simc
full_moon,if=astral_power.deficit>energize_amount - Cast Wild Mushroom if Eclipse is active or Wild Mushroom is fully recharged within the cooldown left on Ca Inc
simc
wild_mushroom,if=buff.eclipse.up|cooldown.wild_mushroom.full_recharge_time<cooldown.ca_inc.remains - Cast Starfire
simc
starfire
Is it true that there is a single enemy?Not set
If so, switch to Kotg st, and nothing below is checked
simc
run_action_list,name=kotg_st,if=spell_targets=1Kotg st15 lines
- 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)
simc
sunfire,target_if=remains<2|refreshable&buff.eclipse.down&target.time_to_die>10 - 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
simc
moonfire,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 - Cast Celestial Alignment if the fight ends within Ca Inc's duration
simc
celestial_alignment,if=fight_remains<=buff.ca_inc.duration - 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
simc
fury_of_elune,if=fight_remains<20|cooldown.force_of_nature.remains>cooldown.fury_of_elune.duration - Cast Force of Nature if the fight ends within 20 s
simc
force_of_nature,if=fight_remains<20 - 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
simc
convoke_the_spirits,if=astral_power<40&buff.harmony_of_the_grove.up|fight_remains<10 - 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))
simc
eclipse,if=variable.eclipse_timings&(astral_power>60|charges_fractional=2)|fight_remains<(15+(buff.ca_inc.duration*(cooldown.ca_inc.remains<fight_remains-20))) - Cast Starfall if Starweaver's Warp is active and you've had time to react to it
simc
starfall,if=buff.starweavers_warp.react - Cast Starfall if starfall cosmos is true
simc
starfall,if=variable.starfall_cosmos - 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
simc
starsurge,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 - Cast New Moon if you are more than the resources New Moon generates Astral Power below maximum
simc
new_moon,if=astral_power.deficit>energize_amount - Cast Half Moon if you are more than the resources Half Moon generates Astral Power below maximum
simc
half_moon,if=astral_power.deficit>energize_amount - Cast Full Moon if you are more than the resources Full Moon generates Astral Power below maximum
simc
full_moon,if=astral_power.deficit>energize_amount - Cast Wild Mushroom if Eclipse is active or Wild Mushroom is fully recharged within the cooldown left on Ca Inc
simc
wild_mushroom,if=buff.eclipse.up|cooldown.wild_mushroom.full_recharge_time<cooldown.ca_inc.remains - Cast Wrath
simc
wrath
Is it true that there is more than one enemy?Not set
If so, switch to AoE, and nothing below is checked
simc
run_action_list,name=aoe,if=spell_targets>1AoE19 lines
- Cast Celestial Alignment if the fight ends within 20 s
simc
celestial_alignment,if=fight_remains<20 - Cast Wrath if
eclipse.lunarand Wrath would hit 2 or fewer enemies and you use the Keeper of the Grove hero talents and Eclipse isn't activesimc
wrath,if=eclipse.lunar&spell_targets<=2&hero_tree.keeper_of_the_grove&buff.eclipse.down - Cast Starfire if
eclipse.solarand Starfire would hit more than 2 enemies and you use the Keeper of the Grove hero talents and Eclipse isn't activesimc
starfire,if=eclipse.solar&spell_targets>2&hero_tree.keeper_of_the_grove&buff.eclipse.down - Cast Eclipse if opener is false and Eclipse is fully recharged within one global cooldown
simc
eclipse,if=!variable.opener&(cooldown.eclipse.full_recharge_time<gcd.max) - 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
simc
moonfire,target_if=refreshable&(target.time_to_die-remains)>6&active_dots.moonfire<10&buff.eclipse.down - 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
simc
sunfire,target_if=(remains<2|refreshable&buff.eclipse.down)&target.time_to_die>5 - 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
simc
fury_of_elune,if=fight_remains<10|cooldown.ca_inc.remains>10|talent.lunation - 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
simc
force_of_nature,if=hero_tree.elunes_chosen&astral_power<50&cooldown.ca_inc.remains>10&buff.eclipse.up|fight_remains<15 - Cast Eclipse if eclipse timings is true
simc
eclipse,if=variable.eclipse_timings - 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)
simc
convoke_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) - 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
simc
starsurge,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 - 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
simc
starfall,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 - Cast Starfire if Ascendant Fires is active and Eclipse (Lunar) is active
simc
starfire,if=buff.ascendant_fires.up&buff.eclipse_lunar.up - 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
simc
new_moon,if=astral_power.deficit>energize_amount&debuff.atmospheric_exposure.remains<execute_time+0.5 - 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
simc
half_moon,if=astral_power.deficit>energize_amount&debuff.atmospheric_exposure.remains<execute_time+0.5 - 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
simc
full_moon,if=astral_power.deficit>energize_amount&debuff.atmospheric_exposure.remains<execute_time+0.5 - Cast Wild Mushroom if Eclipse (Solar) is active or Wild Mushroom is fully recharged within the cooldown left on Ca Inc
simc
wild_mushroom,if=buff.eclipse_solar.up|cooldown.wild_mushroom.full_recharge_time<cooldown.ca_inc.remains - 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)
simc
starfire,if=hero_tree.elunes_chosen|buff.eclipse.down&spell_targets.starfire>2|buff.eclipse_lunar.up&spell_targets.starfire>2 - Cast Wrath if Wrath would hit 2 or fewer enemies
simc
wrath,if=spell_targets<=2
Read from ActionPriorityLists/default/druid_balance.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 Moonkin Form if Moonkin Form isn't active
simc
moonkin_form,if=buff.moonkin_form.down
The main loop2 lines
go through Cooldowns, then carry on below if nothing there fits
simc
call_action_list,name=cooldownsCooldowns6 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
go through Assisted Combat, then carry on below if nothing there fits
simc
call_action_list,name=assisted_combatAssisted Combat28 lines
- Cast Sunfire if Sunfire isn't on the targetThis is the default action priority list from the game's Assisted Combat system.
simc
sunfire,if=!dot.sunfire.ticking - Cast Force of Nature if you have Dream Surge talented
simc
force_of_nature,if=talent.dream_surge - Cast Moonfire if Moonfire isn't on the target and Harmony of the Grove isn't active
simc
moonfire,if=!dot.moonfire.ticking&buff.harmony_of_the_grove.down - Cast Celestial Alignment if Eclipse (Solar) isn't active and Eclipse (Lunar) isn't activeThis is for Blizzard automation and is not included in the game's Assisted Combat system.
simc
celestial_alignment,if=buff.eclipse_solar.down&buff.eclipse_lunar.down - Cast Starfire if Eclipse (Solar) isn't active and Eclipse (Lunar) isn't active and there are more than 3 enemies and Lunar Eclipse Override isn't active and you have Eclipse talented
simc
starfire,if=buff.eclipse_solar.down&buff.eclipse_lunar.down&active_enemies>3&buff.lunar_eclipse_override.down&talent.eclipse - Cast Wrath if you don't have Lunar Calling talented and Eclipse (Solar) isn't active and Eclipse (Lunar) isn't active and there are 2 or fewer enemies and Lunar Eclipse Override is active and you have Eclipse talented
simc
wrath,if=!talent.lunar_calling&buff.eclipse_solar.down&buff.eclipse_lunar.down&active_enemies<=2&buff.lunar_eclipse_override.up&talent.eclipse - Cast Fury of Elune if Eclipse (Solar) isn't active and Eclipse (Lunar) isn't active and you have 55 or more Astral Power
simc
fury_of_elune,if=buff.eclipse_solar.down&buff.eclipse_lunar.down&astral_power>=55 - Cast Eclipse if you have Eclipse talented and Eclipse (Solar) isn't active and Eclipse (Lunar) isn't active and you have 60 or more Astral Power
simc
eclipse,if=talent.eclipse&buff.eclipse_solar.down&buff.eclipse_lunar.down&astral_power>=60 - Cast Starfall if there are more than 3 enemies and you have 90 or more Astral Power
simc
starfall,if=active_enemies>3&astral_power>=90 - Cast Starsurge if there are 2 or fewer enemies and you have 90 or more Astral Power
simc
starsurge,if=active_enemies<=2&astral_power>=90 - Cast Wrath if Eclipse (Solar) isn't active and Eclipse (Lunar) isn't active and Lunar Eclipse Override isn't active and you have 59.9 or less Astral Power
simc
wrath,if=buff.eclipse_solar.down&buff.eclipse_lunar.down&buff.lunar_eclipse_override.down&astral_power<=59.9 - Cast Starfire if Eclipse (Solar) isn't active and Eclipse (Lunar) isn't active and Lunar Eclipse Override is active and you have 59.9 or less Astral Power
simc
starfire,if=buff.eclipse_solar.down&buff.eclipse_lunar.down&buff.lunar_eclipse_override.up&astral_power<=59.9 - Cast Starfall if Starweaver's Warp is active
simc
starfall,if=buff.starweavers_warp.up - Cast Starsurge if Starweaver's Weft is active
simc
starsurge,if=buff.starweavers_weft.up - Cast Starfall if there are more than 3 enemies
simc
starfall,if=active_enemies>3 - Cast Starsurge if there are 2 or fewer enemies
simc
starsurge,if=active_enemies<=2 - Cast Starsurge if you have 50 or more Astral Power
simc
starsurge,if=astral_power>=50 - Cast Convoke the Spirits if Eclipse (Solar) is active
simc
convoke_the_spirits,if=buff.eclipse_solar.up - Cast Convoke the Spirits if Eclipse (Lunar) is active
simc
convoke_the_spirits,if=buff.eclipse_lunar.up - Cast Fury of Elune
simc
fury_of_elune - Cast Wild Mushroom if Fungal Growth isn't on the target
simc
wild_mushroom,if=!dot.fungal_growth.ticking - Cast New Moon
simc
new_moon - Cast Half Moon
simc
half_moon - Cast Full Moon
simc
full_moon - Cast Starfire if there are more than 3 enemies
simc
starfire,if=active_enemies>3,cooldown_allow_casting_success=1 - Cast Starfire if you have Lunar Calling talented
simc
starfire,if=talent.lunar_calling,cooldown_allow_casting_success=1 - Cast Wrath
simc
wrath,cooldown_allow_casting_success=1 - Cast Moonfire
simc
moonfire
Read from ActionPriorityLists/assisted_combat/druid_balance.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.