Blueprint inheritance issues

Here is the issue. I have BP_A parent of BP_B parent of BP_C (BP_C is a data BP). BP_A.MyBool defaults to false. BP_C sets it to true. In BP_A.Init(), I check .MyBool and do some logic based off that. But in BP_A.Init(), .MyBool == false, even though this is an instance of BP_C! BP_B overrides BP_A.Init() and in there .MyBool is true. So that is really weird. ALSO, when I went overrode BP_A.Init() in BP_B, it made an event in the graph, instead of just overriding it as a function, which BP_A.Init() is.

Something’s incorrect here. If feels like a recompile is in order, but I don’t think BPs can do that. Seems like I’m getting double vars somehow?

Ok, I know what is going on and it was confusing the crap out of me. I guess there is a bug with overriding functions. If you override a function that doesn’t have a return param, it overrides it as a graph event! I figured it was some new thing that BP did. But when I right clicked in the open. I couldn’t find the “parent” call. So I thought it must be happening automagic.

And it did, but didn’t. I was hitting my breakpoints in the parent function, but that was from another instance that was created in my test. So the parent wasn’t being called and I was looking at a different instance of the class. I also found out that you have to right click the function start node, to get to the parent call. :frowning:

The workaround is to add a return param to the base class, override in the child. Then you will get a function made. After that you can delete the param.

I’m assuming this “override as an event if no return param” is a bug. If it’s a feature. There is zero explanation on why it should be this way.

Can anyone say when the ETA on a fix for this would be?