Cannot Teleport group of players unless they are all Developers

I am trying to make a Queue that, at proper time, teleports all players in the Queue to the same server in a new Place that is a part of the current game.

To achieve that, I am using TeleportService’s TeleportAsync method, passing a table with all players from the queue.

The issue arises at the call of this method, where it throws the error “A specified Member cannot join the Destination Place” whenever the players table has more than one player and there is at least one player in the table that is not a developer of the game.

Examples:

TeleportService:TeleportAsync(118304838686163, {anyPlayer})

Above code Teleports specified player correctly to the place.

TeleportService:TeleportAsync(118304838686163, {anyPlayer, anotherPlayer})

Above code throws the previously mentioned error and fails, no matter how many times or when I call it.
It does, however, teleport if all those players have Developer permission.

The game was originally private, but under a group, where the problem persisted to players with Play access.
Now, with Public access, players still cannot be teleported if they’re being teleported collectively.

The destination place was already published several times, and you can even be teleported to such place through the game if you’re teleported alone.

I tried looking for similar problems in the forum, and there were many, but couldn’t find any that was suitable to my case.

I have not shared the actual code that executes the teleport in-game for now because this problem persists as described in the above examples even when ran in the Developer Console’s Command Line.
If needed, I am open to sharing it.

Any help is appreciated! :smiley:

4 Likes

Try reuploading all the places to new games, ensure that allow third party teleports is enabled, and double check experience vs place IDs. If you move them all to their own games temporarily, it will be easier to test.

1 Like

I’ve reuploaded the game and it’s places, each being brand new, and placed them to the same game on my ownership. The same problem kept happening.

I uploaded the places to separate games (lobby and game in separate games) and teleported to the new place’s id. However, nothing changed: problem was still there.

Place IDs are correct, also they do execute properly if it is teleporting a table with one player only

Problem persists no matter the place ID I use, I’ve used a place from another players and it teleports when teleporting one player at a time, but not in a party/group.

Is there any place permissions configuration I could try changing?
I haven’t seen any way to change how a place itself can be accessed, only game.

The nature of the problem makes me suspect that the issue arises at the TeleportPartyAsync method that is internally called by TeleportAsync, but I don’t know what is wrong…

After experimenting more with Teleports and the issue, I figured out that when the option ShouldReserveServer is false, it throws the error. Otherwise, if it is set to true, it will teleport players successfully.

I am not sure, but I think that, when that option is not provided, it will by default define it to false, and therefore throws the error.

Fortunately, after thinking about the game design, I’ve decided that I want to have those servers private, in which case I would set ShouldReserveServer to true, and won’t have this problem. Therefore, even tho the issue is not solved, I will try this workaroud.

I do not know if anyone else has the same issue, but in case there is, I will leave below the ways to work around this problem.

Ways to avoid the problem

Implementation with ShouldReserveServer to true:

local TeleportService = game:GetService("TeleportService")

local options = Instance.new("TeleportOptions")
options.ShouldReserveServer = true

local placeId = -- Insert place's ID here
local players = -- Insert players table here

TeleportService:TeleportAsync(placeId, players, options)

If needed to set ShouldReserveServer to false, an idea is to teleport each player individually.

This is not a solution to the problem!

Even tho this is not a solution, only a workaround, I do not have the problem no more, and therefore don’t need additional help.
If anyone has any clue of the real solution to the problem, feel free to share it!

1 Like