For my upcoming game Christmas Breakdown , I've tried to make it so that each server expires after 3 days. Most of the script has worked, but there's one problem. At the end (literally, the term 'end'), it says its supposed to be on Line 357. I can't figure out why it does this, and I want to make sure the game ends without messing with any of the data stores. (The problem is at the end of the script, so you can just scroll through it.)
local warning = game.workspace.serverclose.Countdown.SurfaceGui.TextLabel
wait(86400)
warning.Text = "2 Days"
wait(86400)
warning.Text = "1 Day"
wait(14400)
warning.Text = "20 Hours"
wait(18000)
warning.Text = "15 Hours"
wait(18000)
warning.Text = "10 Hours"
wait(3600)
warning.Text = "9 Hours"
wait(3600)
warning.Text = "8 Hours"
wait(3600)
warning.Text = "7 Hours"
warning.TextColor3 = Color3.new(255, 255, 0)
wait(3600)
warning.Text = "6 Hours"
wait(3600)
warning.Text = "5 Hours"
wait(3600)
warning.Text = "4 Hours"
wait(3600)
warning.Text = "3 Hours"
wait(3600)
warning.Text = "2 Hours"
wait(3600)
warning.Text = "1 Hour"
warning.TextColor3 = Color3.new(255, 0, 0)
wait(1800)
warning.Text = "30 Minutes"
wait(300)
warning.Text = "25 Minutes"
wait(300)
warning.Text = "20 Minutes"
wait(300)
warning.Text = "15 Minutes"
wait(300)
warning.Text = "10 Minutes"
wait(60)
warning.Text = "9 Minutes"
wait(60)
warning.Text = "8 Minutes"
wait(60)
warning.Text = "7 Minutes"
wait(60)
warning.Text = "6 Minutes"
wait(60)
warning.Text = "5 Minutes"
wait(60)
warning.Text = "4 Minutes"
wait(60)
warning.Text = "3 Minutes"
wait(60)
warning.Text = "2 Minutes"
wait(60)
warning.Text = "1 Minute"
wait(1)
warning.Text = "59 Seconds"
wait(1)
warning.Text = "58 Seconds"
wait(1)
warning.Text = "57 Seconds"
wait(1)
warning.Text = "56 Seconds"
wait(1)
warning.Text = "55 Seconds"
wait(1)
warning.Text = "54 Seconds"
wait(1)
warning.Text = "53 Seconds"
wait(1)
warning.Text = "52 Seconds"
wait(1)
warning.Text = "51 Seconds"
wait(1)
warning.Text = "50 Seconds"
wait(1)
warning.Text = "49 Seconds"
wait(1)
warning.Text = "48 Seconds"
wait(1)
warning.Text = "47 Seconds"
wait(1)
warning.Text = "46 Seconds"
wait(1)
warning.Text = "45 Seconds"
wait(1)
warning.Text = "44 Seconds"
wait(1)
warning.Text = "43 Seconds"
wait(1)
warning.Text = "42 Seconds"
wait(1)
warning.Text = "41 Seconds"
wait(1)
warning.Text = "40 Seconds"
wait(1)
warning.Text = "39 Seconds"
wait(1)
warning.Text = "38 Seconds"
wait(1)
warning.Text = "37 Seconds"
wait(1)
warning.Text = "36 Seconds"
wait(1)
warning.Text = "35 Seconds"
wait(1)
warning.Text = "34 Seconds"
wait(1)
warning.Text = "33 Seconds"
wait(1)
warning.Text = "32 Seconds"
wait(1)
warning.Text = "31 Seconds"
wait(1)
warning.Text = "30 Seconds"
wait(1)
warning.Text = "29 Seconds"
wait(1)
warning.Text = "28 Seconds"
wait(1)
warning.Text = "27 Seconds"
wait(1)
warning.Text = "26 Seconds"
wait(1)
warning.Text = "25 Seconds"
wait(1)
warning.Text = "24 Seconds"
wait(1)
warning.Text = "23 Seconds"
wait(1)
warning.Text = "22 Seconds"
wait(1)
warning.Text = "21 Seconds"
wait(1)
warning.Text = "20 Seconds"
wait(1)
warning.Text = "19 Seconds"
wait(1)
warning.Text = "18 Seconds"
wait(1)
warning.Text = "17 Seconds"
wait(1)
warning.Text = "16 Seconds"
wait(1)
warning.Text = "15 Seconds"
wait(1)
warning.Text = "14 Seconds"
wait(1)
warning.Text = "13 Seconds"
wait(1)
warning.Text = "12 Seconds"
wait(1)
warning.Text = "11 Seconds"
wait(1)
warning.Text = "10 Seconds"
wait(1)
warning.Text = "9 Seconds"
wait(1)
warning.Text = "8 Seconds"
wait(1)
warning.Text = "7 Seconds"
wait(1)
warning.Text = "6 Seconds"
wait(1)
warning.Text = "5 Seconds"
wait(1)
warning.Text = "4 Seconds"
wait(1)
warning.Text = "3 Seconds"
wait(1)
warning.Text = "2 Seconds"
wait(1)
warning.Text = "1 Seconds"
wait(1)
warning.Text = "0 Seconds"
local function Shutdown()
local Players = game:GetService("Players");
local AllPlayers = Players:GetPlayers();
local Message = "Sorry, this server has met its expiration date."
for I = 1, #AllPlayers do
AllPlayers[I]:Kick(Message);
end
Players.PlayerAdded:connect(function(Player)
Player:Kick(Message)
end)
game.OnClose = function()
wait(10);
end

2 comments
for i = 59,0,-1 do wait(1) warning.Text = i .. " Seconds" end
I updated my answer to help you reduce the line count here!