Runtime Processing Notes - Jamiras/RATools GitHub Wiki

When checking to see if an achievement should trigger, the following things happen in this order:

  1. If any PauseIf in the Core group is true, the Core group is skipped
    • Otherwise, the other conditions in the Core group are evaluated.
  2. For each Alt group, if any PauseIf is true, the Alt group is skipped
    • Otherwise, the other conditions in the Alt group are evaluated.
  3. If any ResetIf condition anywhere was evaluated to true, all HitCounts everywhere (Core and every Alt) are reset to 0 and the achievement does not trigger.
    • ResetIf conditions in a group are not evaluated when the group is Paused.
  4. If any non-PauseIf, non-ResetIf conditions in the Core group did not evaluate true, the achievement does not trigger.
    • Paused groups are not evaluated.
  5. If the achievement doesn't have any Alt groups, the achievement triggers.
  6. For each Alt group, if all non-PauseIf, non-ResetIf conditions evaluated true, the achievement triggers
    • Paused groups are not evaluated.