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.
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)
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.
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)
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.
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)
If you’re updating a new game constantly that is getting a lot of attention, perhaps each update change the max player count. As long as your game doesn’t rely on a specific amount for a full game to be played properly, you could note which max players equal what update. And shutdown old ones if you notice a bug in the X max player servers.
Edit: I agree more control over our servers would be good
As a Roblox developer, it is currently too hard to test a new feature or bug fix with a full server of actual players without shutting down all game servers to force the game to update. There have been MANY times that I’ve wished this existed, but most recently was when I had a pretty inefficient data saving system in my game and decided to write and implement a new one. The older one isn’t game-breaking, and I’m not sure if the one I’ve just written is fool-proof. In other words, I need it stress-tested. Something I can’t do very well with one person or even 5-6 people. So, I don’t want to shut down the game and kick all of my players just to have them join and cause data loss because the new system is flawed.
Instead, I propose that Roblox adds a feature that will “close” any existing (out of date) servers, preventing anyone from joining unless they join that specific server from the server list or follow a friend into the game, as well as add a timestamp visible to the game creator of when the server was created. This way, we can (stress) test our new updates in a much more isolated and less impactful way if the new update breaks anything.
So why can’t I just test in a VIP server or local test server? Well, I’m sure that any of you who have created a game know that you could bug test your game as much as you want with yourself, a friend, or even an entire team. But, when the game actually releases, there will likely be bugs that you had never even thought of in things that you wouldn’t even think to test.
If there is already a feature request for this, or if the feature already exists somewhere, or if you’d like to add on to anything I’ve said please reply.
As a Roblox developer, it is currently too hard to update game servers without shutting down the game or “soft shutdown” which essentially leads to problems with roblox servers in general as seen from the Adopt Me shutting down with 1.6m players.
If Roblox is able to address this issue, it would improve my development experience because I wouldn’t have to shutdown the game for the players to join NEW servers, what I’m suggesting is when a player presses “Play” and the game has been updated then either create a new server or join a new existing server.
That way developers that want to “soft” shutdown for no reason at all other than “I want my players to play new servers” will not create unnecessary servers and then reteleport the players instantly (which imo is very bad anyways and just stupid to do unless ALL the players need updated servers because of a huge bug or HUGE update).
I’m tired of roblox having to make a new post about why the servers are down with “seems like our servers are down and our engineers are working on fixing them” because of games just doing regular updates every saturday or so.