How do I get Blueprint class that I inherit from at C++ parent, that will IMMEDIATELY and DEFAULT be data-only?
When I create class with no logic, but only data, the first time it opens its Blueprint editor, I get this:
What needs to be changed in behavior of C++ class so that its Blueprint looks IMMEDIATELY like in Second screenshot? UObject flags, constructor changes, some UClass specifiers? I’ve tried a lot, but achieved nothing…
Reading your post, I remember, that I had the same ‘issue’ and found, that reopening worked - so I did not care about that.
Maybe you already found this very old thread, which describes the same behaviour.
Also note that if you create a Blueprint derived from a C++ class, it will appear to be a full Blueprint the first time you open it. You might have to close and reopen it for it to be recognized as Data-only.
So it looks like it is a “works as designed” and nothing did change since then…
I would also think this behavior is “by design”, but engine has assets that implement exactly what I (we) need - first time we open Blueprint, we get the Details window and only it, without unnecessary garbage and graph. However this is not a “pure” class, since such things should be called Assets and are available from the create menu of something.
Here is an example (Add/Import button, Foliage > StaticMeshFoliage):
I think the assumption is that most of the time when you create a blueprint you’ll be adding some logic to it, and Epic probably special cased this to occur this way.