I’m working on a auto-extending trait system (Find all subclasses and put an instance of it into an uproperty array).
It would be working great for DLC’s and stuff (quest flags automatically added to the character etc).
It kind of works now when i do the class discovering/object creation in the PostLoad call.
Only one thing bothers me. As of now after a blueprint recompile, PostLoad is called on the components but after that, the properties are overwritten again.
Is there some function called on the components after a blueprint recompile/property copying? I browsed the code of the KismetReinstanceUtilities and others, but i didn’t find anything useful.
A bit more info:
At the moment in PostLoad i discover the subclasses of my UTrait class and add instances not already in the array.
This works for all actors in the level on load. (Should even work for BP-derived traits omitting SKEL and REINST ones)
But on a blueprint recompile the postload event occurs BEFORE the copying of the instanced objects.
I’m looking for a function which is called after that.