• BlueprintPure=false can be used to make a function not BlueprintPure. This is useful if you have a const function which you don’t want to show up as a pure node.
  • BlueprintInternalUseOnly=true - prevents automatic generation of a BP node for the function. This is useful for UBlueprintAsyncActionBase or such, where the engine generates a latent node and you don’t want a “regular” non-latent node as well. Note: This requires the =true specifier unlike some others. Without it, this doesn’t work.


If you use a reference parameter in a function, you may need to use UPARAM(ref) to make it appear on the inputs side rather than outputs side.

Multiple Target pin connections

If you want the C++ function to allow multiple BP Target pin connections, it cannot return anything (or at least not actors?)

As a workaround, you can use an out parameter, ie.

void MyFunction(AActor*& OutWhatever)