simulationcraft / simc

Simulationcraft engine/GUI
GNU General Public License v3.0
1.42k stars 704 forks source link

Cooldown not set or negative when running DungeonRoute simulation #7378

Closed Wotuu closed 7 months ago

Wotuu commented 1 year ago

Describe the bug

I am trying to simulate a full dungeon run using the DungeonRoute fight style. Using a (generated) simulationcraft string that worked just fine in 9.0 I get a crash saying "Cooldown not set or negative". I'm unable to find documentation that can help me with this issue, anyone with the same problem nor the source code that this error originates from.

Expected behavior

I expect this error not to be thrown - or to receive more info about what I can do to fix it.

To Reproduce

I initially tried it without cooldown=1, I added it after receiving the error but nothing has changed. Documentation also doesn't mention any changes in this front.

SimulationCraft encountered an error!

SimulationCraft 1005-01 for World of Warcraft 10.0.5.48069 Live (hotfix 2023-02-22/48069, git build dragonflight 9144cc9)

All options used for simulation:

### SimulationCraft 1005-01 for World of Warcraft 10.0.5.48069 Live (wow build 48069, git build dragonflight 9144cc9)  ###
### Using QT 6.4.0 with WebEngine ###

### Begin GUI options ###
ptr=0
item_db_source=ptrhead/local/bcpapi/wowhead
target_error=0
iterations=0
default_world_lag=0.05
max_time=300
vary_combat_length=0.2
tmi_window_global=6
target_level+=3
target_race=Humanoid
optimal_raid=0
override.bloodlust=1
override.arcane_intellect=1
override.power_word_fortitude=1
override.battle_shout=1
override.mark_of_the_wild=0
override.windfury_totem=0
override.bleeding=1
override.mortal_wounds=1
override.chaos_brand=1
override.mystic_touch=1
threads=16
process_priority=Low
calculate_scale_factors=1
scale_only=str,agi,sta,int,sp,ap,crit,haste,mastery,vers,wdps,wohdps,armor,bonusarmor,leech,runspeed
statistics_level=1
### End GUI options ###
### Begin simulateText ###
rogue="Sethé"
source=blizzard
origin="https://worldofwarcraft.com/en-gb/character/tarren-mill/seth%C3%A9"
spec=assassination
level=70
race=blood_elf
role=attack
position=back
talents=BMQAAAAAAAAAAAAAAAAAAAAAAgkIJJJClEAAAAAAAJJBSiAAAAAAAEFSiDUSCIJpEIJJJBRiFA

# Default consumables
potion=elemental_potion_of_ultimate_power_3
flask=phial_of_tepid_versatility_3
food=fated_fortune_cookie
augmentation=draconic
temporary_enchant=main_hand:buzzing_rune_3/off_hand:buzzing_rune_3

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=apply_poison
actions.precombat+=/flask
actions.precombat+=/augmentation
actions.precombat+=/food
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/marked_for_death,precombat_seconds=10,if=raid_event.adds.in>15
# Determine which (if any) stat buff trinket we want to attempt to sync with Deathmark.
actions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_stat.any_dps&(!trinket.2.has_stat.any_dps|trinket.1.cooldown.duration>=trinket.2.cooldown.duration)
actions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_stat.any_dps&(!trinket.1.has_stat.any_dps|trinket.2.cooldown.duration>trinket.1.cooldown.duration)
# Determine if we should be be casting our pre-Exsanguinate Rupture with Echoing Reprimand CP
actions.precombat+=/variable,name=exsanguinate_rupture_cp,value=cp_max_spend<?(talent.resounding_clarity*7)
actions.precombat+=/stealth
actions.precombat+=/slice_and_dice,precombat_seconds=1

# Executed every time the actor is available.
# Restealth if possible (no vulnerable enemies in combat)
actions=stealth
# Interrupt on cooldown to allow simming interactions with that
actions+=/kick
actions+=/variable,name=single_target,value=spell_targets.fan_of_knives<2
# Combined Energy Regen needed to saturate
actions+=/variable,name=regen_saturated,value=energy.regen_combined>35
# Next Exsanguinate cooldown time based on Deathmark syncing logic and remaining fight duration
actions+=/variable,name=exsang_sync_remains,op=setif,condition=cooldown.deathmark.remains>cooldown.exsanguinate.remains&cooldown.deathmark.remains<fight_remains,value=cooldown.deathmark.remains,value_else=cooldown.exsanguinate.remains
actions+=/call_action_list,name=stealthed,if=stealthed.rogue|stealthed.improved_garrote
actions+=/call_action_list,name=cds
# Put SnD up initially for Cut to the Chase, refresh with Envenom if at low duration
actions+=/slice_and_dice,if=!buff.slice_and_dice.up&combo_points>=2|!talent.cut_to_the_chase&refreshable&combo_points>=4
actions+=/envenom,if=talent.cut_to_the_chase&buff.slice_and_dice.up&buff.slice_and_dice.remains<5&combo_points>=4
actions+=/call_action_list,name=dot
actions+=/call_action_list,name=direct
actions+=/arcane_torrent,if=energy.deficit>=15+energy.regen_combined
actions+=/arcane_pulse
actions+=/lights_judgment
actions+=/bag_of_tricks

