Location saver teleporter
Key RequiredUniversal

Location saver teleporter

Universal Scriptabhijwetyadavabhijwetyadav 90 views 1.8K executesUpdated Aug 31, 2026
Unrated
00
Lua Script•228 lines (8035 chars)
-- Services
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local LocalPlayer = Players.LocalPlayer

-- Global State
local savedCFrame = nil
local isMinimized = false
local targetSpeed = 16 -- Our default starting speed

-- Clean up old GUI if it exists
local existing = (gethui and gethui() or CoreGui):FindFirstChild("WaypointHub")
if existing then existing:Destroy() end

---------------------------------------------------------
-- UI BUILDER
---------------------------------------------------------
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "WaypointHub"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = (gethui and gethui()) or CoreGui or LocalPlayer:WaitForChild("PlayerGui")

-- Main Draggable Frame
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 220, 0, 180)
MainFrame.Position = UDim2.new(0.5, -110, 0.8, -140)
MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui

local MainCorner = Instance.new("UICorner", MainFrame)
MainCorner.CornerRadius = UDim.new(0, 6)

-- Top Bar
local TopBar = Instance.new("Frame")
TopBar.Size = UDim2.new(1, 0, 0, 30)
TopBar.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
TopBar.BorderSizePixel = 0
TopBar.Parent = MainFrame

local TopBarCorner = Instance.new("UICorner", TopBar)
TopBarCorner.CornerRadius = UDim.new(0, 6)

local TopBarFix = Instance.new("Frame")
TopBarFix.Size = UDim2.new(1, 0, 0, 5)
TopBarFix.Position = UDim2.new(0, 0, 1, -5)
TopBarFix.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
TopBarFix.BorderSizePixel = 0
TopBarFix.Parent = TopBar

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -40, 1, 0)
Title.Position = UDim2.new(0, 10, 0, 0)
Title.Text = "Waypoint Manager"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 13
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.BackgroundTransparency = 1
Title.Parent = TopBar

-- Minimize Button
local MinimizeBtn = Instance.new("TextButton")
MinimizeBtn.Size = UDim2.new(0, 30, 0, 30)
MinimizeBtn.Position = UDim2.new(1, -30, 0, 0)
MinimizeBtn.BackgroundTransparency = 1
MinimizeBtn.Text = "-"
MinimizeBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
MinimizeBtn.Font = Enum.Font.GothamBlack
MinimizeBtn.TextSize = 16
MinimizeBtn.Parent = TopBar

-- Container for the buttons
local ContentFrame = Instance.new("Frame")
ContentFrame.Size = UDim2.new(1, 0, 1, -30)
ContentFrame.Position = UDim2.new(0, 0, 0, 30)
ContentFrame.BackgroundTransparency = 1
ContentFrame.Parent = MainFrame

local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Parent = ContentFrame
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 8)
UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center

local Spacer = Instance.new("Frame")
Spacer.Size = UDim2.new(1, 0, 0, 2)
Spacer.BackgroundTransparency = 1
Spacer.Parent = ContentFrame

-- Button Creator Function
local function CreateButton(text, color)
    local Btn = Instance.new("TextButton")
    Btn.Size = UDim2.new(0.9, 0, 0, 32)
    Btn.BackgroundColor3 = color
    Btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    Btn.Font = Enum.Font.GothamBold
    Btn.TextSize = 13
    Btn.Text = text
    Btn.Parent = ContentFrame

    local Corner = Instance.new("UICorner", Btn)
    Corner.CornerRadius = UDim.new(0, 4)
    return Btn
end

local MarkBtn = CreateButton("📍 Mark Location", Color3.fromRGB(45, 100, 200))
local TeleportBtn = CreateButton("⚡ Teleport to Mark", Color3.fromRGB(40, 40, 40))

-- Create TextBox for Custom Speed
local SpeedInput = Instance.new("TextBox")
SpeedInput.Size = UDim2.new(0.9, 0, 0, 32)
SpeedInput.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
SpeedInput.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedInput.Font = Enum.Font.GothamBold
SpeedInput.TextSize = 13
SpeedInput.Text = "Speed: 16"
SpeedInput.PlaceholderText = "Type Speed (1-300)"
SpeedInput.ClearTextOnFocus = true
SpeedInput.Parent = ContentFrame

