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