Why can't I access Physics properties of inherited class from blueprint?

I have a blueprint actor that is derived from an actor hierarchy in C++. My root component is a capsule component which is specified in my C++ class as:

	/** Simple collision component used as root component */
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Selectable)
		UCapsuleComponent* CapsuleCollision;

I can see and modify the capsule in my blueprint, but the only Physics property available in the Details panel is “Should Update Physics Volume”. If I add a junk capsule component directly to the blueprint, I can see all physics properties I wish to edit, such as mass and dampening. See below:

Why don’t all the properties show up for the inherited class? How can I change properties like mass on an instance by instance case in the blueprint for my C++ root component?

Hello Dustums,

This is due to the UPROPERTY specifiers being used. To see these properties you’ll need to declare it as such:

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess), Category = “Selectable”)
UCapsuleComponent* CapsuleCollision;

While this will work, I have recently put in a report of VisibleAnywhere showing more properties than EditAnywhere as the process seems backwards to me.

Hope this helps!

Worked perfect! I would have never figured that out since this seems to suggest that values can’t be changed. EditAnywhere did seem the more intuitive answer. Thanks so much!

Worked for me as well. I’ve just been putting up with this for so long. Had no idea VisibleAnywhere was the key.