
KeylessUniversal

-- 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)No comments yet for this script.



