C++ reference not an instance of the script, but instead the same one across all NPCs OR AI Controller giving information to all NPCs using that controller

Hi, so I’m currently having an issue where my AI Controller seems to be giving information to all actors that share it as its main controller, for example when one NPC sees or hears the player, so does the other one. I don’t know exactly why this is happening or whether or not this is due to the AI Controller itself or due to my referencing of a C++ script I use.

Each of my NPCs has a component on them called “Actions”, and when the NPC sees the player, the AI Controller adds a state to an array in this actions component. However, the issue is that when EITHER NPC sees the player, both of their Actions components get this state, so for some reason it’s being sent to both of them. In the AI controller, I’ve printed out the name of the actor that sees the player by doing getcontrolledpawn (as is shown below) and this prints out JUST the name of the actor that saw/heard the player, meaning it doesn’t seem to be an issue with the AI controller but instead in the way I’ve referenced a C++ script.
image

This is currently what I do to get the player’s states, I thought that this would return the instance of their Actions component but for some reason it seems to effect every single EnemyTypeAlpha with this component.
image

Below is the allstates property inside of the Actions component and the way it gets set up. Basically, I get all my worldstates from the gamemode, get the actor’s states in a way that doesn’t empty the other instance, and append it to the end, which should make it so that allstates is comprised of the main game’s states as well as the current actor’s states.

image

image

If anyone can tell me what I’m doing wrong I’d really appreciate it, I can’t understand why this wouldn’t just add a state on to the specific actor’s instance of the actions component.