BlueprintNativeEvent
BlueprintNativeEvent is a Unreal Engine function specifier that bridges C++ and Blueprint. It lets you define default behavior in C++ that Blueprint subclasses can override or extend.
When you declare a function as BlueprintNativeEvent:
UFUNCTION(BlueprintNativeEvent, BlueprintCallable)
void OnHit();Unreal generates a virtual function OnHit_Implementation() that you implement in C++. Blueprint classes can then override OnHit in their event graph. If they don’t override it, the C++ implementation runs.
This is different from BlueprintImplementableEvent (no C++ default — Blueprint must implement it) and regular BlueprintCallable (C++ only — Blueprint can call but not override).
The pattern is useful when you want sensible default behavior that designers can customize per class. A pooled projectile might have a C++ OnActorSpawnedFromPool that resets physics, while a specific Blueprint projectile adds a particle burst on top.
Related: BlueprintCallable simply exposes a C++ function so Blueprint can call it.
Further Reading
- Unreal Engine Documentation — UFunctions and Specifiers (docs.unrealengine.com)
- Alex Forsythe, “Unreal Engine C++ Fundamentals” — covers the C++/Blueprint boundary in depth