Changing the name of a C++ project

Tried to rename project and now the project is broken and I can’t open any blueprints without crashing the engine.

Assertion failed: NULL != GeneratedClass [File:E:\UnrealEngine\Engine\Source\Runtime\Engine\Private\Blueprint.cpp] [Line: 631]

UE4Editor_Core!FDebug::AssertFailed() [e:\unrealengine\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_Engine!UBlueprint::PostLoad() [e:\unrealengine\engine\source\runtime\engine\private\blueprint.cpp:632]
UE4Editor_CoreUObject!UObject::ConditionalPostLoad() [e:\unrealengine\engine\source\runtime\coreuobject\private\uobject\obj.cpp:859]
UE4Editor_CoreUObject!EndLoad() [e:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1635]
UE4Editor_CoreUObject!LoadPackageInternalInner() [e:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1265]
UE4Editor_CoreUObject!LoadPackage() [e:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1477]
UE4Editor_CoreUObject!ResolveName() [e:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:756]
UE4Editor_CoreUObject!StaticLoadObjectInternal() [e:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:843]
UE4Editor_CoreUObject!StaticLoadObject() [e:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:903]
UE4Editor_ContentBrowser!FAssetData::GetAsset() [e:\unrealengine\engine\source\runtime\assetregistry\public\assetdata.h:232]
UE4Editor_ContentBrowser!SContentBrowser::OnAssetsActivated() [e:\unrealengine\engine\source\editor\contentbrowser\private\scontentbrowser.cpp:1848]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,TTypeWrapper<void> __cdecl(TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type)>::Execute() [e:\unrealengine\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,void __cdecl(TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type)>::ExecuteIfSafe() [e:\unrealengine\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:434]
UE4Editor_ContentBrowser!SAssetView::OnListMouseButtonDoubleClick() [e:\unrealengine\engine\source\editor\contentbrowser\private\sassetview.cpp:3693]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,TTypeWrapper<void> __cdecl(TSharedPtr<FAssetViewItem,0>)>::Execute() [e:\unrealengine\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,void __cdecl(TSharedPtr<FAssetViewItem,0>)>::ExecuteIfSafe() [e:\unrealengine\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:434]
UE4Editor_ContentBrowser!TBaseDelegate<void,TSharedPtr<FAssetViewItem,0> >::ExecuteIfBound() [e:\unrealengine\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:624]
UE4Editor_ContentBrowser!SListView<TSharedPtr<FAssetViewItem,0> >::Private_OnItemDoubleClicked() [e:\unrealengine\engine\source\runtime\slate\public\widgets\views\slistview.h:800]
UE4Editor_ContentBrowser!STableRow<TSharedPtr<FAssetViewItem,0> >::OnMouseButtonDoubleClick() [e:\unrealengine\engine\source\runtime\slate\public\widgets\views\stablerow.h:287]
UE4Editor_Slate!<lambda_eeb33fd1b480e3cad58a1531d90d2e14>::operator()() [e:\unrealengine\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5473]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_eeb33fd1b480e3cad58a1531d90d2e14> >() [e:\unrealengine\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:238]
UE4Editor_Slate!FSlateApplication::RoutePointerDoubleClickEvent() [e:\unrealengine\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5471]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDoubleClickEvent() [e:\unrealengine\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5454]
UE4Editor_Slate!FSlateApplication::OnMouseDoubleClick() [e:\unrealengine\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5432]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [e:\unrealengine\engine\source\runtime\core\private\windows\windowsapplication.cpp:1702]
UE4Editor_Core!FWindowsApplication::DeferMessage() [e:\unrealengine\engine\source\runtime\core\private\windows\windowsapplication.cpp:2120]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [e:\unrealengine\engine\source\runtime\core\private\windows\windowsapplication.cpp:867]
UE4Editor_Core!FWindowsApplication::AppWndProc() [e:\unrealengine\engine\source\runtime\core\private\windows\windowsapplication.cpp:714]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [e:\unrealengine\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:980]
UE4Editor!FEngineLoop::Tick() [e:\unrealengine\engine\source\runtime\launch\private\launchengineloop.cpp:2977]
UE4Editor!GuardedMain() [e:\unrealengine\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [e:\unrealengine\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [e:\unrealengine\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

Sadly, renaming a project in unreal is really cumbersome. There are a myriad of steps needed to actually successfully rename a project.

I can only link to this answer, it is the closest thing to official documentation.

Yeah I followed that one and I guess I did something wrong. This really needs to be made easier like not needing to have the files reference a project name. Would it not be easier just to have all the behind the scenes stuff use a generic name? e.g. referencing “project.h” instead of whatever name you set.

Hello,

you can add this lines to your “Config/DefaultEngine.ini”

[/Script/Engine.Engine]
+ActiveGameNameRedirects=(OldGameName="TP_ThirdPersonBP",NewGameName="/Script/ProjectName")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPersonBP",NewGameName="/Script/ProjectName")

That should reference your blueprints to the new project name.