TeleportService

Show Deprecated
Not Creatable
Service

TeleportService is responsible for transporting Players between different places and servers.

For more information on how to teleport players between servers, see Teleporting Between Places.

Summary

Methods

Events

Properties

Methods

GetArrivingTeleportGui


Returns

Code Samples

Handling a Teleport Loading GUI

local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local customLoadingScreen = TeleportService:GetArrivingTeleportGui()
if customLoadingScreen then
local playerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
ReplicatedFirst:RemoveDefaultLoadingScreen()
customLoadingScreen.Parent = playerGui
task.wait(5)
customLoadingScreen:Destroy()
end

GetLocalPlayerTeleportData

Variant

Returns

Variant

Code Samples

Getting LocalPlayer Teleport Data

local TeleportService = game:GetService("TeleportService")
local teleportData = TeleportService:GetLocalPlayerTeleportData()
print("Local player arrived with this data:", teleportData)

GetPlayerPlaceInstanceAsync

Yields

Parameters

userId: number

Returns

Code Samples

Following Another Player

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 _currentInstance, placeId, jobId
local success, errorMessage, _currentInstance, placeId, jobId = pcall(function()
-- followId is the user ID of the player that you want to retrieve the place and job ID for
return TeleportService:GetPlayerPlaceInstanceAsync(followId)
end)
if success then
-- Teleport player
TeleportService:TeleportToPlaceInstance(placeId, jobId, player)
else
warn(errorMessage)
end
else
warn("Player " .. player.UserId .. " is not following another player!")
end
end)

GetTeleportSetting

Variant

Parameters

setting: string

Returns

Variant

ReserveServer

Yields

Parameters

placeId: number

Returns

Code Samples

TeleportService: Teleport to a Reserved Server

local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local code = TeleportService:ReserveServer(game.PlaceId)
local players = Players:GetPlayers()
TeleportService:TeleportToPrivateServer(game.PlaceId, code, players)
-- You could add extra arguments to this function: spawnName, teleportData and customLoadingScreen
TeleportService: Teleport to a Reserved Server via Chat

local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local dataStore = DataStoreService:GetGlobalDataStore()
-- Get the saved code
local code = dataStore:GetAsync("ReservedServer")
if typeof(code) ~= "string" then -- None saved, create one
code = TeleportService:ReserveServer(game.PlaceId)
dataStore:SetAsync("ReservedServer", code)
end
local function joined(player)
player.Chatted:Connect(function(message)
if message == "reserved" then
TeleportService:TeleportToPrivateServer(game.PlaceId, code, { player })
end
end)
end
Players.PlayerAdded:Connect(joined)

SetTeleportGui

()

Parameters


Returns

()

Code Samples

Teleporting the local player

local TeleportService = game:GetService("TeleportService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local playerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
local PLACE_ID = 0 -- replace here
local loadingGui = ReplicatedStorage:FindFirstChild("LoadingGui")
-- parent the loading gui for this place
loadingGui.Parent = playerGui
-- set the loading gui for the destination place
TeleportService:SetTeleportGui(loadingGui)
TeleportService:Teleport(PLACE_ID)

SetTeleportSetting

()

Parameters

setting: string
value: Variant

Returns

()

Teleport

()

Parameters

placeId: number
player: Instance
Default Value: "nil"
teleportData: Variant
customLoadingScreen: Instance
Default Value: "nil"

Returns

()

Code Samples

Teleporting the local player

local TeleportService = game:GetService("TeleportService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local playerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
local PLACE_ID = 0 -- replace here
local loadingGui = ReplicatedStorage:FindFirstChild("LoadingGui")
-- parent the loading gui for this place
loadingGui.Parent = playerGui
-- set the loading gui for the destination place
TeleportService:SetTeleportGui(loadingGui)
TeleportService:Teleport(PLACE_ID)
Teleporting from the server

local Players = game:GetService("Players")
local TeleportService = game:GetService("TeleportService")
local PLACE_ID = 0 -- replace here
local USER_ID = 1 -- replace with player's UserId
local player = Players:GetPlayerByUserId(USER_ID)
TeleportService:Teleport(PLACE_ID, player)

TeleportAsync

Yields

Parameters

placeId: number
players: Instances
teleportOptions: Instance
Default Value: "nil"

Returns

TeleportPartyAsync

Yields

Parameters

placeId: number
players: Instances
teleportData: Variant
customLoadingScreen: Instance
Default Value: "nil"

Returns

Code Samples

Teleport all players in the server

local Players = game:GetService("Players")
local TeleportService = game:GetService("TeleportService")
local PLACE_ID = 0 -- replace
local playerList = Players:GetPlayers()
local success, result = pcall(function()
return TeleportService:TeleportPartyAsync(PLACE_ID, playerList)
end)
if success then
local jobId = result
print("Players teleported to", jobId)
else
warn(result)
end

TeleportToPlaceInstance

()

Parameters

placeId: number
instanceId: string
player: Instance
Default Value: "nil"
spawnName: string
teleportData: Variant
customLoadingScreen: Instance
Default Value: "nil"

Returns

()

Code Samples

Following Another Player

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 _currentInstance, placeId, jobId
local success, errorMessage, _currentInstance, placeId, jobId = pcall(function()
-- followId is the user ID of the player that you want to retrieve the place and job ID for
return TeleportService:GetPlayerPlaceInstanceAsync(followId)
end)
if success then
-- Teleport player
TeleportService:TeleportToPlaceInstance(placeId, jobId, player)
else
warn(errorMessage)
end
else
warn("Player " .. player.UserId .. " is not following another player!")
end
end)

TeleportToPrivateServer

()

Parameters

placeId: number
reservedServerAccessCode: string
players: Instances
spawnName: string
teleportData: Variant
customLoadingScreen: Instance
Default Value: "nil"

Returns

()

Code Samples

TeleportService: Teleport to a Reserved Server via Chat

local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local dataStore = DataStoreService:GetGlobalDataStore()
-- Get the saved code
local code = dataStore:GetAsync("ReservedServer")
if typeof(code) ~= "string" then -- None saved, create one
code = TeleportService:ReserveServer(game.PlaceId)
dataStore:SetAsync("ReservedServer", code)
end
local function joined(player)
player.Chatted:Connect(function(message)
if message == "reserved" then
TeleportService:TeleportToPrivateServer(game.PlaceId, code, { player })
end
end)
end
Players.PlayerAdded:Connect(joined)
TeleportService: Teleport to a Reserved Server

local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local code = TeleportService:ReserveServer(game.PlaceId)
local players = Players:GetPlayers()
TeleportService:TeleportToPrivateServer(game.PlaceId, code, players)
-- You could add extra arguments to this function: spawnName, teleportData and customLoadingScreen

TeleportToSpawnByName

()

Parameters

placeId: number
spawnName: string
player: Instance
Default Value: "nil"
teleportData: Variant
customLoadingScreen: Instance
Default Value: "nil"

Returns

()

Code Samples

TeleportService:TeleportToSpawnByName

local TeleportService = game:GetService("TeleportService")
TeleportService:TeleportToSpawnByName(1818, "TeleportSpawn")

Events

LocalPlayerArrivedFromTeleport

Parameters

loadingGui: Instance
dataTable: Variant

TeleportInitFailed

Parameters

player: Instance
teleportResult: Enum.TeleportResult
errorMessage: string
placeId: number
teleportOptions: Instance