Multiple return nodes are possible as of 4.9, but not multiple execs. Though it is possible to do it through custom blueprint nodes in C++, using ExpandEnumAsExecs.
For example:
UENUM()
namespace EFileExistsResult
{
enum Type
{
FileExists,
FileDoesNotExist,
};
}
//...
UFUNCTION(BlueprintCallable, meta = (ExpandEnumAsExecs="OutResult"), Category = Game)
static void CheckIfThisExists(const FString& Filename, TEnumAsByte<EFileExistsResult::Type>& OutResult);
There isn’t even much benefit of having multiple execs in that example though obviously, a bool would do the same job.
To me multiple execs don’t really make sense as a function anyway, it’s more of a macro. The function returns a value or causes some change, you handle the control flow outside the function depending on what it returns etc. that seems truer to a regular c++ function really.
It would just be putting a SwitchOn or branch after the function instead of inside it, but I think that is clearer to someone looking at the code, as they can see what is happening without having to look into how the function itself works. The function’s name should make it clear what is intended. Though if you wanted you could encapsulate all that in a macro sure.