Renaming Plugin and Blueprint Inheritance

I’m trying to rename a plugin using Core Redirects, and while I’ve in general had a fair amount of success and some things seem to be working, some other things are not. Some things in the Content data of the Plugin are being retained as the underlying class names change , such as my DataAssets, but in some other cases it is not, namely Blueprint Classes and those that inherit from them.

What I’m seeing in particular is I have this BP_ScreenshotUtility_Base and its parent class has become None and so it won’t load. Accordingly every other BP that inherits from that one is also broken.

Rolling back and having a look the parent of that Blueprint should be the class itself (RvnScreenshotUtilityActor.cpp), however it seems to complain about something else which doesn’t actually exist, BP_ScreenshotUtility_Base_C. Maybe this is some sort of generated class?

[2025.05.29-16.56.13:084][505]LogLinker: Warning: [AssetLog] D:\unreal_engine\Projects\unreal_image_generator\RvnScreenshots\Plugins\RvtImageGenUtility\Content\Blueprints\BP_ScreenshotUtility_Base.uasset: CreateExport: Failed to load Class /Script/RvtImageGenUtility.RvtImageGenActor as Parent for BlueprintGeneratedClass /RvtImageGenUtility/Blueprints/BP_ScreenshotUtility_Base.BP_ScreenshotUtility_Base_C - both will fail to load [2025.05.29-16.56.13:084][505]LogLinker: Warning: Unable to load Default__BP_ScreenshotUtility_Base_C with outer Package /RvtImageGenUtility/Blueprints/BP_ScreenshotUtility_Base because its class (BP_ScreenshotUtility_Base_C) does not existEarlier on in the logs however it does seem to me like all this stuff is correctly ported over with the Core Redirects.

[2025.05.29-16.54.51:055][ 2]LogCoreRedirects: Verbose: RedirectNameAndValues(/RvnScreenshotUtility/Blueprints/BP_ScreenshotUtility_Base.BP_ScreenshotUtility_Base_C) replaced by /RvtImageGenUtility/Blueprints/BP_ScreenshotUtility_Base.BP_ScreenshotUtility_Base_C [2025.05.29-16.54.51:055][ 2]LogCoreRedirects: Verbose: RedirectNameAndValues(/RvnScreenshotUtility/Blueprints/BP_ScreenshotUtility_Base) replaced by /RvtImageGenUtility/Blueprints/BP_ScreenshotUtility_Baseand

[2025.05.29-16.56.12:959][505]LogCoreRedirects: Verbose: RedirectNameAndValues(/Script/RvnScreenshotUtility.RvnScreenshotUtilityActor) replaced by /Script/RvtImageGenUtility.RvtImageGenActorSo I don’t understand why I’m seeing this logs that suggest success, and then later on we have failures to load.

Here are my relevant Core Redirects. I’ve added this to both the plugin and the project, though this project is functionally empty and only has the plugin in it.

I’m not sure what I’m doing wrong here.

[CoreRedirects] +PackageRedirects=(OldName="/RvnScreenshotUtility/",NewName="/RvtImageGenUtility/", MatchSubstring=true) +PackageRedirects=(OldName="/Script/RvnScreenshotUtility/",NewName="/Script/RvtImageGenUtility/") +ClassRedirects=(OldName="/Script/RvnScreenshotUtility.RvnScreenshotUtility",NewName="/Script/RvtImageGenUtility.RvtImageGenUtility") +ClassRedirects=(OldName="/Script/RvnScreenshotUtility.RvnScreenshotUtilityActor",NewName="/Script/RvtImageGenUtility.RvtImageGenActor") .... (many more class redirects follow)

Ok never mind I’ve solved this as I found an error that I didn’t notice this the first time around.

[2025.06.02-21.50.02:247][ 0]LogCoreRedirects: Error: ValidateRedirect(Type 2) failed to find destination Class for redirect from RvnScreenshotUtilityActor to /Script/RvtImageGenUtility.RvtImageGenActor with loaded package!Despite all the redirects successfully replacing the old RvnScreenshotUtilityActor with the new class, I missed that there was a lone error that this class couldn’t be found. Ended up that it was just a typo! The RvtImageGenActor was actually RvtImageGenActorUtility.

Fixing that and it all works.

So I hope this helps someone reading that this is the sort of error you need to look out for if things don’t work immediately.

Yes great to note that last point. That was raised by a colleague of mine. Was able to test everything, save everything and remove all the redirects and all has gone well.

Hi Tavis,

Glad to know you were able to find the cause of the problem.

To clarify one thing you asked in your original post, “BP_ScreenshotUtility_Base_C” is indeed the name of the internal UClass that unreal generated automatically for blueprint asset “BP_ScreenshotUtility_Base”. This is what is actually used by Unreal’s reflection system and other editor tools. Additionally, one of the things that is created for it is the CDO (Class Default Object) “Default__BP_ScreenshotUtility_Base_C”, a special instance which contains the default state of the class. New instances are created based on the CDO, and the “revert to default” button on Property Editors also rely on it.

By the way, also note that, if you re-save the assets that depend on the redirected packages and classes, their internal references will be updated, allowing you to remove the CoreRedirects afterwards if you choose.

Best regards,

Vitor