I've written a UI module that allows other UI components to track a maintained spell name; it will set your given .Text to /GameData.Maintained.Spell_X (or nothing). It updates instantly when the spell changes, and is very high performance, especially with many spells being tracked. Any number of components can track the same spell. You may add or remove tracking at any time.
However, it has a slight problem currently, and I'm not sure if I want to handle it - It will only report the latest cast when the same spell is active multiple times.
So, this is mostly a request for input on how needed the feature is, and what sort of interface would be preferred.
For reference, the current interface is thusly:
Tracking a spell:
Create a <Text> to store the GameData base path
'/???.MaintainedTracker.ADD.Text'='Spell Name Here'
'/???.MaintainedTracker.ADD.TriggerName'=PathText.FullPath
'/???.MaintainedTracker.ADD.Visible'=true
Then, in your PathText.OnTextChanged, set DynamicData attributes to Text ## '.StackCount' or similar.
Stopping tracking:
'/???.MaintainedTracker.DEL.Text'='Spell Name Here'
'/???.MaintainedTracker.DEL.TriggerName'=PathText.FullPath
'/???.MaintainedTracker.DEL.Visible'=true
Both:
'/???.MaintainedTracker.DELADD.Text'='Add Spell Name Here'
'/???.MaintainedTracker.DELADD.Tooltip'='Delete Spell Name Here'
'/???.MaintainedTracker.DELADD.TriggerName'=PathText.FullPath
'/???.MaintainedTracker.DELADD.Visible'=true
Where ??? is the UI short name which I am withholding because I may want to change it