
KeylessUniversal

-- brathuo menu v9 - by brathuo
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
local MarketplaceService = game:GetService("MarketplaceService")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Initialize
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Get game name safely
local gameName = "Unknown Game"
local success, result = pcall(function()
return MarketplaceService:GetProductInfo(game.PlaceId)
end)
if success then
gameName = result.Name
else
gameName = "Game ID: " .. game.PlaceId
end
-- States
local states = {
immortality = {active = false, connections = {}},
noclip = {active = false, connection = nil},
infiniteJump = {active = false, connection = nil},
flight = {active = false, connection = nil, bodyVelocity = nil, speed = 50},
fullbright = {active = false, original = {}},
esp = {active = false, connections = {}, folders = {}, loops = {}},
aimbot = {active = false, connection = nil},
triggerbot = {active = false, connection = nil, delay = 100},
antiAFK = {active = false, connection = nil},
nameESP = {active = false},
healthESP = {active = false},
boxESP = {active = false},
itemESP = {active = false},
noFog = {active = false, original = nil},
showFOV = {active = true}
}
-- Aimbot settings
local aimbotSettings = {
targetPart = "Head",
maxDistance = 1000,
smoothness = 0.2,
wallCheck = true,
requireMouseButton = false,
fovSize = 100
}
-- Create GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "BrathuoMenu"
screenGui.Parent = game.CoreGui
screenGui.ResetOnSpawn = false
-- FOV Circle
local fovCircle = Instance.new("Frame")
fovCircle.Name = "FOVCircle"
fovCircle.Size = UDim2.new(0, aimbotSettings.fovSize * 2, 0, aimbotSettings.fovSize * 2)
fovCircle.Position = UDim2.new(0.5, -aimbotSettings.fovSize, 0.5, -aimbotSettings.fovSize)
fovCircle.BackgroundTransparency = 1
fovCircle.BorderSizePixel = 2
fovCircle.BorderColor3 = Color3.new(1, 0, 0)
fovCircle.Visible = states.showFOV.active
fovCircle.ZIndex = 100
fovCircle.Parent = screenGui
local circleCorner = Instance.new("UICorner")
circleCorner.CornerRadius = UDim.new(1, 0)
circleCorner.Parent = fovCircle
-- Main frame
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 500, 0, 550)
mainFrame.Position = UDim2.new(0.5, -250, 0.5, -275)
mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 40)
mainFrame.BackgroundTransparency = 0.1
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Visible = true
mainFrame.Parent = screenGui
-- Title
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 40)
title.Position = UDim2.new(0, 0, 0, 10)
title.BackgroundTransparency = 1
title.Text = "BRATHUO MENU v9"
title.TextColor3 = Color3.new(0, 1, 1)
title.Font = Enum.Font.GothamBold
title.TextSize = 24
title.TextStrokeColor3 = Color3.new(0, 0.3, 0.5)
title.TextStrokeTransparency = 0.6
title.ZIndex = 10
title.Parent = mainFrame
-- Game name display
local gameNameLabel = Instance.new("TextLabel")
gameNameLabel.Size = UDim2.new(1, 0, 0, 20)
gameNameLabel.Position = UDim2.new(0, 0, 0, 45)
gameNameLabel.BackgroundTransparency = 1
gameNameLabel.Text = gameName
gameNameLabel.TextColor3 = Color3.new(0.8, 0.9, 1)
gameNameLabel.Font = Enum.Font.Gotham
gameNameLabel.TextSize = 12
gameNameLabel.ZIndex = 10
gameNameLabel.Parent = mainFrame
-- Tabs
local tabs = {"Player", "Combat", "Movement", "Visuals", "ESP", "Misc"}
local tabFrames = {}
local tabButtonsFrame = Instance.new("Frame")
tabButtonsFrame.Size = UDim2.new(1, -20, 0, 35)
tabButtonsFrame.Position = UDim2.new(0, 10, 0, 75)
tabButtonsFrame.BackgroundTransparency = 1
tabButtonsFrame.Parent = mainFrame
local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, -20, 1, -125)
contentFrame.Position = UDim2.new(0, 10, 0, 120)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = mainFrame
-- Create tabs
for i, tabName in ipairs(tabs) do
local button = Instance.new("TextButton")
button.Size = UDim2.new(0.16, 0, 1, 0)
button.Position = UDim2.new(0.166 * (i-1), 0, 0, 0)
button.BackgroundColor3 = i == 1 and Color3.fromRGB(60, 60, 120) or Color3.fromRGB(40, 40, 80)
button.BorderSizePixel = 0
button.Text = tabName
button.TextColor3 = Color3.new(1, 1, 1)
button.Font = Enum.Font.GothamMedium
button.TextSize = 12
button.Parent = tabButtonsFrame
local tabFrame = Instance.new("ScrollingFrame")
tabFrame.Size = UDim2.new(1, 0, 1, 0)
tabFrame.Position = UDim2.new(0, 0, 0, 0)
tabFrame.BackgroundTransparency = 1
tabFrame.Visible = (i == 1)
tabFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
tabFrame.ScrollBarThickness = 4
tabFrame.ScrollBarImageColor3 = Color3.new(0.2, 0.5, 1)
tabFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
tabFrame.Parent = contentFrame
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 8)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Parent = tabFrame
local padding = Instance.new("UIPadding")
padding.PaddingTop = UDim.new(0, 5)
padding.PaddingLeft = UDim.new(0, 5)
padding.PaddingRight = UDim.new(0, 5)
padding.Parent = tabFrame
tabFrames[tabName] = tabFrame
button.MouseButton1Click:Connect(function()
for _, frame in pairs(tabFrames) do
frame.Visible = false
end
tabFrame.Visible = true
for _, btn in pairs(tabButtonsFrame:GetChildren()) do
if btn:IsA("TextButton") then
btn.BackgroundColor3 = Color3.fromRGB(40, 40, 80)
end
end
button.BackgroundColor3 = Color3.fromRGB(60, 60, 120)
end)
end
-- Helper functions
local function createToggle(parent, text, stateKey, callback)
local toggleFrame = Instance.new("Frame")
toggleFrame.Size = UDim2.new(1, 0, 0, 35)
toggleFrame.BackgroundTransparency = 1
toggleFrame.LayoutOrder = #parent:GetChildren()
toggleFrame.Parent = parent
local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(1, -10, 1, 0)
toggleButton.Position = UDim2.new(0, 5, 0, 0)
toggleButton.BackgroundColor3 = Color3.fromRGB(50, 50, 90)
toggleButton.BorderSizePixel = 2
toggleButton.BorderColor3 = Color3.new(0.3, 0.3, 0.4)
toggleButton.Text = ""
toggleButton.Parent = toggleFrame
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.7, 0, 1, 0)
label.Position = UDim2.new(0, 10, 0, 0)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = Color3.new(1, 1, 1)
label.Font = Enum.Font.GothamMedium
label.TextSize = 14
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = toggleButton
local status = Instance.new("Frame")
status.Size = UDim2.new(0, 20, 0, 20)
status.Position = UDim2.new(1, -30, 0.5, -10)
status.BackgroundColor3 = states[stateKey].active and Color3.fromRGB(0, 255, 100) or Color3.fromRGB(255, 50, 50)
status.BorderSizePixel = 2
status.BorderColor3 = Color3.new(0.2, 0.2, 0.3)
status.Parent = toggleButton
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1, 0)
corner.Parent = status
toggleButton.MouseButton1Click:Connect(function()
states[stateKey].active = not states[stateKey].active
if states[stateKey].active then
status.BackgroundColor3 = Color3.fromRGB(0, 255, 100)
else
status.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
end
callback(states[stateKey].active)
end)
return toggleFrame
end
local function createSlider(parent, text, minVal, maxVal, defaultVal, callback)
local sliderFrame = Instance.new("Frame")
sliderFrame.Size = UDim2.new(1, 0, 0, 60)
sliderFrame.BackgroundTransparency = 1
sliderFrame.LayoutOrder = #parent:GetChildren()
sliderFrame.Parent = parent
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -10, 0, 20)
label.Position = UDim2.new(0, 5, 0, 0)
label.BackgroundTransparency = 1
label.Text = text .. ": " .. defaultVal
label.TextColor3 = Color3.new(1, 1, 1)
label.Font = Enum.Font.GothamMedium
label.TextSize = 14
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = sliderFrame
local sliderContainer = Instance.new("Frame")
sliderContainer.Size = UDim2.new(1, -10, 0, 20)
sliderContainer.Position = UDim2.new(0, 5, 0, 25)
sliderContainer.BackgroundColor3 = Color3.fromRGB(40, 40, 70)
sliderContainer.BorderSizePixel = 0
sliderContainer.Parent = sliderFrame
local sliderFill = Instance.new("Frame")
sliderFill.Size = UDim2.new((defaultVal - minVal) / (maxVal - minVal), 0, 1, 0)
sliderFill.Position = UDim2.new(0, 0, 0, 0)
sliderFill.BackgroundColor3 = Color3.new(0, 0.6, 1)
sliderFill.BorderSizePixel = 0
sliderFill.Parent = sliderContainer
local sliderButton = Instance.new("TextButton")
sliderButton.Size = UDim2.new(0, 20, 1, 0)
sliderButton.Position = UDim2.new(sliderFill.Size.X.Scale, -10, 0, 0)
sliderButton.BackgroundColor3 = Color3.new(1, 1, 1)
sliderButton.BorderSizePixel = 0
sliderButton.Text = ""
sliderButton.ZIndex = 2
sliderButton.Parent = sliderContainer
local dragging = false
local function updateSlider(input)
local xPos = math.clamp((input.Position.X - sliderContainer.AbsolutePosition.X) / sliderContainer.AbsoluteSize.X, 0, 1)
local value = math.floor(minVal + (maxVal - minVal) * xPos)
sliderFill.Size = UDim2.new(xPos, 0, 1, 0)
sliderButton.Position = UDim2.new(xPos, -10, 0, 0)
label.Text = text .. ": " .. value
callback(value)
end
sliderButton.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
end
end)
sliderButton.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
updateSlider(input)
end
end)
return sliderFrame
end
-- FIXED: Update FOV Circle
local function updateFOVCircle()
fovCircle.Size = UDim2.new(0, aimbotSettings.fovSize * 2, 0, aimbotSettings.fovSize * 2)
fovCircle.Position = UDim2.new(0.5, -aimbotSettings.fovSize, 0.5, -aimbotSettings.fovSize)
fovCircle.Visible = states.showFOV.active
end
-- FIXED: Immortality
local function setupImmortality()
if not character or not humanoid then return end
for _, conn in pairs(states.immortality.connections) do
conn:Disconnect()
end
states.immortality.connections = {}
local healthConn = humanoid.HealthChanged:Connect(function()
if states.immortality.active and humanoid.Health < humanoid.MaxHealth then
humanoid.Health = humanoid.MaxHealth
end
end)
table.insert(states.immortality.connections, healthConn)
if not character:FindFirstChild("BrathuoForceField") then
local ff = Instance.new("ForceField")
ff.Name = "BrathuoForceField"
ff.Visible = false
ff.Parent = character
end
local godLoop = RunService.Heartbeat:Connect(function()
if not states.immortality.active or not character or not humanoid then return end
pcall(function()
humanoid.Health = humanoid.MaxHealth
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
part.Material = EnumMaterial.ForceField
end
end
if humanoid:GetState() == Enum.HumanoidStateType.Dead then
humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
end)
end)
table.insert(states.immortality.connections, godLoop)
end
-- FIXED: Noclip
local function setupNoclip()
if states.noclip.connection then
states.noclip.connection:Disconnect()
end
states.noclip.connection = RunService.Stepped:Connect(function()
if not states.noclip.active or not character then return end
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end)
end
-- FIXED: Flight
local function setupFlight()
if states.flight.bodyVelocity then
states.flight.bodyVelocity:Destroy()
states.flight.bodyVelocity = nil
end
if states.flight.connection then
states.flight.connection:Disconnect()
end
local root = character:FindFirstChild("HumanoidRootPart")
if not root then return end
states.flight.bodyVelocity = Instance.new("BodyVelocity")
states.flight.bodyVelocity.Name = "BrathuoFlight"
states.flight.bodyVelocity.MaxForce = Vector3.new(40000, 40000, 40000)
states.flight.bodyVelocity.Velocity = Vector3.new(0, 0, 0)
states.flight.bodyVelocity.Parent = root
states.flight.connection = RunService.Heartbeat:Connect(function()
if not states.flight.active or not states.flight.bodyVelocity or not root then return end
local direction = Vector3.new(0, 0, 0)
local camera = Workspace.CurrentCamera
if UserInputService:IsKeyDown(Enum.KeyCode.W) then
direction = direction + camera.CFrame.LookVector
end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then
direction = direction - camera.CFrame.LookVector
end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then
direction = direction - camera.CFrame.RightVector
end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then
direction = direction + camera.CFrame.RightVector
end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
direction = direction + Vector3.new(0, 1, 0)
end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
direction = direction - Vector3.new(0, 1, 0)
end
if direction.Magnitude > 0 then
states.flight.bodyVelocity.Velocity = direction.Unit * states.flight.speed
else
states.flight.bodyVelocity.Velocity = Vector3.new(0, 0, 0)
end
end)
end
-- FIXED: ESP System
local function createESP(playerInstance)
if playerInstance == player then return end
local espFolder = Instance.new("Folder")
espFolder.Name = playerInstance.Name .. "_ESP"
espFolder.Parent = screenGui
states.esp.folders[playerInstance] = espFolder
-- Box ESP
if states.boxESP.active then
local box = Instance.new("BoxHandleAdornment")
box.Name = "Box"
box.Adornee = playerInstance.Character and playerInstance.Character:FindFirstChild("HumanoidRootPart")
box.AlwaysOnTop = true
box.ZIndex = 10
box.Size = Vector3.new(4, 6, 1)
box.Color3 = Color3.new(1, 0, 0)
box.Transparency = 0.3
box.Visible = states.esp.active and states.boxESP.active
box.Parent = espFolder
end
-- Name ESP (same size as health bar)
if states.nameESP.active then
local nameLabel = Instance.new("TextLabel")
nameLabel.Name = "Name"
nameLabel.Text = playerInstance.Name
nameLabel.TextColor3 = Color3.new(1, 1, 1)
nameLabel.BackgroundTransparency = 1
nameLabel.TextSize = 14
nameLabel.Font = Enum.Font.GothamBold
nameLabel.Size = UDim2.new(0, 100, 0, 20) -- Same size as health bar
nameLabel.Visible = states.esp.active and states.nameESP.active
nameLabel.Parent = espFolder
end
-- FIXED: Smaller Health ESP (same size as name)
if states.healthESP.active then
local healthBar = Instance.new("Frame")
healthBar.Name = "HealthBar"
healthBar.BackgroundColor3 = Color3.new(1, 0, 0)
healthBar.BorderSizePixel = 1
healthBar.BorderColor3 = Color3.new(0, 0, 0)
healthBar.Size = UDim2.new(0, 100, 0, 4) -- SMALLER: 100px wide, 4px tall
healthBar.Visible = states.esp.active and states.healthESP.active
healthBar.Parent = espFolder
local healthText = Instance.new("TextLabel")
healthText.Name = "HealthText"
healthText.Text = "100"
healthText.TextColor3 = Color3.new(0, 1, 0)
healthText.BackgroundTransparency = 1
healthText.TextSize = 12
healthText.Font = Enum.Font.GothamBold
healthText.Size = UDim2.new(0, 100, 0, 15) -- Same width as health bar
healthText.Visible = states.esp.active and states.healthESP.active
healthText.Parent = espFolder
end
end
local function updateESP()
for playerInstance, folder in pairs(states.esp.folders) do
if playerInstance.Character and playerInstance.Character:FindFirstChild("HumanoidRootPart") then
local root = playerInstance.Character.HumanoidRootPart
local humanoid = playerInstance.Character:FindFirstChildOfClass("Humanoid")
local screenPos, onScreen = Workspace.CurrentCamera:WorldToViewportPoint(root.Position)
if onScreen then
-- Update box
local box = folder:FindFirstChild("Box")
if box then
box.Adornee = root
box.Visible = states.esp.active and states.boxESP.active
end
-- Update name (position above head)
local nameLabel = folder:FindFirstChild("Name")
if nameLabel then
nameLabel.Position = UDim2.new(0, screenPos.X - 50, 0, screenPos.Y - 60)
nameLabel.Visible = states.esp.active and states.nameESP.active
end
-- Update health (position below name)
local healthBar = folder:FindFirstChild("HealthBar")
local healthText = folder:FindFirstChild("HealthText")
if healthBar and healthText and humanoid then
local healthPercent = humanoid.Health / humanoid.MaxHealth
healthBar.Size = UDim2.new(healthPercent, 0, 0, 4) -- Scales with health
healthBar.BackgroundColor3 = Color3.new(1 - healthPercent, healthPercent, 0)
healthBar.Position = UDim2.new(0, screenPos.X - 50, 0, screenPos.Y - 35)
healthBar.Visible = states.esp.active and states.healthESP.active
healthText.Text = math.floor(humanoid.Health)
healthText.TextColor3 = healthBar.BackgroundColor3
healthText.Position = UDim2.new(0, screenPos.X - 50, 0, screenPos.Y - 30)
healthText.Visible = states.esp.active and states.healthESP.active
end
else
-- Hide if off screen
for _, child in pairs(folder:GetChildren()) do
if child:IsA("BoxHandleAdornment") or child:IsA("TextLabel") or child:IsA("Frame") then
child.Visible = false
end
end
end
end
end
end
local function setupESP()
-- Clear existing
for _, folder in pairs(states.esp.folders) do
folder:Destroy()
end
states.esp.folders = {}
for _, conn in pairs(states.esp.connections) do
conn:Disconnect()
end
states.esp.connections = {}
for _, loop in pairs(states.esp.loops) do
loop:Disconnect()
end
states.esp.loops = {}
-- Create ESP for all players
for _, p in pairs(Players:GetPlayers()) do
if p ~= player then
createESP(p)
end
end
-- Player added connection
local playerAddedConn = Players.PlayerAdded:Connect(function(p)
p.CharacterAdded:Connect(function()
wait(1)
createESP(p)
end)
end)
table.insert(states.esp.connections, playerAddedConn)
-- Update loop
local updateLoop = RunService.RenderStepped:Connect(function()
if states.esp.active then
updateESP()
end
end)
table.insert(states.esp.loops, updateLoop)
end
-- Character handling
player.CharacterAdded:Connect(function(newChar)
character = newChar
humanoid = character:WaitForChild("Humanoid")
if states.immortality.active then
setupImmortality()
end
if states.flight.active then
setupFlight()
end
if states.noclip.active then
setupNoclip()
end
if states.esp.active then
setupESP()
end
end)
-- Player Tab
local playerTab = tabFrames["Player"]
createToggle(playerTab, "Immortality", "immortality", function(active)
if active then
setupImmortality()
else
for _, conn in pairs(states.immortality.connections) do
conn:Disconnect()
end
states.immortality.connections = {}
if character then
local ff = character:FindFirstChild("BrathuoForceField")
if ff then ff:Destroy() end
end
end
end)
createToggle(playerTab, "Noclip", "noclip", function(active)
if active then
setupNoclip()
else
if states.noclip.connection then
states.noclip.connection:Disconnect()
states.noclip.connection = nil
end
if character then
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
end
end)
createToggle(playerTab, "Infinite Jump", "infiniteJump", function(active)
if active then
states.infiniteJump.connection = UserInputService.JumpRequest:Connect(function()
if humanoid then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
else
if states.infiniteJump.connection then
states.infiniteJump.connection:Disconnect()
states.infiniteJump.connection = nil
end
end
end)
-- Combat Tab
local combatTab = tabFrames["Combat"]
createToggle(combatTab, "Aimbot", "aimbot", function(active)
if active then
states.aimbot.connection = RunService.Heartbeat:Connect(function()
if not states.aimbot.active then return end
local closest = nil
local closestDist = math.huge
for _, p in pairs(Players:GetPlayers()) do
if p ~= player and p.Character then
local targetPart = p.Character:FindFirstChild(aimbotSettings.targetPart)
if targetPart then
local dist = (targetPart.Position - character.HumanoidRootPart.Position).Magnitude
if dist < closestDist and dist <= aimbotSettings.maxDistance then
closestDist = dist
closest = targetPart
end
end
end
end
if closest then
local camera = Workspace.CurrentCamera
camera.CFrame = camera.CFrame:Lerp(
CFrame.new(camera.CFrame.Position, closest.Position),
aimbotSettings.smoothness
)
end
end)
else
if states.aimbot.connection then
states.aimbot.connection:Disconnect()
states.aimbot.connection = nil
end
end
end)
-- Target selection
local targetFrame = Instance.new("Frame")
targetFrame.Size = UDim2.new(1, 0, 0, 35)
targetFrame.BackgroundTransparency = 1
targetFrame.LayoutOrder = #combatTab:GetChildren()
targetFrame.Parent = combatTab
local targetLabel = Instance.new("TextLabel")
targetLabel.Size = UDim2.new(0.4, 0, 1, 0)
targetLabel.Position = UDim2.new(0, 10, 0, 0)
targetLabel.BackgroundTransparency = 1
targetLabel.Text = "Target:"
targetLabel.TextColor3 = Color3.new(1, 1, 1)
targetLabel.Font = Enum.Font.GothamMedium
targetLabel.TextSize = 14
targetLabel.TextXAlignment = Enum.TextXAlignment.Left
targetLabel.Parent = targetFrame
local headButton = Instance.new("TextButton")
headButton.Size = UDim2.new(0.25, 0, 0.7, 0)
headButton.Position = UDim2.new(0.4, 0, 0.15, 0)
headButton.BackgroundColor3 = aimbotSettings.targetPart == "Head" and Color3.fromRGB(0, 150, 255) or Color3.fromRGB(60, 60, 90)
headButton.Text = "Head"
headButton.TextColor3 = Color3.new(1, 1, 1)
headButton.Font = Enum.Font.GothamMedium
headButton.TextSize = 12
headButton.Parent = targetFrame
local bodyButton = Instance.new("TextButton")
bodyButton.Size = UDim2.new(0.25, 0, 0.7, 0)
bodyButton.Position = UDim2.new(0.7, 0, 0.15, 0)
bodyButton.BackgroundColor3 = aimbotSettings.targetPart == "HumanoidRootPart" and Color3.fromRGB(0, 150, 255) or Color3.fromRGB(60, 60, 90)
bodyButton.Text = "Body"
bodyButton.TextColor3 = Color3.new(1, 1, 1)
bodyButton.Font = Enum.Font.GothamMedium
bodyButton.TextSize = 12
bodyButton.Parent = targetFrame
headButton.MouseButton1Click:Connect(function()
aimbotSettings.targetPart = "Head"
headButton.BackgroundColor3 = Color3.fromRGB(0, 150, 255)
bodyButton.BackgroundColor3 = Color3.fromRGB(60, 60, 90)
end)
bodyButton.MouseButton1Click:Connect(function()
aimbotSettings.targetPart = "HumanoidRootPart"
bodyButton.BackgroundColor3 = Color3.fromRGB(0, 150, 255)
headButton.BackgroundColor3 = Color3.fromRGB(60, 60, 90)
end)
createToggle(combatTab, "Show FOV Circle", "showFOV", function(active)
states.showFOV.active = active
updateFOVCircle()
end)
createSlider(combatTab, "FOV Circle Size", 10, 500, 100, function(value)
aimbotSettings.fovSize = value
updateFOVCircle()
end)
createSlider(combatTab, "Max Distance", 10, 5000, 1000, function(value)
aimbotSettings.maxDistance = value
end)
createSlider(combatTab, "Smoothness", 1, 100, 20, function(value)
aimbotSettings.smoothness = value / 100
end)
createToggle(combatTab, "Trigger Bot", "triggerbot", function(active)
if active then
states.triggerbot.connection = RunService.Heartbeat:Connect(function()
if not states.triggerbot.active then return end
local target = mouse.Target
if target then
local model = target:FindFirstAncestorOfClass("Model")
if model then
local humanoid = model:FindFirstChildOfClass("Humanoid")
if humanoid and humanoid.Health > 0 then
wait(states.triggerbot.delay / 1000)
mouse1click()
end
end
end
end)
else
if states.triggerbot.connection then
states.triggerbot.connection:Disconnect()
states.triggerbot.connection = nil
end
end
end)
createSlider(combatTab, "Trigger Delay", 1, 500, 100, function(value)
states.triggerbot.delay = value
end)
-- Movement Tab
local movementTab = tabFrames["Movement"]
createToggle(movementTab, "Flight", "flight", function(active)
if active then
setupFlight()
else
if states.flight.connection then
states.flight.connection:Disconnect()
states.flight.connection = nil
end
if states.flight.bodyVelocity then
states.flight.bodyVelocity:Destroy()
states.flight.bodyVelocity = nil
end
end
end)
createSlider(movementTab, "Fly Speed", 1, 200, 50, function(value)
states.flight.speed = value
end)
createSlider(movementTab, "Walk Speed", 16, 200, 16, function(value)
if humanoid then
humanoid.WalkSpeed = value
end
end)
createSlider(movementTab, "Jump Power", 50, 500, 50, function(value)
if humanoid then
humanoid.JumpPower = value
end
end)
createSlider(movementTab, "Speed Multiplier", 0.1, 5, 1, function(value)
if humanoid then
humanoid.WalkSpeed = 16 * value
end
end)
-- Visuals Tab
local visualsTab = tabFrames["Visuals"]
createToggle(visualsTab, "FullBright", "fullbright", function(active)
if active then
states.fullbright.original.ambient = Lighting.Ambient
states.fullbright.original.brightness = Lighting.Brightness
Lighting.Ambient = Color3.new(1, 1, 1)
Lighting.Brightness = 2
else
if states.fullbright.original.ambient then
Lighting.Ambient = states.fullbright.original.ambient
Lighting.Brightness = states.fullbright.original.brightness
else
Lighting.Ambient = Color3.new(0.5, 0.5, 0.5)
Lighting.Brightness = 1
end
end
end)
createToggle(visualsTab, "No Fog", "noFog", function(active)
if active then
states.noFog.original = Lighting.FogEnd
Lighting.FogEnd = 1000000
else
if states.noFog.original then
Lighting.FogEnd = states.noFog.original
else
Lighting.FogEnd = 10000
end
end
end)
-- ESP Tab (FIXED: ESP Master now works)
local espTab = tabFrames["ESP"]
createToggle(espTab, "ESP Master", "esp", function(active)
if active then
setupESP()
else
for _, folder in pairs(states.esp.folders) do
folder:Destroy()
end
states.esp.folders = {}
for _, conn in pairs(states.esp.connections) do
conn:Disconnect()
end
states.esp.connections = {}
for _, loop in pairs(states.esp.loops) do
loop:Disconnect()
end
states.esp.loops = {}
end
end)
createToggle(espTab, "Name ESP", "nameESP", function(active)
states.nameESP.active = active
if states.esp.active then
setupESP()
end
end)
createToggle(espTab, "Box ESP", "boxESP", function(active)
states.boxESP.active = active
if states.esp.active then
setupESP()
end
end)
createToggle(espTab, "Health ESP", "healthESP", function(active)
states.healthESP.active = active
if states.esp.active then
setupESP()
end
end)
createToggle(espTab, "Item ESP", "itemESP", function(active)
states.itemESP.active = active
end)
-- Misc Tab
local miscTab = tabFrames["Misc"]
createToggle(miscTab, "Anti-AFK", "antiAFK", function(active)
if active then
local vu = game:GetService("VirtualUser")
states.antiAFK.connection = Players.LocalPlayer.Idled:Connect(function()
vu:Button2Down(Vector2.new(0,0), Workspace.CurrentCamera.CFrame)
wait(1)
vu:Button2Up(Vector2.new(0,0), Workspace.CurrentCamera.CFrame)
end)
else
if states.antiAFK.connection then
states.antiAFK.connection:Disconnect()
states.antiAFK.connection = nil
end
end
end)
-- Buttons for Misc
local function createMiscButton(text, color, callback)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -10, 0, 35)
button.Position = UDim2.new(0, 5, 0, 0)
button.BackgroundColor3 = color
button.BorderSizePixel = 0
button.Text = text
button.TextColor3 = Color3.new(1, 1, 1)
button.Font = Enum.Font.GothamMedium
button.TextSize = 14
button.LayoutOrder = #miscTab:GetChildren()
button.Parent = miscTab
button.MouseButton1Click:Connect(callback)
return button
end
createMiscButton("FPS Boost", Color3.fromRGB(60, 60, 100), function()
settings().Rendering.QualityLevel = 1
Lighting.GlobalShadows = false
warn("FPS Boost applied")
end)
createMiscButton("Rejoin Server", Color3.fromRGB(80, 120, 200), function()
game:GetService("TeleportService"):Teleport(game.PlaceId, player)
end)
createMiscButton("Copy Game ID", Color3.fromRGB(80, 200, 120), function()
setclipboard(tostring(game.PlaceId))
warn("Game ID copied to clipboard: " .. game.PlaceId)
end)
-- Game Info
local gameInfoFrame = Instance.new("Frame")
gameInfoFrame.Size = UDim2.new(1, -10, 0, 80)
gameInfoFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 80)
gameInfoFrame.BorderSizePixel = 0
gameInfoFrame.LayoutOrder = #miscTab:GetChildren()
gameInfoFrame.Parent = miscTab
local gameInfoLabel = Instance.new("TextLabel")
gameInfoLabel.Size = UDim2.new(1, -10, 1, -10)
gameInfoLabel.Position = UDim2.new(0, 5, 0, 5)
gameInfoLabel.BackgroundTransparency = 1
gameInfoLabel.Text = "Game: " .. gameName .. "\nPlayers: " .. #Players:GetPlayers() .. "/" .. game.Players.MaxPlayers
gameInfoLabel.TextColor3 = Color3.new(1, 1, 1)
gameInfoLabel.Font = Enum.Font.Gotham
gameInfoLabel.TextSize = 12
gameInfoLabel.TextWrapped = true
gameInfoLabel.TextXAlignment = Enum.TextXAlignment.Left
gameInfoLabel.Parent = gameInfoFrame
-- Unload Button
createMiscButton("UNLOAD MENU", Color3.fromRGB(255, 50, 50), function()
-- Disconnect all
for stateName, stateData in pairs(states) do
if stateData.connection then
pcall(function() stateData.connection:Disconnect() end)
end
if stateData.connections then
for _, conn in pairs(stateData.connections) do
pcall(function() conn:Disconnect() end)
end
end
if stateData.loops then
for _, loop in pairs(stateData.loops) do
pcall(function() loop:Disconnect() end)
end
end
end
-- Cleanup
if states.flight.bodyVelocity then
states.flight.bodyVelocity:Destroy()
end
if character then
local ff = character:FindFirstChild("BrathuoForceField")
if ff then ff:Destroy() end
end
if fovCircle then
fovCircle:Destroy()
end
if states.fullbright.original.ambient then
Lighting.Ambient = states.fullbright.original.ambient
Lighting.Brightness = states.fullbright.original.brightness
end
if states.noFog.original then
Lighting.FogEnd = states.noFog.original
end
-- Restore collision
if character then
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
-- Reset speed
if humanoid then
humanoid.WalkSpeed = 16
humanoid.JumpPower = 50
end
screenGui:Destroy()
warn("brathuo menu v9 unloaded")
end)
-- Toggle menu with Insert
UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Insert then
mainFrame.Visible = not mainFrame.Visible
end
end)
-- Initialization
warn("brathuo menu v9 loaded")
warn("Game: " .. gameName)
warn("Health ESP fixed - smaller bar")
warn("ESP Master working")
warn("FOV Circle adjustable")
warn("Press Insert to toggle menu")



what about this script? W or L?
insert or Pb to close/open menu