Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Ultra Farm Battleground - Menú Mejorado & Opciones Visibles + Icono Abrir/Cerrar
- local Players = game:GetService("Players")
- local LocalPlayer = Players.LocalPlayer
- local RunService = game:GetService("RunService")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local TweenService = game:GetService("TweenService")
- -- Estado
- local selectedPlayer = nil
- local followDistance = 5
- local autoTP = true
- local autoSkillTP = false
- local tpPosition = "Detras"
- local directions = {"Detras","Frente","Izquierda","Derecha"}
- -- UI helper
- local function roundify(obj, r)
- obj.BorderSizePixel = 0
- local c = Instance.new("UICorner", obj)
- c.CornerRadius = UDim.new(0, r or 8)
- end
- -- GUI base
- local gui = Instance.new("ScreenGui", LocalPlayer.PlayerGui)
- gui.Name = "UltraFarmBattlegroundMenuClear"
- local frame = Instance.new("Frame", gui)
- frame.Size = UDim2.new(0, 380, 0, 520)
- frame.Position = UDim2.new(0, 80, 0, 80)
- frame.BackgroundColor3 = Color3.fromRGB(36, 36, 45)
- frame.Active = true
- frame.Draggable = true
- roundify(frame, 12)
- local title = Instance.new("TextLabel", frame)
- title.Size = UDim2.new(1, 0, 0, 36)
- title.Text = "Ultra Farm Battleground"
- title.TextColor3 = Color3.fromRGB(255, 255, 85)
- title.BackgroundTransparency = 1
- title.Font = Enum.Font.GothamBold
- title.TextSize = 24
- -- SECCIÓN: JUGADORES
- local playerBox = Instance.new("Frame", frame)
- playerBox.Size = UDim2.new(1, -24, 0, 84)
- playerBox.Position = UDim2.new(0, 12, 0, 44)
- playerBox.BackgroundColor3 = Color3.fromRGB(44, 44, 54)
- roundify(playerBox, 8)
- local playerLabel = Instance.new("TextLabel", playerBox)
- playerLabel.Size = UDim2.new(1, 0, 0, 22)
- playerLabel.Position = UDim2.new(0, 0, 0, 0)
- playerLabel.Text = "Jugadores"
- playerLabel.TextColor3 = Color3.fromRGB(170, 170, 255)
- playerLabel.BackgroundTransparency = 1
- playerLabel.Font = Enum.Font.GothamBold
- playerLabel.TextSize = 16
- local playerList = Instance.new("ScrollingFrame", playerBox)
- playerList.Size = UDim2.new(1, -10, 1, -26)
- playerList.Position = UDim2.new(0, 6, 0, 24)
- playerList.CanvasSize = UDim2.new(0, 0, 0, 0)
- playerList.BackgroundTransparency = 1
- playerList.BorderSizePixel = 0
- local playerLayout = Instance.new("UIListLayout", playerList)
- playerLayout.SortOrder = Enum.SortOrder.LayoutOrder
- playerLayout.Padding = UDim.new(0, 4)
- local function updatePlayers()
- for _, c in ipairs(playerList:GetChildren()) do
- if c:IsA("TextButton") then c:Destroy() end
- end
- for _, p in ipairs(Players:GetPlayers()) do
- if p ~= LocalPlayer then
- local btn = Instance.new("TextButton", playerList)
- btn.Size = UDim2.new(1, 0, 0, 24)
- btn.Text = p.Name
- btn.BackgroundColor3 = selectedPlayer == p and Color3.fromRGB(70, 120, 250) or Color3.fromRGB(56, 56, 70)
- btn.TextColor3 = Color3.fromRGB(255, 255, 255)
- btn.Font = Enum.Font.Gotham
- btn.TextSize = 13
- roundify(btn, 6)
- btn.MouseButton1Click:Connect(function()
- selectedPlayer = p
- updatePlayers()
- end)
- end
- end
- playerList.CanvasSize = UDim2.new(0, 0, 0, #Players:GetPlayers() * 28)
- end
- Players.PlayerAdded:Connect(updatePlayers)
- Players.PlayerRemoving:Connect(updatePlayers)
- updatePlayers()
- -- SECCIÓN: CONFIGURACIÓN
- local configBox = Instance.new("Frame", frame)
- configBox.Size = UDim2.new(1, -24, 0, 96)
- configBox.Position = UDim2.new(0, 12, 0, 134)
- configBox.BackgroundColor3 = Color3.fromRGB(44, 44, 54)
- roundify(configBox, 8)
- local configLabel = Instance.new("TextLabel", configBox)
- configLabel.Size = UDim2.new(1, 0, 0, 22)
- configLabel.Position = UDim2.new(0, 0, 0, 0)
- configLabel.Text = "Configuración"
- configLabel.TextColor3 = Color3.fromRGB(170, 220, 170)
- configLabel.BackgroundTransparency = 1
- configLabel.Font = Enum.Font.GothamBold
- configLabel.TextSize = 16
- local distLabel = Instance.new("TextLabel", configBox)
- distLabel.Size = UDim2.new(0.5, -26, 0, 28)
- distLabel.Position = UDim2.new(0, 12, 0, 30)
- distLabel.Text = "Distancia: " .. followDistance
- distLabel.TextColor3 = Color3.fromRGB(220, 220, 220)
- distLabel.BackgroundTransparency = 1
- distLabel.Font = Enum.Font.Gotham
- distLabel.TextSize = 14
- local minusBtn = Instance.new("TextButton", configBox)
- minusBtn.Size = UDim2.new(0, 24, 0, 24)
- minusBtn.Position = UDim2.new(0.5, -8, 0, 32)
- minusBtn.Text = "-"
- minusBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
- minusBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
- minusBtn.Font = Enum.Font.GothamBold
- minusBtn.TextSize = 16
- roundify(minusBtn, 6)
- minusBtn.MouseButton1Click:Connect(function()
- followDistance = math.max(1, followDistance - 1)
- distLabel.Text = "Distancia: " .. followDistance
- end)
- local plusBtn = Instance.new("TextButton", configBox)
- plusBtn.Size = UDim2.new(0, 24, 0, 24)
- plusBtn.Position = UDim2.new(0.5, 18, 0, 32)
- plusBtn.Text = "+"
- plusBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
- plusBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
- plusBtn.Font = Enum.Font.GothamBold
- plusBtn.TextSize = 16
- roundify(plusBtn, 6)
- plusBtn.MouseButton1Click:Connect(function()
- followDistance = math.min(50, followDistance + 1)
- distLabel.Text = "Distancia: " .. followDistance
- end)
- local posLabel = Instance.new("TextLabel", configBox)
- posLabel.Size = UDim2.new(0.4, 0, 0, 28)
- posLabel.Position = UDim2.new(0.6, 12, 0, 30)
- posLabel.Text = "Posición: " .. tpPosition
- posLabel.TextColor3 = Color3.fromRGB(220, 220, 220)
- posLabel.BackgroundTransparency = 1
- posLabel.Font = Enum.Font.Gotham
- posLabel.TextSize = 14
- local posBtn = Instance.new("TextButton", configBox)
- posBtn.Size = UDim2.new(0, 32, 0, 24)
- posBtn.Position = UDim2.new(0.88, 0, 0, 32)
- posBtn.Text = "⟳"
- posBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
- posBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
- posBtn.Font = Enum.Font.GothamBold
- posBtn.TextSize = 16
- roundify(posBtn, 6)
- posBtn.MouseButton1Click:Connect(function()
- local i = table.find(directions, tpPosition)
- tpPosition = directions[(i % #directions) + 1]
- posLabel.Text = "Posición: " .. tpPosition
- end)
- -- SECCIÓN: CONTROLES
- local controlBox = Instance.new("Frame", frame)
- controlBox.Size = UDim2.new(1, -24, 0, 60)
- controlBox.Position = UDim2.new(0, 12, 0, 240)
- controlBox.BackgroundColor3 = Color3.fromRGB(44, 44, 54)
- roundify(controlBox, 8)
- local function makeToggle(name, init, callback, x)
- local btn = Instance.new("TextButton", controlBox)
- btn.Size = UDim2.new(0.5, -8, 0, 36)
- btn.Position = UDim2.new(x, 8, 0, 12)
- btn.Text = name
- btn.BackgroundColor3 = init and Color3.fromRGB(40, 160, 60) or Color3.fromRGB(80, 80, 80)
- btn.TextColor3 = Color3.fromRGB(255, 255, 255)
- btn.Font = Enum.Font.GothamBold
- btn.TextSize = 16
- roundify(btn, 8)
- local state = init
- btn.MouseButton1Click:Connect(function()
- state = not state
- btn.BackgroundColor3 = state and Color3.fromRGB(40, 160, 60) or Color3.fromRGB(80, 80, 80)
- callback(state)
- end)
- end
- makeToggle("Auto TP", autoTP, function(v) autoTP = v end, 0)
- makeToggle("Auto Skill TP", autoSkillTP, function(v) autoSkillTP = v end, 0.5)
- -- SECCIÓN: SKILLS DETECTADOS
- local skillBox = Instance.new("Frame", frame)
- skillBox.Size = UDim2.new(1, -24, 0, 130)
- skillBox.Position = UDim2.new(0, 12, 0, 320)
- skillBox.BackgroundColor3 = Color3.fromRGB(44, 44, 54)
- roundify(skillBox, 8)
- local skillLabel = Instance.new("TextLabel", skillBox)
- skillLabel.Size = UDim2.new(1, 0, 0, 22)
- skillLabel.Position = UDim2.new(0, 0, 0, 0)
- skillLabel.Text = "Skills detectados (RemoteEvents)"
- skillLabel.TextColor3 = Color3.fromRGB(220, 170, 170)
- skillLabel.BackgroundTransparency = 1
- skillLabel.Font = Enum.Font.GothamBold
- skillLabel.TextSize = 16
- local skillList = Instance.new("ScrollingFrame", skillBox)
- skillList.Size = UDim2.new(1, -10, 1, -28)
- skillList.Position = UDim2.new(0, 6, 0, 24)
- skillList.CanvasSize = UDim2.new(0, 0, 0, 0)
- skillList.BackgroundTransparency = 1
- skillList.BorderSizePixel = 0
- local skillLayout = Instance.new("UIListLayout", skillList)
- skillLayout.SortOrder = Enum.SortOrder.LayoutOrder
- skillLayout.Padding = UDim.new(0, 4)
- local skillRemotes = {}
- local function updateRemotes()
- skillRemotes = {}
- for _, obj in ipairs(ReplicatedStorage:GetDescendants()) do
- if obj:IsA("RemoteEvent") then
- table.insert(skillRemotes, obj)
- end
- end
- for _, c in ipairs(skillList:GetChildren()) do
- if c:IsA("TextButton") then c:Destroy() end
- end
- for _, remote in ipairs(skillRemotes) do
- local btn = Instance.new("TextButton", skillList)
- btn.Size = UDim2.new(1, 0, 0, 28)
- btn.Text = remote.Name
- btn.BackgroundColor3 = Color3.fromRGB(90, 60, 60)
- btn.TextColor3 = Color3.fromRGB(255, 255, 255)
- btn.Font = Enum.Font.Gotham
- btn.TextSize = 14
- roundify(btn, 6)
- btn.MouseButton1Click:Connect(function()
- remote:FireServer()
- end)
- end
- skillList.CanvasSize = UDim2.new(0, 0, 0, #skillRemotes * 32)
- end
- updateRemotes()
- ReplicatedStorage.DescendantAdded:Connect(updateRemotes)
- ReplicatedStorage.DescendantRemoving:Connect(updateRemotes)
- -- TP calculado
- local function tpAround()
- if not selectedPlayer then return end
- local targetChar = selectedPlayer.Character
- local myChar = LocalPlayer.Character
- if not targetChar or not myChar then return end
- local root = targetChar:FindFirstChild("HumanoidRootPart")
- local myRoot = myChar:FindFirstChild("HumanoidRootPart")
- if not root or not myRoot then return end
- local offset
- if tpPosition == "Frente" then
- offset = root.CFrame.LookVector * followDistance
- elseif tpPosition == "Detras" then
- offset = -root.CFrame.LookVector * followDistance
- elseif tpPosition == "Izquierda" then
- offset = -root.CFrame.RightVector * followDistance
- elseif tpPosition == "Derecha" then
- offset = root.CFrame.RightVector * followDistance
- else
- offset = Vector3.new(0, 0, followDistance)
- end
- myRoot.CFrame = CFrame.new(root.Position + offset)
- end
- RunService.RenderStepped:Connect(function()
- if autoTP then tpAround() end
- if autoSkillTP then
- tpAround()
- if #skillRemotes > 0 then
- skillRemotes[1]:FireServer()
- end
- end
- end)
- -- ICONO FLOTANTE PARA ABRIR/CERRAR MENU
- local icon = Instance.new("TextButton", gui)
- icon.Size = UDim2.new(0, 40, 0, 40)
- icon.Position = UDim2.new(0, 20, 0, 20)
- icon.BackgroundColor3 = Color3.fromRGB(255, 215, 0)
- icon.Text = "☰"
- icon.TextColor3 = Color3.fromRGB(0,0,0)
- icon.Font = Enum.Font.GothamBold
- icon.TextSize = 22
- icon.AutoButtonColor = true
- roundify(icon, 20)
- icon.Active = true
- icon.Draggable = true -- Arrastrable
- local menuVisible = true
- icon.MouseButton1Click:Connect(function()
- menuVisible = not menuVisible
- frame.Visible = menuVisible
- end)
- -- PERSISTENCIA DEL GUI AL MORIR
- Players.LocalPlayer.CharacterAdded:Connect(function()
- wait(0.5)
- if not gui.Parent then
- gui.Parent = LocalPlayer.PlayerGui
- end
- frame.Visible = menuVisible
- end)
Advertisement
Add Comment
Please, Sign In to add comment