UPrimitiveComponent* vars not showing up in editor

I cannot get pointers derived from UPrimitiveComponent (in particular UParticleSystemComponent* and USkeletalMeshComponent*) to show up in the editor no matter what I set their UPROPERTY tags to.

In the following example all of the Component* ojects fail to show. Only test3 (which is NOT a Component* object) will appear (as seen in the attached image):

UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"), Category = "Weapon")
    	TArray<UParticleSystemComponent*> test1;

    	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"), Category = "Weapon")
    	UParticleSystemComponent* test2;

    	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"), Category = "Weapon")
    		TArray<UParticleSystem*> test3;

    	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"), Category = "Weapon")
    		USkeletalMeshComponent* test4;

50309-unrealeditorvariables.png

Is there any reason why components should NOT show up in my editor? Everything else seems to show up just fine, but objects derived from UPrimitiveComponent do NOT.

1 Like

I have been working on this and I noticed an interesting wrinkle. My variable WILL show up in the default view, but if I open it in the Full Blueprint Editor it disappears. You can see in these images:

Quick Preview, MuzzleFlash shows up

But in the full editor its gone.

WTF!?

PS I’m running Visual Studio 2013 for windows and have recompiled my code in VS and Unreal Editor numerous times now.

MuzzleFlash is defined with the following code:

    	UPROPERTY(EditAnywhere, Category = "Weapon")
    	TArray<UParticleSystemComponent*> MuzzleFlash;

I copied those lines directly from UTWeapon.h, and that data seems to show up fine in the UT Editor. So why doesn’t it work in my editor? Are there some settings that could affect this.

Since posting this question I have worked with Unreal for a couple more years and this is just a quirk of the blueprint system.

TArray MuzzleFlash did NOT appear in the variables list because it uses component pointers. Component pointers do NOT show up in the variable list, BUT you can still access them in the construction graph and in the blueprint event graph. So it is completely possible to have a blueprint accessible array of component pointers, you just have to initialize it through the graph instead of through the variable list.

1 Like

thank you guy, you help me a lot.