
Key RequiredUniversal

local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local UIS = game:GetService("UserInputService")
local marcas = {nil,nil,nil,nil}
local beacons = {nil,nil,nil,nil}
local esperandoClique = false
local slotAtual = nil
-- GUI
local ScreenGui = Instance.new("ScreenGui")
local Frame = Instance.new("Frame")
local TopBar = Instance.new("TextLabel")
local MarkBtn = Instance.new("TextButton")
ScreenGui.Parent = Player:WaitForChild("PlayerGui")
ScreenGui.ResetOnSpawn = false
ScreenGui.Name = "TeleportMarksFix"
Frame.Parent = ScreenGui
Frame.Size = UDim2.new(0,270,0,330)
Frame.Position = UDim2.new(0.5,-135,0.5,-165)
Frame.BackgroundColor3 = Color3.fromRGB(25,25,25)
Frame.BorderSizePixel = 0
TopBar.Parent = Frame
TopBar.Size = UDim2.new(1,0,0,30)
TopBar.BackgroundColor3 = Color3.fromRGB(15,15,15)
TopBar.Text = "Teleport Marks FIX"
TopBar.TextColor3 = Color3.new(1,1,1)
MarkBtn.Parent = Frame
MarkBtn.Size = UDim2.new(0,230,0,35)
MarkBtn.Position = UDim2.new(0,20,0,40)
MarkBtn.Text = "MARCAR NOVO"
MarkBtn.TextColor3 = Color3.new(1,1,1)
MarkBtn.BackgroundColor3 = Color3.fromRGB(0,120,255)
local tpButtons = {}
local clearButtons = {}
for i = 1,4 do
local y = 85 + ((i-1)*58)
local tp = Instance.new("TextButton")
tp.Parent = Frame
tp.Size = UDim2.new(0,140,0,30)
tp.Position = UDim2.new(0,20,0,y)
tp.Text = "TELEPORTE "..i
tp.TextColor3 = Color3.new(1,1,1)
tp.BackgroundColor3 = Color3.fromRGB(0,170,0)
local clear = Instance.new("TextButton")
clear.Parent = Frame
clear.Size = UDim2.new(0,80,0,30)
clear.Position = UDim2.new(0,170,0,y)
clear.Text = "APAGAR"
clear.TextColor3 = Color3.new(1,1,1)
clear.BackgroundColor3 = Color3.fromRGB(170,0,0)
tpButtons[i] = tp
clearButtons[i] = clear
end
local function pegarSlotLivre()
for i = 1,4 do
if marcas[i] == nil then
return i
end
end
return nil
end
local function criarBeacon(slot,pos)
if beacons[slot] then
beacons[slot]:Destroy()
end
local p = Instance.new("Part")
p.Anchored = true
p.CanCollide = false
p.Size = Vector3.new(2,6,2)
p.Material = Enum.Material.Neon
p.Transparency = 0.25
p.Position = pos + Vector3.new(0,3,0)
p.Parent = workspace
beacons[slot] = p
end
local function apagarMarca(slot)
marcas[slot] = nil
if beacons[slot] then
beacons[slot]:Destroy()
beacons[slot] = nil
end
end
MarkBtn.MouseButton1Click:Connect(function()
slotAtual = pegarSlotLivre()
if slotAtual then
esperandoClique = true
MarkBtn.Text = "CLIQUE NO MAPA ("..slotAtual..")"
else
MarkBtn.Text = "LIMITE 4/4"
task.wait(1)
MarkBtn.Text = "MARCAR NOVO"
end
end)
Mouse.Button1Down:Connect(function()
if esperandoClique and slotAtual then
esperandoClique = false
marcas[slotAtual] = Mouse.Hit.Position
criarBeacon(slotAtual, marcas[slotAtual])
slotAtual = nil
MarkBtn.Text = "MARCAR NOVO"
end
end)
for i = 1,4 do
tpButtons[i].MouseButton1Click:Connect(function()
if marcas[i] then
local char = Player.Character
if char and char:FindFirstChild("HumanoidRootPart") then
char.HumanoidRootPart.CFrame = CFrame.new(marcas[i] + Vector3.new(0,3,0))
end
end
end)
clearButtons[i].MouseButton1Click:Connect(function()
apagarMarca(i)
end)
end
-- mover gui
local dragging = false
local dragStart
local startPos
TopBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = Frame.Position
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
UIS.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
Frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)



also work in forsaken copys if you are scary to get banned from forsaken