Hello [mention removed],
Thanks for the info. I’d like to highlight a few best practices that may help avoid this type of issue.
First, a cleaner and safer way to set the RootComponent is to use the SetRootComponent() method provided by AActor, rather than assigning the pointer directly. Also, it’s best to avoid using EditAnywhere/BlueprintReadWrite on your Body component unless you intend to replace the component pointer during gameplay. If the reference is not expected to change, using VisibleAnywhere/BlueprintReadOnly is the safer choice.
Since there’s no known repro for your case, I looked into similar cases reported by other users.
The most common cause appears to be compiling with Live Coding after modifying native components used in BP classes.
For reference: Changing component types causes corrupted BP - #28 by vebski
This issue has been reported as far back as 2015 and is still reproducible in UE 5.3 based on my tests. If you change the class of your native component (ie: Body) in source code and compile via Live Coding, the BP will become corrupted and you the Details tab will be empty. This is very similar to the issue you’re facing.
In this case, it’s recommended to avoid using Live Coding after changes made to constructors, since it doesn’t fully update Blueprint instances or component hierarchies. If this issue occurs, the typical fix is to close the editor, compile from IDE and relaunch the project.
There’s also a community post that expands on this topic: https://dev.epicgames.com/community/learning/knowledge\-base/jP5O/unreal\-engine\-hot\-reload\-on\-native\-actor\-component\-can\-lead\-to\-blueprint\-corruption\-and\-data\-loss
Let me know if this helps your case.
Best,
Francisco