
Key RequiredUniversal

-- =============================================
-- Universal Position Save & Teleport Script
-- Works across all Roblox games
-- =============================================
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local savedPosition = nil
-- ─── GUI Setup ────────────────────────────────────────────────
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "TeleportGui"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = game:GetService("CoreGui") -- Use CoreGui to persist across maps
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 200, 0, 110)
Frame.Position = UDim2.new(0, 20, 0.5, -55)
Frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
Frame.BorderSizePixel = 0
Frame.Active = true
Frame.Draggable = true
Frame.Parent = ScreenGui
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 8)
Corner.Parent = Frame
-- Title bar
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 30)
Title.Position = UDim2.new(0, 0, 0, 0)
Title.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
Title.BorderSizePixel = 0
Title.Text = "📍 Teleporter"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 14
Title.Font = Enum.Font.GothamBold
Title.Parent = Frame
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 8)
TitleCorner.Parent = Title
-- Status label
local StatusLabel = Instance.new("TextLabel")
StatusLabel.Size = UDim2.new(1, -10, 0, 20)
StatusLabel.Position = UDim2.new(0, 5, 0, 35)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "No position saved."
StatusLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
StatusLabel.TextSize = 11
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
StatusLabel.Parent = Frame
-- ─── Button Factory ───────────────────────────────────────────
local function makeButton(text, bgColor, yPos)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -20, 0, 28)
btn.Position = UDim2.new(0, 10, 0, yPos)
btn.BackgroundColor3 = bgColor
btn.BorderSizePixel = 0
btn.Text = text
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.TextSize = 13
btn.Font = Enum.Font.GothamSemibold
btn.AutoButtonColor = true
btn.Parent = Frame
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0, 6)
c.Parent = btn
return btn
end
local CopyBtn = makeButton("📋 Copy Position", Color3.fromRGB(40, 120, 200), 62)
local TeleBtn = makeButton("🚀 Teleport", Color3.fromRGB(50, 160, 80), 96)
-- ─── Helper: get character root ───────────────────────────────
local function getRoot()
local char = LocalPlayer.Character
if not char then return nil end
return char:FindFirstChild("HumanoidRootPart")
or char:FindFirstChild("UpperTorso")
or char:FindFirstChild("Torso")
end
-- ─── Button Logic ─────────────────────────────────────────────
-- 1. Copy current position
CopyBtn.MouseButton1Click:Connect(function()
local root = getRoot()
if root then
savedPosition = root.CFrame
local p = savedPosition.Position
StatusLabel.Text = string.format(
"Saved: (%.1f, %.1f, %.1f)", p.X, p.Y, p.Z
)
StatusLabel.TextColor3 = Color3.fromRGB(100, 220, 100)
else
StatusLabel.Text = "⚠ No character found!"
StatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
end
end)
-- 2. Teleport to saved position
TeleBtn.MouseButton1Click:Connect(function()
if not savedPosition then
StatusLabel.Text = "⚠ Save a position first!"
StatusLabel.TextColor3 = Color3.fromRGB(255, 180, 50)
return
end
local root = getRoot()
if root then
root.CFrame = savedPosition
StatusLabel.Text = "✅ Teleported!"
StatusLabel.TextColor3 = Color3.fromRGB(100, 220, 100)
else
StatusLabel.Text = "⚠ No character found!"
StatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
end
end)



uses ai
@zoxz works tho -_-
@Scriptide yeah but its so easy to create just learn lua