Teleport XYZ
Key RequiredUniversal

Teleport XYZ

Universal Scriptscriptbunnyscriptbunny 802 views 225 executesUpdated Jan 13, 2026
Unrated
00
Lua Script•465 lines (15619 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer

local function getCharacter()
    return player.Character or player.CharacterAdded:Wait()
end

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TeleportGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")

local posDisplay = Instance.new("Frame")
posDisplay.Size = UDim2.new(0, 220, 0, 50)
posDisplay.Position = UDim2.new(1, -230, 0, 10)
posDisplay.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
posDisplay.BorderSizePixel = 0
posDisplay.Parent = screenGui

local posCorner = Instance.new("UICorner")
posCorner.CornerRadius = UDim.new(0, 8)
posCorner.Parent = posDisplay

local posLabel = Instance.new("TextLabel")
posLabel.Size = UDim2.new(1, 0, 1, 0)
posLabel.BackgroundTransparency = 1
posLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
posLabel.TextSize = 14
posLabel.Font = Enum.Font.Code
posLabel.Text = "X: 0 | Y: 0 | Z: 0"
posLabel.Parent = posDisplay

local savedFrame = Instance.new("Frame")
savedFrame.Size = UDim2.new(0, 200, 0, 300)
savedFrame.Position = UDim2.new(0, 10, 0.5, -150)
savedFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
savedFrame.BorderSizePixel = 0
savedFrame.Parent = screenGui

local savedCorner = Instance.new("UICorner")
savedCorner.CornerRadius = UDim.new(0, 10)
savedCorner.Parent = savedFrame

local savedTitleBar = Instance.new("Frame")
savedTitleBar.Size = UDim2.new(1, 0, 0, 32)
savedTitleBar.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
savedTitleBar.BorderSizePixel = 0
savedTitleBar.Parent = savedFrame

local savedTitleCorner = Instance.new("UICorner")
savedTitleCorner.CornerRadius = UDim.new(0, 10)
savedTitleCorner.Parent = savedTitleBar

local savedTitleFix = Instance.new("Frame")
savedTitleFix.Size = UDim2.new(1, 0, 0, 10)
savedTitleFix.Position = UDim2.new(0, 0, 1, -10)
savedTitleFix.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
savedTitleFix.BorderSizePixel = 0
savedTitleFix.Parent = savedTitleBar

local savedTitle = Instance.new("TextLabel")
savedTitle.Size = UDim2.new(1, -10, 1, 0)
savedTitle.Position = UDim2.new(0, 10, 0, 0)
savedTitle.BackgroundTransparency = 1
savedTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
savedTitle.Text = "📍 Saved Positions"
savedTitle.Font = Enum.Font.GothamBold
savedTitle.TextSize = 13
savedTitle.TextXAlignment = Enum.TextXAlignment.Left
savedTitle.Parent = savedTitleBar

local savedMinBtn = Instance.new("TextButton")
savedMinBtn.Size = UDim2.new(0, 26, 0, 26)
savedMinBtn.Position = UDim2.new(1, -30, 0, 3)
savedMinBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 75)
savedMinBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
savedMinBtn.Text = "—"
savedMinBtn.Font = Enum.Font.GothamBold
savedMinBtn.TextSize = 16
savedMinBtn.Parent = savedTitleBar

local savedMinCorner = Instance.new("UICorner")
savedMinCorner.CornerRadius = UDim.new(0, 6)
savedMinCorner.Parent = savedMinBtn

local savedContent = Instance.new("ScrollingFrame")
savedContent.Size = UDim2.new(1, -10, 1, -42)
savedContent.Position = UDim2.new(0, 5, 0, 37)
savedContent.BackgroundTransparency = 1
savedContent.ScrollBarThickness = 4
savedContent.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100)
savedContent.CanvasSize = UDim2.new(0, 0, 0, 0)
savedContent.Parent = savedFrame

local savedLayout = Instance.new("UIListLayout")
savedLayout.Padding = UDim.new(0, 5)
savedLayout.SortOrder = Enum.SortOrder.LayoutOrder
savedLayout.Parent = savedContent

