I guess i explained quite poorly. Well, i'll try to explain the problem simpler.
I have 2 Gameobjects. The 1st has an FSM that does the stuff below and the second has 5 FSMS with a reference of 0,1,2,3,4 and they just sit idle but have a string variable with nothing in it.
Here's what's going on in the first gameobject:
There are 2 variables:
a STRING and an INT. INT==0.
Int to String,
Set FSM String: The second gameobject with reference STRING has its string set to STRING.
Int++
Then loop around and do it again. So in theory, The second gameobject's FSM reference "0" should have a string set to "0", FSM of reference "1" should have a string set to "1", "2" to "2" etc.
This never happens. The first FSM reference "0"s STRING will change each time. The other FSMs ("1","2","3", etc.) STRING never gets set.
So i thought, "maybe my STRING reference has a problem and it's just setting the first FSMs variable because of that. So i threw in a "Send Event" action to see if it would send an event to the right FSM. In the action, i set the gameobject to the second one, just like before, and the reference to STRING. This worked fine. Each loop would send an event to the different FSM of the second game object. They would only recieve their own event.
So i came to the conclusion that when "Set FSM String" actions have a changing variable set to its reference string, and it loops, using this same action again and again, it never updates the Reference on the new loop.
I hope that makes sense. I also tried with set FSM gameobject,int, and float.
If it doesn't make sense, then just take a look at the scene i attached before. The logic should make sure that the FSMs 0,1,2,3... have a string set to their own name, but only 0's changes. Take a look and see if the logic is right. Because i can't figure it out...