Server version is critically needed

There has been countless of threads suggesting server versions.

These are made so you can make an update to your game and not having to worry about players joining an old server, messing up their stats. Its so eventually everyone all servers will be converted to new servers without having to shutdown all of the servers at once.

Just shutdown all servers

That is a major cause of data loss.

If you do your save script correctly nobody will ever loose stats.

Bugs are inevitable, everyone who ever done any form of coding knows this.

You can just kick players from old servers

I am doing that but the speed at which people rejoin keeps the old servers alive forever.
And I dont even have a big fanbase, its less than 100 people!

This has been suggested for ages, please consider the following thread of the same topic:

1 Like

The main issue, is when a big game shuts down all their servers, it overloads Amazon AWS, therefore failing to save. At least that is what appears to be happening, it would make sense if phantom forces had that happen when it shutdown.

We already have server version (game.PlaceVersion) – that’s not what we need. What we need is for old versions to automatically get phased out by players not being matchmade into them. This means you don’t lose all of your players at once, preserving experience and preventing Amazon server overloads.


Yeah this is pretty much the point of my post from a while back. It seems like the easiest and cleanest solution to the whole problem.

I periodically shutdown old servers via my webserver. Each server pings my website every 15 seconds. It tells the website the version of the server, which is stored in a database along with all the other server info. Every 5 minutes, my web server checks all the current servers. After they are out of date for 60 minutes, or it is <=40% full, it is shutdown. There is also a debounce between when servers are forcefully shutdown for being out of date, so all your servers dont instantly shutdown after the 60 minutes is up.

It shuts down by telling the server on the next ping “hey, this server is old, kick all the players and force it to shut down”. All players are kicked with a message along the lines of “This server is out of date and has been shutdown! Please rejoin!”

Because of this system, within an hour of releasing an update, all of the old servers are gone without affecting my player count.

That is one way of doing it. You could simply wait 0-60 min from a datastore key change to shutdown old servers.

But thing is, we need a reliable way of doing this. Not some homecooked version that kicks players if they join old servers etc.


Have you tried this on a large scale? People will end up joining servers before they can shutdown and it creates a ton of problems


Largest scale I’ve been able to try is ~350 online.

Before kicking them, I connect to .PlayerAdded, and kick players who attempt to join after the psudo-shutdown occurs.

But, I realized that joining too fast would be a problem, which is why they shutdown periodically based on the players in the server. Matchmaking in my case didn’t put them in servers that were shutting down (or at least it didnt affect the player count).

A really great solution for this would be allowing us to shutdown the game via server script. Obviously no players would attempt to join that server via matchmaking.
Why exactly are we still not able to properly shutdown servers?

Edit: although shutting down servers individually and periodically did help prevent joining servers already shutting down, it did cause a new problem: you may rejoin and find yourself in another old server that is going to shutdown in 10 minutes. Realistically this is better than joining and instantly shutting down, I suppose. Still, we need game:Shutdown() to happen.

1 Like