Roblox teleport script
Two kinds of teleport: a pad that moves players to another spot in the same map, and TeleportService to send them to another place in your game.
ScriptUpdated November 2, 2026
Where to put it
Script — Inside the pad (Workspace > TeleportPad > Script). It runs on the server, so players can't change what it does.
- Make two anchored parts:
TeleportPad(where players step) andDestination(where they arrive), both in Workspace. - Insert a Script into
TeleportPadand paste the code.
The script
local Players = game:GetService("Players")
local pad = script.Parent
local destination = workspace:WaitForChild("Destination")
local cooldown = {}
pad.Touched:Connect(function(hit)
local character = hit.Parent
local player = Players:GetPlayerFromCharacter(character)
if not player or cooldown[player] then return end
cooldown[player] = true
character:PivotTo(destination.CFrame + Vector3.new(0, 4, 0))
task.wait(1)
cooldown[player] = nil
end)How it works
PivotTomoves the whole character, keeping its parts together.- The
+ Vector3.new(0, 4, 0)places them above the destination so they don't get stuck in it. - The cooldown stops a player from being teleported many times in one touch.
Variations
Teleport to another place in your game
Add a place in Asset Manager → Places, copy its Place ID, and use TeleportService. It only works in a published game, not in Studio.
local Players = game:GetService("Players")
local TeleportService = game:GetService("TeleportService")
local PLACE_ID = 0 -- the place to send players to
local pad = script.Parent
local sending = {}
pad.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if not player or sending[player] then return end
sending[player] = true
local ok, err = pcall(function()
TeleportService:TeleportAsync(PLACE_ID, { player })
end)
if not ok then
warn("Teleport failed:", err)
sending[player] = nil
end
end)Common mistakes
- Setting only
HumanoidRootPart.Position— it can tear the character apart. UsePivotToor set the root part'sCFrame. - Testing TeleportService in Studio: teleports between places only work in live servers.
- No cooldown: the pad fires dozens of times and the player bounces.
FAQ
Why doesn't TeleportService work in Studio?
Teleporting between places needs Roblox's live servers. Test it in the published game; same-place teleports with PivotTo work in Studio.
How do I teleport all players at once?
Pass a list of players to TeleportService:TeleportAsync, for example after a lobby countdown, so they arrive in the same server.