How to access UObject components in blueprints

In order to do some heavy math for items saved in a BP Struct, we converted the struct to C++. The problem - the struct in question had a item that was itself bsed on a struct. That struct was converted to a UObject but now I can’t find a way to access or edit the items in the UObject within blueprints.(I need the equivalent of the struct/array functions break, make and add.

USTRUCT(BlueprintType)
struct FC_SpawnedStar : public FTableRowBase
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		TArray<UC_Orbital*> OrbitData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		bool InsideNebula;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		FString SystemviewNebulaType;
};

UCLASS(BlueprintType)
class UC_Orbital : public UObject
{
	GENERATED_BODY()

public:

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		FString OrbitalName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		bool IsPlanet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		bool IsAsteroidBelt;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		TSubclassOf<AActor> SystemOrbitalStarClass;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		TSubclassOf<AActor> SystemOrbitalPlanetClass;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		TSubclassOf<AActor> SystemOrbitalAsteroidClass;
};

The code is edited down for clarity.

So how and where to I get, change, save the values in class UC_Orbital in blueprints?

You can not logiclly convert struct to UObject because there role is conventionally different in UE4, struct type which is a sequence of data (in memory sense) that is created together with variable that contains it (like other primitive types like float or int32), while UObjects something that need to created in the UObject system and in variable can be only referenced (hold in pointer in C++ sense) and from that referenced. Because in blueprint compilation time specific object is not guaranty to exist or else they are asset object registered in asset registry (anything you see in content browser) or they inside blueprint already (like actor components) or you place actor on the level then actors on the level can be referenced, that the only exception. there also Instanced specifier which you cna use in UPROPERTY() which will create new object together for each FC_SpawnedStar variable you will make.

Other option is if UC_Orbital is a base class for all your items you can use UClass* of based classes using TSubclassOf<UC_Orbital> (TSubclassOf is a special UClass* template that limits selection of class to specific base class relation), then on when ever you need to create object of that class you use NewObject() to do it and keep reference somewhere else

That said this is all in UE4 lens, for C++ both classes and structs are just sequences of data which you can create pointers to as for anything else, but because of UObject system they are treated a bit different in UE4

Thank you. You’ve confirmed what I suspected - what I’d hoped to do to get around the differences between how C++'s limitation on having a struct as a member of a struct was not going to work.