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.
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).
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-109038 in the post.
|Component||UE - Gameplay - Blueprint Compiler|
|Created||Feb 20, 2021|
|Resolved||Feb 22, 2021|
|Updated||Nov 29, 2022|