-- ============================================= -- 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)