Not to beat a dead horse or anything, but Child Actor Components are probably one of the most critical things in my workflow to keep things consolidated and cohesive, but they also have led to a whole lot of lost work. I still think there’s an outstanding issue in 4.15 where if you have a child actor component that is in any way based on a C++ class, if the class ends up changing too much, any blueprint that derived from it, other than the top-most one maybe, would just crash the editor. Which made setting up an inheritance structure… Not great.
At this point, I’ve just started doing everything in C++ right from the get-go because, otherwise, it’s just too difficult to know when and where a blueprint will get irrecoverably broken. I still use Child Actor Components in my C++ code, but they’re almost always transient, as that’s the safest way I’ve figured out how to keep their use reliable and stable.
Granted, based on some conversations I’ve had and there, I don’t think there were ever intended for quite how I ended up using them. But, hey, REASONS.