Teleport vs. Start Forcing Player Position not working as expected

I have a rule that should teleport all players to a specific place defined in each player’s “TeleportPosition” player variable. The actions look like this:

actions
{
For Global Variable(Iterator, 0, Count Of(All Players(All Teams)), 1);
	Teleport(All Players(All Teams)[Global.Iterator], All Players(All Teams)[Global.Iterator].TeleportPosition);
End;
}

This works as expected. However, I also don’t want players to be able to move, so I tried to use Start Forcing Player Position instead, like this:

actions
{
For Global Variable(Iterator, 0, Count Of(All Players(All Teams)), 1);
	Start Forcing Player Position(All Players(All Teams)[Global.Iterator], All Players(All Teams)[Global.Iterator].TeleportPosition,
		False);
End;
}

However, now everyone’s just getting teleported to 0,0,0 regardless of what’s in their player variable even though I changed nothing else.

I pulled the relevant rules out of my mode and got a code to share: 57Q6Q1
Go to the second rule and change which of the middle two actions is off to try them both out. What am I missing here?

“Start Forcing Player Position” is a complex action with complex conditions under it, If you don’t want players to physically move off that position after you teleport them to that location, I recommed using the “Set status” action and set the status “rooted” alongside the teleport action, It basically makes the players unable to move as if they’re in a junkrat trap, I believe this is a better solution than switching to “Start forcing player position” that is used for other cases of teleporting players

It’s not really a problem of not being able to do it another way, I just want to understand why it’s not working.

I don’t think I can provide an answer to that yet, since im still experimenting with the action, and it does bug a lot of times, so I don’t know what should be causing the problem so that’s all i could help with

If you ask me, this is probably because “start forcing player position” reevaluates and “teleport” does not. If you try to do the same thing without the loop (just one action for each player) you will probably notice that everything works fine.