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)