# Cooldowns  If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.
actions.cds=marked_for_death,line_cd=1.5,target_if=min:target.time_to_die,if=raid_event.adds.up&(!variable.single_target|target.time_to_die<30)&(target.time_to_die<combo_points.deficit*1.5|combo_points.deficit>=cp_max_spend)
# If no adds will die within the next 30s, use MfD for max CP.
actions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&combo_points.deficit>=cp_max_spend
# Sync Deathmark window with Exsanguinate if applicable
actions.cds+=/variable,name=deathmark_exsanguinate_condition,value=!talent.exsanguinate|cooldown.exsanguinate.remains>15|exsanguinated.rupture|exsanguinated.garrote
# Wait on Deathmark for Garrote with MA
actions.cds+=/variable,name=deathmark_ma_condition,value=!talent.master_assassin.enabled|dot.garrote.ticking
actions.cds+=/sepsis,if=!stealthed.rogue&!stealthed.improved_garrote&(!talent.improved_garrote&dot.garrote.ticking|talent.improved_garrote&cooldown.garrote.up)&(target.time_to_die>10|fight_remains<10)
# Deathmark to be used if not stealthed, Rupture is up, and all other talent conditions are satisfied
actions.cds+=/variable,name=deathmark_condition,value=!stealthed.rogue&dot.rupture.ticking&!debuff.deathmark.up&variable.deathmark_exsanguinate_condition&variable.deathmark_ma_condition
# Sync the priority stat buff trinket with Deathmark, otherwise use on cooldown
actions.cds+=/use_item,name=algethar_puzzle_box,use_off_gcd=1,if=(!talent.exsanguinate|cooldown.exsanguinate.remains>15|exsanguinated.rupture|exsanguinated.garrote)&dot.rupture.ticking&cooldown.deathmark.remains<2|fight_remains<=22
actions.cds+=/use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(debuff.deathmark.up|fight_remains<=20)|(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready|!debuff.deathmark.up&cooldown.deathmark.remains>20))|!variable.trinket_sync_slot)
actions.cds+=/use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(debuff.deathmark.up|fight_remains<=20)|(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready|!debuff.deathmark.up&cooldown.deathmark.remains>20))|!variable.trinket_sync_slot)
actions.cds+=/deathmark,if=variable.deathmark_condition
actions.cds+=/kingsbane,if=(debuff.shiv.up|cooldown.shiv.remains<6)&buff.envenom.up&(cooldown.deathmark.remains>=50|dot.deathmark.ticking)
# Exsanguinate when not stealthed and both Rupture and Garrote are up for long enough. Attempt to sync with Deathmark and also Echoing Reprimand if using Resounding Clarity.
actions.cds+=/variable,name=exsanguinate_condition,value=talent.exsanguinate&!stealthed.rogue&!stealthed.improved_garrote&!dot.deathmark.ticking&target.time_to_die>variable.exsang_sync_remains+4&variable.exsang_sync_remains<4
actions.cds+=/echoing_reprimand,if=talent.exsanguinate&talent.resounding_clarity&(variable.exsanguinate_condition&combo_points<=2&variable.exsang_sync_remains<=2&!dot.garrote.refreshable&dot.rupture.remains>9.6|variable.exsang_sync_remains>40)
actions.cds+=/exsanguinate,if=variable.exsanguinate_condition&(!dot.garrote.refreshable&dot.rupture.remains>4+4*variable.exsanguinate_rupture_cp|dot.rupture.remains*0.5>target.time_to_die)
# Shiv if DoTs are up; Always Shiv with Kingsbane, otherwise attempt to sync with Sepsis or Deathmark if we won't waste more than half Shiv's cooldown
actions.cds+=/shiv,if=talent.kingsbane&!debuff.shiv.up&dot.kingsbane.ticking&dot.garrote.ticking&dot.rupture.ticking&(!talent.crimson_tempest.enabled|variable.single_target|dot.crimson_tempest.ticking)
actions.cds+=/shiv,if=talent.arterial_precision&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&(debuff.deathmark.up|cooldown.shiv.charges_fractional>max_charges-0.5&cooldown.deathmark.remains>10)
actions.cds+=/shiv,if=talent.sepsis&!talent.kingsbane&!talent.arterial_precision&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&((cooldown.sepsis.ready|cooldown.sepsis.remains>12)+(cooldown.deathmark.ready|cooldown.deathmark.remains>12)=2)
actions.cds+=/shiv,if=!talent.kingsbane&!talent.arterial_precision&!talent.sepsis&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&(!talent.crimson_tempest.enabled|variable.single_target|dot.crimson_tempest.ticking)
actions.cds+=/thistle_tea,if=!buff.thistle_tea.up&(energy.deficit>=100|charges=3&(dot.kingsbane.ticking|debuff.deathmark.up)|fight_remains<charges*6)
actions.cds+=/indiscriminate_carnage,if=(spell_targets.fan_of_knives>desired_targets|spell_targets.fan_of_knives>1&raid_event.adds.in>60)&(!talent.improved_garrote|cooldown.vanish.remains>45)
actions.cds+=/potion,if=buff.bloodlust.react|fight_remains<30|debuff.deathmark.up
actions.cds+=/blood_fury,if=debuff.deathmark.up
actions.cds+=/berserking,if=debuff.deathmark.up
actions.cds+=/fireblood,if=debuff.deathmark.up
actions.cds+=/ancestral_call,if=debuff.deathmark.up
actions.cds+=/call_action_list,name=vanish,if=!stealthed.all&master_assassin_remains=0
actions.cds+=/cold_blood,if=combo_points>=4

# Direct damage abilities  Envenom at 4+ (5+ with DS) CP. Immediately on 2+ targets, with Deathmark, or with TB; otherwise wait for some energy. Also wait if Exsg combo is coming up.
actions.direct=envenom,if=effective_combo_points>=4+talent.deeper_stratagem.enabled&(debuff.deathmark.up|debuff.shiv.up|debuff.amplifying_poison.stack>=10|energy.deficit<=25+energy.regen_combined|!variable.single_target|effective_combo_points>cp_max_spend)&(!talent.exsanguinate.enabled|variable.exsang_sync_remains>2|talent.resounding_clarity&(cooldown.echoing_reprimand.ready&combo_points>2|effective_combo_points>5))
actions.direct+=/variable,name=use_filler,value=combo_points.deficit>1|energy.deficit<=25+energy.regen_combined|!variable.single_target
# Apply SBS to all targets without a debuff as priority, preferring targets dying sooner after the primary target
actions.direct+=/serrated_bone_spike,if=variable.use_filler&!dot.serrated_bone_spike_dot.ticking
actions.direct+=/serrated_bone_spike,target_if=min:target.time_to_die+(dot.serrated_bone_spike_dot.ticking*600),if=variable.use_filler&!dot.serrated_bone_spike_dot.ticking
# Keep from capping charges or burn at the end of fights
actions.direct+=/serrated_bone_spike,if=variable.use_filler&master_assassin_remains<0.8&(fight_remains<=5|cooldown.serrated_bone_spike.max_charges-charges_fractional<=0.25)
# When MA is not at high duration, sync with Shiv
actions.direct+=/serrated_bone_spike,if=variable.use_filler&master_assassin_remains<0.8&!variable.single_target&debuff.shiv.up
actions.direct+=/echoing_reprimand,if=(!talent.exsanguinate|!talent.resounding_clarity)&variable.use_filler&cooldown.deathmark.remains>10|fight_remains<20
# Fan of Knives at 3+ targets or 4+ with DTB
actions.direct+=/fan_of_knives,if=variable.use_filler&(!priority_rotation&spell_targets.fan_of_knives>=3+stealthed.rogue+talent.dragontempered_blades)
# Fan of Knives to apply poisons if inactive on any target (or any bleeding targets with priority rotation) at 3T
actions.direct+=/fan_of_knives,target_if=!dot.deadly_poison_dot.ticking&(!priority_rotation|dot.garrote.ticking|dot.rupture.ticking),if=variable.use_filler&spell_targets.fan_of_knives>=3
actions.direct+=/ambush,if=variable.use_filler
# Tab-Mutilate to apply Deadly Poison at 2 targets
actions.direct+=/mutilate,target_if=!dot.deadly_poison_dot.ticking&!debuff.amplifying_poison.up,if=variable.use_filler&spell_targets.fan_of_knives=2
actions.direct+=/mutilate,if=variable.use_filler

# Damage over time abilities  Limit secondary Garrotes for priority rotation if we have 35 energy regen or Garrote will expire on the primary target
actions.dot=variable,name=skip_cycle_garrote,value=priority_rotation&(dot.garrote.remains<cooldown.garrote.duration|variable.regen_saturated)
# Limit secondary Ruptures for priority rotation if we have 35 energy regen or Shiv is up on 2T+
actions.dot+=/variable,name=skip_cycle_rupture,value=priority_rotation&(debuff.shiv.up&spell_targets.fan_of_knives>2|variable.regen_saturated)
# Limit Ruptures when appropriate, not currently used
actions.dot+=/variable,name=skip_rupture,value=0
# Special Garrote and Rupture setup prior to Exsanguinate cast
actions.dot+=/garrote,if=talent.exsanguinate.enabled&!will_lose_exsanguinate&dot.garrote.pmultiplier<=1&variable.exsang_sync_remains<2&spell_targets.fan_of_knives=1&raid_event.adds.in>6&dot.garrote.remains*0.5<target.time_to_die
actions.dot+=/rupture,if=talent.exsanguinate.enabled&!will_lose_exsanguinate&dot.rupture.pmultiplier<=1&variable.exsang_sync_remains<1&effective_combo_points>=variable.exsanguinate_rupture_cp&dot.rupture.remains*0.5<target.time_to_die
# Garrote upkeep, also tries to use it as a special generator for the last CP before a finisher
actions.dot+=/pool_resource,for_next=1
actions.dot+=/garrote,if=refreshable&combo_points.deficit>=1&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate|remains<=tick_time*2&spell_targets.fan_of_knives>=3)&(target.time_to_die-remains)>4&master_assassin_remains=0
actions.dot+=/pool_resource,for_next=1
actions.dot+=/garrote,cycle_targets=1,if=!variable.skip_cycle_garrote&target!=self.target&refreshable&combo_points.deficit>=1&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate|remains<=tick_time*2&spell_targets.fan_of_knives>=3)&(target.time_to_die-remains)>12&master_assassin_remains=0
# Crimson Tempest on multiple targets at 4+ CP when running out in 2-5s as long as we have enough regen and aren't setting up for Deathmark
actions.dot+=/crimson_tempest,target_if=min:remains,if=spell_targets>=2&effective_combo_points>=4&energy.regen_combined>20&(!cooldown.deathmark.ready|dot.rupture.ticking)&remains<(2+3*(spell_targets>=4))
# Keep up Rupture at 4+ on all targets (when living long enough and not snapshot)
actions.dot+=/rupture,if=!variable.skip_rupture&effective_combo_points>=4&refreshable&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate|remains<=tick_time*2&spell_targets.fan_of_knives>=3)&target.time_to_die-remains>(4+(talent.dashing_scoundrel*5)+(talent.doomblade*5)+(variable.regen_saturated*6))
actions.dot+=/rupture,cycle_targets=1,if=!variable.skip_cycle_rupture&!variable.skip_rupture&target!=self.target&effective_combo_points>=4&refreshable&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate|remains<=tick_time*2&spell_targets.fan_of_knives>=3)&target.time_to_die-remains>(4+(talent.dashing_scoundrel*5)+(talent.doomblade*5)+(variable.regen_saturated*6))
# Fallback AoE Crimson Tempest with the same logic as above, but ignoring the energy conditions if we aren't using Rupture
actions.dot+=/crimson_tempest,if=spell_targets>=2&effective_combo_points>=4&remains<2+3*(spell_targets>=4)
# Crimson Tempest on ST if in pandemic and nearly max energy and if Envenom won't do more damage due to TB/MA
actions.dot+=/crimson_tempest,if=spell_targets=1&!talent.dashing_scoundrel&effective_combo_points>=(cp_max_spend-1)&refreshable&!will_lose_exsanguinate&!debuff.shiv.up&debuff.amplifying_poison.stack<15&(!talent.kingsbane|buff.envenom.up|!cooldown.kingsbane.up)&target.time_to_die-remains>4

# Stealthed Actions
actions.stealthed=indiscriminate_carnage,if=spell_targets.fan_of_knives>desired_targets|spell_targets.fan_of_knives>1&raid_event.adds.in>60
# Improved Garrote: Apply or Refresh with buffed Garrotes
actions.stealthed+=/pool_resource,for_next=1
actions.stealthed+=/garrote,target_if=min:remains,if=stealthed.improved_garrote&!will_lose_exsanguinate&(remains<12%exsanguinated_rate|pmultiplier<=1)&target.time_to_die-remains>2
# Improved Garrote + Exsg on 1T: Refresh Garrote at the end of stealth to get max duration before Exsanguinate
actions.stealthed+=/pool_resource,for_next=1
actions.stealthed+=/garrote,if=talent.exsanguinate.enabled&stealthed.improved_garrote&active_enemies=1&!will_lose_exsanguinate&(remains<18%exsanguinated_rate|pmultiplier<=1)&variable.exsang_sync_remains<18&improved_garrote_remains<1.3

# Stealth Cooldowns  Vanish Sync for Improved Garrote with Deathmark
actions.vanish=pool_resource,for_next=1,extra_amount=45
actions.vanish+=/vanish,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1|dot.garrote.refreshable)&(debuff.deathmark.up|cooldown.deathmark.remains<4)&combo_points.deficit>=(spell_targets.fan_of_knives>?4)
# Vanish for Indiscriminate Carnage or Improved Garrote at 2-3+ targets
actions.vanish+=/pool_resource,for_next=1,extra_amount=45
actions.vanish+=/vanish,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1|dot.garrote.refreshable)&spell_targets.fan_of_knives>(3-talent.indiscriminate_carnage)&(!talent.indiscriminate_carnage|cooldown.indiscriminate_carnage.ready)
# Vanish with Master Assassin: Rupture+Garrote not in refresh range, during Deathmark+Shiv. Sync with Sepsis final hit if possible.
actions.vanish+=/vanish,if=!talent.improved_garrote&talent.master_assassin&!dot.rupture.refreshable&dot.garrote.remains>3&debuff.deathmark.up&(debuff.shiv.up|debuff.deathmark.remains<4|dot.sepsis.ticking)&dot.sepsis.remains<3
actions.vanish+=/pool_resource,for_next=1,extra_amount=45
# Shadow Dance for Improved Garrote with Deathmark
actions.vanish+=/shadow_dance,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1|dot.garrote.refreshable)&(debuff.deathmark.up|cooldown.deathmark.remains<12|cooldown.deathmark.remains>60)&combo_points.deficit>=(spell_targets.fan_of_knives>?4)
# Shadow Dance with Master Assassin: Rupture+Garrote not in refresh range, during Deathmark+Shiv. Sync with Sepsis final hit if possible.
actions.vanish+=/shadow_dance,if=!talent.improved_garrote&talent.master_assassin&!dot.rupture.refreshable&dot.garrote.remains>3&(debuff.deathmark.up|cooldown.deathmark.remains>60)&(debuff.shiv.up|debuff.deathmark.remains<4|dot.sepsis.ticking)&dot.sepsis.remains<3

head=windborne_hatsuburi,id=195492,bonus_id=6652/7937/8825/8820/7980/1485/8767
neck=ukhel_ancestry_beads,id=193676,bonus_id=8962/7977/6652/7937/8784/9144/1601/8767
shoulders=ottuk_hide_epaulets,id=192014,bonus_id=9136/6652/1524/8767
back=obsidian_cape,id=200971
chest=ottuk_hide_vest,id=192013,bonus_id=6652/1485/5864/8767,enchant=waking_stats_2
shirt=sawbones_shirt,id=14617
wrists=bindings_of_raging_tempests,id=199430,bonus_id=8943/6652/7936/8822/8819/1507/8767,enchant=devotion_of_avoidance_2
hands=vault_delvers_lockbreakers,id=200371,bonus_id=7979/41/8829/1472/8767
waist=cinderfang_wrap,id=200660,bonus_id=8821/8818/7979/6652/7936/1478/8767
legs=vault_delvers_pantaloons,id=200373,bonus_id=41/8827/8965/7977/1472/8767
feet=biornskin_moccasins,id=134193,bonus_id=8963/7977/6652/8822/8818/9144/3261/8767,enchant=riders_reassurance_2
finger1=ring_of_embers,id=200163,bonus_id=6652/7936/1475/5864/8767,enchant=devotion_of_mastery_2
finger2=platinum_star_band,id=193708,bonus_id=7977/6652/7937/1594/8767,enchant=devotion_of_mastery_2
trinket1=staticcharged_scale,id=200676,bonus_id=6652/1478/8767
trinket2=seasoned_hunters_trophy,id=200859,bonus_id=6652/1488/5864/8767
main_hand=fenryrs_bloodstained_fang,id=201998,bonus_id=8969/7977/40/9147/1624/8767,enchant=sophic_devotion_2
off_hand=draconium_dirk,id=190483,bonus_id=8851/8852/8800/8850,enchant=sophic_devotion_2,crafted_stats=haste/crit

