Why isn't my struct exposed to blueprint?

I’m using a struct to track the affinity of each character for each other character, it seems to be fairly straightforward:

//Struct definition
USTRUCT(BlueprintType)
struct FRelationship {
	GENERATED_USTRUCT_BODY()

		UPROPERTY(BlueprintReadOnly)
		int32 CharacterID;
		
		UPROPERTY(BlueprintReadOnly)
		float affinity; 
};

//Elsewhere in code

		UPROPERTY(BlueprintReadOnly)
		TArray<FRelationship> relationships;

When I try to split the struct pin of my relationships array, it’s greyed out with the error “Cannot split struct pin, it may be missing blueprint exposed properties”. Am I missing something? I was under the impression that as long as a struct was marked as BlueprintType, and as long as its variables were either BlueprintReadOnly or BlueprintReadWrite, it could be split and viewed inside the editor.

I copied/pasted your code and it is working on my side :

67925-structreadonly.png

However, if you tried to “Make Relationship” or split struct as input in an function, it won’t work since you are in BlueprintReadOnly.

Oooh I was a being a dummy, I was trying to split the array pin, not the individual structs! Thanks for going to the trouble of re-creating it, if you wanna repost this as an answer I’ll accept it real quick. :slight_smile:

1 Like

I had the same Issue. But it was due to hot reload. Restarting the Editor worked.

1 Like

Same mistake here! Thanks for pointing it out, you can only split the struct element and not an array of struct.

Same here!