Skip to content

cleanup and improve ActiveEffects suppression logic

Intent

Rewriting ActiveEffect code to use isSuppressed API backed with flag variable instead of transient 'system'. Flag is updated when corresponding item is updated in actor. All this also allows mods like "ATL" to get correct hook calls and correct value of isSuppressed when effect updates after item being equipped/unequipped.


  • This is meant for a hotfix
  • This is meant for the next release (see milestone)
  • This needs more reviewers than normal; there may be controversy or high complexity
  • This intentionally introduces regressions that will be addressed later
  • There is/will be documentation changes on the wiki
  • Please do not send commits here without coordinating closely with the owner
  • This is a Build System change

Related Issues

Steps to Test

  1. Install and enable ATL module
  2. Make item with ATL-updating effect and "when to enable effects" = "when equipped" or "when carried or equipped"
  3. Equip that item to character
  4. Enable effect in effects tab
  5. Unequip item Effect is moved to inactive category, but without fix ATL still applies changes to token, with fix ATL stops applying inactive effect.

Future Work

Additional Notes

Now with better check whether parent and its effects exist before trying to update them. Still need to be tested though.

Merge request reports