C++ Actor Components UPROPERTY's not showing in details panel

Hi, I encountered this problem also not long ago, here is the fix that worked for me (at least in UE 5.3.2):

  1. First make sure your component is declared in the header file with EditDefaultsOnly or EditAnywhere, here is an example of mine:
    Screenshot 2025-05-21 195053

  2. Now go into Unreal and head to the problematic Blueprint class deriving from the native class.

  3. Create a new Blueprint (following called NewBlueprint) and select the native class as base. Do not edit anything here, as we need it to open in the data only view.

  4. Reparent your problematic blueprint to the newly created one (This is the part where it is important that the NewBlueprint has the exact parent class as the problematic one, otherwise you risk data loss).

  5. Open the NewBlueprint, you should see your component property with the correct class assigned within the data only view. Compile & Save both blueprints.

  6. In the NewBlueprint, change the class of the component to ‘None’. Compile & Save both blueprints starting with the NewBlueprint.

  7. In NewBlueprint, click on the revert arrow to change the component class back to the former valid class. Compile & save both blueprints starting with the NewBlueprint.
    Screenshot 2025-05-21 194402

  8. Now if you click on your troublesome component, you should be able to edit the properties again.

  9. Change the parent class of the problematic blueprint back to the native one and you should be good.

I just ran into this problem (UE 5.4) and found a cause / solution to fix the scenario in my particular case.

Ultimately the issue appeared to be that the UPROPERTY value of the pointer pointing to the component had gotten nulled out and serialized out as null as part of the blueprint. The subobject of the component still existed and all was fine there, which meant it could be seen in the component tree (and even copy/pasted) from the tree - but when it was selected the details panel would be blank.

How did it get this way? It seemed to be related to a blown Component Class Override, which I also manually removed from the class using editor scripting but did not resolve the issue. But ultimately the issue seemed to be that the UPROPERTY value was nulled and there was no easy way to “re-link it” to the proper component.

In order to fix the issue, I wrote editor scripting to find the subobject (by name + class) inside the Blueprint’s Generated Class’s Default Object (GetObjectsWithOuter) and then set the UPROPERTY of the pointer (also inside the CDO) that should be pointing to it, and calling Modify() so that the objects will get reserialized. After this, the details window started working again right away.