Blueprint Interface functions are being overridden by default in child classes since UE 5.0?

Hi there,

I’ve noticed some weird behavior and I’m not sure if it’s a bug or a feature: Since UE5.0 it seems that functions from Blueprint interfaces are automatically overriden if you create a child class of an actor that implements the interface.

Simple example:

  1. Create a new actor and name it “Parent”. Create an Integer variable in “Parent” and name it “MyIntegerVariable”

  2. Create a new Blueprint Interface and within that interface create a function called “MyFunction”.

  3. Give “MyFunction” an Integer ouptut and call it “MyIntegerOutput”

  4. Implement the Interface in Actor “Parent”. Open the implemented Function and plug in “MyIntegerVariable” to the output of the function “MyIntegerOutput”.

  5. Create a child class of “Parent” and call it “Child”. Open it.

  6. You’ll notice that the function “MyFunction” in “Child” Actor is automatically overriden and empty in the child class.

  7. Expected behavior (works in versions before 5.0): The function should not be overriden by default

So is this intended and is there a workaround?

Thanks,
Daniel

3 Likes

This might not be the exact answer for the original post/question, but if a child BP is overriding one of its parent’s Interfaces, it’ll likely display as an empty function under “Functions.” If you select it and delete it, it should revert to being an Interface underneath “Interfaces,” inheriting its parent’s behavior. Double clicking on the interface will turn it into an overriding function.