Why in blueprints i can only override a function that has outputs?

I hope this is just a mistake but if not can someone explain me.
For example I have two blueprints. blueprint A and blueprint B.
B derives from A.
A has a function called OverrideMe
In blueprint B i can only implement (override it) if the method has outputs
wtf?

If base class function got output (return value) the overrided function in child class will need it too because it can be called from base class declaration.

of course.
but that is not my problem.
the problem is, i cannot create an override (IN BLUEPRINTS!!!) if the base class function does not have any outputs defined.

i now also notice that if i create a class in c++ and add a BlueprintImplementableEvent and create a blueprint based on that class i also wont be able to implement it UNLESS it has a return value

doesnt work:
UFUNCTION(BlueprintImplementableEvent…)
void Something();

works:
UFUNCTION(BlueprintImplementableEvent…)
bool Something();

i will be able to call the event but not override it…

I could certainly be mistaken, but instead of looking for functions to override, look for events. I know in Blueprints if you create a function with no outputs in an interface, and then implement the interface, the functions will not show up in the list on your menu. However, the DO show up as events in the right click context menu. Check there and let me know if that helped. Cheers!

Tony

As for UE4.7 this is still valid but I see nobody really explained why this is the (annoying) case.
Anybody?

Having the same problem today. If a function hasn’t a return value, it can’t be overriden. WTF?!

Just want to confirm that this is correct, just ran into this issue myself and I was able to override it by making an event.

could you please give more information?
How do you override an event in a sub classed blueprint?

An event, as far as I know, doesn’t have a content it so there is nothing to override and in fact it doesn’t appear in the list of functions and for sure it doesn’t appear in the list of overridable functions.

I think you guys misunderstood the question or I’m missing something here.

You have no misunderstanding here, it’s just another bug.
As a workaround you can do either

  • Return a dummy boolean in every function to make it show up in the override menu or
  • Override a function of the parent (without return values) with an event node in the child blueprint (and call the parent function inside if you want to extend it rather then overwriting it)

It seems that this will be properly handled in 4.8

Check out this my solution -