local SpeedCorner = Instance.new("UICorner", SpeedInput)
SpeedCorner.CornerRadius = UDim.new(0, 4)

local StatusLabel = Instance.new("TextLabel")
StatusLabel.Size = UDim2.new(0.9, 0, 0, 15)
StatusLabel.Text = "No location marked yet."
StatusLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextSize = 11
StatusLabel.BackgroundTransparency = 1
StatusLabel.Parent = ContentFrame

---------------------------------------------------------
-- LOGIC & MECHANICS
---------------------------------------------------------

-- Minimize Logic
MinimizeBtn.MouseButton1Click:Connect(function()
    isMinimized = not isMinimized
    local targetSize = isMinimized and UDim2.new(0, 220, 0, 30) or UDim2.new(0, 220, 0, 180)
    local tween = TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = targetSize})
    tween:Play()
    MinimizeBtn.Text = isMinimized and "+" or "-"
end)

-- Mark Location Logic
MarkBtn.MouseButton1Click:Connect(function()
    local char = LocalPlayer.Character
    if char and char:FindFirstChild("HumanoidRootPart") then
        savedCFrame = char.HumanoidRootPart.CFrame
        StatusLabel.Text = "Location marked successfully!"
        StatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100)
        MarkBtn.Text = "📍 Location Saved"
        
        task.wait(1.5)
        MarkBtn.Text = "📍 Update Mark"
        StatusLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
        StatusLabel.Text = "Ready to teleport."
    end
end)

-- Teleport Logic
TeleportBtn.MouseButton1Click:Connect(function()
    if savedCFrame then
        local char = LocalPlayer.Character
        if char and char:FindFirstChild("HumanoidRootPart") then
            char:PivotTo(savedCFrame)
            local originalColor = TeleportBtn.BackgroundColor3
            TeleportBtn.BackgroundColor3 = Color3.fromRGB(200, 150, 40)
            task.wait(0.2)
            TeleportBtn.BackgroundColor3 = originalColor
        end
    else
        StatusLabel.Text = "Error: Mark a location first!"
        StatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
        task.wait(2)
        if not savedCFrame then
            StatusLabel.Text = "No location marked yet."
            StatusLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
        end
    end
end)

-- Speed Input Logic (with validation!)
SpeedInput.FocusLost:Connect(function()
    local newSpeed = tonumber(SpeedInput.Text)
    
    -- Check if it's a real number AND fits in our safe range
    if newSpeed ~= nil and newSpeed >= 1 and newSpeed <= 300 then
        targetSpeed = newSpeed
        SpeedInput.Text = "Speed: " .. tostring(targetSpeed)
        SpeedInput.TextColor3 = Color3.fromRGB(100, 255, 100) -- Flash green on success
        task.wait(0.5)
        SpeedInput.TextColor3 = Color3.fromRGB(255, 255, 255)
    else
        -- Invalid input, revert to the last working speed
        SpeedInput.Text = "Speed: " .. tostring(targetSpeed)
        SpeedInput.TextColor3 = Color3.fromRGB(255, 100, 100) -- Flash red on error
        task.wait(0.5)
        SpeedInput.TextColor3 = Color3.fromRGB(255, 255, 255)
    end
end)

-- Background Loop (Always-On NoClip & Speed Enforcer)
RunService.Stepped:Connect(function()
    local char = LocalPlayer.Character
    if char then
        -- Enforce NoClip
        for _, part in ipairs(char:GetDescendants()) do
            if part:IsA("BasePart") and part.CanCollide then
                part.CanCollide = false
            end
        end
        
        -- Enforce Speed
        local humanoid = char:FindFirstChild("Humanoid")
        if humanoid and humanoid.WalkSpeed ~= targetSpeed then
            humanoid.WalkSpeed = targetSpeed
        end
    end
end)

Features & Information

Lacation saver and teleporter
#Location#Teleporter#Teleport

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts