Able Ability System Info and Support Thread

Yea that’s intentional. Able uses the CDO to speed up a number of things (mainly around replication and memory costs). The only thing that is instantiated per Ability call is the Context and the ScratchPad for the Task (which is a much smaller structure and far cheaper memory/construction-wise). My background is in MMOs and Consoles so I tend to be very conservative around memory/CPU/bandwidth when I can. Ideally I could do what GAS does and allow the option to instantiate vs not, but I haven’t felt the need to do that yet (and don’t receive much customer feedback about it either) so I’m wary about adding more complexity to the fundamental behavior of Able.

If you wanted to store state, you could modify the ScratchPads or the Context itself (as you have). So in your example, You could add a delegate to the ScratchPad for your task. Bind the Actor when the Task starts, and then release it afterwards.