Player gets teleported out of map when using the teleport ability

Hello everybody. Can anyone help me fix an issue, I have a abilty that let’s you teleport to the closest player, but if a new player has joined in the lobby, nobody can teleport to him, and the teleport will send you to the bottom of the map.

If anyone knows a fix, please let me know, Thank you
image

PS: It let’s me post only 1 photo, I have put the rest of the code below:

using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
using { /Verse.org/Random }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }

TP_to_player_device := class(creative_device):
var PlayersMap:[agent]CustomPlayer = map{}
var GlobalUserUniqueID:int = 1

@editable
P1Spawner:player_spawner_device = player_spawner_device{}
@editable
P2Spawner:player_spawner_device = player_spawner_device{}

@editable
SignalRemoteManager:signal_remote_manager_device = signal_remote_manager_device{}

@editable
Teleporter:teleporter_device = teleporter_device{}


OnBegin<override>()<suspends>:void=
	P1Spawner.SpawnedEvent.Subscribe(OnPlayerSpawned)
	GetPlayspace().PlayerRemovedEvent().Subscribe(OnPlayerRemoved)
	SignalRemoteManager.PrimarySignalEvent.Subscribe(OnRemoteClicked)
	
	
OnRemoteClicked(Agent:agent):void=
	FindClosestPlayer(Agent)
	

FindClosestPlayer(Agent:agent):void=
	
	AllPlayers:[]player = GetPlayspace().GetPlayers()
	
	var ClosestPlayer:?agent = false
	var DistanceToMe:float = 100000000.0
	var FoundPlayer:logic = false
	for(Player:AllPlayers):
		if(Player <> Agent):
			if(MyFC:fort_character = Agent.GetFortCharacter[]):
				if(OtherFC:fort_character = Player.GetFortCharacter[]):
					MyPos:vector3 = MyFC.GetTransform().Translation
					OtherPos:vector3 = OtherFC.GetTransform().Translation
					TotalDistance:float = Distance(MyPos, OtherPos) / 100.0
					if(TotalDistance < DistanceToMe):
						set FoundPlayer = true
						set DistanceToMe = TotalDistance
						set ClosestPlayer = option{Player}
						
						if(FoundPlayer = true):
							if(PlayerAgent:agent = agent[ClosestPlayer?]):
								if(FC:fort_character = PlayerAgent.GetFortCharacter[]):
									Pos:transform = FC.GetTransform()
									if(Teleporter.TeleportTo[Pos.Translation + vector3{Z:=0.0}, Pos.Rotation]):
										Teleporter.Teleport(Agent)

OnPlayerSpawned(Agent:agent):void=
	if(CP:CustomPlayer = PlayersMap[Agent]):
	
	
	else:
		NewPlayer:CustomPlayer = CustomPlayer{MyAgentObj:=Agent}
		if(set PlayersMap[Agent] = NewPlayer):
			NewPlayer.InitializePlayer(GlobalUserUniqueID)
			set GlobalUserUniqueID += 1



OnPlayerRemoved(Player:player):void=
	if(Agent:agent = agent[Player]):
		if(OldCustomPlayer:CustomPlayer = PlayersMap[Agent]):
			var TempAllPlayersMap:[agent]CustomPlayer = map{}
			for (Key -> Value : PlayersMap, Key <> Player):
				set TempAllPlayersMap = ConcatenateMaps(TempAllPlayersMap, map{Key => Value})
				
			set PlayersMap = TempAllPlayersMap