In ConstructionScript is there a way to know which Properties were changed?

ConstructionScript (and OnConstruction(const FTransform& Transform)) is a great tool to fuel procedural content generation. In the editor whenever a parameter is changed the ConstructionScript is called to update it. However some changes may only necessitate the running of some portion of the ConstructionScript, while other portions are redundant. Is there a way to determine which properties were changed, and only execute the relevant portions of the ConstructionScript?

I am using blueprints right now, so I’ve put this in the Blueprint Scripting section, but would also appreciate C++ examples.

Right now, for every value I want to monitor in this fashion, I have redundant private copies of public variables, and I check for discrepancies between the public and private pairs to determine which were modified from the outside, and run only the relevant code, but I feel like there must be a better way of accomplishing this without doubling every variable. Probably using dirty bits of some kind.

Thoughts?

why do you need to know which properties were changed? Construction script fires only in the editor and I dont think that you have really heavy weight scripts there.

As I indicated in the question, I am doing enough in the construction script where I would like to constrain what code it executes based on what was modified. Which is why I need to know which properties were changed.

I have removed the misleading text.

In C++, you can override PostEditChangeProperty and handle things there instead of in OnConstruction. That method is passed an argument detailing what was changed. You’ll find plenty of examples if you search for it in the engine source.

This is very useful! However, It appears that this is not available in blueprints. It baffles me why so much useful functionality in unreal, is not exposed to blueprints. At least I can this in mind when I translate my blueprints to C++.