Renaming a custom ActorComponent class when that class is set as a component in a Blueprint and performing a Hot Reload will crash the Editor if the Blueprint is opened for editing after the project has been closed and re-opened in the Editor.

Possibly related to UE-4871.

Steps to Reproduce
  1. Create a new code First Person project.
  2. Build the project in Visual Studio.
  3. Open the project in the Editor.
  4. Add a new code class to the project derived from ActorComponent.
  5. Close the Editor.
  6. In the header file for the new class, change the UCLASS macro to read: UCLASS(meta=(BlueprintSpawnableComponent))
  7. Build the project in Visual Studio.
  8. Open the project in the Editor.
  9. Create a new Actor Blueprint.
  10. Add a component that derives from the new class to the new Blueprint.
  11. In Visual Studio, rename the header and code files for the new class, and replace all references to the old class name with references to the new class name.
  12. Build the project in Visual Studio to initiate a Hot Reload in the Editor.
  13. After the Hot Reload completes, close the Editor.
  14. Re-open the project in the Editor.
  15. Double-click the Blueprint created in step 9 to open it for editing.

The Editor crashes.

The Editor opens the Blueprint for editing and correctly shows the new name of the component.

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

Login to Vote

Cannot Reproduce
ComponentUE - Gameplay - Blueprint
Affects Versions4.5.14.7
Target Fix4.8
Fix Commit2480626
CreatedNov 26, 2014
ResolvedMar 17, 2015
UpdatedApr 27, 2018