Help with C++ in FlowGraph plugin - OutputPins

Hi, i am hoping for some help with creating a new feature in the FlowGraph plug in. I have almost completed it, however i cannot get the output pins of the FlowGraph to work correctly. I am hoping someone gifted in C++ can help me troubleshoot. So far i have been brute forcing myself through with copilot and stubbornness, but it is no longer working for me.

It might require a little understanding of what flowgraph is, to understand what i am trying to do. So hopefully my explanation doesn’t sound too confusing. If you already know FlowGraph you can probably skim to the end to see what the actual issue is.

Flowgraph sort of replaces the level blueprint, but is detached from the level itself, and provides an async way to create events in the game. For my game, it behaves a little like the director, or the coordinator of events in the game. It comes with features notifyActor and notifyGraph where the graph can prompt the actor via gameplay tags to run an event, and the actor might use notify graph to inform the graph that its finished, or maybe its a door and it would inform the graph that it has been opened and the graph might cue an event based on that door opening.

I added a new feature (using copilot and stubbornness) notifyActorWithStruct, which basically means i can set the struct in the graph and send that to an actor, for example if i wanted an npc to move to a location, i could define a struct in the graph and notify actor with struct to send that information to the actor. This feature works as intended, and is super useful. I am struggling with the next feature.

The next feature, notifyGraphWithStruct is intended for an actor to pass data to the graph that the graph can then act on, so imagine an npc spotting the player sending the location of the player to the graph, and then the graph prompts an event based on the current narrative state, maybe sends a patrol to that location, or an artillery strike, or maybe a gift package if its a nice part of the narrative.

So graph listens for actor, actor sends struct to graph, graph prompts event based on struct provided by actor. Simple.

Issue is that the OnNotifyFromActorWithStruct class is receiving the struct correctly, but i cannot get it to output it to the struct pin ( I can create a struct pin, it just produces nothing. I can see the correct value of the Struct inside the class when debugging VS. This class is a copy of the OnNotifyFromActor class found in the base plugin, and the relevant functions are the same except with WithStruct added, and functionality for the event added to the FlowComponent class (multicast_delegate and relevant event function).

For my current attempt ( i have tried different methods) In the OnNotifyFromActorWithStruct.h file i have declared

UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Flow", DisplayName="ReceivedStruct", meta = (SourceForOutputFlowPin = "ReceivedStruct"))
FFlowDataPinOutputProperty_InstancedStruct ReceivedStruct;

and then in the .cpp i have this function

void UFlowNode_OnNotifyFromActorWithStruct::OnNotifyFromComponentWithStruct(UFlowComponent* Component, const FGameplayTag& Tag, const FInstancedStruct& NotifyValue)
{
	if (Component->IdentityTags.HasAnyExact(IdentityTags) && (!NotifyTags.IsValid() || NotifyTags.HasTagExact(Tag)))
	{
		ReceivedStruct.Value = NotifyValue;

		TriggerOutput(TEXT("ReceivedStruct"));
		OnEventReceived();
	}
}

This correctly provides NotifyValue as the indended Struct, and ReceivedStruct creates an output pin but the pin does not provide the struct to the downstream node. (other implementations i tried use FFlowPin and set pin type and add it to an array of flowpins in the constructor. i think this property handles that for me.

I appreciate that this is a specific plugin and so its a longshot, perhaps it is creating output pins in a different way to the engine default, as its using its own graph, not normal blueprints. However, i am in too deep with not enough C++ experience so i am hoping some guru can light the way. It could be just one line or piece of understanding i am missing, or it could be a bug in the plugin.

Thank you for reading, it was a long one, and if anything is unclear or you need further information, let me know.