Advertisement
Guest User

Soft Shutdown Script

a guest
Nov 16th, 2019
2,497
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.94 KB | None | 0 0
  1.  
  2. [--]
  3.     SoftShutdown 1.3Gav
  4.     Creator: The_Marshlet
  5.    
  6.     This script allows you to shutdown your ROBLOX Game servers without losing any players. It functions by sending players to a ReservedServer to allow the old server to shutdown. Once shutdown a new server is created. That server is updated. All players will then be teleported back into their servers, with minimal loading time and minimal player loss.
  7.  
  8. Any problems, feel free to contact me on Discord
  9.  
  10. I'm depressed#8212
  11. [--]
  12.  
  13. local TeleportService = game:GetService("TeleportService")
  14. local Players = game:GetService("Players")
  15.  
  16. if (game.VIPServerId ~= "" and game.VIPServerOwnerId == 0) then
  17.     -- this is a reserved server without a VIP server owner
  18.     local m = Instance.new("Message")
  19.     m.Text = "THIS IS A TEMPORARY SERVER. YOU WILL BE TELEPORTED BACK SHORTLY"
  20.     m.Parent = workspace
  21.    
  22.     local waitTime = 5
  23.  
  24.     Players.PlayerAdded:connect(function(player)
  25.         wait(waitTime)
  26.         waitTime = waitTime / 2
  27.         TeleportService:Teleport(game.PlaceId, player)
  28.     end)
  29.    
  30.     for _,player in pairs(Players:GetPlayers()) do
  31.         TeleportService:Teleport(game.PlaceId, player)
  32.         wait(waitTime)
  33.         waitTime = waitTime / 2
  34.     end
  35. else
  36.     game:BindToClose(function()
  37.         if (#Players:GetPlayers() == 0) then
  38.             return
  39.         end
  40.        
  41.         if (game:GetService("RunService"):IsStudio()) then
  42.             return
  43.         end
  44.        
  45.         local m = Instance.new("Message")
  46.         m.Text = "THIS SERVER IS REBOOTING FOR AN UPDATE. This system was developed by The_Marshlet"
  47.         m.Parent = workspace
  48.         wait(2)
  49.         local reservedServerCode = TeleportService:ReserveServer(game.PlaceId)
  50.        
  51.         for _,player in pairs(Players:GetPlayers()) do
  52.             TeleportService:TeleportToPrivateServer(game.PlaceId, reservedServerCode, { player })
  53.         end
  54.         Players.PlayerAdded:connect(function(player)
  55.             TeleportService:TeleportToPrivateServer(game.PlaceId, reservedServerCode, { player })
  56.         end)
  57.         while (#Players:GetPlayers() > 0) do
  58.             wait(1)
  59.         end
  60.        
  61.         -- done
  62.     end)
  63. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement