How to change parent class of blueprint asset?

I want to change “Character.h” parent class of blueprint “MyCharacter”, from ThirdPerson template, to subclass, that i created myself.

4 Likes

When you open the blueprint there is a blueprint properties button at the top. Click that and the parent class drop down for your blueprint will be visible. Choose the new desired parent class from there.

4 Likes

It’s changed.

Now, you need to double click a blueprint to open up the editor, and from there you click File >> Reparent Blueprint (3rd from bottom).

Posting because this ranks highly on a google search.

18 Likes

Thank you :wink: I was looking for it

Hi, actually I’m trying to open a blueprint who has “lost” his parent class.
But it won’t open since it’s parent class is gone, how to reassign one whithout open the blueprint ?

2 Likes

Hey Teapot Creation-

A feature request has been entered to allow a blueprint to be reparented without having to open the blueprint (UE-25541). Unfortunately if a blueprint becomes unparented it must be recreated.

Cheers

Hi ,
thanks for your answer.
I’ll keep waiting for this feature…

I voted for UE-25541, because this asset management with hidden path drives me crazy.
We need a system where we can edit and rearrange the relations.
The relations are simple text entries, unfortunately a uasset is binary, which makes it very hard to modify.

As you can see from the problem above, if a parent got lost, because you have for example changed the
sourcecode structure (script), then everything is broken and you cant repair it.
But just with a small edit to redirect the path, we could easily repair the parent location and everything would work again.

I understand, that this might not be an urgent problem for the staff, therefore I’m trying this on my own.
I’m thankful for any little hint, how I could load an asset, list the relations, edit and save to file.
Thank you.

2 Likes

indeed I was looking for this too. Thanks @IphStich

Yeah, I definitely need this since I’m refactoring a project into a module or plugin, and don’t want to lose all of the blueprint implementations I’ve created from my custom base classes.

Do you have the pull request for that feature?

I need to do reparent my bueprint but I am nt able to open the blueprint.
I had changed the parent class from Default to a class created by me.
The engine crahses and there are no crash logs.

My problem is similar. I cannot use File >> Reparent Blueprint (I have renamed the original parent class. But the renamed new class didn’t show up). What helped is to add the following line to DefaultEngine.ini below [/Script/Engine.Engine] in the game project:

+ActiveClassRedirects=(OldClassName=“OldClassName”,NewClassName=“NewClassName”)

4 Likes

Yeah, its impossible, please add this feature on context menu :smiley:

2 Likes

As was I. Good to see this hasn’t changed after all these years.

Amazing - thank you!

As of 4.21, I can confirm this works.
When you click on Reparent Blueprint a drop down menu appear from which you can assign to the blueprint to.

There is now a new way to do this, in 4.22 (maybe even in some earlier versions). Much simpler than the re-parenting:

Select the actor in the level > details > actor > convert actor (drop-down)

281183-unreal-convertactor-01.png

Watch this

Hey guys,
If someone needs to change the Parent of Blueprint without opening the Blueprint in the Editor itself, there is a way to do that.

So I also had a similar issue: I renamed the C++ Classes in my project and that caused a data loss. Then I was unable to open derived Blueprints inside of Editor. I tried to follow the Tiantian_Xie’s solusion but it didn’t really worked for me. Though it helped me with finding an answer (much thanks Tiantian_Xie!)

The Core Redirects is what you need to follow in this case:

  1. Go to \ProjectName\Config
  2. Open DefaultEngine.ini with Notepad.
  3. If there is no [CoreRedirects] section, add one at the bottom
  4. Under [CoreRedirects] section, add +ClassRedirects=(OldName="OldClassName",NewName="NewClassName")
  5. Remember to save DefaultEngine.ini before closing it.
  6. Optionally delete Binaries and Intermediate folders of your project
  7. If you are using Visual Studio, regenerate VS Solution file
  8. Recomile / Open Editor

For me it works just fine. Though I still had to fix some stuff inside of blueprints due to heavy refactor.

My Config\DefaultEngine.ini for example:

[CoreRedirects]
+ClassRedirects=(OldName="PropBase",NewName="PPHPropBase")
+ClassRedirects=(OldName="PPH_GameModeBase",NewName="PPHGameModeBase")
+ClassRedirects=(OldName="PlayerCharacterBase",NewName="PPHCharacterBase")
6 Likes

Thats something that worked for me if you copied some blueprint assets from another project.
Make a core redirect but use name of your project and a project you copied from, for example in DefaultEngine.ini add something like that:
[CoreRedirects]
+ClassRedirects=(OldName=“/Script/LyraGame.LyraActivatableWidget”,NewName=“/Script/MyProjectName.LyraActivatableWidget”)

4 Likes