set mark Gui keyless ofc
Key RequiredUniversal

set mark Gui keyless ofc

Universal ScriptOmni_mark2015Omni_mark2015 445 views 417 executesUpdated Mar 8, 2026
Unrated
00
Lua Script•158 lines (6182 chars)
-- 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)

Features & Information

Set a mark at a certain place then whenever your want teleport to the place you marked

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts