Hello, I would like to know what exactly data-only blueprints are. From my point of understanding, blueprints are C++ classes under the hood. However, are data-only blueprints their own classes as well or are they serialized instances of a bueprint class that has different values than the default parent blueprint class?
To give some context to my question, working with the UE4 I struggle a lot with the generalization of classes, because I do not see a (convenient) way to create instances of a class for the project outside of runtime, known as serialization, similar to what Unity allows with Prefabs and ScriptableObjects. Additionally, Unity serializes classes as inline-object for actors, whereas in the UE4 you only get a reference which confuses me a lot, because there is no way outside of using EditorUtils to spawn instances of said classes, which makes me wonder if you are supposed to even do that.
A simple example could be a condition class. You would have one general base class Condition and you could create new child classes from that with their own logic. However, if one actually wanted to use said conditions in other classes, how do you connect condition class with the data that the condition class requires? As the condition class won’t be serialized as an inline-object, you would either have to spawn an object at runtime, which opens the question where it gets its parameters from, as you would have to copy the required variables from the condition into the spawning object(factory or whatever), ending up with twice the variable count? Or you would want an instance that you create in the editor and there you fill the data in, simply referencing this instance at runtime. This is what I think data-only blueprints are and I would be greateful if someone could answer and help me with this issue.