Creating an auto update server system

Hello, I am looking to make a system that teleports users to a different game when the game comes out with an update. Similar to the kind of system “Arsenal” has.

What I know so far
  • System displayed GUI telling user game is updating
  • system teleports the player to a new game
  • A wait time is applied so that all the servers close and the game is updated
  • Temporary holding game for players will teleport the players back to the server.

I am looking for a way to go about designing this system. I just need the basics of how the game would know if the game got updated.

I will lock this if a tutorial regarding this topic is found.

1 Like

When a server shuts down, game:BindToClose() can be used to run some lines at the last moment. This can yield for up to 30 seconds before the game shuts down regardless of whether you’ve saved data/teleported people and whatnot.

This is useful for saving player data last minute and for, in this instance, soft shutdowns.

You could do something like:
Create a new place through Asset Manager,
Name it whatever but make sure you have the ID.
Add a UI into that place that says ‘Updating game…’ or whatnot.

    --> teleport players to a reserved server

then after like, 5 seconds, have the place they’re taken to teleport them back.


I see you are trying to create an Auto Updating System for your servers.
If this is your first time creating an auto update system or a server shutdown system,
try: Soft Shutdown (Client Based Teleport) - Roblox by TheNexusAvenger.
The UI is customizable so you can add a new background image and make it like Arsenal’s server restart system.


Btw, it’s game:BindToClose() not game.BindToClose().


Whoops- didn’t notice that one lol.


I was trying to create my own because I thought it was quite interesting. I have run into a problem though. When getting the update time it doesn’t change after the game has been updated. Here is my code.

local placeIdStart = "" -- gets info
local universeIdStart = "" -- converts place id to universe id

local placeId = tostring(game.PlaceId) -- the place id
local lastupdate = ""

universeId = "" -- place holder univers id
	universeId = tostring(httpService:JSONDecode(httpService:GetAsync(universeIdStart .. placeId)).UniverseId) -- finds the universe id
	local webiste = httpService:GetAsync(placeIdStart .. universeId) --finds website with info
	lastupdate = httpService:JSONDecode(webiste).data[1].updated

local repeatTime = 1 -- variables

	while true do
		wait(repeatTime) -- wait
		local webiste = httpService:GetAsync(placeIdStart .. universeId) --finds website with info
		local convertToTable = httpService:JSONDecode(webiste).data[1].updated --finds last update date.
		print(convertToTable) -- prints
		if convertToTable ~= lastupdate then
			print("game updated!")
			lastupdate = convertToTable