Which method to choose for reconstruction, if ever?

I want to be able to manually trigger the construction script on an actor, that I am aware of, inside blueprints. There is no Blueprint node, even though there are C++ functions that seem to do exactly this job. Why is there no such node yet? Could it be, that manually running the construction script leads to potential errors? Or are there any other reasons why I would not want to manually trigger the construction script? Except for infinite loops that is… I am aware of the possibility to accidently create those.

So, back to topic: In C++ we can access a couple of methods of the AActor class to trigger the construction script. First of all, there is UserConstructionScript() (I am not sure if this actually does the trick. Btw, does UserConstructionScript refer to whatever is set up in the blueprint construction script of a blueprint?). It also seems to be that the proper way to call this method is through ProcessUserConstructionScript(), which is protected though, so not usable for my case of use.

But there are RerunConstructionScripts() and ExecuteConstruction(…). The documentation says, that the only difference between those two suggested methods lies in maintaning the root components location in the former one. But if I look at this method, one might think that RerunConstructionScripts is involved in more than just that. So…Is it?

I am currently using RerunConstructionScripts() and it is working like a charm. Also, since it does not take any parameters, it seems easier to use. But I still wonder how to make use of the parameters of ExecuteConstruction? Is there a way I could pass the InstanceDataCache to the function call? And what exactly does it mean that the default transform can be overwritten by template defaults?

A year had passed and I use your question as a solution - thank you! So rather than trying to understand ExecuteConstruction(), I switched to RerunConstructionScripts() for a deferred spawn logic. Would be nice to see a better explanation about use cases and differences of these two.