
Key RequiredUniversal

--[[
Teleport Saver v7 (Final)
- No minimize button
- Working close button (X)
- Instant teleport
- All buttons rounded
- Black color scheme
]]
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")
local player = Players.LocalPlayer
local savedPos = nil
local isDragging = false
local dragStart = nil
local startPos = nil
-- Instant teleport
local function teleportInstant(character, targetPos)
local hrp = character and character:FindFirstChild("HumanoidRootPart")
if not hrp then return false end
hrp.CFrame = CFrame.new(targetPos)
return true
end
-- GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TeleportSaver"
screenGui.Parent = CoreGui
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 220, 0, 170)
frame.Position = UDim2.new(0.5, -110, 0.5, -85)
frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) -- pure black
frame.BackgroundTransparency = 0.15
frame.BorderSizePixel = 0
frame.ClipsDescendants = true
frame.Parent = screenGui
local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 14)
frameCorner.Parent = frame
-- Title bar
local titleFrame = Instance.new("Frame")
titleFrame.Size = UDim2.new(1, -10, 0, 35)
titleFrame.Position = UDim2.new(0, 5, 0, 5)
titleFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) -- dark gray
titleFrame.BackgroundTransparency = 0.3
titleFrame.BorderSizePixel = 0
titleFrame.Parent = frame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 10)
titleCorner.Parent = titleFrame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -40, 0, 35)
title.Position = UDim2.new(0, 5, 0, 0)
title.Text = "📍 Teleport"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.BackgroundTransparency = 1
title.Font = Enum.Font.GothamBold
title.TextSize = 17
title.Active = true
title.Selectable = true
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = titleFrame
-- Close button (X)
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 32, 0, 32)
closeBtn.Position = UDim2.new(1, -36, 0, 1)
closeBtn.Text = "X"
closeBtn.BackgroundColor3 = Color3.fromRGB(150, 30, 30) -- dark red
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.BorderSizePixel = 0
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 18
closeBtn.Parent = titleFrame
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 8)
closeCorner.Parent = closeBtn
-- Content container
local contentContainer = Instance.new("Frame")
contentContainer.Size = UDim2.new(1, 0, 1, -50)
contentContainer.Position = UDim2.new(0, 0, 0, 45)
contentContainer.BackgroundTransparency = 1
contentContainer.Parent = frame
local layout = Instance.new("UIListLayout")
layout.FillDirection = Enum.FillDirection.Vertical
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.VerticalAlignment = Enum.VerticalAlignment.Top
layout.Padding = UDim.new(0, 10)
layout.Parent = contentContainer
-- Save button
local saveBtn = Instance.new("TextButton")
saveBtn.Size = UDim2.new(0, 170, 0, 38)
saveBtn.Text = "💾 Save Position"
saveBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) -- dark gray
saveBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
saveBtn.BorderSizePixel = 0
saveBtn.Font = Enum.Font.GothamBold
saveBtn.TextSize = 15
saveBtn.Parent = contentContainer
local saveCorner = Instance.new("UICorner")
saveCorner.CornerRadius = UDim.new(0, 10)
saveCorner.Parent = saveBtn
-- Load button
local loadBtn = Instance.new("TextButton")
loadBtn.Size = UDim2.new(0, 170, 0, 38)
loadBtn.Text = "📂 Load Position"
loadBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) -- dark gray
loadBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
loadBtn.BorderSizePixel = 0
loadBtn.Font = Enum.Font.GothamBold
loadBtn.TextSize = 15
loadBtn.Parent = contentContainer
local loadCorner = Instance.new("UICorner")
loadCorner.CornerRadius = UDim.new(0, 10)
loadCorner.Parent = loadBtn
-- Info label
local infoLabel = Instance.new("TextLabel")
infoLabel.Size = UDim2.new(1, -20, 0, 30)
infoLabel.Text = "Position not saved"
infoLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
infoLabel.BackgroundTransparency = 1
infoLabel.Font = Enum.Font.Gotham
infoLabel.TextSize = 13
infoLabel.TextXAlignment = Enum.TextXAlignment.Center
infoLabel.Parent = contentContainer
-- Notification
local notification = Instance.new("TextLabel")
notification.Size = UDim2.new(1, -20, 0, 30)
notification.Text = ""
notification.TextColor3 = Color3.fromRGB(255, 255, 255)
notification.BackgroundColor3 = Color3.fromRGB(0, 0, 0, 0.5)
notification.BackgroundTransparency = 1
notification.Font = Enum.Font.Gotham
notification.TextSize = 13
notification.TextXAlignment = Enum.TextXAlignment.Center
notification.Visible = false
notification.Parent = contentContainer
-- Functions
local function updateInfo()
if savedPos then
infoLabel.Text = string.format("Saved: (%.1f, %.1f, %.1f)", savedPos.X, savedPos.Y, savedPos.Z)
else
infoLabel.Text = "Position not saved"
end
end
local function showNotification(text, color)
color = color or Color3.fromRGB(0, 255, 0)
notification.Text = text
notification.BackgroundColor3 = color
notification.BackgroundTransparency = 0.7
notification.Visible = true
task.wait(1.5)
notification.Visible = false
end
-- Handlers
local function onSave()
local character = player.Character
if not character then
showNotification("❌ Character not found!", Color3.fromRGB(255, 100, 100))
return
end
local hrp = character:FindFirstChild("HumanoidRootPart")
if not hrp then
showNotification("❌ HumanoidRootPart not found!", Color3.fromRGB(255, 100, 100))
return
end
savedPos = hrp.Position
updateInfo()
showNotification("✅ Saved!", Color3.fromRGB(0, 255, 0))
saveBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
task.wait(0.2)
saveBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
end
local function onLoad()
if not savedPos then
showNotification("⚠️ Save position first!", Color3.fromRGB(255, 200, 0))
return
end
local character = player.Character
if not character then
showNotification("❌ Character not found!", Color3.fromRGB(255, 100, 100))
return
end
local hrp = character:FindFirstChild("HumanoidRootPart")
if not hrp then
showNotification("❌ HumanoidRootPart not found!", Color3.fromRGB(255, 100, 100))
return
end
loadBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 255)
task.wait(0.2)
loadBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
if teleportInstant(character, savedPos) then
showNotification("✅ Teleported!", Color3.fromRGB(100, 200, 255))
infoLabel.Text = string.format("Teleported to (%.1f, %.1f, %.1f)", savedPos.X, savedPos.Y, savedPos.Z)
else
showNotification("❌ Teleport error!", Color3.fromRGB(255, 100, 100))
end
end
-- Connect events
saveBtn.MouseButton1Click:Connect(onSave)
saveBtn.TouchTap:Connect(onSave)
loadBtn.MouseButton1Click:Connect(onLoad)
loadBtn.TouchTap:Connect(onLoad)
closeBtn.MouseButton1Click:Connect(function()
screenGui:Destroy()
end)
closeBtn.TouchTap:Connect(function()
screenGui:Destroy()
end)
-- Dragging
local function startDrag(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isDragging = true
dragStart = input.Position
startPos = frame.Position
end
end
local function updateDrag(input)
if not isDragging then return end
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end
local function endDrag(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isDragging = false
end
end
title.InputBegan:Connect(startDrag)
title.InputChanged:Connect(updateDrag)
title.InputEnded:Connect(endDrag)
UserInputService.InputChanged:Connect(function(input, gameProcessed)
if gameProcessed then return end
if isDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
UserInputService.InputEnded:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isDragging = false
end
end)
-- Initialization
frame.Size = UDim2.new(0, 220, 0, 170)
frame.BackgroundTransparency = 0.15
updateInfo()
print("[Teleport Saver] Loaded. All buttons are rounded, dark theme.")No comments yet for this script.



