How can I create Custom events for UObject?

#BlueprintImplementableEvent

#Instead of this

UFUNCTION(BlueprintNativeEvent, Category = "Magic")
    void OnLaunch();

and I give it some default implementation:

void UWolfdaleSpell::OnLaunch_Implementation()
{
    if (GEngine != nullptr)
       GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("Default OnLaunch implementation"));
}

#Do This

/** LAAAAAAUUUUNNNCH! */
UFUNCTION(BlueprintImplementableEvent, meta=(FriendlyName = "Do The Happy Happy Launch"))
virtual void OnLaunch(FVector LaunchVelocity);

//there is no .cpp implementaiton

#Do Note this is .h only, no .cpp!!

You don’t need or ever use a default implementation with BlueprintImplementableEvent!

#Still Call the Event in Code

//.cpp to trigger BP event
    this->OnLaunch(TheLaunchVelocity); 



//this-> is my personal syntax to know it is BP Event

#Parameters

I’m just showing you that you can send data to the BP from CPP, you dont have to include the LaunchVelocity parameter


#My Wiki Tutorial