I managed to have a 100% repro case in 2 different Engine versions and I only can fix it if I do the re-name variable trick.
Test case is , Update 2 within the original question https://udn.unrealengine.com/questions/474281/inherited-actor-component-details-panel-is-empty.html
Well, my post at UDN got us a bug report opened by Epic. Hopefully will be fixed. Workaround is at the bottom
Solved my issue. Thanks for the tip!
There is an easy fix. Go to your property with no displayed Details and just change the name of it. Do the same in your .h and .cpp files. Then recompile in VS, close UE4 Editor and VS, remove the .sln file in the project, regenerate the .sln file, open your UE4 Editor and VS. The problem should be gone.
Now, you can say thank you to me
It solve the problem thank
i changed:
CreateDefaultSubobject<UBoxComponent>(“RootComponent”) – TO – CreateDefaultSubobject<UBoxComponent>(“Root”)
and it fixed the issue, maybe some engine file is using the same name somewhere in the hierarchy, or maybe changing the name cleared some cache related bug.
sometimes re-parenting is also needed.
Had the same issue in 4.23 and all above suggestions didn`t fix it.
In my case I found that I accidentally created a blueprint with the same name of the c++ class. (MyCharacter.h and blueprint inharite with name: MyCharacter)
Once I deleted blueprint the problem solved.
Re-parenting did the trick for me to, thanks!
The problem manifested itself in my case by the Camera & Springarm Components defined and instantiated by CreateDefaultSubobject in the c++ class and constructor turning null somewhere between the constructor and Beginplay. An observed symptom was there were no details for the camera and springarm in a particular Blueprint grand child class, where there were details in it’s parent. Using a different name in CreateDefaultSubobject,rebuilding solution, nor building after blowing away Binaries, Intermediate, and Saved folders changed anything. Only re-parenting the grand child blueprint class in question to ACharacter, compile, save, re-parent back to prior parent, did the trick. Running 4.23.1 btw.
Running into same issue on 4.24, while reparenting fixes the issues I do lose all of the settings I incorporated previously, which is less than ideal.
Another way to fix it is remove the uproperty, compile, make sure the editor pics it up, then add it back in, compile. is usually how I fix it when the details panel goes away.
Thank you so much!
I have version 4.24 still existing bug.
Reparenting helped me
When happens to me, remove the uproperty completely and recompile, make sure the hotload works and editor picks it up, then add it back in. I typically use EditDefaultsOnly, and BlueprintReadOnly.
Sometimes it takes me SEVERAL hotloads and re-compiles for it to pick up the changes. One time I compiled 7 times before it actually updated in the editor. I’m not exactly sure on why it sometimes it takes so long to pick up changes in the editor.
Thanks for the help! Also running into bug on 4.24
Sometimes compiling 2 or 3 times gets it done aswell. But in the worst case reparenting works.
**[4.25.1] **Same issue - didn’t want to reparent, and commenting out
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Health") class UHealthComponent* Health;
compiling, uncommenting, compiling didn’t help. However, the above suggestion to rename
class UHealthComponent* **HealthComp**;
did the trick following a compile.
Unfortunately, that did not work in my case. Neither did deleting Intermediate and Build before then regenerating + recompile.
The only fix that actually worked in my case was reparenting, I guess I got unlucky.
Any way to create a redirector for component name? That may do the trick as the issue seems to came from renaming component name from C++
I just got issue. Reparenting works, but I lost all my data. Apparently, having a blank details panel is “By Design” according to bug report- Unreal Engine Issues and Bug Tracker (UE-67850)
Wow, I couldn’t imagine a worse possible design.
So issue just happened to me and I noticed the following: When you select the Actor Base (self) in the “Components” Tab and then in the “Details” Tab scroll to the Component which doesn’t show the details anymore, instead of the correct class it just shows “None” for me. When I click on the yellow “Revert-To-Defaults” button (I can’t select it from the List), the correct component class is selected again and the details list is visible in the editor again.
Hope helps, seems to not effect subclasses like the “renaming” method.
EDIT: I just noticed - when clicking the revert button and compiling, it sometimes reverts back to “None”. Restarting the Editor afterwards and clicking the revert button again fixed the issue.
issue is really annoying has been around since 4.0. Some component properties added from C++ properties appear when using
VisibleDefaultsOnly but most have an empty details panel. It’s incredibly annoying.
I thought I’d check if it has been resolved in 2021. Nope
I think is the reason https://forums.unrealengine.com/deve…ted-components (see second response)
My work around isn’t great but it’s what I’ve been doing for the past few years.
- Create the pointer in C++
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = “LuckyDuck”)
class UBoxComponent* MeleeHitOverlapComponent;
And assign it null in the constructor - MeleeHitOverlapComponent = nullptr;
-
In a Base blueprint that inherits my C++ class add the Component manually
-
In Blueprints Begin Play assign my C++ pointer to point to the component I added in the Blueprint. I usually have an InitializeVariables function in blueprint to do when there’s more than one of these to do.
Now I can now reliably edit the component in the details correctly in child Blueprints. You need you ensure you check if you pointer is valid in C++ but you should be doing that anyway.
I hate issue and work around with a passion.