1. Create a UFUNCTION with the UFunction Specifiers (`BlueprintNativeEvent, BlueprintCallable,

meta = (ForceAsFunction)`) in your .h file.

```cpp
 // Declare the virtual function
    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, meta = (ForceAsFunction))
    void MyVirtualFunction();
```
  1. Declare a virtual Implementation for the C++ function in your .h file.

    // Declare the _Implementation version
        virtual void MyVirtualFunction_Implementation();
    
  2. Write your implementation of the C++ function in your .cpp file

    void AMyClass::MyVirtualFunction_Implementation()
    {
        // Default implementation
        UE_LOG(LogTemp, Warning, TEXT("MyVirtualFunction called in C++"));
    }
    

<aside> ⚠️

If you forget to add meta = (ForceAsFunction) you only get Blueprint Event overrides.

</aside>

image.png

<aside> ⚠️

You only get the automatic Call to Parent Node if you add the UFunction Specifier BlueprintCallable.

</aside>

image.png

<aside> ✅

If you did everything correct it should look like this

</aside>

image.png

image.png