TSubclassOf is what you want, yes. When you create a blueprint off some C++ class it is now a BlueprintGeneratedClass, which has a base class of that C++ class. This is why you don’t see blueprints in the picker when trying to add items to your array.