Any idea why THIS generally doesnt work I've done everything in my power to make this work, and somehow it doesn't even work at all

local GameCheckpoints = workspace:WaitForChild("Checkpoints")
local Players = game:GetService("Players")


Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAdded:Connect(function(character: Model)  
		local Num = math.random(1,4)
		character:MoveTo(workspace.Checkpoints:FindFirstChild(Num).Position+ Vector3.new(0, 4, 0))
	
		print("teleporteddd")
	end)
end)
local GameCheckpoints = workspace:WaitForChild("Checkpoints")
local Players = game:GetService("Players")


Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAdded:Connect(function(character: Model)  
		local Num = math.random(1,4)
		local Point = GameCheckpoints:FindFirstChild(tostring(Num))
		
		if Point then
			task.wait(1)
			character:MoveTo(Vector3.new(Point.Position.X, Point.Position.Y + 4, Point.Position.Z))

		    print("teleporteddd")
		end
	end)
end)

Also you should post this in Help and Feedback > Scripting Support next time