# Gear Summary
# gear_ilvl=388.56
# gear_agility=3953
# gear_stamina=8676
# gear_crit_rating=3946
# gear_haste_rating=1800
# gear_mastery_rating=2057
# gear_versatility_rating=801
# gear_leech_rating=497
# gear_avoidance_rating=325
# gear_armor=2807
# set_bonus=tier29_2pc=1

fight_style=DungeonRoute
override.bloodlust=0
override.arcane_intellect=0
override.power_word_fortitude=0
override.battle_shout=0
override.mystic_touch=0
override.chaos_brand=0
override.bleeding=0
single_actor_batch=1
max_time=0
enemy="Ruby Life Pools"
enemy_health=999999
keystone_level=15
raid_events=/invulnerable,cooldown=5160,duration=5160,retarget=1
raid_events+=/pull,pull=01,bloodlust=0,delay=025,cooldown=1,mark_duration=10,enemies="flashfrost-earthshaper_1":622304|"primal-terrasentry_1":622304
raid_events+=/pull,pull=03,bloodlust=0,delay=001,cooldown=1,mark_duration=10,enemies="flashfrost-earthshaper_1":622304|"flashfrost-earthshaper_2":622304|"flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=04,bloodlust=0,delay=003,cooldown=1,mark_duration=10,enemies="infused-whelp_1":248921|"infused-whelp_2":248921|"infused-whelp_3":248921|"infused-whelp_4":248921|"infused-whelp_5":248921|"infused-whelp_6":248921
raid_events+=/pull,pull=05,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="primal-terrasentry_1":622304|"primal-terrasentry_2":622304|"flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=06,bloodlust=0,delay=002,cooldown=1,mark_duration=10,enemies="primal-terrasentry_1":622304|"primal-terrasentry_2":622304|"flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=07,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="flashfrost-earthshaper_1":622304|"flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=08,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="infused-whelp_1":248921|"infused-whelp_2":248921|"infused-whelp_3":248921|"infused-whelp_4":248921|"infused-whelp_5":248921|"infused-whelp_6":248921|"infused-whelp_7":248921
raid_events+=/pull,pull=12,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=13,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="primal-juggernaut_1":1244608
raid_events+=/pull,pull=14,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="BOSS_defier-draghar_1":1554022
raid_events+=/pull,pull=15,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="infused-whelp_1":248921|"infused-whelp_2":248921|"infused-whelp_3":248921
raid_events+=/pull,pull=16,bloodlust=0,delay=012,cooldown=1,mark_duration=10,enemies="BOSS_melidrussa-chillworn_1":3626052
raid_events+=/pull,pull=17,bloodlust=0,delay=007,cooldown=1,mark_duration=10,enemies="scorchling_1":124460|"scorchling_2":124460|"scorchling_3":124460|"scorchling_4":124460|"scorchling_5":124460|"BOSS_thunderhead_1":1554022|"primalist-shockcaster_1":995686
raid_events+=/pull,pull=18,bloodlust=0,delay=011,cooldown=1,mark_duration=10,enemies="primalist-cinderweaver_1":622304|"primalist-cinderweaver_2":622304|"primalist-cinderweaver_3":622304|"blazebound-destroyer_1":1057917|"primalist-flamedancer_1":746765|"primalist-flamedancer_2":746765|"scorchling_1":124460
raid_events+=/pull,pull=19,bloodlust=0,delay=006,cooldown=1,mark_duration=10,enemies="primalist-cinderweaver_1":622304|"blazebound-destroyer_1":1057917|"primalist-flamedancer_1":746765|"primalist-shockcaster_1":995686|"scorchling_1":124460|"scorchling_2":124460
raid_events+=/pull,pull=19,bloodlust=0,delay=036,cooldown=1,mark_duration=10,enemies="primalist-cinderweaver_1":622304|"primalist-cinderweaver_2":622304|"primalist-flamedancer_1":746765
raid_events+=/pull,pull=20,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="scorchling_1":124460|"scorchling_2":124460|"scorchling_3":124460|"scorchling_4":124460|"primalist-shockcaster_1":995686|"BOSS_kokia-blazehoof_1":3626052
raid_events+=/pull,pull=21,bloodlust=0,delay=035,cooldown=1,mark_duration=10,enemies="scorchling_1":124460|"scorchling_2":124460|"scorchling_3":124460
raid_events+=/pull,pull=21,bloodlust=0,delay=043,cooldown=1,mark_duration=10,enemies="storm-warrior_1":622304|"storm-warrior_2":622304|"primal-thundercloud_1":92956
raid_events+=/pull,pull=22,bloodlust=0,delay=037,cooldown=1,mark_duration=10,enemies="BOSS_flamegullet_1":1554022
raid_events+=/pull,pull=23,bloodlust=0,delay=022,cooldown=1,mark_duration=10,enemies="scorchling_1":124460|"scorchling_2":124460|"scorchling_3":124460|"scorchling_4":124460|"scorchling_5":124460|"scorchling_6":124460|"scorchling_7":124460|"scorchling_8":124460|"primalist-cinderweaver_1":622304|"primalist-cinderweaver_2":622304|"blazebound-destroyer_1":1057917|"blazebound-destroyer_2":1057917|"primalist-flamedancer_1":746765|"primalist-flamedancer_2":746765|"primalist-shockcaster_1":995686
raid_events+=/pull,pull=24,bloodlust=0,delay=023,cooldown=1,mark_duration=10,enemies="primal-thundercloud_1":92956|"primal-thundercloud_2":92956
raid_events+=/pull,pull=25,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="primal-thundercloud_1":92956|"primal-thundercloud_2":92956|"primal-thundercloud_3":92956|"tempest-channeler_1":995686
raid_events+=/pull,pull=26,bloodlust=0,delay=003,cooldown=1,mark_duration=10,enemies="storm-warrior_1":622304|"storm-warrior_2":622304
raid_events+=/pull,pull=27,bloodlust=0,delay=001,cooldown=1,mark_duration=10,enemies="storm-warrior_1":622304|"storm-warrior_2":622304|"flame-channeler_1":995686
### End simulateText ###
desired_targets=1
### Begin overrides ###
# User-specified persistent global and player parameters will be set here.

### End overrides ###
### Begin final options ###
### End final options ###
### END ###

