Edit nested object variables on Actor?

First off, thank you all for all your help. The UE forums are fantastic for finding answers to my noobish questions before I ask them.

Now to the question. I created a Spell class in C++ that has variables of two other types of UObjects inside it.

UCLASS(Blueprintable, BlueprintType)
class Spell : public UObject, public FTickableGameObject
{
    ClassA* otherClass;
    TArray<ClassB*> thirdClassArray;
}

In my actor blueprint, I have a variable of type Spell. However, I would like to edit the spell variables from the actor blueprint in the details pane, without having to create a custom child blueprint for every new spell. All I can do is assign the Spell* with an object that already exists in my project hierarchy. I want the designers to be able to modify the sub-values directly on my actor or use a predefined class. The problem is I dont know how to expose those variables, I can only expose a Spell pointer. Anyone have any ideas?

You can’t, first of all objects can’t be set in defaults, because they don’t exist when you edit them, you can only set them in detail tab when you place object on level and it can you can only pick other object in level. You can pick class if you use UClass* or TSubclassOf but you can’t edit defults there either. So you will need to work around it.

Do you though of using structs? In blueprint they are limited but in C++ they can have function and inherence and it will still work in blueprint (ofcorse you wont be able to call structure functions, but you can make class functions that do so). But more importunately when you make structure property you will be able to edit it’s variables in defaults.