Cannot reparent a blueprint after a rename of a C++ class

I had a BP derived from a C++ class.
I’ve decided to rename the class.
Unfortunately, I didn’t keep the initial class.
Therefore, when I’ve loaded the project, ue4editor give me an error about missing parent class.
I’ve decided to put back the original class.

Apparently, the editor does not try to use the initial class, he sets the Parent class to none.

How can I reparent the class manually, since when I try to right click the blueprint, the editor crash.
The editor does not keep the existing class but set it to none.
Why not keeping the existing parent class or at least lets the user choose a class manually when the parent isn’t anymore present.

Now, is there a workaround to manually sets the parent class of a uasset ?

Txs for your help,
D.

I’ve found a work around. Fortunately, the system keeps files in the Save/Backup. I recovered the files from here.

In my opinion, there is still a missing functionnality when the class has no parent and should be. From the editor, the user should be able to choose a parent class.

Regards, D.

1 Like

Hi ,

As you noticed, renaming classes is generally not a good idea. It can potentially create a large number of additional problems, depending on how widely you are using that class in your project. If at all possible, try to avoid renaming classes.

I was able to reproduce the issue that you described, and it does look like something we could potentially handle better. I also ran the same test using our latest internal build and the Editor no longer crashes when you right-click on the Blueprint in question. I did see a crash when selecting one of the menu options though, and I have submitted a report about that to our development team for further investigation (TTP# 347299).

However, the only way to reparent a Blueprint at the moment is to actually open the Blueprint, which I was still unable to do in our internal build. I sent in a feature request as well to find out if it would be possible to allow for Blueprints to be reparented without requiring that they be opened (TTP# 347300).

Thank you for bringing this to our attention. You will see some improvements in this area in future versions of the Engine.

Thank you very much for all these information.
It will effectively be great if we can reparent it without opening the blueprint.

I’ve found another utility for this.
Imagine you’d like to use a blueprint from a sample unreal provides. This sample is derived from a C++ class. In my try, I’ve migrated the blueprint for the weapon. The parent weapon blueprint class is ShooterGrame.AShooterWeapon_Instant.

Even if you take the necessary C++ classes, you wont be able to open the blueprint after migration. Simply because the class you’ve copied to your project has not the same signature. It will be MyGame.AShooterWeapon_Instant

With a such feature, you will be able reparent to MyGame.AShooterWeapon_Instant

Again, thank you for taking time to respond.
Unreal Engine is really an impressive game engine !!!

Have a nice day ,
D.

+1 from me for 's comment on:

find out if it would be possible to
allow for Blueprints to be reparented
without requiring that they be opened
(TTP# 347300).

I’ve found reparenting Blueprints to be a somewhat crash prone operation, would love to hear any news on this.

Hey -

Thanks for your interest in this issue. The feature request for reparenting is still being investigated and does not yet have a timeframe for completion.

Cheers

+1 for this functionality. I have classes independently developed in a separate module with dependent blueprints, and I’m unable to merge the code and blueprints into the original game module, because the blueprints all reference the other module name. And, the build complains when I have the same classes existing in both modules. So are classes namespaced by module, or aren’t they?

Hey DougRad-

's original question was about reparenting whereas your question deals with merging classes and blueprints. It would be beneficial to either create a new AnswerHub post so that your question can get proper attention and make it easier for others with the same question to find your post, or to ask the question on the forums where you can get feedback from community members.

Has reparenting blueprints after renaming been implemented yet? I did not get an editor crash after opening my blueprint after renaming my c++ file today, but I was not able to reparent it to any of my custom classes and had to undo the rename.

I know there is the ActiveGameNameRedirects option, but if we refactor things a lot then that would probably get a bit unwieldy.

Nope, same error is still there. Weird to not support renaming C++ files or taking care of the error that corrupts all work when you do, still so many years later.