Reparenting blueprint breaks components

I am having an issue with attempting to reparent a blueprint. When I do so, all of the components of the original (now child) blueprint break. That is to say, they still exist, but meshes will not render, and collision objects won’t detect overlaps. It is as if they simply don’t exist.

I start with a blueprint that has a scene component as root, with a mesh and collision object. This works normally:

287349-1blueprintbeforereparent.png

I create a new empty blueprint actor, and set a scene component as the root, with the same name:

287350-2newparent.png

Then I re-parent the original blueprint to point to the new actor and remove the old root component, resulting in a scene component hierarchy that is identical, just with an inherited root component:

287371-3reparentedchildclass.png

At this point, the Button Mesh and Box Collision components both stop working. They can be referenced in the blueprint scripts as if they exist, but in-level they don’t exist and won’t render/collide/overlap in any way. Despite this, they still show up normally in the preview viewport in the blueprint editor.

If I attach a new mesh in the reparented child class, this works normally:

287372-4newmeshcomponentworks.png

But if I move that new mesh to be a child of the original Button Mesh component, it now also doesn’t work:

287373-5newmeshaschilddoesnotwork.png

When Button Mesh is a child of the New Mesh, the New Mesh renders normally, but Button Mesh still doesn’t work.

The original Button Mesh and New Mesh components are setup identically. The new root scene node in the new parent is also setup identically as from the original root in the reparented child blueprint.

Nothing I do makes Button Mesh or any of it’s children work again. I have spent hours messing about with this and can’t find an answer either by experimentation, or on the Unreal forums.

Does anyone have any idea how I can fix this?

Re-creating the Button Mesh isn’t really an option, as it is already referenced in various places in the blueprint script, as well as other child blueprints.

P.S.

If I re-parent the blueprint back to just having Actor as the parent again, the Button Mesh and Box Collision both start working again.

Also, the Class Defaults and Class Settings for the blueprint and the new parent blueprint are both identical as well.

Additionally, if I take the reparented actor, and reparent it again back to just having Actor as the parent instead of the new parent class, the mesh and collision start working again.

I was not able to solve this, so I ended up just re-creating the mesh and collision components, and updating all of the blueprints.

This may be a bug with UE4.

I think I may have just ran into a situation like this yesterday. (not sure if it is the exact same issue or not)

When I re-parented the BP to a new Base_BP the components stopped rendering in the original BP.

What worked for my case was to revert (click the little yellow arrow next to each property) all the settings in the Transform section of the previous root component, now that an inherited scene root was added to the hierarchy.

Now everything renders correctly, and with the new base BP class.

I had a similar problem with UE4.26.
I started my project using the ThirdPersonCharacter project.

Since I want some of my enemies to attack eachother and the player as well, all pawns/characters need to have a MasterCharacter blueprint (the parent of all pawns/characters).
So I reparented my ThirdPersonCharacter to this MasterCharacter.

Everything worked fine and I saved my work.
Later I opened my project again and now I got a bunch of errors while opening the project.
Upon trying to open my ThirdPersonCharacter, I got a warning message that this blueprint didn’t have a parent and opening it could crash the editor. I opened it anyways and it opened after a few seconds.
Both the “Parent class” and “Native parent class” where both set to “None”.
Trying to reparent it to MasterCharacter wouldn’t work, it didn’t show up while searching for it in the reparent list, when that blueprint definately exist.
Also my mesh, collision box and animation was gone. Even the blueprint didn’t have a viewport anymore.

I had to recreate the entire ThirdPersonCharacter blueprint after I made a child of MasterCharacter and renamed it to ThirdPersonChar. Luckily, some blueprint nodes where still there so I could copy those but the camera was gone as well as the SpringArm.

Took me some time to recreate it all. Luckily, this was just a testscript and not an almost finished game.

I’ve also had a similar problem with UE5.2.

Make sure to check if the mobility of your root component is the same.

In my case, it switched from Static to Movable. All components found themselves at the root of the BP, and placed at 0,0,0 in my level (when their BP was in the correct location).