Invalid class with which to make a Blueprint / Cannot derive from non-Actor Object blueprint

I can create a blueprint as a child of Object fine, however I am looking to create blueprints as children of that child.

The Blueprint Props > Global > Parent Class drop down menu for reparenting for some reason does not include Object (or my child-of-Object class), even though Object is already selected. If I select another class such as Actor, I can’t switch back to Object, and I can’t find any way of selecting my child-of-Object class by any means at all. (Even through the New Class Blueprint wizard)

What’s the deal with this?

Thanks.

Edit: Still trying to figure out how to do this.

I tried right clicking my child-of-Object blueprint and clicking “Create blueprint based on this” which gives the error:

Invalid class with which to make a Blueprint.

I found a way to create non-Actor blueprints using this custom node, which will help after I get this set up… https://wiki.unrealengine.com/Blueprint_Node:_Create_Object_from_Blueprint

Thanks for the report.

The (primary) rules for re-parenting are:

Actors can not become non-Actors and non-Actors can not become Actors. This is due to the rules around the Outers of those classes and the Actors needing to be in the Level (though in 4.1, as you noted, you are allowed switch from Object → Actor, but you really shouldn’t, it will crash if there are existing instances of that Object, this is prevented in a future release).

You can not reparent to yourself or any class that is inherited from you. This should hopefully make intuitive sense as you would be creating a paradoxical hierarchy.

There’s a couple of other less relevant rules to do with Level Script Actors, Anim Instances, and Interfaces, but those are unlikely to come up.

The fact that Object is not appearing in the list is a bug, I believe, I need to check with someone, but we should hopefully get that re-included.

I’ve also reproduced the right-click issue and I suspect that is in fact a bug and will get it filed and looked in to.

If those rules (and likely bugs) don’t explain what you’re seeing, can you give me some clear repro case.

Thanks for the reply.
I’ve been able to switch Object → Actor via the reparent dropdown since even before 4.1. (Though I wasn’t actually using them for anything yet)
I also wasn’t trying at all to create a paradoxical hierarchy but simply to have classes derived from a class that derives from Object. (I need to represent objects that don’t exist in the world, so I’m trying to use Object to avoid any potential overhead from using Actor.)
Other than that, the bugs you mention explain my issues, I’ll look forward to a fix or update on this :slight_smile:

Hello,
I have the same behavior in 4.6. I also need to represent objects that don’t exist in the world. For that I also use blueprint interfaces allowing me to organize and write simple blueprints with their concerns separated. Essentially creating a type with interface to be implemented in derived blueprints.
I look forward to an update on this too. :slight_smile: