C++ class instance as a variable on a blueprint

Yep, for sure it’s true UE4 gives a great amount of flexibility. Sometimes though I think it’s too much - there are too many different ways to achieve something, and there is next to no guidance on what is the intended way/best practice. People are going to end up with heaps of bad habits which will lead to issues down the line - you get something to work but by doing something that wasn’t what the devs expected people to do, so then a later engine change breaks it. UE4 is a bit of a monster though so to a degree this is inevitable.

Personally coming from a C++ background, the thing that constantly causes me confusion is the way UE4, with its blueprints and class default objects, blurs the distinction between a class and an object instance. The idea of making a blueprint class purely to modify some property values from the parent doesn’t sit well with me, it feels like making a new class to do something that should be the job of an object instance. This seems to be really common practice though.