Don't make a separate server for every player when teleporting

I teleport players to a game and it puts them all in a separate server. This is stupid. It’s a 100 player game, they should go to the same server when they teleport. Instead, they leave because they’re alone. Preferred player count thing is 100.

6 Likes

Yeah, it’s an issue with place joining in general that’s been posted many times but AFAIK the staff still has yet to make any acknowledgement of this issue.

Not sure why, because this bug has existed for months now and has resulted in frustrating, unexpected behavior for quite a few people. A response as to what’s going on/when this will be fixed would be much appreciated.

1 Like

Oh they know about it. They’ve responded many times saying basically we can script a bridge over this bug. That shouldn’t be the case imo. I acknowledge they are very hard at work. But so am I. My game is a social game and is a universe. Will be launching soon. I can’t launch it due to this bug.

1 Like

If you’re using TeleportService:Teleport, use TeleportToPlaceInstance or TeleportToPrivateServer instead.

There are unfortunately no plans to fix this if you don’t.

1 Like

So how do I teleport multiple players to the same server before there are any servers yet?

Take a look at what other popular games do.
I’ve seen a lot games do some sort of “lobby” system, where you can join and see any games in progress. You yourself can keep track of all the active private servers or populated place instances, and give the player the choice on which one to join (or do this all automatically). If there are no active servers, you can reserve a private server for this very first player.

You can’t depend on normal Teleport to move players to the same server for a bunch of factors that are out of our control. There are new datacenters and the matchmaking algorithm will try to place you in the nearest one, as well as try to match you with your friends and people of the same age group. Use the other two teleports if you need the guarantee that they all end up in the same instance.

1 Like

Then the problem arises that we all need an external server to handle this kind of lobby system. Which most people might not know how to handle that.

I mean, I could make an open source node.js script, and setup a tutorial to help others, but that might be an issue wouldn’t it?

No external servers required (as long as they’re in the same universe). Use datastore.

Even when joining from the site? This bug happens when you join from the site as well, and that isn’t something we can script around. I’m confused at why there are no plans to fix it. I’m sure it’s no secret the old behavior is better than the current behavior, and that the current behavior is undesirable – there have been an astonishing amount of threads regarding this. Is the new game-breaking behavior of both (especially joining from the site) not important?

Also, TeleportToPlaceInstance and TeleportToPrivateServer are not good solutions. Say I use TeleportToPlaceInstance to teleport a party of 6. What if player1 gets teleported into a server with 4 open slots left? Do I have to repeatedly teleport player1 over and over until they finally get into a server with 6 slots, if one even exists? I could use TeleportToPrivateServer, but new players can’t join private servers. In order to bring in new players to private servers, we’d have to write our own matchmaking system. We’d have to remake what ROBLOX already made. Why is the solution for us to remake something that already exists? Shouldn’t existing features work out-of-the-box to the point where developers have no need to re-implement it every time they want to use another officially-supported feature?

We need to be able to overload the player parameter in Teleport with a table of players to be able to properly tackle teleporting issues ourselves.

Edit: Looks that’s already planned:

Still, the joining from the site needs to be fixed. That is broken to an extent, and most definitely should be fixed. It isn’t something developers can work around.

Does UpdateAsync receive every single change to a DataStore key? I don’t see how 100 servers for example would be able to use the same key or even different ones (Which would make it harder for the lobbies in terms of request rates)

Even if it’s possible, it still adds to our datastore limits, and I’d prefer to use all that for user data, and other important data. Hence why we need a solution like central servers or a live socket that makes things easier than spamming http requests.

With the method rbadam mentioned, we shouldn’t have any issues teleporting groups of players into different servers/games. The only issue remaining is joining from the site.

I agree it’s not an ideal situation but all these problems are workaround-able from the lua side with some effort.

I hope you can also imagine that the large majority of our ops resources are currently dedicated to handling our recent player count growth. That involves opening datacenters and ramping up more machines, which make “unintentional” matchmaking (where you’re not explicit who should get matched where) more difficult. That in all likeihood is why youre seeing this behaviour regression, and why it seems as if we (for the time being) won’t fix it.

Unfortunately, there is no timetable for when that multi-teleport will be implemented so if the behaviour you mentioned is critical to your game, id recommend investing in a datastore/private server/teleport place instance solution for now.

1 Like

I want to second the suggestion to use TeleportToPrivateServer if you want a group of people to be placed into the same instance. This is the one of the use cases we had in mind when building private servers. Do you need the target instance to be open for other players to join from the site? If so, I’d like to hear why.

Yes. If I’m using private servers to bypass this issue, it’s to bypass the issue and not because I want players in a private server. If I want to send a party of six into a bustling city (let’s say they just returned from the monster-fighting zone outside the city), full of players, I want to send that party of six into a populated server that players can keep joining – not a desolate wasteland.

1 Like

I got it. We do have plans for group teleports to to a public instance. However, we still will create a new instance if there are no instances with enough open slots available.

1 Like

Yes, this is good behavior. If there aren’t enough slots for the players, create a new server where they all fit in, and new players can continue to join normally.