Super on BlueprintNativeEvent cause infinite loop

You mention “BP implementation of my super class”, which suggests you may not be clear on the inheritance hierarchy. It goes from C++ base -> C++ derived classes -> First derived blueprint -> Child blueprints. So “BP implementation of super of class A” doesn’t really make sense, by definition that is also the blueprint implementation of class A.

It essentially goes like this:

Something calls Object->MethodName() in C++, or the equivalent from Blueprint.
Most derived implementation is found (since blueprints always extend C++, if there is a blueprint override then that will always be called rather than a C++ override of the _Implementation).
That implementation alone is called.

That’s all the dispatching process does. If you need an implementation to also invoke its parent implementation, you achieve that with AddCallToParent in blueprint, or Super::MethodName_Implementation in C++. AddCallToParent from the top-level blueprint would call the most-derived _Implementation that exists, which in turn could call up the Super chain.

So short version: most derived gets invoked; any super calls then work their way back up the inheritance tree.

1 Like