Thanks Tulpuh. I did not fix the issue as is but I did something else that works. I also see a big speed increase in opening the asset and saving it. I think its because now I am just using structs with no pointers per node. I think it was the fact I did not put Instanced tag in UPROPERTY. By the time I found that tag I already changed how my node data is. Its going to be a bit more work to write runtime controller for graph sine I am not using pointers but I did this same method in Unity so I am confident it will work out.
USTRUCT(BlueprintType)
struct FFluidNarratorGraphNode
{
GENERATED_USTRUCT_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FGuid Guid;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray<FGuid> LinksByUID;
UPROPERTY(Instanced, EditDefaultsOnly)
UFluidNarratorGraphNodeEffect* NodeEffect;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FFluidNarratorGraphNodeTransitData Transit;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float LocationX;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float LocationY;
};
UCLASS(Blueprintable, BlueprintType)
class FLUIDNARRATORRUNTIME_API UFluidNarratorGraph : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadOnly)
TArray<FFluidNarratorGraphNode> Nodes;
};