Add a method to guarantee players will be teleported into new/updated servers

As a Roblox developer, it is impossible to guarantee that players will be teleported into new servers that have the latest version of a game when teleporting them into it. This makes things like game-contextual update migration impossible to do, as any attempts to make such a system results in players being put into old servers, potentially being teleported around 5+ times over the course of a minute, before being able to get back into gameplay. We need some sort of a method to guarantee that players will land in a new public server when calling TeleportService:TeleportAsync() and others.

Use case : While features such as the “migrate to latest update” button on the website do exist, they do not fit all use-cases that developers may have. For example:
Let’s say a player is currently participating in a rather competitive round in a round-based game. They’re neck and neck with the opposing team, and it’s overall a really fun match so far. The developers of the game push their weekly update to the game while the round is occurring. Instead of simply booting players from the game, the developers have implemented a game-specific update migration system.

When the game is updated, the following happens:

  • The server sees that the game has been updated via a marketplaceservice call to get the place’s update timestamp
  • The server waits for the current round to end. This prevents friction with players, since they are able to finish their current matches, get their rewards, etc.
  • Once the round ends, players see a loading screen stating “the game is updating, please wait…”
  • From here, all players in the server should be teleported into a new server

This reduces friction with players, and makes updating not as impactful to player counts - it keeps players in the game organically while allowing updates to be migrated to all servers, while phasing out older servers.

Currently, the only way to get close to matching this behavior is to teleport all players in a server into a reserved server, which guarantees that the players will end up in a new server instance. The problem with this is, reserved servers are not public facing - you cannot join reserved servers by clicking the play button on the website, or clicking the “Join” button from the server list. This also causes the reserved servers to die out, since new players cannot join them.

Making an all-encompassing feature such as “migrate to latest update” does not work - different games have different needs and uses, and should be able to determine when/how players enter new servers.

68 Likes

There is still a big need for this over a year later… please address this!

4 Likes

I’m surprised no one has added to this issue. Having these 2 additional systems would be a huge improvement to remove friction from updates.

  1. Being able to create seemless shutdowns where you can halt the server from updating for a period of time to let players get ready. Currently they get about <30 seconds, which may not give enough time to get the game into a nice waiting state and would have to abruptly end gameplay.

  2. Being able to guarantee the teleport goes to a newer server. I just want to avoid having to kick players out of the game and just move them to another server with the latest update. Again, I don’t know why more people haven’t chimed it, there’s literally no good solution to this at the moment.

4 Likes

There is still a large need for this in 2023. Can this please be looked at?

2 Likes

Supporting this isn’t currently on our roadmap, but I’ll bring it up within the team to keep it on our radar.

Partial workaround: the moment you click Restart Servers for Update (aka Migrate to Latest Update) any new matchmade teleports are guaranteed to go to servers running the latest version

2 Likes

I was today years old when I learned this. This is useful info, thank you!

1 Like

I could really use something like this for my game. I hate having to shut down EVERY server when I make an update, and it does it immediately instead of waiting for the current round to end. Players get very annoyed when I shut down the servers for updates, and I entirely get why. I could easily add something like this to my game with messaging service, or otherwise, if only TeleportService had a specific option to teleport players to a new public server, and not an existing one. Teleporting players to a reserved server would work, but then those servers would not be joinable through the website