
Key Required VerifiedUniversal

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
gui.ResetOnSpawn = false
gui.Name = "WaypointGUI"
--========== DRAGGABLE MAIN FRAME ==========--
local main = Instance.new("Frame", gui)
main.Size = UDim2.new(0, 300, 0, 350)
main.Position = UDim2.new(0.5, -150, 0.3, -150)
main.BackgroundColor3 = Color3.fromRGB(40,40,40)
main.Active = true
main.Draggable = true
local title = Instance.new("TextLabel", main)
title.Size = UDim2.new(1,0,0,30)
title.BackgroundColor3 = Color3.fromRGB(30,30,30)
title.Text = "Waypoint System"
title.TextColor3 = Color3.new(1,1,1)
title.TextScaled = true
--========== CLOSE BUTTON ==========--
local close = Instance.new("TextButton", main)
close.Size = UDim2.new(0,30,0,30)
close.Position = UDim2.new(1,-35,0,0)
close.Text = "X"
close.BackgroundColor3 = Color3.fromRGB(100,0,0)
close.TextColor3 = Color3.new(1,1,1)
close.MouseButton1Click:Connect(function()
gui:Destroy()
end)
--========== TAB BUTTONS ==========--
local tabFrame = Instance.new("Frame", main)
tabFrame.Size = UDim2.new(1,0,0,30)
tabFrame.Position = UDim2.new(0,0,0,35)
tabFrame.BackgroundTransparency = 1
local tab1 = Instance.new("TextButton", tabFrame)
tab1.Size = UDim2.new(0.5,0,1,0)
tab1.Text = "ButtonTp"
tab1.BackgroundColor3 = Color3.fromRGB(60,60,60)
tab1.TextColor3 = Color3.new(1,1,1)
local tab2 = Instance.new("TextButton", tabFrame)
tab2.Size = UDim2.new(0.5,0,1,0)
tab2.Position = UDim2.new(0.5,0,0,0)
tab2.Text = "Teleport"
tab2.BackgroundColor3 = Color3.fromRGB(35,35,35)
tab2.TextColor3 = Color3.new(1,1,1)
--========== CONTENT FRAMES ==========--
local content1 = Instance.new("ScrollingFrame", main)
content1.Size = UDim2.new(1,0,1,-70)
content1.Position = UDim2.new(0,0,0,70)
content1.CanvasSize = UDim2.new(0,0,5,0)
content1.BackgroundColor3 = Color3.fromRGB(25,25,25)
local content2 = Instance.new("Frame", main)
content2.Size = UDim2.new(1,0,1,-70)
content2.Position = UDim2.new(0,0,0,70)
content2.BackgroundColor3 = Color3.fromRGB(25,25,25)
content2.Visible = false
--========== TAB LOGIC ==========--
tab1.MouseButton1Click:Connect(function()
content1.Visible = true
content2.Visible = false
tab1.BackgroundColor3 = Color3.fromRGB(60,60,60)
tab2.BackgroundColor3 = Color3.fromRGB(35,35,35)
end)
tab2.MouseButton1Click:Connect(function()
content1.Visible = false
content2.Visible = true
tab1.BackgroundColor3 = Color3.fromRGB(35,35,35)
tab2.BackgroundColor3 = Color3.fromRGB(60,60,60)
end)
--========== WAYPOINT STORAGE ==========--
local waypoints = {}
for i = 1, 50 do
waypoints[i] = nil
end
--========== NOTIFICATION FUNCTION ==========--
local function notify(msg)
game.StarterGui:SetCore("SendNotification", {
Title = "Waypoint";
Text = msg;
Duration = 1;
})
end
--========== CREATE 50 BUTTONS ==========--
for i = 1, 50 do
local btn = Instance.new("TextButton", content1)
btn.Size = UDim2.new(1, -10, 0, 40)
btn.Position = UDim2.new(0, 5, 0, (i-1)*45)
btn.Text = "TP Button " .. i
btn.BackgroundColor3 = Color3.fromRGB(50,50,50)
btn.TextColor3 = Color3.new(1,1,1)
btn.MouseButton1Click:Connect(function()
local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if hrp then
waypoints[i] = hrp.CFrame
notify("Clicked!")
end
end)
end
--========== TELEPORT ALL BUTTON ==========--
local tpAllBtn = Instance.new("TextButton", content2)
tpAllBtn.Size = UDim2.new(1,-20,0,50)
tpAllBtn.Position = UDim2.new(0,10,0,10)
tpAllBtn.Text = "Teleport Through All"
tpAllBtn.BackgroundColor3 = Color3.fromRGB(60,60,60)
tpAllBtn.TextColor3 = Color3.new(1,1,1)
tpAllBtn.MouseButton1Click:Connect(function()
local hrp = player.Character:FindFirstChild("HumanoidRootPart")
if not hrp then return end
for i = 1, 50 do
if waypoints[i] then
hrp.CFrame = waypoints[i] + Vector3.new(0,2,0)
notify("TP "..i.."!")
task.wait(0.8)
end
end
end)No comments yet for this script.



