UObject-derived Class as UPROPERTY - How can I get this to serialize/save?

Its hard to tell what you are doing without seeing code. But the question has 2 parts. Reflection, and instantiation:

UPROPERTY() means its reflected. Which is required to serialize. Which is required to use in BP’s, and save, load from disk, or serialize from a umap.

In order to create the object, it must be instantiated, then it can be serialized into.

IE: the object pointed to MUST exist before knowing what it contains. You MUST create the object EVERY time the class gets instantiated.

CreateDefaultSubobject<UMyObject> () needs to be called from the constructor.

UPROPERTY(Transient)  //&lt;-- Transient means this WILL NOT get SAVED or LOADED.
uint64  NPC_Class;                 

UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "SOP")
USOPScript* SopScript;   //&lt;--- this gets Default Constructed, and serialized to disk, or into levels.

UPROPERTY(Transient)
USOPState* SopState;   //&lt;--- this holds state information, and does not get serialized to disk or into levels.  But does get serialized for access by BP's.

And the code?