This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts.
This function returns the
DataModel/JobId|JobId of the server the user with the given
Player/UserId|UserId is in, provided it is in the same game as the current place.
TeleportService/TeleportToPlaceInstance can be called with this information to allow a user to join the target user’s server.
Upon a successful lookup, the function returns the following values:
|1||currentInstance||bool||A bool indicating if the user was found in the current instance|
|2||error||string||An error message in the event of the lookup failing|
|3||placeId||int64||The PlaceId of the server the user is in|
|4||instanceId||string||The JobId of the server the user is in|
If there is a problem during lookup, such as the user being offline, an error is thrown. It is recommended that you wrap calls to this function in
You should be aware of the following limitations when using this function:
- This function can only be called by the server
- This function may fail to return the correct information if the user is teleporting
- It is possible for this function to throw an error, hence developers should wrap it in a pcall (see example below)
- As this function returns the JobId of the server and not the access code returned by
TeleportService/ReserveServer, the id returned is not appropriate for use with reserved servers
This service does not work during playtesting in Roblox Studio — To test aspects of your game using it, you must publish the game and play it in the Roblox application.
- For the
See the table above
Following Another Player
The code sample below, when placed inside a
ServerScriptService, will teleport a player who’s following another player to the associated place/server. Note that this will not work if the player being followed is in a reserved server.
local TeleportService = game:GetService("TeleportService") local Players = game:GetService("Players") Players.PlayerAdded:Connect(function(player) -- Is this player following anyone? local followId = player.FollowUserId -- If so, find out where they are if followId and followId ~= 0 then local success, errorMessage = pcall(function() -- followId is the user ID of the player that you want to retrieve the place and job ID for currentInstance, _, placeId, jobId = TeleportService:GetPlayerPlaceInstanceAsync(followId) end) if success then -- Teleport player TeleportService:TeleportToPlaceInstance(placeId, jobId, player) end else warn("Player " .. player.UserId .. " is not following another player!") end end)