Am I Doing Wrong the End Function, One script sometimes just loops, it has glitches help pls!

local s = script.Stat


t= 0
while true do
    t= 8
    repeat
        t= t-1
        s.Value = "Game Starting in "..t
        wait(1)     
    until t == 0

wait(1)
target = CFrame.new(102, 3.5, -465)
for i, player in pairs(game.Players:GetChildren()) do
    player.Character.HumanoidRootPart.CFrame = target ----
end
end
 wait(4)

    t= 5
    repeat 
        t= t-1
        s.Value = "Choosing Simon in "..t
        wait(1)
    until t == 0
    local randomPlayer = game.Players:GetPlayers()
    [math.random(1,#game.Players:GetPlayers())]
simonpl = CFrame.new(182, 2.5, -477)
randomPlayer.Character.HumanoidRootPart.CFrame = simonpl
wait(3)

t= 80
repeat
	t= t-1
	s.Value= "Game Ending in "..t
	wait(1)
until t== 0

targetl = CFrame.new(97, 0.5, -193)
for i, player in pairs(game.Players:GetChildren()) do
    player.Character.HumanoidRootPart.CFrame = targetl ----
    wait(1)
end