options ###
### END ###
```




### Additional information
* SimulationCraft Version (required)
simc-1005.01.9144cc9-win64

* If SimulationCraft is crashing, please include your **dxdiag** file - Instructions here - 
  https://us.battle.net/support/en/article/Obtaining-System-Files

* **simc_gui.simc** file or contents
### SimulationCraft 1005-01 for World of Warcraft 10.0.5.48069 Live (wow build 48069, git build dragonflight 9144cc9)  ###
### Using QT 6.4.0 with WebEngine ###

### Begin GUI options ###
ptr=0
item_db_source=ptrhead/local/bcpapi/wowhead
target_error=0
iterations=0
default_world_lag=0.05
max_time=300
vary_combat_length=0.2
tmi_window_global=6
target_level+=3
target_race=Humanoid
optimal_raid=0
override.bloodlust=1
override.arcane_intellect=1
override.power_word_fortitude=1
override.battle_shout=1
override.mark_of_the_wild=0
override.windfury_totem=0
override.bleeding=1
override.mortal_wounds=1
override.chaos_brand=1
override.mystic_touch=1
threads=16
process_priority=Low
calculate_scale_factors=1
scale_only=str,agi,sta,int,sp,ap,crit,haste,mastery,vers,wdps,wohdps,armor,bonusarmor,leech,runspeed
statistics_level=1
### End GUI options ###
### Begin simulateText ###
rogue="Sethé"
source=blizzard
origin="https://worldofwarcraft.com/en-gb/character/tarren-mill/seth%C3%A9"
spec=assassination
level=70
race=blood_elf
role=attack
position=back
talents=BMQAAAAAAAAAAAAAAAAAAAAAAgkIJJJClEAAAAAAAJJBSiAAAAAAAEFSiDUSCIJpEIJJJBRiFA

# Default consumables
potion=elemental_potion_of_ultimate_power_3
flask=phial_of_tepid_versatility_3
food=fated_fortune_cookie
augmentation=draconic
temporary_enchant=main_hand:buzzing_rune_3/off_hand:buzzing_rune_3

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=apply_poison
actions.precombat+=/flask
actions.precombat+=/augmentation
actions.precombat+=/food
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/marked_for_death,precombat_seconds=10,if=raid_event.adds.in>15
# Determine which (if any) stat buff trinket we want to attempt to sync with Deathmark.
actions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_stat.any_dps&(!trinket.2.has_stat.any_dps|trinket.1.cooldown.duration>=trinket.2.cooldown.duration)
actions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_stat.any_dps&(!trinket.1.has_stat.any_dps|trinket.2.cooldown.duration>trinket.1.cooldown.duration)
# Determine if we should be be casting our pre-Exsanguinate Rupture with Echoing Reprimand CP
actions.precombat+=/variable,name=exsanguinate_rupture_cp,value=cp_max_spend<?(talent.resounding_clarity*7)
actions.precombat+=/stealth
actions.precombat+=/slice_and_dice,precombat_seconds=1

# Executed every time the actor is available.
# Restealth if possible (no vulnerable enemies in combat)
actions=stealth
# Interrupt on cooldown to allow simming interactions with that
actions+=/kick
actions+=/variable,name=single_target,value=spell_targets.fan_of_knives<2
# Combined Energy Regen needed to saturate
actions+=/variable,name=regen_saturated,value=energy.regen_combined>35
# Next Exsanguinate cooldown time based on Deathmark syncing logic and remaining fight duration
actions+=/variable,name=exsang_sync_remains,op=setif,condition=cooldown.deathmark.remains>cooldown.exsanguinate.remains&cooldown.deathmark.remains<fight_remains,value=cooldown.deathmark.remains,value_else=cooldown.exsanguinate.remains
actions+=/call_action_list,name=stealthed,if=stealthed.rogue|stealthed.improved_garrote
actions+=/call_action_list,name=cds
# Put SnD up initially for Cut to the Chase, refresh with Envenom if at low duration
actions+=/slice_and_dice,if=!buff.slice_and_dice.up&combo_points>=2|!talent.cut_to_the_chase&refreshable&combo_points>=4
actions+=/envenom,if=talent.cut_to_the_chase&buff.slice_and_dice.up&buff.slice_and_dice.remains<5&combo_points>=4
actions+=/call_action_list,name=dot
actions+=/call_action_list,name=direct
actions+=/arcane_torrent,if=energy.deficit>=15+energy.regen_combined
actions+=/arcane_pulse
actions+=/lights_judgment
actions+=/bag_of_tricks

# Cooldowns  If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.
actions.cds=marked_for_death,line_cd=1.5,target_if=min:target.time_to_die,if=raid_event.adds.up&(!variable.single_target|target.time_to_die<30)&(target.time_to_die<combo_points.deficit*1.5|combo_points.deficit>=cp_max_spend)
# If no adds will die within the next 30s, use MfD for max CP.
actions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&combo_points.deficit>=cp_max_spend
# Sync Deathmark window with Exsanguinate if applicable
actions.cds+=/variable,name=deathmark_exsanguinate_condition,value=!talent.exsanguinate|cooldown.exsanguinate.remains>15|exsanguinated.rupture|exsanguinated.garrote
# Wait on Deathmark for Garrote with MA
actions.cds+=/variable,name=deathmark_ma_condition,value=!talent.master_assassin.enabled|dot.garrote.ticking
actions.cds+=/sepsis,if=!stealthed.rogue&!stealthed.improved_garrote&(!talent.improved_garrote&dot.garrote.ticking|talent.improved_garrote&cooldown.garrote.up)&(target.time_to_die>10|fight_remains<10)
# Deathmark to be used if not stealthed, Rupture is up, and all other talent conditions are satisfied
actions.cds+=/variable,name=deathmark_condition,value=!stealthed.rogue&dot.rupture.ticking&!debuff.deathmark.up&variable.deathmark_exsanguinate_condition&variable.deathmark_ma_condition
# Sync the priority stat buff trinket with Deathmark, otherwise use on cooldown
actions.cds+=/use_item,name=algethar_puzzle_box,use_off_gcd=1,if=(!talent.exsanguinate|cooldown.exsanguinate.remains>15|exsanguinated.rupture|exsanguinated.garrote)&dot.rupture.ticking&cooldown.deathmark.remains<2|fight_remains<=22
actions.cds+=/use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(debuff.deathmark.up|fight_remains<=20)|(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready|!debuff.deathmark.up&cooldown.deathmark.remains>20))|!variable.trinket_sync_slot)
actions.cds+=/use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(debuff.deathmark.up|fight_remains<=20)|(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready|!debuff.deathmark.up&cooldown.deathmark.remains>20))|!variable.trinket_sync_slot)
actions.cds+=/deathmark,if=variable.deathmark_condition
actions.cds+=/kingsbane,if=(debuff.shiv.up|cooldown.shiv.remains<6)&buff.envenom.up&(cooldown.deathmark.remains>=50|dot.deathmark.ticking)
# Exsanguinate when not stealthed and both Rupture and Garrote are up for long enough. Attempt to sync with Deathmark and also Echoing Reprimand if using Resounding Clarity.
actions.cds+=/variable,name=exsanguinate_condition,value=talent.exsanguinate&!stealthed.rogue&!stealthed.improved_garrote&!dot.deathmark.ticking&target.time_to_die>variable.exsang_sync_remains+4&variable.exsang_sync_remains<4
actions.cds+=/echoing_reprimand,if=talent.exsanguinate&talent.resounding_clarity&(variable.exsanguinate_condition&combo_points<=2&variable.exsang_sync_remains<=2&!dot.garrote.refreshable&dot.rupture.remains>9.6|variable.exsang_sync_remains>40)
actions.cds+=/exsanguinate,if=variable.exsanguinate_condition&(!dot.garrote.refreshable&dot.rupture.remains>4+4*variable.exsanguinate_rupture_cp|dot.rupture.remains*0.5>target.time_to_die)
# Shiv if DoTs are up; Always Shiv with Kingsbane, otherwise attempt to sync with Sepsis or Deathmark if we won't waste more than half Shiv's cooldown
actions.cds+=/shiv,if=talent.kingsbane&!debuff.shiv.up&dot.kingsbane.ticking&dot.garrote.ticking&dot.rupture.ticking&(!talent.crimson_tempest.enabled|variable.single_target|dot.crimson_tempest.ticking)
actions.cds+=/shiv,if=talent.arterial_precision&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&(debuff.deathmark.up|cooldown.shiv.charges_fractional>max_charges-0.5&cooldown.deathmark.remains>10)
actions.cds+=/shiv,if=talent.sepsis&!talent.kingsbane&!talent.arterial_precision&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&((cooldown.sepsis.ready|cooldown.sepsis.remains>12)+(cooldown.deathmark.ready|cooldown.deathmark.remains>12)=2)
actions.cds+=/shiv,if=!talent.kingsbane&!talent.arterial_precision&!talent.sepsis&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&(!talent.crimson_tempest.enabled|variable.single_target|dot.crimson_tempest.ticking)
actions.cds+=/thistle_tea,if=!buff.thistle_tea.up&(energy.deficit>=100|charges=3&(dot.kingsbane.ticking|debuff.deathmark.up)|fight_remains<charges*6)
actions.cds+=/indiscriminate_carnage,if=(spell_targets.fan_of_knives>desired_targets|spell_targets.fan_of_knives>1&raid_event.adds.in>60)&(!talent.improved_garrote|cooldown.vanish.remains>45)
actions.cds+=/potion,if=buff.bloodlust.react|fight_remains<30|debuff.deathmark.up
actions.cds+=/blood_fury,if=debuff.deathmark.up
actions.cds+=/berserking,if=debuff.deathmark.up
actions.cds+=/fireblood,if=debuff.deathmark.up
actions.cds+=/ancestral_call,if=debuff.deathmark.up
actions.cds+=/call_action_list,name=vanish,if=!stealthed.all&master_assassin_remains=0
actions.cds+=/cold_blood,if=combo_points>=4

# Direct damage abilities  Envenom at 4+ (5+ with DS) CP. Immediately on 2+ targets, with Deathmark, or with TB; otherwise wait for some energy. Also wait if Exsg combo is coming up.
actions.direct=envenom,if=effective_combo_points>=4+talent.deeper_stratagem.enabled&(debuff.deathmark.up|debuff.shiv.up|debuff.amplifying_poison.stack>=10|energy.deficit<=25+energy.regen_combined|!variable.single_target|effective_combo_points>cp_max_spend)&(!talent.exsanguinate.enabled|variable.exsang_sync_remains>2|talent.resounding_clarity&(cooldown.echoing_reprimand.ready&combo_points>2|effective_combo_points>5))
actions.direct+=/variable,name=use_filler,value=combo_points.deficit>1|energy.deficit<=25+energy.regen_combined|!variable.single_target
# Apply SBS to all targets without a debuff as priority, preferring targets dying sooner after the primary target
actions.direct+=/serrated_bone_spike,if=variable.use_filler&!dot.serrated_bone_spike_dot.ticking
actions.direct+=/serrated_bone_spike,target_if=min:target.time_to_die+(dot.serrated_bone_spike_dot.ticking*600),if=variable.use_filler&!dot.serrated_bone_spike_dot.ticking
# Keep from capping charges or burn at the end of fights
actions.direct+=/serrated_bone_spike,if=variable.use_filler&master_assassin_remains<0.8&(fight_remains<=5|cooldown.serrated_bone_spike.max_charges-charges_fractional<=0.25)
# When MA is not at high duration, sync with Shiv
actions.direct+=/serrated_bone_spike,if=variable.use_filler&master_assassin_remains<0.8&!variable.single_target&debuff.shiv.up
actions.direct+=/echoing_reprimand,if=(!talent.exsanguinate|!talent.resounding_clarity)&variable.use_filler&cooldown.deathmark.remains>10|fight_remains<20
# Fan of Knives at 3+ targets or 4+ with DTB
actions.direct+=/fan_of_knives,if=variable.use_filler&(!priority_rotation&spell_targets.fan_of_knives>=3+stealthed.rogue+talent.dragontempered_blades)
# Fan of Knives to apply poisons if inactive on any target (or any bleeding targets with priority rotation) at 3T
actions.direct+=/fan_of_knives,target_if=!dot.deadly_poison_dot.ticking&(!priority_rotation|dot.garrote.ticking|dot.rupture.ticking),if=variable.use_filler&spell_targets.fan_of_knives>=3
actions.direct+=/ambush,if=variable.use_filler
# Tab-Mutilate to apply Deadly Poison at 2 targets
actions.direct+=/mutilate,target_if=!dot.deadly_poison_dot.ticking&!debuff.amplifying_poison.up,if=variable.use_filler&spell_targets.fan_of_knives=2
actions.direct+=/mutilate,if=variable.use_filler

# Damage over time abilities  Limit secondary Garrotes for priority rotation if we have 35 energy regen or Garrote will expire on the primary target
actions.dot=variable,name=skip_cycle_garrote,value=priority_rotation&(dot.garrote.remains<cooldown.garrote.duration|variable.regen_saturated)
# Limit secondary Ruptures for priority rotation if we have 35 energy regen or Shiv is up on 2T+
actions.dot+=/variable,name=skip_cycle_rupture,value=priority_rotation&(debuff.shiv.up&spell_targets.fan_of_knives>2|variable.regen_saturated)
# Limit Ruptures when appropriate, not currently used
actions.dot+=/variable,name=skip_rupture,value=0
# Special Garrote and Rupture setup prior to Exsanguinate cast
actions.dot+=/garrote,if=talent.exsanguinate.enabled&!will_lose_exsanguinate&dot.garrote.pmultiplier<=1&variable.exsang_sync_remains<2&spell_targets.fan_of_knives=1&raid_event.adds.in>6&dot.garrote.remains*0.5<target.time_to_die
actions.dot+=/rupture,if=talent.exsanguinate.enabled&!will_lose_exsanguinate&dot.rupture.pmultiplier<=1&variable.exsang_sync_remains<1&effective_combo_points>=variable.exsanguinate_rupture_cp&dot.rupture.remains*0.5<target.time_to_die
# Garrote upkeep, also tries to use it as a special generator for the last CP before a finisher
actions.dot+=/pool_resource,for_next=1
actions.dot+=/garrote,if=refreshable&combo_points.deficit>=1&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate|remains<=tick_time*2&spell_targets.fan_of_knives>=3)&(target.time_to_die-remains)>4&master_assassin_remains=0
actions.dot+=/pool_resource,for_next=1
actions.dot+=/garrote,cycle_targets=1,if=!variable.skip_cycle_garrote&target!=self.target&refreshable&combo_points.deficit>=1&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate|remains<=tick_time*2&spell_targets.fan_of_knives>=3)&(target.time_to_die-remains)>12&master_assassin_remains=0
# Crimson Tempest on multiple targets at 4+ CP when running out in 2-5s as long as we have enough regen and aren't setting up for Deathmark
actions.dot+=/crimson_tempest,target_if=min:remains,if=spell_targets>=2&effective_combo_points>=4&energy.regen_combined>20&(!cooldown.deathmark.ready|dot.rupture.ticking)&remains<(2+3*(spell_targets>=4))
# Keep up Rupture at 4+ on all targets (when living long enough and not snapshot)
actions.dot+=/rupture,if=!variable.skip_rupture&effective_combo_points>=4&refreshable&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate|remains<=tick_time*2&spell_targets.fan_of_knives>=3)&target.time_to_die-remains>(4+(talent.dashing_scoundrel*5)+(talent.doomblade*5)+(variable.regen_saturated*6))
actions.dot+=/rupture,cycle_targets=1,if=!variable.skip_cycle_rupture&!variable.skip_rupture&target!=self.target&effective_combo_points>=4&refreshable&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate|remains<=tick_time*2&spell_targets.fan_of_knives>=3)&target.time_to_die-remains>(4+(talent.dashing_scoundrel*5)+(talent.doomblade*5)+(variable.regen_saturated*6))
# Fallback AoE Crimson Tempest with the same logic as above, but ignoring the energy conditions if we aren't using Rupture
actions.dot+=/crimson_tempest,if=spell_targets>=2&effective_combo_points>=4&remains<2+3*(spell_targets>=4)
# Crimson Tempest on ST if in pandemic and nearly max energy and if Envenom won't do more damage due to TB/MA
actions.dot+=/crimson_tempest,if=spell_targets=1&!talent.dashing_scoundrel&effective_combo_points>=(cp_max_spend-1)&refreshable&!will_lose_exsanguinate&!debuff.shiv.up&debuff.amplifying_poison.stack<15&(!talent.kingsbane|buff.envenom.up|!cooldown.kingsbane.up)&target.time_to_die-remains>4

# Stealthed Actions
actions.stealthed=indiscriminate_carnage,if=spell_targets.fan_of_knives>desired_targets|spell_targets.fan_of_knives>1&raid_event.adds.in>60
# Improved Garrote: Apply or Refresh with buffed Garrotes
actions.stealthed+=/pool_resource,for_next=1
actions.stealthed+=/garrote,target_if=min:remains,if=stealthed.improved_garrote&!will_lose_exsanguinate&(remains<12%exsanguinated_rate|pmultiplier<=1)&target.time_to_die-remains>2
# Improved Garrote + Exsg on 1T: Refresh Garrote at the end of stealth to get max duration before Exsanguinate
actions.stealthed+=/pool_resource,for_next=1
actions.stealthed+=/garrote,if=talent.exsanguinate.enabled&stealthed.improved_garrote&active_enemies=1&!will_lose_exsanguinate&(remains<18%exsanguinated_rate|pmultiplier<=1)&variable.exsang_sync_remains<18&improved_garrote_remains<1.3

# Stealth Cooldowns  Vanish Sync for Improved Garrote with Deathmark
actions.vanish=pool_resource,for_next=1,extra_amount=45
actions.vanish+=/vanish,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1|dot.garrote.refreshable)&(debuff.deathmark.up|cooldown.deathmark.remains<4)&combo_points.deficit>=(spell_targets.fan_of_knives>?4)
# Vanish for Indiscriminate Carnage or Improved Garrote at 2-3+ targets
actions.vanish+=/pool_resource,for_next=1,extra_amount=45
actions.vanish+=/vanish,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1|dot.garrote.refreshable)&spell_targets.fan_of_knives>(3-talent.indiscriminate_carnage)&(!talent.indiscriminate_carnage|cooldown.indiscriminate_carnage.ready)
# Vanish with Master Assassin: Rupture+Garrote not in refresh range, during Deathmark+Shiv. Sync with Sepsis final hit if possible.
actions.vanish+=/vanish,if=!talent.improved_garrote&talent.master_assassin&!dot.rupture.refreshable&dot.garrote.remains>3&debuff.deathmark.up&(debuff.shiv.up|debuff.deathmark.remains<4|dot.sepsis.ticking)&dot.sepsis.remains<3
actions.vanish+=/pool_resource,for_next=1,extra_amount=45
# Shadow Dance for Improved Garrote with Deathmark
actions.vanish+=/shadow_dance,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1|dot.garrote.refreshable)&(debuff.deathmark.up|cooldown.deathmark.remains<12|cooldown.deathmark.remains>60)&combo_points.deficit>=(spell_targets.fan_of_knives>?4)
# Shadow Dance with Master Assassin: Rupture+Garrote not in refresh range, during Deathmark+Shiv. Sync with Sepsis final hit if possible.
actions.vanish+=/shadow_dance,if=!talent.improved_garrote&talent.master_assassin&!dot.rupture.refreshable&dot.garrote.remains>3&(debuff.deathmark.up|cooldown.deathmark.remains>60)&(debuff.shiv.up|debuff.deathmark.remains<4|dot.sepsis.ticking)&dot.sepsis.remains<3

head=windborne_hatsuburi,id=195492,bonus_id=6652/7937/8825/8820/7980/1485/8767
neck=ukhel_ancestry_beads,id=193676,bonus_id=8962/7977/6652/7937/8784/9144/1601/8767
shoulders=ottuk_hide_epaulets,id=192014,bonus_id=9136/6652/1524/8767
back=obsidian_cape,id=200971
chest=ottuk_hide_vest,id=192013,bonus_id=6652/1485/5864/8767,enchant=waking_stats_2
shirt=sawbones_shirt,id=14617
wrists=bindings_of_raging_tempests,id=199430,bonus_id=8943/6652/7936/8822/8819/1507/8767,enchant=devotion_of_avoidance_2
hands=vault_delvers_lockbreakers,id=200371,bonus_id=7979/41/8829/1472/8767
waist=cinderfang_wrap,id=200660,bonus_id=8821/8818/7979/6652/7936/1478/8767
legs=vault_delvers_pantaloons,id=200373,bonus_id=41/8827/8965/7977/1472/8767
feet=biornskin_moccasins,id=134193,bonus_id=8963/7977/6652/8822/8818/9144/3261/8767,enchant=riders_reassurance_2
finger1=ring_of_embers,id=200163,bonus_id=6652/7936/1475/5864/8767,enchant=devotion_of_mastery_2
finger2=platinum_star_band,id=193708,bonus_id=7977/6652/7937/1594/8767,enchant=devotion_of_mastery_2
trinket1=staticcharged_scale,id=200676,bonus_id=6652/1478/8767
trinket2=seasoned_hunters_trophy,id=200859,bonus_id=6652/1488/5864/8767
main_hand=fenryrs_bloodstained_fang,id=201998,bonus_id=8969/7977/40/9147/1624/8767,enchant=sophic_devotion_2
off_hand=draconium_dirk,id=190483,bonus_id=8851/8852/8800/8850,enchant=sophic_devotion_2,crafted_stats=haste/crit

# Gear Summary
# gear_ilvl=388.56
# gear_agility=3953
# gear_stamina=8676
# gear_crit_rating=3946
# gear_haste_rating=1800
# gear_mastery_rating=2057
# gear_versatility_rating=801
# gear_leech_rating=497
# gear_avoidance_rating=325
# gear_armor=2807
# set_bonus=tier29_2pc=1

fight_style=DungeonRoute
override.bloodlust=0
override.arcane_intellect=0
override.power_word_fortitude=0
override.battle_shout=0
override.mystic_touch=0
override.chaos_brand=0
override.bleeding=0
single_actor_batch=1
max_time=0
enemy="Ruby Life Pools"
enemy_health=999999
keystone_level=15
raid_events=/invulnerable,cooldown=5160,duration=5160,retarget=1
raid_events+=/pull,pull=01,bloodlust=0,delay=025,cooldown=1,mark_duration=10,enemies="flashfrost-earthshaper_1":622304|"primal-terrasentry_1":622304
raid_events+=/pull,pull=03,bloodlust=0,delay=001,cooldown=1,mark_duration=10,enemies="flashfrost-earthshaper_1":622304|"flashfrost-earthshaper_2":622304|"flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=04,bloodlust=0,delay=003,cooldown=1,mark_duration=10,enemies="infused-whelp_1":248921|"infused-whelp_2":248921|"infused-whelp_3":248921|"infused-whelp_4":248921|"infused-whelp_5":248921|"infused-whelp_6":248921
raid_events+=/pull,pull=05,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="primal-terrasentry_1":622304|"primal-terrasentry_2":622304|"flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=06,bloodlust=0,delay=002,cooldown=1,mark_duration=10,enemies="primal-terrasentry_1":622304|"primal-terrasentry_2":622304|"flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=07,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="flashfrost-earthshaper_1":622304|"flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=08,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="infused-whelp_1":248921|"infused-whelp_2":248921|"infused-whelp_3":248921|"infused-whelp_4":248921|"infused-whelp_5":248921|"infused-whelp_6":248921|"infused-whelp_7":248921
raid_events+=/pull,pull=12,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="flashfrost-chillweaver_1":622304
raid_events+=/pull,pull=13,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="primal-juggernaut_1":1244608
raid_events+=/pull,pull=14,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="BOSS_defier-draghar_1":1554022
raid_events+=/pull,pull=15,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="infused-whelp_1":248921|"infused-whelp_2":248921|"infused-whelp_3":248921
raid_events+=/pull,pull=16,bloodlust=0,delay=012,cooldown=1,mark_duration=10,enemies="BOSS_melidrussa-chillworn_1":3626052
raid_events+=/pull,pull=17,bloodlust=0,delay=007,cooldown=1,mark_duration=10,enemies="scorchling_1":124460|"scorchling_2":124460|"scorchling_3":124460|"scorchling_4":124460|"scorchling_5":124460|"BOSS_thunderhead_1":1554022|"primalist-shockcaster_1":995686
raid_events+=/pull,pull=18,bloodlust=0,delay=011,cooldown=1,mark_duration=10,enemies="primalist-cinderweaver_1":622304|"primalist-cinderweaver_2":622304|"primalist-cinderweaver_3":622304|"blazebound-destroyer_1":1057917|"primalist-flamedancer_1":746765|"primalist-flamedancer_2":746765|"scorchling_1":124460
raid_events+=/pull,pull=19,bloodlust=0,delay=006,cooldown=1,mark_duration=10,enemies="primalist-cinderweaver_1":622304|"blazebound-destroyer_1":1057917|"primalist-flamedancer_1":746765|"primalist-shockcaster_1":995686|"scorchling_1":124460|"scorchling_2":124460
raid_events+=/pull,pull=19,bloodlust=0,delay=036,cooldown=1,mark_duration=10,enemies="primalist-cinderweaver_1":622304|"primalist-cinderweaver_2":622304|"primalist-flamedancer_1":746765
raid_events+=/pull,pull=20,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="scorchling_1":124460|"scorchling_2":124460|"scorchling_3":124460|"scorchling_4":124460|"primalist-shockcaster_1":995686|"BOSS_kokia-blazehoof_1":3626052
raid_events+=/pull,pull=21,bloodlust=0,delay=035,cooldown=1,mark_duration=10,enemies="scorchling_1":124460|"scorchling_2":124460|"scorchling_3":124460
raid_events+=/pull,pull=21,bloodlust=0,delay=043,cooldown=1,mark_duration=10,enemies="storm-warrior_1":622304|"storm-warrior_2":622304|"primal-thundercloud_1":92956
raid_events+=/pull,pull=22,bloodlust=0,delay=037,cooldown=1,mark_duration=10,enemies="BOSS_flamegullet_1":1554022
raid_events+=/pull,pull=23,bloodlust=0,delay=022,cooldown=1,mark_duration=10,enemies="scorchling_1":124460|"scorchling_2":124460|"scorchling_3":124460|"scorchling_4":124460|"scorchling_5":124460|"scorchling_6":124460|"scorchling_7":124460|"scorchling_8":124460|"primalist-cinderweaver_1":622304|"primalist-cinderweaver_2":622304|"blazebound-destroyer_1":1057917|"blazebound-destroyer_2":1057917|"primalist-flamedancer_1":746765|"primalist-flamedancer_2":746765|"primalist-shockcaster_1":995686
raid_events+=/pull,pull=24,bloodlust=0,delay=023,cooldown=1,mark_duration=10,enemies="primal-thundercloud_1":92956|"primal-thundercloud_2":92956
raid_events+=/pull,pull=25,bloodlust=0,delay=000,cooldown=1,mark_duration=10,enemies="primal-thundercloud_1":92956|"primal-thundercloud_2":92956|"primal-thundercloud_3":92956|"tempest-channeler_1":995686
raid_events+=/pull,pull=26,bloodlust=0,delay=003,cooldown=1,mark_duration=10,enemies="storm-warrior_1":622304|"storm-warrior_2":622304
raid_events+=/pull,pull=27,bloodlust=0,delay=001,cooldown=1,mark_duration=10,enemies="storm-warrior_1":622304|"storm-warrior_2":622304|"flame-channeler_1":995686
### End simulateText ###
desired_targets=1
### Begin overrides ###
# User-specified persistent global and player parameters will be set here.

### End overrides ###
### Begin final options ###
### End final options ###
### END ###
Jayezi commented 1 year ago

Seems to be the max_time=0, didn't dig into why yet but if I did it'd really just be to error with a better message. max_time is kinda needed to keep the interation lengths capped at a reasonable amount of time in case a sim actor gets stuck or is doing way too little damage for some reason. Safest way I think and what I set in the MDT export weakaura is the max key timer in seconds, the iteration length cap gets set to max_time * 2 so it gives a good enough margin.

Wotuu commented 1 year ago

Hey, thanks that did seem to work! I didn't notice the time for the dungeons wasn't set yet. Though the error definitely didn't point me to that being the issue. I'm keeping this open just so that you have the opportunity to adjust this error message. But feel free to close it as my issue is now resolved.