Displaying structs in the edtior

Excuse the noobish question, I did some googling but was unable to come up with any results that helped me. I currently have a struct that acts as a container for some basic entity information and it is being used in another class. I’m trying to get the structs information to show up in the blueprint editor so that I can edit it, but I am unable to do so. (I came from Unity so the Unreal property system is new to me)


#include <string>
#include "ObjectInfo.generated.h"

USTRUCT()
struct FObjectInfo {
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, Category="Info")
	std::string id;
	UPROPERTY(EditAnywhere, Category="Info")
	std::string name;

public:
	FObjectInfo(std::string newId = "null");

	std::string Id();
	std::string Name();
};


#include "GameFramework/Character.h"
#include "ObjectInfo.h"
#include "Creature.generated.h"

UCLASS()
class ACreature : public ACharacter {
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, Category="Creature Info")
	FObjectInfo objectInfo;

public:
	ACreature();
	~ACreature();
};

unrealq1.png

The above picture is the results of the above code, but I would like the Id and Name fields from FObjectInfo to be displayed in the editor. What am I doing wrong?

I can’t see how that would even compile.
Anyway, you can only use specific primitive types (bool, uint8, int32, float) and unreal types with UPROPERTY. Replace std::string with FString and you’re good to go.