You can use player variables for this. Also, what do you mean by “interact with” them? There are a lot of ways to interact with effects, some more or less difficult to implement.
The information you gave me isn’t enough to be 100% certain on what you want exactly. But maybe you can get started with this:
You do want a different location for each player, right? You could for example define all 12 locations in an array:
rule 1 - ongoing global
condition:
- none
action:
- set global variable at index(effectLocations, 0, *position of the effect for player 0 in team 1*)
- set global variable at index(effectLocations, 1, *position of the effect for player 1 in team 1*)
- set global variable at index(effectLocations, 2, *position of the effect for player 2 in team 1*)
- ...
- set global variable at index(effectLocations, 10, *position of the effect for player 4 in team 2*)
- set global variable at index(effectLocations, 11, *position of the effect for player 5 in team 2*)
Now you have an array of the positions of the effects. The next rule you need is to initialize each player:
rule 2 - ongoing each player
condition:
- has spawned(event player) == true
action:
- if(compare(team of(event player), ==, team1))
- set player variable(event player, effectPosition, value in array(global variable(effectLocations), slot of(event player)))
- else()
- set player variable(event player, effectPosition, value in array(global variable(effectLocations), add(slot of(event player), 6)))
- end()
- create effect(event player, ring, red, player variable(event player, effectPosition), 1, visible to position and radius)
- set player variable(event player, effectID, last created entity)
This rule creates the effect for each player. At first, the “if” action decides wether the player is in team 1 or team 2. As I have put all the positions in only 1 array, I use the indices 0-5 for team 1 and 6-11 for team 2.
Next, the position of the effect of the player gets stored in a player variable, so I can reference it easier later.
Then the effect gets created. It is a red ring with radius 1. As I have set the visibility to “event player”, it is visible to the event player only.
Finally I set the player variable “effectID” to “last created entity”. This is the ID of the last created effect. It is useful to store it in a variable, so it is possible to destroy a specific effect later.
The next rule handles the interaction with the effect:
rule 3 - ongoing each player
condition:
- is button held(event player, interact) == true
- distance between(event player, player variable(event player, effectPosition)) <= 1
action:
- wait(0.25)
- *do something*
The first condition checks for the button input. As the “interact” button is only used for symmetras teleporter, it is a good choice here.
The second condition checks wether the distance between the event player and his effect is smaller than the radius of the effect. This means the player is inside the red ring.
The first action inside the rule is a wait action, to prevent rapidly pressing the interact button to retrigger the event. This has been useful in my experience.
After this you can do whatever you want to happen when interacting with the effect.
I hope this will help you getting started and if you have further questions, just ask 