I have an Actor Component class URecoilSystemComponent, which containts the following UPROPERTY’s:
And in my character I create the subobject as per usual, yet in the details panel of the component in my character blueprint, none of the UPROPERTY’s show up? Ive restarted the editor multiple times, compiled multiple times, and used different variations of the UPROPERTY such as VisibleAnywhere, BlueprintReadOnly etc but none work (as far as I know EditAnywhere should be fine?).
Hey !
You need to add Blueprintable on your component class maybe ?
So : UCLASS(Blueprintable)
If it’s not enough maybe add BlueprintReadWrite to your UPROPERTY also.
Unfortunately neither of those worked. For some more context the UPROPERTY’s are in the protected section which I believe is fine. Also the UCLASS I have is:
UCLASS(ClassGroup = (Custom), BlueprintType, Blueprintable, meta = (BlueprintSpawnableComponent))
So I guess you are adding the component in your blueprint right?
Do you see them in the editor instead of the blueprint window when you select your actor?
Try puting them in public maybe ? Shouldn’t work but you know sometimes ^^
Also are you relaunching your project? Sometimes editing the headers ■■■■ the editor.
I add the component via c++ inside my characters constructor as per normal. Ive put in public as well, doesn’t change anything. Ive also restated the editor, refreshed the blueprint, upgraded unreal, nothing works. I just think its a bug at this point, it isnt a huge issue as there are alot of ways to go around this but just quite annoying to not have direct access to the component via properties.
/** The CapsuleComponent being used for movement collision (by CharacterMovement). Always treated as being vertically aligned in simple collision check functions. /
UPROPERTY(Category=Character, VisibleAnywhere, BlueprintReadOnly, meta=(AllowPrivateAccess = “true”))
UCapsuleComponent CapsuleComponent;
would be my recommended setting copied from character,
so this definitely should work,
since it didn’t work for you I can only think of one funky problem
which is if you create an object, then add a component
Unreal sometimes goes haywire, the only way for me to fix this so far is to recreate the object.
Try creating a new Actor of this class and see if this works.
On that note, it has definitely nothing do with your property settings for min/max pitch/yaw,
since all default component properties are missing not only the new one you added
I’m speechless. It has been two years but no one at Epic can help with this issue. I’ve encountered this exact same issue in the 4.27 version and it’s very simple to reproduce:
Create new C++ Actor and ActorComponent classes; say, MyActor and MyActorComponent respectively
Create any UPROPERTY variable in the MyActorComponent (the visibility option doesn’t matter)
Attach the new MyActorComponent to MyActor in MyActor’s constructor using the CreateDefaultSubobject function
Compile the codes, and restart the editor if you will.
Create a new BP class inherited from MyActor, click on the MyActorComponent, and check the Details panel
Nothing being shown there
On a side note: if I manually attach the component in the Blueprint class from the editor, everything shows up properly.
I’ve plowed through the documentation, engine codes, and forums but still couldn’t find any solution. Such a world-class AAA game engine it is!
Somehow I wonder whether people at Epic really care about solving users’ problems or if they are just content with what they have because, hate it or like it, there’s practically no competition in the AAA space and you either use their product or roll your own; which the later option is impractical for the most studios.
I’ve attached the screenshot in case anyone wonders whether the issue is real.
I haven’t tried whether it needs to have a specific combination of specifiers but VisibleAnywhere and BlueprintReadOnly worked just fine for me, so I’m going to stick with this.
I wish this would have been in the documentation somewhere, but, well. That would be too much to ask for, considering the state of documentaion where most of them just repeating the API’s declaration (as if it wasn’t already obvious enough).
This is literally mentioned everywhere, in the Unreal Engine Documentation and in almost every C++ course (even the free ones by Epic) or video on Youtube. If you don’t mark it as UPROPERTY it can be garbage collected at any time and it can’t be exposed to BPs.
If you want to be able to EDIT the variable/component in BP (with nodes) you need the BlueprintReadWrite specifier, if you just need to be able to GET the values of variables from Blueprint you just need BlueprintReadOnly, this is pretty self-explanatory.
The EditDefaultsOnly, EditInstanceOnly and EditAnywhere specifiers are used to determine WHERE you can edit the marked variables.
The first, as its name suggests, lets you only edit the variable in the archetype’s details panel (the blueprint editor), the second one lets you edit it when you create an instance of the class containing your variable (for example, when you place an actor in the world and click it, it will be shown in the details panel), the third lets you edit it in both places.
Mentioning your previous claim, the visibility DOES matter, there are three other specifiers that are not compatible with the edit specifiers I mentioned above, and they are VisibleAnywhere, VisibleDefaultsOnly and VisibleInstanceOnly and their names are also self explanatory, if you use them you’ll be able to see the values in the respective areas but not to edit them.
I can understand your frustration, sometimes I’ve been looking for a solution for entire days and then discovering it was a stupid thing not mentioned anywhere (a missing module for example…), this is not just for Unreal, this is Programming in general. No one really cares about your problems, you have to consider yourself lucky if someone decides to answer to your question in a forum (If you look at my profile almost every question I asked is without a solution )
I hope not to have bored you, and I hope I helped you understand how these specifiers work instead of “sticking with random ones because they worked just fine”.
Have a nice day!
Hi !
You need to set the Variable of the component as “EditAnywhere” or “EditDefaultsOnly” from the Actor when you are adding it.
For example, if you are adding a component to your character actor, then in the .h of your character actor, you must declare the component variable with the prefix “UPROPERTY(EditAnywhere)”
I think it probably not the kinds of UPROPERTY issues. That might be the reason that initialization of this component was failed due to you altered some property of this component, like class name or something. I had encounter several times but I still can not really resolve it.
but here’s somethings I did:
just remaking all those relative blueprints, yeah, I’m serious.
Remake that broken class, rename it is not helping, you have to kill it. Make new .h file, make a new name, etc.
If your component has BlueprintType in UCLASS(), try add a new component directly in blueprint, see if it can normally show details.
Both way can resolve it in a stupid way, at least it worked.
This is not a problem with variables when nothing is shown in details panel, some times a blueprint get suck, and some component not show details, i have had this problem just now, i have solve it commenting al references and creation lines in the main actor, doing a modification in the main actor and save, and uncommenting the component declaration again, and all is back.
UE 5.4 Change Inheritance in your C++ class to e.g. AActor, Update Project via Live Coding Patch, then set back to the class you want: The Component should during this process disappear, and pop back, forcing a refresh of the UI along with the Component viewer, so the viewer should work again (unless it wasnt working elsewhere too).
E.g.
class WHATEVER_API AMyClass : public AMyParentClass
to
class WHATEVER_API AMyClass : public AActor.
Then run Live Coding Patch. Then set back to:
class WHATEVER_API AMyClass : public AMyParentClass.
With this, the component inherited by AMyParentClass should be editable in the viewer.
This still requires to have set the UPROPERTY options correctly (which I assume you have checked already).
no matter how much I tried the stats component just stopped showing in the details when i updated an Enum variable within it, I had to create a new boss v2 blueprint file and just move every functionality there