local noSavedLabel = Instance.new("TextLabel")
noSavedLabel.Size = UDim2.new(1, 0, 0, 40)
noSavedLabel.BackgroundTransparency = 1
noSavedLabel.TextColor3 = Color3.fromRGB(100, 100, 100)
noSavedLabel.Text = "No saved positions yet"
noSavedLabel.Font = Enum.Font.Gotham
noSavedLabel.TextSize = 12
noSavedLabel.Parent = savedContent

local savedMinimized = false
savedMinBtn.MouseButton1Click:Connect(function()
    savedMinimized = not savedMinimized
    savedContent.Visible = not savedMinimized
    if savedMinimized then
        savedFrame.Size = UDim2.new(0, 200, 0, 32)
        savedMinBtn.Text = "+"
    else
        savedFrame.Size = UDim2.new(0, 200, 0, 300)
        savedMinBtn.Text = "—"
    end
end)

local savedDragging = false
local savedDragStart, savedStartPos

savedTitleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        savedDragging = true
        savedDragStart = input.Position
        savedStartPos = savedFrame.Position
    end
end)

savedTitleBar.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        savedDragging = false
    end
end)

local teleportFrame = Instance.new("Frame")
teleportFrame.Size = UDim2.new(0, 240, 0, 190)
teleportFrame.Position = UDim2.new(0.5, -120, 0.5, -95)
teleportFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
teleportFrame.BorderSizePixel = 0
teleportFrame.Parent = screenGui

local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 10)
frameCorner.Parent = teleportFrame

local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 32)
titleBar.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
titleBar.BorderSizePixel = 0
titleBar.Parent = teleportFrame

local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 10)
titleCorner.Parent = titleBar

local titleFix = Instance.new("Frame")
titleFix.Size = UDim2.new(1, 0, 0, 10)
titleFix.Position = UDim2.new(0, 0, 1, -10)
titleFix.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
titleFix.BorderSizePixel = 0
titleFix.Parent = titleBar

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -90, 1, 0)
title.Position = UDim2.new(0, 10, 0, 0)
title.BackgroundTransparency = 1
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Text = "⚡ Teleport"
title.Font = Enum.Font.GothamBold
title.TextSize = 14
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = titleBar

local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 26, 0, 26)
minimizeBtn.Position = UDim2.new(1, -60, 0, 3)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 75)
minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeBtn.Text = "—"
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.TextSize = 16
minimizeBtn.Parent = titleBar

local minCorner = Instance.new("UICorner")
minCorner.CornerRadius = UDim.new(0, 6)
minCorner.Parent = minimizeBtn

local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 26, 0, 26)
closeBtn.Position = UDim2.new(1, -30, 0, 3)
closeBtn.BackgroundColor3 = Color3.fromRGB(180, 60, 60)
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.Text = "✕"
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 16
closeBtn.Parent = titleBar

local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeBtn

local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, 0, 1, -32)
contentFrame.Position = UDim2.new(0, 0, 0, 32)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = teleportFrame

local inputs = {}
for i, axis in ipairs({"X", "Y", "Z"}) do
    local container = Instance.new("Frame")
    container.Size = UDim2.new(0.9, 0, 0, 28)
    container.Position = UDim2.new(0.05, 0, 0, 5 + (i - 1) * 33)
    container.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
    container.BorderSizePixel = 0
    container.Parent = contentFrame

    local contCorner = Instance.new("UICorner")
    contCorner.CornerRadius = UDim.new(0, 6)
    contCorner.Parent = container

    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(0, 30, 1, 0)
    label.BackgroundTransparency = 1
    label.TextColor3 = Color3.fromRGB(100, 200, 150)
    label.Text = axis
    label.Font = Enum.Font.GothamBold
    label.TextSize = 14
    label.Parent = container

    local box = Instance.new("TextBox")
    box.Size = UDim2.new(1, -35, 1, -4)
    box.Position = UDim2.new(0, 30, 0, 2)
    box.BackgroundTransparency = 1
    box.TextColor3 = Color3.fromRGB(255, 255, 255)
    box.PlaceholderText = "0"
    box.PlaceholderColor3 = Color3.fromRGB(100, 100, 100)
    box.Text = ""
    box.Font = Enum.Font.Code
    box.TextSize = 14
    box.TextXAlignment = Enum.TextXAlignment.Left
    box.Parent = container
    inputs[axis] = box
