-- Settings & Variables local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local rootPart = character:WaitForChild("HumanoidRootPart") local runService = game:GetService("RunService") local slots = { [1] = {savedCFrame = nil, waypointPart = nil, color = Color3.fromRGB(46, 204, 113)}, -- Green [2] = {savedCFrame = nil, waypointPart = nil, color = Color3.fromRGB(52, 152, 219)}, -- Blue [3] = {savedCFrame = nil, waypointPart = nil, color = Color3.fromRGB(155, 89, 182)} -- Purple } local currentSlot = 1 -- 1. GUI Construction local screenGui = Instance.new("ScreenGui", player.PlayerGui) screenGui.Name = "MultiWaypointSystem" screenGui.ResetOnSpawn = false -- // MASSIVE CREDIT POP-UP (Omni_mark2015) // -- local creditFrame = Instance.new("Frame", screenGui) creditFrame.Size = UDim2.new(0, 500, 0, 100) creditFrame.Position = UDim2.new(1, 50, 0.45, 0) -- Starts off-screen creditFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) creditFrame.BackgroundTransparency = 0.1 Instance.new("UICorner", creditFrame).CornerRadius = UDim.new(0, 15) local creditStroke = Instance.new("UIStroke", creditFrame) creditStroke.Color = Color3.fromRGB(255, 255, 255) creditStroke.Thickness = 3 local creditLabel = Instance.new("TextLabel", creditFrame) creditLabel.Size = UDim2.new(1, 0, 1, 0) creditLabel.Text = "POWERED BY OMNI_MARK2015" creditLabel.TextColor3 = Color3.fromRGB(255, 255, 255) creditLabel.Font = Enum.Font.GothamBold creditLabel.TextSize = 24 creditLabel.BackgroundTransparency = 1 -- Animation for Credit task.spawn(function() task.wait(0.5) creditFrame:TweenPosition(UDim2.new(0.5, -250, 0.45, 0), "Out", "Quint", 1.2) -- Center Screen task.wait(6) creditFrame:TweenPosition(UDim2.new(1, 50, 0.45, 0), "In", "Quad", 1) -- Hide end) -- Main Menu local mainFrame = Instance.new("Frame", screenGui) mainFrame.Size = UDim2.new(0, 180, 0, 220) mainFrame.Position = UDim2.new(0.05, 0, 0.4, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) mainFrame.BackgroundTransparency = 0.2 mainFrame.Active = true mainFrame.Draggable = true Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 10) local title = Instance.new("TextLabel", mainFrame) title.Size = UDim2.new(1, 0, 0.15, 0) title.Text = "WAYPOINTS" title.TextColor3 = Color3.new(1, 1, 1) title.BackgroundTransparency = 1 title.Font = Enum.Font.GothamBold local slotFrame = Instance.new("Frame", mainFrame) slotFrame.Size = UDim2.new(0.9, 0, 0.2, 0) slotFrame.Position = UDim2.new(0.05, 0, 0.18, 0) slotFrame.BackgroundTransparency = 1 local slotBtns = {} for i = 1, 3 do local sBtn = Instance.new("TextButton", slotFrame) sBtn.Size = UDim2.new(0.3, 0, 0.8, 0) sBtn.Position = UDim2.new((i-1)*0.35, 0, 0, 0) sBtn.Text = tostring(i) sBtn.BackgroundColor3 = (i == 1) and Color3.new(1,1,1) or Color3.new(0.2, 0.2, 0.2) sBtn.TextColor3 = (i == 1) and Color3.new(0,0,0) or Color3.new(1,1,1) Instance.new("UICorner", sBtn) slotBtns[i] = sBtn end local function createButton(name, text, pos, color) local btn = Instance.new("TextButton", mainFrame) btn.Name = name; btn.Text = text; btn.Size = UDim2.new(0.9, 0, 0.18, 0) btn.Position = pos; btn.BackgroundColor3 = color; btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.GothamBold; btn.TextSize = 14 Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) return btn end local setBtn = createButton("SetBtn", "SET POINT", UDim2.new(0.05, 0, 0.42, 0), Color3.fromRGB(46, 204, 113)) local tpBtn = createButton("TpBtn", "RETURN", UDim2.new(0.05, 0, 0.62, 0), Color3.fromRGB(52, 152, 219)) local clearBtn = createButton("ClearBtn", "CLEAR SLOT", UDim2.new(0.05, 0, 0.82, 0), Color3.fromRGB(231, 76, 60)) -- 2. Visuals Manager local function updateVisuals(slotIndex) local data = slots[slotIndex] if data.waypointPart then data.waypointPart:Destroy() end if not data.savedCFrame then return end local pos = data.savedCFrame.Position - Vector3.new(0, 2, 0) local part = Instance.new("Part", workspace) part.Size = Vector3.new(1.5, 1.5, 1.5) part.Position = pos; part.Anchored = true; part.CanCollide = false part.Transparency = 0.4; part.Color = data.color; part.Material = Enum.Material.Neon data.waypointPart = part local bb = Instance.new("BillboardGui", part) bb.Size = UDim2.new(0, 120, 0, 50); bb.AlwaysOnTop = true; bb.ExtentsOffset = Vector3.new(0, 3, 0) local label = Instance.new("TextLabel", bb) label.Size = UDim2.new(1, 0, 1, 0); label.BackgroundTransparency = 1 label.TextColor3 = data.color; label.TextStrokeTransparency = 0; label.Font = Enum.Font.GothamBold local att0 = Instance.new("Attachment", part) local att1 = Instance.new("Attachment", rootPart) local beam = Instance.new("Beam", part) beam.Attachment0 = att0; beam.Attachment1 = att1; beam.Width0 = 0.15; beam.Width1 = 0.15 beam.Color = ColorSequence.new(data.color); beam.FaceCamera = true; beam.Transparency = NumberSequence.new(0.2) runService.RenderStepped:Connect(function() if part.Parent and rootPart then local dist = math.floor((rootPart.Position - part.Position).Magnitude) label.Text = "SLOT "..slotIndex.."\n"..dist.." studs" end end) end -- 3. Input Logic for i, btn in pairs(slotBtns) do btn.MouseButton1Click:Connect(function() currentSlot = i for j, b in pairs(slotBtns) do b.BackgroundColor3 = (j == i) and Color3.new(1,1,1) or Color3.new(0.2, 0.2, 0.2) b.TextColor3 = (j == i) and Color3.new(0,0,0) or Color3.new(1,1,1) end end) end setBtn.MouseButton1Click:Connect(function() character = player.Character or player.CharacterAdded:Wait() rootPart = character:WaitForChild("HumanoidRootPart") slots[currentSlot].savedCFrame = rootPart.CFrame updateVisuals(currentSlot) end) tpBtn.MouseButton1Click:Connect(function() local data = slots[currentSlot] character = player.Character or player.CharacterAdded:Wait() if data.savedCFrame and character then character:SetPrimaryPartCFrame(data.savedCFrame + Vector3.new(0, 3, 0)) end end) clearBtn.MouseButton1Click:Connect(function() if slots[currentSlot].waypointPart then slots[currentSlot].waypointPart:Destroy() end slots[currentSlot].savedCFrame = nil end)