NO KEY SET MULTIPLE WAYPOINT
Key RequiredUniversal

NO KEY SET MULTIPLE WAYPOINT

Universal ScriptRoyalthessRoyalthess 663 views 67 executesUpdated Nov 26, 2025
2.5/ 5(2 votes)
1150% Positive
Lua Script•135 lines (4005 chars)
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)

Features & Information

Set multiple waypoints upto 50 Teleport to each of them continuously 0.8 CD Open source.

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts