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.

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