Allow us to phase out old servers by preventing new players from joining

When we make an update to our game, we can do one of two things: do nothing or shut down all servers. Doing nothing is a bad choice because you can have buggy old versions still up and running, which means bad user experience, and bug reports for issues you’ve already fixed days later. Shutting down all servers will result in far worse issues though:

  • Breaking up the players in existing servers and making them play with other people
  • Some players may not rejoin when the server is shut down
  • Making players rejoin in the first place is a bad experience
  • Substantial amounts of players rejoining at once can lead to DataStore throttling

ROBLOX does not currently allow effective implementation of new updates to games that are actively being played. To resolve this, I suggest that old servers are phased out when new versions are available. Players will not be matchmade into or be able to join servers with old versions, and old versions will eventually and peacefully die out. Of course, if it’s a critical update, a developer can still manually shut down all servers, but phasing out old servers will take care of all other cases.

ROBLOX already does this with its own versioning – you can’t join a server on an old version, but those who are playing in it aren’t booted (this is why you don’t see the front page reboot whenever there’s an update), and I think it’d be a nice addition if this happened with game versions as well.

80 Likes

I asked about this at RDC.

Roblox already has something like this functionality for themselves with servers on an older server version.
They said they would look into making this available for us at some point.

5 Likes

More and more people join the quest to game:SetServerLocked(), game:SetMaxPlayers() or related…

4 Likes

I would love this too. Every time I update the game with an update that breaks backwards compatibility I get floods of complaints about their data refusing to load on old servers.
I think shutting down servers during updates is a very bad UX too, so this would be a perfect solution.

5 Likes

Perhaps something like this:

  • Add a ‘Lock all servers’ button

  • Add a ‘Shutdown all locked servers’ button

Then when you want to update your game you would lock all current servers, publish the update, wait a day and then shutdown all the locked servers ( locked = outdated )

2 Likes

That seems like a lot of unnecessary and extra user overhead. Why manually lock your servers when it can be done automatically? Why shutdown locked servers manually a day later when they’ll already be dead by that point (for it to be up a day later, the existing players would have had to play >= 24 hours straight).

In addition to the extra overhead, developers might not even do it because 1) they don’t know that functionality exists, 2) they forget, or 3) they don’t feel like it.

2 Likes

Server priority is what we need, somebody suggested it ages ago.

Servers have a default priority of 0.5 which can be manually changed to another value between 0 and 1 via a method. A server with priority 0 would never be joined by new players unless they are following friends.

This would also be useful for games that have long rounds, the priority could be set to 0 to stop people joining while a game is in progress.

20 Likes

Would also be nice if there is/are (a) friend(s) in the server, it just adds 0.1 to the 0.5.
If you have a server with 0.85 and 0.80, it would still result in the latter one.
(assuming you do something like game:SetServerPriority(1-remainingRoundTime/TotalTime))
(would probably need something like this internally anyway to have friend matchmaking for same priority)

1 Like

Do you think people would often set it to a value other than 0 or 0.5? Maybe an enum setting would be better here.

1 Like

This would make it difficult for old servers to be phased out because players can keep joining when someone follows them. If we go with this method, a choice of 0 should mean it’s impossible to join that server at all.

1 Like

Just wanted to bump this for reconsideration. It should be apparent that this is needed (sooner) after this years’ egg hunt.

13 Likes

Yes, I agree that there should be a way to automatically phase out old instances of the game without having to resort to Shut Down All Servers.

1 Like

Having old servers being gradually phased out within a few hours without having to forcibly kick all players from the servers is an essential feature that is missing.
As the OP mentioned getting abruptly kicked from the server is a frustrating experience for the enduser which should only happen in absolute emergencies, equally when joining a new game I expect the server to be up to date to avoid situations where the player keeps encountering an already fixed bug (see egghunt 2017)

1 Like

This is one of those requests that come back alive every now and then, for good reasons of course.

2 Likes

This would actually be more interesting to be able to phase out certain verisons of servers.

For example, before I decide to release an update, the current version of the game is 4.0.1.

I heard a small minor issue was going on with the game, so I fix and update and name it as 4.0.2. However, I later find out (in 20 mins) that 4.0.2’s “fixes” actually broke the entire game. I immediately release 4.0.3 which completely fixes all the issues including the broken game.

But now there are a few 4.0.2 servers going around ruining the experience tremendously. I don’t want to close all the games, but I need to get rid of these servers. It would be nice to be able to shutdown a certain server version and keep the good servers up.

7 Likes

This would be unbelievably useful. Please consider add this or simple functionality <3

2 Likes

I have thousands of people playing my game that I’ve been updating constantly for the past couple of days. YouTubers and players are experiencing and reporting major glitches that I fixed the morning they started playing. I can’t shut down all servers because I can’t guarantee the players on will connect back. This is causing unnecessary stress for me right now. We NEED this feature.

This exists as a temporary solution, however ugly:

(obj this is a relatively old script that should be modified to use the new party teleport system, as well as accommodating your game, as this script assumes all reserved servers are lobbies)

It’s a script that isn’t guaranteed to work all the time and is an extremely hacky solution. I refuse to put it in my game.

1 Like

like I said, temporary and ugly af.