Blueprint "event begin play" called before C++ parent's "event begin play"?

Agree. Ran into this as well. How am I supposed to order initialization logic then? I would naturally expect that on begin play the C++ class populates variables and blueprint as a child class will work with already “prepared” stuff. I’ve seen people workarounding this using some Delay nodes but in my opinion this is not a solid solution. It feels very counter-intuitive indeed.