I’m using a soft shutdown script that requires me to run game:BindToClose for it to shut down the server, but I can’t figure out how to get it to work. Does anyone know how to either: A: Use game:BindToClose or B: How to use the soft shutdown system
My Code:
--[[
SoftShutdown 1.2
Author: Merely
This system lets you shut down servers without losing a bunch of players.
When game.OnClose is called, the script teleports everyone in the server
into a reserved server.
When the reserved servers start up, they wait a few seconds, and then
send everyone back into the main place.
I added wait() in a couple of places because if you don't, everyone will spawn into
their own servers with only 1 player.
--]]
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
if (game.VIPServerId ~= "" and game.VIPServerOwnerId == 0) then
-- this is a reserved server without a VIP server owner
local m = Instance.new("Message")
m.Text = "Survive! is getting updated! Teleporting back in a moment."
m.Parent = workspace
local waitTime = 7
Players.PlayerAdded:connect(function(player)
wait(waitTime)
waitTime = waitTime / 2
TeleportService:Teleport(4520948628, player)
end)
for _,player in pairs(Players:GetPlayers()) do
TeleportService:Teleport(4520948628, player)
wait(waitTime)
waitTime = waitTime / 2
end
else
game:BindToClose(function()
if (#Players:GetPlayers() == 0) then
return
end
if (game:GetService("RunService"):IsStudio()) then
return
end
local m = Instance.new("Message")
m.Text = "Rebooting servers for update. Please wait."
m.Parent = workspace
wait(2)
local reservedServerCode = TeleportService:ReserveServer(4576150267)
for _,player in pairs(Players:GetPlayers()) do
TeleportService:TeleportToPrivateServer(4576150267, reservedServerCode, { player })
end
Players.PlayerAdded:connect(function(player)
TeleportService:TeleportToPrivateServer(4576150267, reservedServerCode, { player })
end)
while (#Players:GetPlayers() > 0) do
wait(1)
end
-- done
end)
end