end

local btnContainer = Instance.new("Frame")
btnContainer.Size = UDim2.new(0.9, 0, 0, 35)
btnContainer.Position = UDim2.new(0.05, 0, 0, 110)
btnContainer.BackgroundTransparency = 1
btnContainer.Parent = contentFrame

local teleportBtn = Instance.new("TextButton")
teleportBtn.Size = UDim2.new(0.48, 0, 1, 0)
teleportBtn.Position = UDim2.new(0, 0, 0, 0)
teleportBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 130)
teleportBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
teleportBtn.Text = "Teleport"
teleportBtn.Font = Enum.Font.GothamBold
teleportBtn.TextSize = 14
teleportBtn.Parent = btnContainer

local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 8)
btnCorner.Parent = teleportBtn

local saveBtn = Instance.new("TextButton")
saveBtn.Size = UDim2.new(0.48, 0, 1, 0)
saveBtn.Position = UDim2.new(0.52, 0, 0, 0)
saveBtn.BackgroundColor3 = Color3.fromRGB(80, 120, 200)
saveBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
saveBtn.Text = "💾 Save"
saveBtn.Font = Enum.Font.GothamBold
saveBtn.TextSize = 14
saveBtn.Parent = btnContainer

local saveBtnCorner = Instance.new("UICorner")
saveBtnCorner.CornerRadius = UDim.new(0, 8)
saveBtnCorner.Parent = saveBtn

local dragging = false
local dragStart, startPos

titleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = teleportFrame.Position
    end
end)

titleBar.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = false
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        if dragging then
            local delta = input.Position - dragStart
            teleportFrame.Position = UDim2.new(
                startPos.X.Scale, startPos.X.Offset + delta.X,
                startPos.Y.Scale, startPos.Y.Offset + delta.Y
            )
        end
        if savedDragging then
            local delta = input.Position - savedDragStart
            savedFrame.Position = UDim2.new(
                savedStartPos.X.Scale, savedStartPos.X.Offset + delta.X,
                savedStartPos.Y.Scale, savedStartPos.Y.Offset + delta.Y
            )
        end
    end
end)

local minimized = false
minimizeBtn.MouseButton1Click:Connect(function()
    minimized = not minimized
    contentFrame.Visible = not minimized
    if minimized then
        teleportFrame.Size = UDim2.new(0, 240, 0, 32)
        minimizeBtn.Text = "+"
    else
        teleportFrame.Size = UDim2.new(0, 240, 0, 190)
        minimizeBtn.Text = "—"
    end
end)

closeBtn.MouseButton1Click:Connect(function()
    screenGui:Destroy()
end)

local savedPositions = {}
local positionCount = 0

local function updateCanvasSize()
    savedContent.CanvasSize = UDim2.new(0, 0, 0, savedLayout.AbsoluteContentSize.Y + 5)
end

