Can't assign my blueprint class to a EditDefaultsOnly variable

I think I’m missing some simple UCLASS or UPROPERTY specifier. I have a C++ class that represents an ability. It is Blueprintable, and contains a TArray of pointers to another C++ class that are ability components. This TArray is marked as EditDefaultsOnly.

I’ve created a blueprint that is a child of this ability class. I can add entries to the Ability Components list, but nothing shows up when I try to assign a value.

My AbilityComponents class is a child of UObject, and is used for other C++ classes I consider to be ability components. For example, I have another C++ class that is a child of AbilityComponents called ModifyAttribute. ModifyAttribute is Blueprintable, and I have created several blueprint children from this C++ class.

I want to be able to assign entries in my TArray with my blueprints that are a child class of AbilityComponent. None of my ability component type blueprints are showing up though. I also cannot select the blueprint in the content browser and assign it that way. I’ve tried making both AbilityComponent BlueprintType, but they still won’t show up. Any ideas what UCLASS or UPROPERTY specifiers I need?

In case it is important, my TArray looks like the following in C++
UPROPERTY(EditDefaultsOnly)
TArray<UTRPGAbilityComponent*> AbilityComponents;

Thanks!

Ah, I think I got it now.

UPROPERTY(EditDefaultsOnly)
TArray<TSubclassOf>

Looks like I needed to use TSubclassOf instead of a pointer to the class.