-
Notifications
You must be signed in to change notification settings - Fork 2
APLs 101
APLs are what SimC uses to tell the sim which actions to use, and how to use them. While this isn't an all encompassing document, you can check further imformation on the SimC Wiki.
There are 2 default action lists in SimC, precombat
and default
(inherited as just actions
). To set actions inside of a list you use this format:
actions.actionList=spell1
actions.actionList+=/spell2
All APLs will use the 2 default action lists, and some will add others to separate the rotation into logical pieces. Take shadow for example, we currently have precombat
, default
, aoe
, cleave
, and single
for the various situations.
All actions follow the syntax above as actions.actionList+=/spell_name,if=condition1|condition2&condition3
with |
representing OR and &
representing AND. Below you will find a list of available properties for spells used within SimC. All actions can be negated by adding !
in front of the condition, like if=!buff.shadowform.up
.
These properties are referenced with buff.spellName.PROPERTY
.
Property | Description | Example |
---|---|---|
.react | Description | buff.bloodlust.react |
.up | Check if the buff is active | buff.bloodlust.up |
.down | Check if the buff is inactive | buff.bloodlust.down |
.stack | Check the amount of stacks the buff has | buff.voidform.stack>=10 |
These properties are referenced with cooldown.spellName.PROPERTY
.
Property | Description | Example |
---|---|---|
.up | Check if the cooldown is ready to be used again | cooldown.void_bolt.up |
.charges | Check how many charges the cooldown has | cooldown.shadow_word_death.charges=2 |
These properties are referenced with talent.talentName.PROPERTY
.
Property | Description | Example |
---|---|---|
.enabled | Check if the talent is currently enabled | talent.misery.enabled |
These properties are referenced with dot.spellName.PROPERTY
.
Property | Description | Example |
---|---|---|
.refreshable | Check if the DoT needs refreshing according to pandemic | dot.shadow_word_pain.refreshable |
.ticking | Check if the DoT is currently ticking | dot.shadow_word_pain.ticking |
.remains | Check the time remaining left on the DoT | dot.shadow_word_pain.remains>travel_time |
Property | Description | Example |
---|---|---|
.adds.duration | Check how long the adds are alive for | raid_event.adds.duration<20 |
.adds.in | Check how long until adds are incoming | raid_event.adds.in<5 |
Property | Description | Example |
---|---|---|
target.time_to_die | Check the targets current TTD | target.time_to_die>200 |
spell_targets | Check how many targets the spell will hit | spell_targets.mind_sear>2 |
chain | Chain multiple casts into one | chain=1 |
interrupt | Interrupt the cast if another action becomes true | interrupt=1 |
interrupt_immediate | Interrupt. but check every 100ms | interrupt_immediate=1 |
interrupt_if | add conditions to interrupt check | interrupt_if=ticks>=2 |
active_enemies | check how many enemies are currently active | active_enemies=1 |
run_action_list | Run the specified action list | run_action_list,name=single,if=X |
target.health.pct | Check the current health % of the target | target.health.pct<35 |
insanity | Check the status of the resource | insanity>90 |
in_flight | Check if an action with travel time is in flight | action.x.in_flight |