local function createSavedEntry(x, y, z)
    noSavedLabel.Visible = false
    positionCount += 1
    local entryNum = positionCount

    local entry = Instance.new("Frame")
    entry.Size = UDim2.new(1, -5, 0, 50)
    entry.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
    entry.BorderSizePixel = 0
    entry.LayoutOrder = entryNum
    entry.Parent = savedContent

    local entryCorner = Instance.new("UICorner")
    entryCorner.CornerRadius = UDim.new(0, 6)
    entryCorner.Parent = entry

    local coordLabel = Instance.new("TextLabel")
    coordLabel.Size = UDim2.new(1, -35, 0, 20)
    coordLabel.Position = UDim2.new(0, 8, 0, 5)
    coordLabel.BackgroundTransparency = 1
    coordLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    coordLabel.Text = string.format("#%d", entryNum)
    coordLabel.Font = Enum.Font.GothamBold
    coordLabel.TextSize = 11
    coordLabel.TextXAlignment = Enum.TextXAlignment.Left
    coordLabel.Parent = entry

    local posText = Instance.new("TextLabel")
    posText.Size = UDim2.new(1, -10, 0, 15)
    posText.Position = UDim2.new(0, 8, 0, 22)
    posText.BackgroundTransparency = 1
    posText.TextColor3 = Color3.fromRGB(150, 150, 150)
    posText.Text = string.format("%.1f, %.1f, %.1f", x, y, z)
    posText.Font = Enum.Font.Code
    posText.TextSize = 10
    posText.TextXAlignment = Enum.TextXAlignment.Left
    posText.Parent = entry

    local goBtn = Instance.new("TextButton")
    goBtn.Size = UDim2.new(0, 35, 0, 20)
    goBtn.Position = UDim2.new(0, 8, 1, -25)
    goBtn.BackgroundColor3 = Color3.fromRGB(0, 160, 120)
    goBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
    goBtn.Text = "Go"
    goBtn.Font = Enum.Font.GothamBold
    goBtn.TextSize = 10
    goBtn.Parent = entry

    local goBtnCorner = Instance.new("UICorner")
    goBtnCorner.CornerRadius = UDim.new(0, 4)
    goBtnCorner.Parent = goBtn

    goBtn.MouseButton1Click:Connect(function()
        local character = getCharacter()
        local hrp = character:FindFirstChild("HumanoidRootPart")
        if hrp then
                    hrp.CFrame = CFrame.new(x, y, z)
        end
    end)

    local deleteBtn = Instance.new("TextButton")
    deleteBtn.Size = UDim2.new(0, 22, 0, 22)
    deleteBtn.Position = UDim2.new(1, -27, 0, 5)
    deleteBtn.BackgroundColor3 = Color3.fromRGB(180, 60, 60)
    deleteBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
    deleteBtn.Text = "✕"
    deleteBtn.Font = Enum.Font.GothamBold
    deleteBtn.TextSize = 12
    deleteBtn.Parent = entry

    local deleteBtnCorner = Instance.new("UICorner")
    deleteBtnCorner.CornerRadius = UDim.new(0, 4)
    deleteBtnCorner.Parent = deleteBtn

    deleteBtn.MouseButton1Click:Connect(function()
        entry:Destroy()
        task.wait(0.05)
        updateCanvasSize()
        local hasChildren = false
        for _, child in pairs(savedContent:GetChildren()) do
            if child:IsA("Frame") then
                hasChildren = true
                break
            end
        end
        if not hasChildren then
            noSavedLabel.Visible = true
        end
    end)

    task.wait(0.05)
    updateCanvasSize()
end

saveBtn.MouseButton1Click:Connect(function()
    local x = tonumber(inputs.X.Text) or 0
    local y = tonumber(inputs.Y.Text) or 0
    local z = tonumber(inputs.Z.Text) or 0
    createSavedEntry(x, y, z)
end)

teleportBtn.MouseButton1Click:Connect(function()
    local x = tonumber(inputs.X.Text) or 0
    local y = tonumber(inputs.Y.Text) or 0
    local z = tonumber(inputs.Z.Text) or 0
    local character = getCharacter()
    local hrp = character:FindFirstChild("HumanoidRootPart")
    if hrp then
        hrp.CFrame = CFrame.new(x, y, z)
    end
end)

game:GetService("RunService").RenderStepped:Connect(function()
    local character = player.Character
    if character then
        local hrp = character:FindFirstChild("HumanoidRootPart")
        if hrp then
            local pos = hrp.Position
            posLabel.Text = string.format("X: %.1f | Y: %.1f | Z: %.1f", pos.X, pos.Y, pos.Z)
        end
    end
end)

Features & Information

Teleport to any XYZ position you set, the top right shows your current XYZ position Also you can save xyz positions, will probably update this to be better later update: Now has a close button
#teleport

Community Comments (2)

Good 😊👍🏾

scriptbunnyscriptbunnyJan 13, 2026

thank

More Scripts for Universal Scripts