so I am making a game loop and in this game loop, it enables a separate script to teleport any players that died to a random spawn however it will only load the character and nothing else, not even an error. So then I added prints to the script it seems like all the prints trigger but it still won't teleport the player. (Note: I am using an object value to tell the script what the map object is.)

ReplicatedStorage = game:GetService("ReplicatedStorage")
GameOn = ReplicatedStorage.Game
Maps = ReplicatedStorage:WaitForChild("Map")

game.Players.PlayerAdded:Connect(function(plr)

	local chr = plr.Character or plr.CharacterAdded:wait()
	local hum = chr.Humanoid
	
	hum.Died:Connect(function()
		print("Player has died")
		if GameOn.Value == false then
			plr:LoadCharacter() -- Loading the character
			print("LoadCharacter")
		else
			print("Respawn")
			wait(3)
			plr:LoadCharacter() -- Loading the character
		end
		
		local Spawns = Maps.Value:FindFirstChild("Spawns"):GetChildren() -- Get spawns
		local RandomSpawn = Spawns[math.random(1, #Spawns)] -- Pick a Random Spawn
		
		print("Chosing spawn")
		if chr and hum and chr:FindFirstChild("HumanoidRootPart") then
			print("Chosing")
			chr.HumanoidRootPart.CFrame = RandomSpawn.CFrame -- Put player on picked spawn
			print("Spawn Chosen and teleporting")
		end
		print("Teleported")
	end)
end)