In FBlueprintEditor::ReparentBlueprint_NewParentChosen FBlueprintEditorUtils::MarkBlueprintAsModified is called before calling Compile. As a result SCS nodes, including ICH nodes, are created for the components of the new parent class, however, UInheritableComponentHandler::FindBestArchetype ends up using the old parent class and thus fails to locate property overrides.

Steps to Reproduce

In an empty project, create an Actor Component BP, add a boolean variable to it and leave it false.
Create a "Parent" Actor BP and add the component to it.
Create a "Child" BP deriving from Parent, select the component and set the boolean to true
Create an Actor BP, then reparent it to derive from Child, as you'll see the boolean is false (like in Parent) and not true like in Child (this change should have been inherited).

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-109038 in the post.

Login to Vote

Fix Commit15494706
Release Commit15494706
CreatedFeb 20, 2021
ResolvedFeb 22, 2021
UpdatedNov 29, 2022