local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local SoundService = game:GetService("SoundService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local Camera = workspace.CurrentCamera
local MENU_KEY = Enum.KeyCode.RightShift
local oldGui = PlayerGui:FindFirstChild("NEVERBLOX_V2_CLEAN")
if oldGui then
oldGui:Destroy()
end
local Theme = {
BG = Color3.fromRGB(8, 9, 14),
Sidebar = Color3.fromRGB(5, 17, 28),
Panel = Color3.fromRGB(0, 24, 48),
PanelDark = Color3.fromRGB(3, 9, 18),
Accent = Color3.fromRGB(39, 156, 255),
Text = Color3.fromRGB(255, 255, 255),
Muted = Color3.fromRGB(150, 160, 175),
Off = Color3.fromRGB(72, 84, 96),
Red = Color3.fromRGB(255, 75, 85),
Green = Color3.fromRGB(70, 255, 145),
Yellow = Color3.fromRGB(255, 210, 80)
}
local State = {
MenuOpen = true,
-- Rage Bot
RageBot = false,
RageActivation = "Always",
RageTeamCheck = true,
RageWallCheck = false,
RageHitbox = "Head",
RageTargetSelection = "FOV",
RageFOV = 260,
RageSmooth = 1,
RagePrediction = 0.08,
RageMaxDistance = 2500,
RageAutoFire = false,
RageDoubleTap = false,
RageQuickStop = false,
RageHitchance = 100,
-- Legit Bot
LegitBot = false,
LegitActivation = "Hold RMB",
LegitTeamCheck = true,
LegitWallCheck = true,
LegitHitbox = "Head",
LegitFOV = 110,
LegitSmooth = 30,
LegitPrediction = 0.03,
LegitMaxDistance = 1500,
LegitTriggerbot = false,
LegitTriggerDelay = 120,
-- Visuals
VisualsEnabled = true,
TeamCheck = false,
BoxESP = true,
CornerBox = false,
NameESP = true,
HealthESP = true,
DistanceESP = true,
Chams = true,
Glow = true,
ChamsXRay = true,
ESPMaxDistance = 2500,
FOVCircles = true,
-- World
Nightmode = false,
Fullbright = false,
RemoveFog = false,
SkyColor = "Default",
Brightness = 2,
CameraFOV = 70,
-- Movement
BunnyHop = false,
AutoStrafer = false,
AutoStraferMode = "Legit",
FastStop = false,
-- Misc
Thirdperson = false,
ThirdpersonDistance = 12,
Hitsounds = false,
HitSoundType = "Neverlose",
-- UI
Indicators = true,
Watermark = true,
KeybindList = true
}
local OldLighting = {
Brightness = Lighting.Brightness,
ClockTime = Lighting.ClockTime,
FogEnd = Lighting.FogEnd,
FogStart = Lighting.FogStart,
GlobalShadows = Lighting.GlobalShadows,
Ambient = Lighting.Ambient,
OutdoorAmbient = Lighting.OutdoorAmbient
}
local OldCamera = {
Mode = LocalPlayer.CameraMode,
MinZoom = LocalPlayer.CameraMinZoomDistance,
MaxZoom = LocalPlayer.CameraMaxZoomDistance
}
local Keys = {
W = false,
A = false,
S = false,
D = false,
Space = false
}
local HoldingRMB = false
local LastFire = 0
local LastTrigger = 0
local ToggleControls = {}
local SliderControls = {}
local DropdownControls = {}
local HitSounds = {
Neverlose = "rbxassetid://6895079853",
Skeet = "rbxassetid://10066931761",
Bell = "rbxassetid://9118823100",
Metal = "rbxassetid://8917041751",
Ding = "rbxassetid://6026984224",
Click = "rbxassetid://12221967"
}
local function New(className, props, parent)
local obj = Instance.new(className)
for k, v in pairs(props or {}) do
obj[k] = v
end
if parent then
obj.Parent = parent
end
return obj
end
local function Corner(obj, radius)
return New("UICorner", {
CornerRadius = UDim.new(0, radius or 6)
}, obj)
end
local function GetChar(plr)
plr = plr or LocalPlayer
return plr.Character
end
local function GetRoot(plr)
local char = GetChar(plr)
return char and char:FindFirstChild("HumanoidRootPart")
end
local function GetHumanoid(plr)
local char = GetChar(plr)
return char and char:FindFirstChildOfClass("Humanoid")
end
local function IsEnemyForVisuals(plr)
if not plr or plr == LocalPlayer then
return false
end
if State.TeamCheck and LocalPlayer.Team and plr.Team and LocalPlayer.Team == plr.Team then
return false
end
return true
end
local function IsEnemyForAim(plr, teamCheck)
if not plr or plr == LocalPlayer then
return false
end
if teamCheck and LocalPlayer.Team and plr.Team and LocalPlayer.Team == plr.Team then
return false
end
return true
end
--// GUI
local Gui = New("ScreenGui", {
Name = "NEVERBLOX_V2_CLEAN",
ResetOnSpawn = false,
IgnoreGuiInset = true,
DisplayOrder = 20,
ZIndexBehavior = Enum.ZIndexBehavior.Sibling
}, PlayerGui)
local Main = New("Frame", {
Name = "Main",
Size = UDim2.fromOffset(820, 630),
Position = UDim2.new(0.5, -410, 0.5, -315),
BackgroundColor3 = Theme.BG,
BorderSizePixel = 0,
ZIndex = 50
}, Gui)
Corner(Main, 6)
local Sidebar = New("Frame", {
Name = "Sidebar",
Size = UDim2.fromOffset(210, 630),
BackgroundColor3 = Theme.Sidebar,
BorderSizePixel = 0,
ZIndex = 51
}, Main)
New("TextLabel", {
Size = UDim2.fromOffset(180, 40),
Position = UDim2.fromOffset(18, 16),
BackgroundTransparency = 1,
Text = "NEVERBLOX",
TextColor3 = Theme.Text,
TextSize = 28,
Font = Enum.Font.FredokaOne,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 52
}, Sidebar)
New("TextLabel", {
Size = UDim2.fromOffset(170, 18),
Position = UDim2.fromOffset(20, 47),
BackgroundTransparency = 1,
Text = "by Nyrex",
TextColor3 = Theme.Accent,
TextSize = 12,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 52
}, Sidebar)
local TabHolder = New("Frame", {
Size = UDim2.fromOffset(190, 455),
Position = UDim2.fromOffset(10, 88),
BackgroundTransparency = 1,
ZIndex = 52
}, Sidebar)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 7)
}, TabHolder)
local ProfileLine = New("Frame", {
Size = UDim2.new(1, 0, 0, 1),
Position = UDim2.new(0, 0, 1, -68),
BackgroundColor3 = Color3.fromRGB(24, 54, 82),
BackgroundTransparency = 0.45,
BorderSizePixel = 0,
ZIndex = 52
}, Sidebar)
local Avatar = New("ImageLabel", {
Size = UDim2.fromOffset(44, 44),
Position = UDim2.fromOffset(14, 12),
BackgroundTransparency = 1,
Image = "https://www.roblox.com/headshot-thumbnail/image?userId=" .. LocalPlayer.UserId .. "&width=420&height=420&format=png",
ZIndex = 53
}, ProfileLine)
Corner(Avatar, 50)
New("TextLabel", {
Size = UDim2.fromOffset(125, 22),
Position = UDim2.fromOffset(68, 11),
BackgroundTransparency = 1,
Text = LocalPlayer.Name,
TextColor3 = Theme.Text,
TextSize = 14,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 53
}, ProfileLine)
New("TextLabel", {
Size = UDim2.fromOffset(125, 18),
Position = UDim2.fromOffset(68, 34),
BackgroundTransparency = 1,
Text = "RightShift",
TextColor3 = Theme.Accent,
TextSize = 12,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 53
}, ProfileLine)
local Top = New("Frame", {
Size = UDim2.new(1, -210, 0, 70),
Position = UDim2.fromOffset(210, 0),
BackgroundTransparency = 1,
ZIndex = 52
}, Main)
local PageTitle = New("TextLabel", {
Size = UDim2.fromOffset(270, 40),
Position = UDim2.fromOffset(24, 16),
BackgroundTransparency = 1,
Text = "Rage Bot",
TextColor3 = Theme.Text,
TextSize = 22,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 53
}, Top)
local PresetButton = New("TextButton", {
Size = UDim2.fromOffset(95, 34),
Position = UDim2.new(1, -235, 0, 18),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.35,
BorderSizePixel = 0,
Text = "Preset",
TextColor3 = Theme.Text,
TextSize = 14,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
ZIndex = 53
}, Top)
Corner(PresetButton, 4)
local InfoButton = New("TextButton", {
Size = UDim2.fromOffset(95, 34),
Position = UDim2.new(1, -125, 0, 18),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.35,
BorderSizePixel = 0,
Text = "Info",
TextColor3 = Theme.Text,
TextSize = 14,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
ZIndex = 53
}, Top)
Corner(InfoButton, 4)
New("Frame", {
Size = UDim2.new(1, -230, 0, 1),
Position = UDim2.fromOffset(220, 70),
BackgroundColor3 = Color3.fromRGB(40, 50, 65),
BackgroundTransparency = 0.4,
BorderSizePixel = 0,
ZIndex = 52
}, Main)
local Content = New("Frame", {
Size = UDim2.new(1, -230, 1, -86),
Position = UDim2.fromOffset(220, 80),
BackgroundTransparency = 1,
ZIndex = 52
}, Main)
local NotifyHolder = New("Frame", {
Name = "NotifyHolder",
Size = UDim2.fromOffset(320, 700),
Position = UDim2.new(1, -340, 0, 20),
BackgroundTransparency = 1,
ZIndex = 199
}, Gui)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 10),
HorizontalAlignment = Enum.HorizontalAlignment.Right
}, NotifyHolder)
local function Notify(title, text)
local frame = New("Frame", {
Size = UDim2.fromOffset(0, 66),
BackgroundColor3 = Color3.fromRGB(13, 24, 38),
BackgroundTransparency = 0.08,
BorderSizePixel = 0,
ZIndex = 200
}, NotifyHolder)
Corner(frame, 5)
local line = New("Frame", {
Size = UDim2.new(1, 0, 0, 4),
Position = UDim2.new(0, 0, 1, -4),
BackgroundColor3 = Theme.Accent,
BorderSizePixel = 0,
ZIndex = 201
}, frame)
Corner(line, 5)
New("TextLabel", {
Size = UDim2.fromOffset(230, 22),
Position = UDim2.fromOffset(16, 9),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 15,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 201
}, frame)
New("TextLabel", {
Size = UDim2.fromOffset(250, 22),
Position = UDim2.fromOffset(16, 34),
BackgroundTransparency = 1,
Text = text,
TextColor3 = Color3.fromRGB(215, 220, 230),
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 201
}, frame)
TweenService:Create(frame, TweenInfo.new(0.22), {
Size = UDim2.fromOffset(285, 66)
}):Play()
TweenService:Create(line, TweenInfo.new(2.1), {
Size = UDim2.new(0, 0, 0, 4)
}):Play()
task.delay(2.35, function()
if frame then
TweenService:Create(frame, TweenInfo.new(0.22), {
Size = UDim2.fromOffset(0, 66),
BackgroundTransparency = 1
}):Play()
task.wait(0.25)
frame:Destroy()
end
end)
end
local Pages = {}
local Tabs = {}
local function SetTab(name)
for pageName, page in pairs(Pages) do
page.Visible = pageName == name
end
for tabName, data in pairs(Tabs) do
local active = tabName == name
TweenService:Create(data.Button, TweenInfo.new(0.18), {
BackgroundTransparency = active and 0.15 or 1
}):Play()
TweenService:Create(data.Label, TweenInfo.new(0.18), {
TextColor3 = active and Theme.Text or Color3.fromRGB(165, 170, 180)
}):Play()
end
PageTitle.Text = name
end
local function MakePage(name)
local tab = New("TextButton", {
Name = name,
Size = UDim2.fromOffset(182, 31),
BackgroundColor3 = Color3.fromRGB(13, 98, 144),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Text = "",
AutoButtonColor = false,
ZIndex = 53
}, TabHolder)
Corner(tab, 4)
local label = New("TextLabel", {
Size = UDim2.fromOffset(150, 20),
Position = UDim2.fromOffset(14, 6),
BackgroundTransparency = 1,
Text = name,
TextColor3 = Color3.fromRGB(165, 170, 180),
TextSize = 14,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 54
}, tab)
local page = New("ScrollingFrame", {
Name = name,
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
BorderSizePixel = 0,
ScrollBarThickness = 0,
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.fromOffset(0, 0),
Visible = false,
ZIndex = 53
}, Content)
local left = New("Frame", {
Name = "LeftColumn",
Size = UDim2.new(0.5, -8, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
ZIndex = 53
}, page)
local right = New("Frame", {
Name = "RightColumn",
Size = UDim2.new(0.5, -8, 0, 0),
Position = UDim2.new(0.5, 8, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
ZIndex = 53
}, page)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 13)
}, left)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 13)
}, right)
Pages[name] = page
Tabs[name] = {
Button = tab,
Label = label
}
tab.MouseButton1Click:Connect(function()
SetTab(name)
end)
return page
end
local function MakeSection(page, title, side)
local parent = side == "right" and page.RightColumn or page.LeftColumn
local section = New("Frame", {
Name = title,
Size = UDim2.new(1, 0, 0, 58),
BackgroundColor3 = Theme.Panel,
BorderSizePixel = 0,
ZIndex = 54
}, parent)
Corner(section, 8)
New("TextLabel", {
Size = UDim2.new(1, -20, 0, 38),
Position = UDim2.fromOffset(10, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 16,
Font = Enum.Font.SourceSansBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 55
}, section)
New("Frame", {
Size = UDim2.new(1, -18, 0, 1),
Position = UDim2.fromOffset(9, 39),
BackgroundColor3 = Color3.fromRGB(23, 50, 83),
BackgroundTransparency = 0.45,
BorderSizePixel = 0,
ZIndex = 55
}, section)
local holder = New("Frame", {
Name = "Holder",
Size = UDim2.new(1, -12, 0, 0),
Position = UDim2.fromOffset(6, 48),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
ZIndex = 55
}, section)
local layout = New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 8)
}, holder)
local function Resize()
task.defer(function()
section.Size = UDim2.new(1, 0, 0, layout.AbsoluteContentSize.Y + 58)
end)
end
layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(Resize)
Resize()
return holder
end
local function AddToggle(parent, key, title, callback)
local value = State[key] == true
local row = New("TextButton", {
Name = title,
Size = UDim2.new(1, 0, 0, 26),
BackgroundTransparency = 1,
Text = "",
AutoButtonColor = false,
ZIndex = 56
}, parent)
New("TextLabel", {
Size = UDim2.new(1, -70, 1, 0),
Position = UDim2.fromOffset(8, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 57
}, row)
local frame = New("Frame", {
Size = UDim2.fromOffset(38, 15),
Position = UDim2.new(1, -48, 0.5, -7),
BackgroundColor3 = Theme.PanelDark,
BorderSizePixel = 0,
ZIndex = 57
}, row)
Corner(frame, 50)
local dot = New("Frame", {
Size = UDim2.fromOffset(17, 17),
Position = UDim2.fromOffset(0, -1),
BackgroundColor3 = Theme.Off,
BorderSizePixel = 0,
ZIndex = 58
}, frame)
Corner(dot, 50)
local function Render()
if value then
TweenService:Create(dot, TweenInfo.new(0.18), {
Position = UDim2.fromOffset(20, -1),
BackgroundColor3 = Theme.Accent
}):Play()
else
TweenService:Create(dot, TweenInfo.new(0.18), {
Position = UDim2.fromOffset(0, -1),
BackgroundColor3 = Theme.Off
}):Play()
end
end
local function SetRaw(v)
value = v == true
State[key] = value
Render()
if callback then
callback(value)
end
end
row.MouseButton1Click:Connect(function()
SetRaw(not value)
end)
SetRaw(value)
ToggleControls[key] = {
Set = function(_, v)
SetRaw(v)
end,
Get = function()
return value
end
}
return ToggleControls[key]
end
local function AddSlider(parent, key, title, min, max, default, step, callback)
local value = State[key] or default
step = step or 1
local row = New("Frame", {
Name = title,
Size = UDim2.new(1, 0, 0, 38),
BackgroundTransparency = 1,
ZIndex = 56
}, parent)
New("TextLabel", {
Size = UDim2.new(0, 110, 0, 18),
Position = UDim2.fromOffset(8, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 57
}, row)
local valueBox = New("TextBox", {
Size = UDim2.fromOffset(48, 17),
Position = UDim2.new(1, -54, 0, 1),
BackgroundColor3 = Theme.PanelDark,
BorderSizePixel = 0,
Text = tostring(value),
TextColor3 = Theme.Text,
TextSize = 12,
Font = Enum.Font.Gotham,
ClearTextOnFocus = false,
ZIndex = 57
}, row)
Corner(valueBox, 3)
local bar = New("Frame", {
Size = UDim2.new(1, -145, 0, 2),
Position = UDim2.fromOffset(116, 14),
BackgroundColor3 = Color3.fromRGB(3, 30, 58),
BorderSizePixel = 0,
ZIndex = 57
}, row)
local fill = New("Frame", {
Size = UDim2.fromScale(0, 1),
BackgroundColor3 = Theme.Accent,
BorderSizePixel = 0,
ZIndex = 58
}, bar)
local dot = New("Frame", {
Size = UDim2.fromOffset(17, 17),
BackgroundColor3 = Theme.Accent,
BorderSizePixel = 0,
ZIndex = 59
}, bar)
Corner(dot, 50)
local draggingSlider = false
local function RoundToStep(n)
return math.floor((n / step) + 0.5) * step
end
local function SetRaw(v)
local num = tonumber(v) or min
num = math.clamp(RoundToStep(num), min, max)
value = num
State[key] = value
local pct = (value - min) / (max - min)
fill.Size = UDim2.fromScale(pct, 1)
dot.Position = UDim2.new(pct, -8, 0, -8)
if step < 1 then
valueBox.Text = string.format("%.2f", value)
else
valueBox.Text = tostring(math.floor(value))
end
if callback then
callback(value)
end
end
local function FromX(x)
local pct = math.clamp((x - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1)
SetRaw(min + (max - min) * pct)
end
bar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = true
FromX(input.Position.X)
end
end)
dot.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = true
FromX(input.Position.X)
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = false
end
end)
UIS.InputChanged:Connect(function(input)
if draggingSlider and input.UserInputType == Enum.UserInputType.MouseMovement then
FromX(input.Position.X)
end
end)
valueBox.FocusLost:Connect(function()
SetRaw(valueBox.Text)
end)
SetRaw(value)
SliderControls[key] = {
Set = function(_, v)
SetRaw(v)
end,
Get = function()
return value
end
}
return SliderControls[key]
end
local function AddDropdown(parent, key, title, list, default, callback)
local selected = State[key] or default or list[1]
local row = New("TextButton", {
Name = title,
Size = UDim2.new(1, 0, 0, 31),
BackgroundTransparency = 1,
Text = "",
AutoButtonColor = false,
ZIndex = 80
}, parent)
New("TextLabel", {
Size = UDim2.new(0, 110, 0, 26),
Position = UDim2.fromOffset(8, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 81
}, row)
local box = New("TextButton", {
Size = UDim2.fromOffset(130, 21),
Position = UDim2.new(1, -137, 0, 2),
BackgroundColor3 = Theme.PanelDark,
BorderSizePixel = 0,
Text = selected,
TextColor3 = Theme.Text,
TextSize = 12,
Font = Enum.Font.Gotham,
AutoButtonColor = false,
ZIndex = 81
}, row)
Corner(box, 3)
local drop = New("Frame", {
Size = UDim2.fromOffset(130, 0),
Position = UDim2.new(1, -137, 0, 25),
BackgroundColor3 = Color3.fromRGB(0, 18, 35),
BorderSizePixel = 0,
Visible = false,
ZIndex = 100
}, row)
Corner(drop, 3)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 2)
}, drop)
local opened = false
local function Close()
opened = false
TweenService:Create(drop, TweenInfo.new(0.16), {
Size = UDim2.fromOffset(130, 0)
}):Play()
task.delay(0.17, function()
if not opened then
drop.Visible = false
end
end)
end
local function Open()
opened = true
drop.Visible = true
TweenService:Create(drop, TweenInfo.new(0.16), {
Size = UDim2.fromOffset(130, math.min(#list * 24 + 4, 165))
}):Play()
end
local function SetRaw(v)
selected = v
State[key] = v
box.Text = v
if callback then
callback(v)
end
end
for _, item in ipairs(list) do
local itemButton = New("TextButton", {
Size = UDim2.new(1, 0, 0, 22),
BackgroundTransparency = 1,
Text = " " .. item,
TextColor3 = Theme.Text,
TextSize = 12,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
AutoButtonColor = false,
ZIndex = 101
}, drop)
itemButton.MouseButton1Click:Connect(function()
SetRaw(item)
Close()
end)
end
box.MouseButton1Click:Connect(function()
if opened then
Close()
else
Open()
end
end)
SetRaw(selected)
DropdownControls[key] = {
Set = function(_, v)
SetRaw(v)
end,
Get = function()
return selected
end
}
return DropdownControls[key]
end
local function AddButton(parent, title, callback)
local button = New("TextButton", {
Name = title,
Size = UDim2.new(1, 0, 0, 28),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.45,
BorderSizePixel = 0,
Text = "",
AutoButtonColor = false,
ZIndex = 56
}, parent)
Corner(button, 4)
New("TextLabel", {
Size = UDim2.new(1, -18, 1, 0),
Position = UDim2.fromOffset(9, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 57
}, button)
button.MouseEnter:Connect(function()
TweenService:Create(button, TweenInfo.new(0.18), {
BackgroundTransparency = 0.2
}):Play()
end)
button.MouseLeave:Connect(function()
TweenService:Create(button, TweenInfo.new(0.18), {
BackgroundTransparency = 0.45
}):Play()
end)
button.MouseButton1Click:Connect(function()
if callback then
callback()
end
end)
return button
end
--// Keybind system
local BindModes = {"Toggle", "Hold", "Always"}
local Keybinds = {}
local ListeningBind = nil
local function SetBoundState(stateKey, value)
if ToggleControls[stateKey] then
ToggleControls[stateKey]:Set(value)
else
State[stateKey] = value
end
end
local function GetBoundState(stateKey)
if ToggleControls[stateKey] then
return ToggleControls[stateKey]:Get()
end
return State[stateKey] == true
end
local function KeyToText(key)
if not key or key == Enum.KeyCode.Unknown then
return "None"
end
return key.Name
end
local function AddBindRow(parent, stateKey, title, defaultKey, defaultMode)
local key = Enum.KeyCode[defaultKey] or Enum.KeyCode.Unknown
local mode = defaultMode or "Toggle"
Keybinds[stateKey] = {
Title = title,
Key = key,
Mode = mode
}
local row = New("Frame", {
Name = title,
Size = UDim2.new(1, 0, 0, 32),
BackgroundTransparency = 1,
ZIndex = 56
}, parent)
New("TextLabel", {
Size = UDim2.new(1, -150, 1, 0),
Position = UDim2.fromOffset(8, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 57
}, row)
local keyButton = New("TextButton", {
Size = UDim2.fromOffset(58, 22),
Position = UDim2.new(1, -135, 0.5, -11),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.25,
BorderSizePixel = 0,
Text = KeyToText(key),
TextColor3 = Theme.Text,
TextSize = 12,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
ZIndex = 57
}, row)
Corner(keyButton, 4)
local modeButton = New("TextButton", {
Size = UDim2.fromOffset(68, 22),
Position = UDim2.new(1, -70, 0.5, -11),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.25,
BorderSizePixel = 0,
Text = mode,
TextColor3 = Theme.Accent,
TextSize = 12,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
ZIndex = 57
}, row)
Corner(modeButton, 4)
keyButton.MouseButton1Click:Connect(function()
ListeningBind = stateKey
keyButton.Text = "..."
end)
modeButton.MouseButton1Click:Connect(function()
local currentIndex = table.find(BindModes, Keybinds[stateKey].Mode) or 1
local nextIndex = currentIndex + 1
if nextIndex > #BindModes then
nextIndex = 1
end
local newMode = BindModes[nextIndex]
Keybinds[stateKey].Mode = newMode
modeButton.Text = newMode
if newMode == "Always" then
SetBoundState(stateKey, true)
end
end)
Keybinds[stateKey].UpdateText = function()
keyButton.Text = KeyToText(Keybinds[stateKey].Key)
modeButton.Text = Keybinds[stateKey].Mode
end
end
local function ProcessBindInput(input, began)
if input.UserInputType ~= Enum.UserInputType.Keyboard then
return false
end
if ListeningBind and began then
Keybinds[ListeningBind].Key = input.KeyCode
Keybinds[ListeningBind].UpdateText()
Notify("Bind", Keybinds[ListeningBind].Title .. " = " .. input.KeyCode.Name)
ListeningBind = nil
return true
end
if UIS:GetFocusedTextBox() then
return false
end
for stateKey, bind in pairs(Keybinds) do
if bind.Key == input.KeyCode then
if bind.Mode == "Toggle" and began then
SetBoundState(stateKey, not GetBoundState(stateKey))
return true
end
if bind.Mode == "Hold" then
SetBoundState(stateKey, began)
return true
end
if bind.Mode == "Always" and began then
SetBoundState(stateKey, true)
return true
end
end
end
return false
end
local function ApplyAlwaysBinds()
for stateKey, bind in pairs(Keybinds) do
if bind.Mode == "Always" and not GetBoundState(stateKey) then
SetBoundState(stateKey, true)
end
end
end
--// Pages
local RagePage = MakePage("Rage Bot")
local LegitPage = MakePage("Legit Bot")
local VisualsPage = MakePage("Visuals")
local WorldPage = MakePage("World")
local MovementPage = MakePage("Movement")
local MiscPage = MakePage("Misc")
local ConfigPage = MakePage("Configs")
local BindsPage = MakePage("Binds")
--// Rage Bot page
local RageMain = MakeSection(RagePage, "Rage Bot", "left")
AddToggle(RageMain, "RageBot", "Enabled")
AddDropdown(RageMain, "RageActivation", "Activation", {"Always", "Hold RMB"}, "Always")
AddToggle(RageMain, "RageTeamCheck", "Team Check")
AddToggle(RageMain, "RageWallCheck", "Wall Check")
AddDropdown(RageMain, "RageHitbox", "Hitbox", {"Head", "HumanoidRootPart", "UpperTorso", "Torso"}, "Head")
AddDropdown(RageMain, "RageTargetSelection", "Target By", {"FOV", "Distance", "Health"}, "FOV")
local RageAccuracy = MakeSection(RagePage, "Accuracy", "right")
AddSlider(RageAccuracy, "RageFOV", "FOV", 20, 700, 260, 1)
AddSlider(RageAccuracy, "RageSmooth", "Smooth", 1, 40, 1, 1)
AddSlider(RageAccuracy, "RagePrediction", "Prediction", 0, 1, 0.08, 0.01)
AddSlider(RageAccuracy, "RageMaxDistance", "Max Distance", 100, 5000, 2500, 50)
AddSlider(RageAccuracy, "RageHitchance", "Hitchance %", 1, 100, 100, 1)
local RageFire = MakeSection(RagePage, "Fire Control", "right")
AddToggle(RageFire, "RageAutoFire", "Auto Fire")
AddToggle(RageFire, "RageDoubleTap", "Double Tap")
AddToggle(RageFire, "RageQuickStop", "Quick Stop")
--// Legit Bot page
local LegitMain = MakeSection(LegitPage, "Legit Bot", "left")
AddToggle(LegitMain, "LegitBot", "Enabled")
AddDropdown(LegitMain, "LegitActivation", "Activation", {"Hold RMB", "Always"}, "Hold RMB")
AddToggle(LegitMain, "LegitTeamCheck", "Team Check")
AddToggle(LegitMain, "LegitWallCheck", "Wall Check")
AddDropdown(LegitMain, "LegitHitbox", "Hitbox", {"Head", "HumanoidRootPart", "UpperTorso", "Torso"}, "Head")
local LegitTune = MakeSection(LegitPage, "Fine Tuning", "right")
AddSlider(LegitTune, "LegitFOV", "FOV", 20, 350, 110, 1)
AddSlider(LegitTune, "LegitSmooth", "Smooth", 1, 100, 30, 1)
AddSlider(LegitTune, "LegitPrediction", "Prediction", 0, 0.5, 0.03, 0.01)
AddSlider(LegitTune, "LegitMaxDistance", "Max Distance", 100, 3000, 1500, 50)
local LegitTrigger = MakeSection(LegitPage, "Triggerbot", "left")
AddToggle(LegitTrigger, "LegitTriggerbot", "Enabled")
AddSlider(LegitTrigger, "LegitTriggerDelay", "Delay MS", 0, 600, 120, 5)
--// Visuals page
local ESPMain = MakeSection(VisualsPage, "Player ESP", "left")
AddToggle(ESPMain, "VisualsEnabled", "Enabled")
AddToggle(ESPMain, "TeamCheck", "Team Check")
AddToggle(ESPMain, "BoxESP", "Box")
AddToggle(ESPMain, "CornerBox", "Corner Box")
AddToggle(ESPMain, "NameESP", "Name")
AddToggle(ESPMain, "HealthESP", "Health")
AddToggle(ESPMain, "DistanceESP", "Distance")
AddSlider(ESPMain, "ESPMaxDistance", "Max Distance", 100, 5000, 2500, 50)
local ChamsMain = MakeSection(VisualsPage, "Chams / Glow", "right")
AddToggle(ChamsMain, "Chams", "Chams")
AddToggle(ChamsMain, "Glow", "Glow")
AddToggle(ChamsMain, "ChamsXRay", "X-Ray")
local IndicatorsSec = MakeSection(VisualsPage, "Screen", "right")
AddToggle(IndicatorsSec, "FOVCircles", "FOV Circles")
AddToggle(IndicatorsSec, "Indicators", "Indicators")
AddToggle(IndicatorsSec, "Watermark", "Watermark")
AddToggle(IndicatorsSec, "KeybindList", "Keybind List")
--// World page
local WorldMain = MakeSection(WorldPage, "World", "left")
AddToggle(WorldMain, "Nightmode", "Nightmode")
AddToggle(WorldMain, "Fullbright", "Fullbright")
AddToggle(WorldMain, "RemoveFog", "Remove Fog")
AddDropdown(WorldMain, "SkyColor", "Sky Color", {"Default", "Blue", "Purple", "Red", "Black"}, "Default")
AddSlider(WorldMain, "Brightness", "Brightness", 0, 10, 2, 0.1)
AddSlider(WorldMain, "CameraFOV", "Camera FOV", 50, 120, 70, 1, function(v)
Camera.FieldOfView = v
end)
--// Movement page
local MovementMain = MakeSection(MovementPage, "Movement", "left")
AddToggle(MovementMain, "BunnyHop", "BunnyHop")
AddToggle(MovementMain, "AutoStrafer", "Auto Strafer")
AddDropdown(MovementMain, "AutoStraferMode", "Strafe Mode", {"Legit", "Rage"}, "Legit")
AddToggle(MovementMain, "FastStop", "Fast Stop")
local MovementInfo = MakeSection(MovementPage, "Info", "right")
AddButton(MovementInfo, "How it works", function()
Notify("Movement", "Works only on your character in your game")
end)
--// Misc page
local MiscMain = MakeSection(MiscPage, "Misc", "left")
AddToggle(MiscMain, "Thirdperson", "Thirdperson")
AddSlider(MiscMain, "ThirdpersonDistance", "Thirdperson Distance", 6, 30, 12, 1)
AddToggle(MiscMain, "Hitsounds", "Hitsounds")
AddDropdown(MiscMain, "HitSoundType", "Hit Sound", {"Neverlose", "Skeet", "Bell", "Metal", "Ding", "Click"}, "Neverlose")
local MiscInfo = MakeSection(MiscPage, "Info", "right")
AddButton(MiscInfo, "Test Hitsound", function()
local sound = Instance.new("Sound")
sound.SoundId = HitSounds[State.HitSoundType] or HitSounds.Neverlose
sound.Volume = 0.7
sound.Parent = SoundService
sound:Play()
task.delay(2, function()
if sound then
sound:Destroy()
end
end)
end)
--// Config page
local Presets = MakeSection(ConfigPage, "Presets", "left")
AddButton(Presets, "Rage Preset", function()
ToggleControls.RageBot:Set(true)
ToggleControls.RageAutoFire:Set(true)
ToggleControls.RageDoubleTap:Set(true)
ToggleControls.RageQuickStop:Set(true)
DropdownControls.RageActivation:Set("Always")
DropdownControls.RageTargetSelection:Set("FOV")
SliderControls.RageFOV:Set(360)
SliderControls.RageSmooth:Set(1)
SliderControls.RagePrediction:Set(0.1)
SliderControls.RageHitchance:Set(100)
Notify("Preset", "Rage preset loaded")
end)
AddButton(Presets, "Legit Preset", function()
ToggleControls.LegitBot:Set(true)
ToggleControls.LegitTriggerbot:Set(false)
DropdownControls.LegitActivation:Set("Hold RMB")
SliderControls.LegitFOV:Set(90)
SliderControls.LegitSmooth:Set(45)
SliderControls.LegitPrediction:Set(0.03)
Notify("Preset", "Legit preset loaded")
end)
AddButton(Presets, "Visuals Preset", function()
ToggleControls.VisualsEnabled:Set(true)
ToggleControls.BoxESP:Set(true)
ToggleControls.CornerBox:Set(false)
ToggleControls.NameESP:Set(true)
ToggleControls.HealthESP:Set(true)
ToggleControls.DistanceESP:Set(true)
ToggleControls.Chams:Set(true)
ToggleControls.Glow:Set(true)
Notify("Preset", "Visuals preset loaded")
end)
AddButton(Presets, "Clean Preset", function()
ToggleControls.VisualsEnabled:Set(true)
ToggleControls.BoxESP:Set(false)
ToggleControls.CornerBox:Set(true)
ToggleControls.NameESP:Set(true)
ToggleControls.HealthESP:Set(true)
ToggleControls.DistanceESP:Set(false)
ToggleControls.Chams:Set(false)
ToggleControls.Glow:Set(false)
Notify("Preset", "Clean preset loaded")
end)
local ResetSec = MakeSection(ConfigPage, "Reset", "right")
AddButton(ResetSec, "Reset Aim", function()
ToggleControls.RageBot:Set(false)
ToggleControls.RageAutoFire:Set(false)
ToggleControls.RageDoubleTap:Set(false)
ToggleControls.LegitBot:Set(false)
ToggleControls.LegitTriggerbot:Set(false)
Notify("Reset", "Aim reset")
end)
AddButton(ResetSec, "Reset Visuals", function()
ToggleControls.VisualsEnabled:Set(false)
ToggleControls.BoxESP:Set(false)
ToggleControls.CornerBox:Set(false)
ToggleControls.NameESP:Set(false)
ToggleControls.HealthESP:Set(false)
ToggleControls.DistanceESP:Set(false)
ToggleControls.Chams:Set(false)
ToggleControls.Glow:Set(false)
Notify("Reset", "Visuals reset")
end)
AddButton(ResetSec, "Reset World", function()
ToggleControls.Nightmode:Set(false)
ToggleControls.Fullbright:Set(false)
ToggleControls.RemoveFog:Set(false)
DropdownControls.SkyColor:Set("Default")
SliderControls.CameraFOV:Set(70)
Lighting.Brightness = OldLighting.Brightness
Lighting.ClockTime = OldLighting.ClockTime
Lighting.FogEnd = OldLighting.FogEnd
Lighting.FogStart = OldLighting.FogStart
Lighting.GlobalShadows = OldLighting.GlobalShadows
Lighting.Ambient = OldLighting.Ambient
Lighting.OutdoorAmbient = OldLighting.OutdoorAmbient
Notify("Reset", "World reset")
end)
AddButton(ResetSec, "Unload UI", function()
Gui:Destroy()
end)
--// Binds page
local AimBinds = MakeSection(BindsPage, "Aim Binds", "left")
AddBindRow(AimBinds, "RageBot", "Rage Bot", "F1", "Toggle")
AddBindRow(AimBinds, "RageAutoFire", "Rage Auto Fire", "F2", "Toggle")
AddBindRow(AimBinds, "LegitBot", "Legit Bot", "F3", "Toggle")
AddBindRow(AimBinds, "LegitTriggerbot", "Triggerbot", "F4", "Toggle")
local VisualBinds = MakeSection(BindsPage, "Visual Binds", "left")
AddBindRow(VisualBinds, "VisualsEnabled", "Visuals", "F5", "Toggle")
AddBindRow(VisualBinds, "BoxESP", "Box ESP", "F6", "Toggle")
AddBindRow(VisualBinds, "NameESP", "Name ESP", "F7", "Toggle")
AddBindRow(VisualBinds, "HealthESP", "Health ESP", "F8", "Toggle")
AddBindRow(VisualBinds, "Chams", "Chams", "F9", "Toggle")
AddBindRow(VisualBinds, "Glow", "Glow", "F10", "Toggle")
local MoveBinds = MakeSection(BindsPage, "Movement / Misc", "right")
AddBindRow(MoveBinds, "Thirdperson", "Thirdperson", "V", "Toggle")
AddBindRow(MoveBinds, "BunnyHop", "BunnyHop", "B", "Toggle")
AddBindRow(MoveBinds, "AutoStrafer", "Auto Strafer", "N", "Toggle")
AddBindRow(MoveBinds, "FastStop", "Fast Stop", "X", "Hold")
AddBindRow(MoveBinds, "Hitsounds", "Hitsounds", "H", "Toggle")
AddBindRow(MoveBinds, "Nightmode", "Nightmode", "J", "Toggle")
SetTab("Rage Bot")
--// Overlay
local Overlay = New("Frame", {
Name = "Overlay",
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
ZIndex = 1
}, Gui)
local RageCircle = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(State.RageFOV * 2, State.RageFOV * 2),
BackgroundTransparency = 1,
Visible = true,
ZIndex = 4
}, Overlay)
Corner(RageCircle, 999)
New("UIStroke", {
Color = Theme.Red,
Transparency = 0.45,
Thickness = 1
}, RageCircle)
local LegitCircle = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(State.LegitFOV * 2, State.LegitFOV * 2),
BackgroundTransparency = 1,
Visible = true,
ZIndex = 4
}, Overlay)
Corner(LegitCircle, 999)
New("UIStroke", {
Color = Theme.Accent,
Transparency = 0.35,
Thickness = 1
}, LegitCircle)
--// Dragging
local draggingMenu = false
local dragStart
local startPos
Top.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingMenu = true
dragStart = input.Position
startPos = Main.Position
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingMenu = false
end
end)
UIS.InputChanged:Connect(function(input)
if draggingMenu and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
Main.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
--// Inputs
UIS.InputBegan:Connect(function(input, gp)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
HoldingRMB = true
end
if input.KeyCode == Enum.KeyCode.W then Keys.W = true end
if input.KeyCode == Enum.KeyCode.A then Keys.A = true end
if input.KeyCode == Enum.KeyCode.S then Keys.S = true end
if input.KeyCode == Enum.KeyCode.D then Keys.D = true end
if input.KeyCode == Enum.KeyCode.Space then Keys.Space = true end
if input.KeyCode == MENU_KEY and not UIS:GetFocusedTextBox() then
State.MenuOpen = not State.MenuOpen
Main.Visible = State.MenuOpen
return
end
if ProcessBindInput(input, true) then
return
end
if gp then return end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
HoldingRMB = false
end
if input.KeyCode == Enum.KeyCode.W then Keys.W = false end
if input.KeyCode == Enum.KeyCode.A then Keys.A = false end
if input.KeyCode == Enum.KeyCode.S then Keys.S = false end
if input.KeyCode == Enum.KeyCode.D then Keys.D = false end
if input.KeyCode == Enum.KeyCode.Space then Keys.Space = false end
ProcessBindInput(input, false)
end)
--// ESP
local ESPCache = {}
local function ClearESP(plr)
local data = ESPCache[plr]
if not data then return end
for _, obj in pairs(data.Objects) do
if obj and obj.Destroy then
obj:Destroy()
end
end
ESPCache[plr] = nil
end
local function CreateESP(plr)
if plr == LocalPlayer or ESPCache[plr] then return end
local box = New("Frame", {
BackgroundTransparency = 1,
Visible = false,
ZIndex = 8
}, Overlay)
local boxStroke = New("UIStroke", {
Color = Theme.Accent,
Transparency = 0.05,
Thickness = 1
}, box)
local corners = {}
for i = 1, 8 do
corners[i] = New("Frame", {
BackgroundColor3 = Theme.Accent,
BorderSizePixel = 0,
Visible = false,
ZIndex = 9
}, Overlay)
end
local name = New("TextLabel", {
BackgroundTransparency = 1,
Text = "",
TextColor3 = Theme.Text,
TextStrokeTransparency = 0.1,
TextSize = 13,
Font = Enum.Font.GothamBold,
Visible = false,
ZIndex = 11
}, Overlay)
local bottom = New("TextLabel", {
BackgroundTransparency = 1,
Text = "",
TextColor3 = Theme.Text,
TextStrokeTransparency = 0.1,
TextSize = 12,
Font = Enum.Font.Gotham,
Visible = false,
ZIndex = 11
}, Overlay)
local hpBack = New("Frame", {
BackgroundColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Visible = false,
ZIndex = 8
}, Overlay)
local hpFill = New("Frame", {
BackgroundColor3 = Theme.Green,
BorderSizePixel = 0,
Size = UDim2.fromScale(1, 1),
ZIndex = 9
}, hpBack)
local highlight = New("Highlight", {
Enabled = false,
FillColor = Theme.Accent,
OutlineColor = Color3.fromRGB(230, 245, 255),
FillTransparency = 0.78,
OutlineTransparency = 0.08
}, Gui)
local objects = {box, boxStroke, name, bottom, hpBack, hpFill, highlight}
for _, c in ipairs(corners) do
table.insert(objects, c)
end
ESPCache[plr] = {
Objects = objects,
Box = box,
BoxStroke = boxStroke,
Corners = corners,
Name = name,
Bottom = bottom,
HPBack = hpBack,
HPFill = hpFill,
Highlight = highlight
}
end
local function HideESP(data)
data.Box.Visible = false
data.Name.Visible = false
data.Bottom.Visible = false
data.HPBack.Visible = false
data.Highlight.Enabled = false
for _, c in ipairs(data.Corners) do
c.Visible = false
end
end
local function GetBox2D(char)
local root = char:FindFirstChild("HumanoidRootPart")
local hum = char:FindFirstChildOfClass("Humanoid")
if not root or not hum then
return nil
end
local topWorld = root.Position + Vector3.new(0, 3.2, 0)
local bottomWorld = root.Position - Vector3.new(0, 3.2, 0)
local top, topOn = Camera:WorldToViewportPoint(topWorld)
local bottom, bottomOn = Camera:WorldToViewportPoint(bottomWorld)
if top.Z <= 0 or bottom.Z <= 0 then return nil end
if not topOn and not bottomOn then return nil end
local h = math.abs(bottom.Y - top.Y)
local w = h * 0.45
local x1 = bottom.X - w / 2
local x2 = bottom.X + w / 2
local y1 = top.Y
local y2 = bottom.Y
return x1, y1, x2, y2
end
local function SetCornerBox(corners, x, y, w, h, color)
local len = math.clamp(math.min(w, h) * 0.25, 8, 22)
local thick = 2
local p = {
{x, y, len, thick}, {x, y, thick, len},
{x + w - len, y, len, thick}, {x + w - thick, y, thick, len},
{x, y + h - thick, len, thick}, {x, y + h - len, thick, len},
{x + w - len, y + h - thick, len, thick}, {x + w - thick, y + h - len, thick, len}
}
for i, c in ipairs(corners) do
c.Visible = true
c.Position = UDim2.fromOffset(p[i][1], p[i][2])
c.Size = UDim2.fromOffset(p[i][3], p[i][4])
c.BackgroundColor3 = color
end
end
local function UpdateESP()
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then
CreateESP(plr)
local data = ESPCache[plr]
local char = plr.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChildOfClass("Humanoid")
local myRoot = GetRoot(LocalPlayer)
if not data or not char or not root or not hum or hum.Health <= 0 or not myRoot then
if data then
HideESP(data)
end
continue
end
local distance = (root.Position - myRoot.Position).Magnitude
if not State.VisualsEnabled or not IsEnemyForVisuals(plr) or distance > State.ESPMaxDistance then
HideESP(data)
continue
end
local x1, y1, x2, y2 = GetBox2D(char)
if not x1 then
HideESP(data)
continue
end
local color = Theme.Accent
local w = x2 - x1
local h = y2 - y1
data.Box.Visible = State.BoxESP and not State.CornerBox
data.Box.Position = UDim2.fromOffset(x1, y1)
data.Box.Size = UDim2.fromOffset(w, h)
data.BoxStroke.Color = color
for _, c in ipairs(data.Corners) do
c.Visible = false
end
if State.CornerBox then
SetCornerBox(data.Corners, x1, y1, w, h, color)
end
data.Highlight.Adornee = char
data.Highlight.Enabled = State.Chams or State.Glow
data.Highlight.FillColor = color
data.Highlight.OutlineColor = State.Glow and Theme.Accent or Color3.fromRGB(230, 245, 255)
data.Highlight.FillTransparency = State.Chams and 0.78 or 1
data.Highlight.OutlineTransparency = State.Glow and 0.08 or 1
data.Highlight.DepthMode = State.ChamsXRay and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded
local topParts = {}
local bottomParts = {}
if State.NameESP then
table.insert(topParts, plr.Name)
end
if State.DistanceESP then
table.insert(bottomParts, math.floor(distance) .. " studs")
end
if State.HealthESP then
table.insert(bottomParts, "HP: " .. math.floor(hum.Health))
end
data.Name.Visible = #topParts > 0
data.Name.Text = table.concat(topParts, " | ")
data.Name.Position = UDim2.fromOffset(x1 - 40, y1 - 18)
data.Name.Size = UDim2.fromOffset(w + 80, 16)
data.Bottom.Visible = #bottomParts > 0
data.Bottom.Text = table.concat(bottomParts, " | ")
data.Bottom.Position = UDim2.fromOffset(x1 - 50, y2 + 2)
data.Bottom.Size = UDim2.fromOffset(w + 100, 16)
data.HPBack.Visible = State.HealthESP
data.HPBack.Position = UDim2.fromOffset(x1 - 7, y1)
data.HPBack.Size = UDim2.fromOffset(4, h)
local hp = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
data.HPFill.Size = UDim2.new(1, 0, hp, 0)
data.HPFill.Position = UDim2.new(0, 0, 1 - hp, 0)
data.HPFill.BackgroundColor3 = hp > 0.5 and Theme.Green or Theme.Red
end
end
end
Players.PlayerRemoving:Connect(ClearESP)
--// Aim system
local function GetAimPart(char, hitbox)
local part = char:FindFirstChild(hitbox)
if not part then
part = char:FindFirstChild("Head")
or char:FindFirstChild("HumanoidRootPart")
or char:FindFirstChild("UpperTorso")
or char:FindFirstChild("Torso")
end
return part
end
local function IsVisible(part, targetChar)
local myChar = GetChar(LocalPlayer)
if not myChar then return true end
local origin = Camera.CFrame.Position
local direction = part.Position - origin
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = {myChar}
local result = workspace:Raycast(origin, direction, params)
if not result then
return true
end
return result.Instance:IsDescendantOf(targetChar)
end
local function GetBestAimTarget(mode)
local isRage = mode == "Rage"
local enabled = isRage and State.RageBot or State.LegitBot
if not enabled then return nil end
local activation = isRage and State.RageActivation or State.LegitActivation
if activation == "Hold RMB" and not HoldingRMB then
return nil
end
local teamCheck = isRage and State.RageTeamCheck or State.LegitTeamCheck
local wallCheck = isRage and State.RageWallCheck or State.LegitWallCheck
local hitbox = isRage and State.RageHitbox or State.LegitHitbox
local fov = isRage and State.RageFOV or State.LegitFOV
local maxDistance = isRage and State.RageMaxDistance or State.LegitMaxDistance
local selection = isRage and State.RageTargetSelection or "FOV"
local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local bestPart = nil
local bestPlr = nil
local bestScore = math.huge
for _, plr in ipairs(Players:GetPlayers()) do
if IsEnemyForAim(plr, teamCheck) then
local char = plr.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
local part = char and GetAimPart(char, hitbox)
if hum and hum.Health > 0 and root and part then
local worldDistance = (part.Position - Camera.CFrame.Position).Magnitude
if worldDistance <= maxDistance then
if not wallCheck or IsVisible(part, char) then
local screen, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen and screen.Z > 0 then
local screenDistance = (Vector2.new(screen.X, screen.Y) - center).Magnitude
if screenDistance <= fov then
local score = screenDistance
if selection == "Distance" then
score = worldDistance
elseif selection == "Health" then
score = hum.Health
end
if score < bestScore then
bestScore = score
bestPart = part
bestPlr = plr
end
end
end
end
end
end
end
end
return bestPart, bestPlr
end
local function AimAt(part, smooth, prediction)
if not part then return end
local velocity = part.AssemblyLinearVelocity or Vector3.zero
local targetPos = part.Position + velocity * prediction
local current = Camera.CFrame
local wanted = CFrame.new(current.Position, targetPos)
local alpha = math.clamp(1 / math.max(smooth, 1), 0.01, 1)
Camera.CFrame = current:Lerp(wanted, alpha)
end
local function GetEquippedTool()
local char = GetChar(LocalPlayer)
if not char then return nil end
return char:FindFirstChildOfClass("Tool")
end
local function FireWeapon(doubleTap)
local now = os.clock()
if now - LastFire < 0.06 then
return
end
LastFire = now
local tool = GetEquippedTool()
if not tool then return end
pcall(function()
tool:Activate()
end)
if doubleTap then
task.delay(0.035, function()
local secondTool = GetEquippedTool()
if secondTool then
pcall(function()
secondTool:Activate()
end)
end
end)
end
end
local function ApplyQuickStop()
local root = GetRoot(LocalPlayer)
local hum = GetHumanoid(LocalPlayer)
if not root or not hum then return end
if hum.FloorMaterial == Enum.Material.Air then return end
local v = root.AssemblyLinearVelocity
root.AssemblyLinearVelocity = Vector3.new(v.X * 0.12, v.Y, v.Z * 0.12)
end
local function UpdateAim()
if State.RageBot then
local target = GetBestAimTarget("Rage")
if target then
if State.RageQuickStop then
ApplyQuickStop()
end
AimAt(target, State.RageSmooth, State.RagePrediction)
if State.RageAutoFire then
if math.random(1, 100) <= State.RageHitchance then
FireWeapon(State.RageDoubleTap)
end
end
end
end
if State.LegitBot then
local target = GetBestAimTarget("Legit")
if target then
AimAt(target, State.LegitSmooth, State.LegitPrediction)
end
end
end
local function UpdateTriggerbot()
if not State.LegitTriggerbot then return end
local now = os.clock()
if now - LastTrigger < State.LegitTriggerDelay / 1000 then
return
end
local ray = Camera:ViewportPointToRay(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local myChar = GetChar(LocalPlayer)
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = myChar and {myChar} or {}
local result = workspace:Raycast(ray.Origin, ray.Direction * State.LegitMaxDistance, params)
if not result then return end
local model = result.Instance:FindFirstAncestorOfClass("Model")
if not model then return end
local plr = Players:GetPlayerFromCharacter(model)
if not IsEnemyForAim(plr, State.LegitTeamCheck) then return end
local hum = model:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then return end
LastTrigger = now
FireWeapon(false)
end
--// World
local function ApplyWorld()
Camera.FieldOfView = State.CameraFOV
if State.Nightmode then
Lighting.ClockTime = 0
Lighting.Brightness = 1
Lighting.Ambient = Color3.fromRGB(45, 55, 85)
Lighting.OutdoorAmbient = Color3.fromRGB(25, 30, 50)
else
Lighting.ClockTime = OldLighting.ClockTime
end
if State.Fullbright then
Lighting.Brightness = State.Brightness
Lighting.GlobalShadows = false
Lighting.Ambient = Color3.fromRGB(255, 255, 255)
Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
elseif not State.Nightmode then
Lighting.Brightness = OldLighting.Brightness
Lighting.GlobalShadows = OldLighting.GlobalShadows
Lighting.Ambient = OldLighting.Ambient
Lighting.OutdoorAmbient = OldLighting.OutdoorAmbient
end
if State.RemoveFog then
Lighting.FogEnd = 100000
Lighting.FogStart = 0
else
Lighting.FogEnd = OldLighting.FogEnd
Lighting.FogStart = OldLighting.FogStart
end
if State.SkyColor == "Blue" then
Lighting.Ambient = Color3.fromRGB(50, 90, 160)
elseif State.SkyColor == "Purple" then
Lighting.Ambient = Color3.fromRGB(90, 50, 140)
elseif State.SkyColor == "Red" then
Lighting.Ambient = Color3.fromRGB(120, 45, 45)
elseif State.SkyColor == "Black" then
Lighting.Ambient = Color3.fromRGB(10, 10, 15)
end
end
--// Movement
local function ApplyMovement()
local hum = GetHumanoid(LocalPlayer)
local root = GetRoot(LocalPlayer)
if not hum or not root then return end
if State.BunnyHop and Keys.Space and hum.FloorMaterial ~= Enum.Material.Air then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
if State.AutoStrafer and hum.FloorMaterial == Enum.Material.Air then
local move = Vector3.zero
if State.AutoStraferMode == "Legit" then
if Keys.A then move -= Camera.CFrame.RightVector end
if Keys.D then move += Camera.CFrame.RightVector end
else
local side = math.sin(os.clock() * 10) > 0 and 1 or -1
move = Camera.CFrame.RightVector * side
end
if move.Magnitude > 0 then
hum:Move(move, false)
end
end
if State.FastStop and hum.FloorMaterial ~= Enum.Material.Air then
local moving = Keys.W or Keys.A or Keys.S or Keys.D
if not moving then
local v = root.AssemblyLinearVelocity
root.AssemblyLinearVelocity = Vector3.new(v.X * 0.2, v.Y, v.Z * 0.2)
end
end
end
--// Thirdperson
local function ApplyThirdperson()
if State.Thirdperson then
LocalPlayer.CameraMode = Enum.CameraMode.Classic
LocalPlayer.CameraMinZoomDistance = State.ThirdpersonDistance
LocalPlayer.CameraMaxZoomDistance = State.ThirdpersonDistance
else
LocalPlayer.CameraMode = OldCamera.Mode
LocalPlayer.CameraMinZoomDistance = OldCamera.MinZoom
LocalPlayer.CameraMaxZoomDistance = OldCamera.MaxZoom
end
end
--// Hitsounds
local LastHealth = {}
local LastSound = 0
local function PlayHitSound()
if not State.Hitsounds then return end
if os.clock() - LastSound < 0.08 then
return
end
LastSound = os.clock()
local sound = Instance.new("Sound")
sound.SoundId = HitSounds[State.HitSoundType] or HitSounds.Neverlose
sound.Volume = 0.7
sound.Parent = SoundService
sound:Play()
task.delay(2, function()
if sound then
sound:Destroy()
end
end)
end
local function WatchHumanoid(plr, hum)
if not hum or LastHealth[hum] then return end
LastHealth[hum] = hum.Health
hum.HealthChanged:Connect(function(newHealth)
local old = LastHealth[hum] or newHealth
if plr ~= LocalPlayer and newHealth < old then
PlayHitSound()
end
LastHealth[hum] = newHealth
end)
end
local function WatchPlayer(plr)
plr.CharacterAdded:Connect(function(char)
task.wait(0.3)
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
WatchHumanoid(plr, hum)
end
end)
if plr.Character then
local hum = plr.Character:FindFirstChildOfClass("Humanoid")
if hum then
WatchHumanoid(plr, hum)
end
end
end
for _, plr in ipairs(Players:GetPlayers()) do
WatchPlayer(plr)
end
Players.PlayerAdded:Connect(WatchPlayer)
--// Indicators
local IndicatorFrame = New("Frame", {
Size = UDim2.fromOffset(220, 260),
Position = UDim2.fromOffset(18, 120),
BackgroundTransparency = 1,
ZIndex = 30
}, Gui)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 4)
}, IndicatorFrame)
local KeybindFrame = New("Frame", {
Size = UDim2.fromOffset(240, 260),
Position = UDim2.new(1, -260, 0, 120),
BackgroundTransparency = 1,
ZIndex = 30
}, Gui)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 4)
}, KeybindFrame)
local Watermark = New("TextLabel", {
Size = UDim2.fromOffset(280, 26),
Position = UDim2.fromOffset(18, 18),
BackgroundColor3 = Color3.fromRGB(8, 16, 26),
BackgroundTransparency = 0.1,
BorderSizePixel = 0,
Text = " NEVERBLOX v2 | " .. LocalPlayer.Name,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 31
}, Gui)
Corner(Watermark, 5)
local ActiveIndicators = {}
local ActiveBindLabels = {}
local function MakeSmallLabel(parent, text, color)
local item = New("TextLabel", {
Size = UDim2.fromOffset(220, 22),
BackgroundColor3 = Color3.fromRGB(8, 16, 26),
BackgroundTransparency = 0.12,
BorderSizePixel = 0,
Text = " " .. text,
TextColor3 = color or Theme.Text,
TextSize = 12,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 31
}, parent)
Corner(item, 4)
return item
end
local function UpdateIndicators()
for _, obj in ipairs(ActiveIndicators) do
obj:Destroy()
end
for _, obj in ipairs(ActiveBindLabels) do
obj:Destroy()
end
table.clear(ActiveIndicators)
table.clear(ActiveBindLabels)
Watermark.Visible = State.Watermark
IndicatorFrame.Visible = State.Indicators
KeybindFrame.Visible = State.KeybindList
if State.Indicators then
local items = {}
if State.RageBot then table.insert(items, {"RAGE", Theme.Red}) end
if State.RageAutoFire then table.insert(items, {"AUTOFIRE", Theme.Red}) end
if State.LegitBot then table.insert(items, {"LEGIT", Theme.Accent}) end
if State.LegitTriggerbot then table.insert(items, {"TRIGGER", Theme.Yellow}) end
if State.VisualsEnabled then table.insert(items, {"VISUALS", Theme.Accent}) end
if State.Chams then table.insert(items, {"CHAMS", Theme.Accent}) end
if State.Glow then table.insert(items, {"GLOW", Theme.Accent}) end
if State.BunnyHop then table.insert(items, {"BHOP", Theme.Green}) end
if State.AutoStrafer then table.insert(items, {"STRAFE " .. State.AutoStraferMode, Theme.Green}) end
if State.FastStop then table.insert(items, {"FAST STOP", Theme.Yellow}) end
if State.Thirdperson then table.insert(items, {"THIRDPERSON", Theme.Accent}) end
if State.Nightmode then table.insert(items, {"NIGHTMODE", Theme.Accent}) end
if State.Hitsounds then table.insert(items, {"HITSOUNDS", Theme.Yellow}) end
for _, item in ipairs(items) do
table.insert(ActiveIndicators, MakeSmallLabel(IndicatorFrame, item[1], item[2]))
end
end
if State.KeybindList then
table.insert(ActiveBindLabels, MakeSmallLabel(KeybindFrame, "KEYBINDS", Theme.Accent))
for stateKey, bind in pairs(Keybinds) do
local active = GetBoundState(stateKey)
if bind.Mode == "Always" or active then
local text = bind.Title .. " [" .. KeyToText(bind.Key) .. "] " .. bind.Mode
table.insert(ActiveBindLabels, MakeSmallLabel(KeybindFrame, text, Theme.Text))
end
end
end
end
--// Runtime
local lastSlowUpdate = 0
RunService.RenderStepped:Connect(function()
Camera = workspace.CurrentCamera or Camera
ApplyAlwaysBinds()
RageCircle.Visible = State.FOVCircles and State.RageBot
RageCircle.Size = UDim2.fromOffset(State.RageFOV * 2, State.RageFOV * 2)
LegitCircle.Visible = State.FOVCircles and State.LegitBot
LegitCircle.Size = UDim2.fromOffset(State.LegitFOV * 2, State.LegitFOV * 2)
UpdateAim()
UpdateTriggerbot()
UpdateESP()
ApplyMovement()
ApplyThirdperson()
if os.clock() - lastSlowUpdate > 0.2 then
lastSlowUpdate = os.clock()
ApplyWorld()
UpdateIndicators()
end
end)
PresetButton.MouseButton1Click:Connect(function()
SetTab("Configs")
end)
InfoButton.MouseButton1Click:Connect(function()
Notify("NEVERBLOX", "Menu key: RightShift")
end)
Notify("Welcome", "NEVERBLOX v2 Aim loaded")Enhance your Counter Blox experience with a feature-packed script including Legit Aimbot, Triggerbot, ESP, Visuals, Movement Mods, World Customization, and a complete Config System. Fine-tune every setting with customizable keybinds, prediction, team checks, and advanced aiming controls for a smooth and optimized gameplay experience.
Features:
• Legit Aimbot
• Adjustable FOV
• Smooth Aim
• Prediction System
• Team Check
• Wall Check
• Custom Hitbox Selection
• Distance Limiter
• Triggerbot
• Auto Fire
• Custom Delay
• Activation Key Support
• ESP
• Player Boxes
• Name ESP
• Distance ESP
• Health Bars
• World Visuals
• Lighting Modifications
• World Customization
• Environmental Tweaks
• Movement
• Speed Modifier
• Jump Enhancements
• Movement Utilities
• Misc Utilities
• QoL Features
• Custom Settings
• Config System
• Save Configs
• Load Configs
• Preset Management
• Keybind Manager
• Fast Feature Toggle
• Custom Hotkeys
• Open Source
• GUI Interface
• Performance Optimized
SEO Keywords:
Counter Blox Script, Counter Blox Aimbot, Counter Blox ESP, Counter Blox Triggerbot, Counter Blox Legit Bot, Counter Blox Silent Aim, Counter Blox Cheat, Counter Blox Hack, Counter Blox GUI Script, Counter Blox Roblox Script, Counter Blox Wall Check, Counter Blox Prediction Aimbot, Counter Blox Visuals Script, Counter Blox Movement Script, Counter Blox Config System, Counter Blox Keybind Script, Counter Blox Utility Script, Best Counter Blox Script, Free Counter Blox Script.
No comments yet. Be the first to comment!
1local Players = game:GetService("Players")
2local UIS = game:GetService("UserInputService")
3local RunService = game:GetService("RunService")
4local TweenService = game:GetService("TweenService")
5local Lighting = game:GetService("Lighting")
6local SoundService = game:GetService("SoundService")
7
8local LocalPlayer = Players.LocalPlayer
9local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
10local Camera = workspace.CurrentCamera
11
12local MENU_KEY = Enum.KeyCode.RightShift
13
14local oldGui = PlayerGui:FindFirstChild("NEVERBLOX_V2_CLEAN")
15if oldGui then
16 oldGui:Destroy()
17end
18
19local Theme = {
20 BG = Color3.fromRGB(8, 9, 14),
21 Sidebar = Color3.fromRGB(5, 17, 28),
22 Panel = Color3.fromRGB(0, 24, 48),
23 PanelDark = Color3.fromRGB(3, 9, 18),
24 Accent = Color3.fromRGB(39, 156, 255),
25 Text = Color3.fromRGB(255, 255, 255),
26 Muted = Color3.fromRGB(150, 160, 175),
27 Off = Color3.fromRGB(72, 84, 96),
28 Red = Color3.fromRGB(255, 75, 85),
29 Green = Color3.fromRGB(70, 255, 145),
30 Yellow = Color3.fromRGB(255, 210, 80)
31}
32
33local State = {
34 MenuOpen = true,
35
36 -- Rage Bot
37 RageBot = false,
38 RageActivation = "Always",
39 RageTeamCheck = true,
40 RageWallCheck = false,
41 RageHitbox = "Head",
42 RageTargetSelection = "FOV",
43 RageFOV = 260,
44 RageSmooth = 1,
45 RagePrediction = 0.08,
46 RageMaxDistance = 2500,
47 RageAutoFire = false,
48 RageDoubleTap = false,
49 RageQuickStop = false,
50 RageHitchance = 100,
51
52 -- Legit Bot
53 LegitBot = false,
54 LegitActivation = "Hold RMB",
55 LegitTeamCheck = true,
56 LegitWallCheck = true,
57 LegitHitbox = "Head",
58 LegitFOV = 110,
59 LegitSmooth = 30,
60 LegitPrediction = 0.03,
61 LegitMaxDistance = 1500,
62 LegitTriggerbot = false,
63 LegitTriggerDelay = 120,
64
65 -- Visuals
66 VisualsEnabled = true,
67 TeamCheck = false,
68 BoxESP = true,
69 CornerBox = false,
70 NameESP = true,
71 HealthESP = true,
72 DistanceESP = true,
73 Chams = true,
74 Glow = true,
75 ChamsXRay = true,
76 ESPMaxDistance = 2500,
77 FOVCircles = true,
78
79 -- World
80 Nightmode = false,
81 Fullbright = false,
82 RemoveFog = false,
83 SkyColor = "Default",
84 Brightness = 2,
85 CameraFOV = 70,
86
87 -- Movement
88 BunnyHop = false,
89 AutoStrafer = false,
90 AutoStraferMode = "Legit",
91 FastStop = false,
92
93 -- Misc
94 Thirdperson = false,
95 ThirdpersonDistance = 12,
96 Hitsounds = false,
97 HitSoundType = "Neverlose",
98
99 -- UI
100 Indicators = true,
101 Watermark = true,
102 KeybindList = true
103}
104
105local OldLighting = {
106 Brightness = Lighting.Brightness,
107 ClockTime = Lighting.ClockTime,
108 FogEnd = Lighting.FogEnd,
109 FogStart = Lighting.FogStart,
110 GlobalShadows = Lighting.GlobalShadows,
111 Ambient = Lighting.Ambient,
112 OutdoorAmbient = Lighting.OutdoorAmbient
113}
114
115local OldCamera = {
116 Mode = LocalPlayer.CameraMode,
117 MinZoom = LocalPlayer.CameraMinZoomDistance,
118 MaxZoom = LocalPlayer.CameraMaxZoomDistance
119}
120
121local Keys = {
122 W = false,
123 A = false,
124 S = false,
125 D = false,
126 Space = false
127}
128
129local HoldingRMB = false
130local LastFire = 0
131local LastTrigger = 0
132
133local ToggleControls = {}
134local SliderControls = {}
135local DropdownControls = {}
136
137local HitSounds = {
138 Neverlose = "rbxassetid://6895079853",
139 Skeet = "rbxassetid://10066931761",
140 Bell = "rbxassetid://9118823100",
141 Metal = "rbxassetid://8917041751",
142 Ding = "rbxassetid://6026984224",
143 Click = "rbxassetid://12221967"
144}
145
146local function New(className, props, parent)
147 local obj = Instance.new(className)
148
149 for k, v in pairs(props or {}) do
150 obj[k] = v
151 end
152
153 if parent then
154 obj.Parent = parent
155 end
156
157 return obj
158end
159
160local function Corner(obj, radius)
161 return New("UICorner", {
162 CornerRadius = UDim.new(0, radius or 6)
163 }, obj)
164end
165
166local function GetChar(plr)
167 plr = plr or LocalPlayer
168 return plr.Character
169end
170
171local function GetRoot(plr)
172 local char = GetChar(plr)
173 return char and char:FindFirstChild("HumanoidRootPart")
174end
175
176local function GetHumanoid(plr)
177 local char = GetChar(plr)
178 return char and char:FindFirstChildOfClass("Humanoid")
179end
180
181local function IsEnemyForVisuals(plr)
182 if not plr or plr == LocalPlayer then
183 return false
184 end
185
186 if State.TeamCheck and LocalPlayer.Team and plr.Team and LocalPlayer.Team == plr.Team then
187 return false
188 end
189
190 return true
191end
192
193local function IsEnemyForAim(plr, teamCheck)
194 if not plr or plr == LocalPlayer then
195 return false
196 end
197
198 if teamCheck and LocalPlayer.Team and plr.Team and LocalPlayer.Team == plr.Team then
199 return false
200 end
201
202 return true
203end
204
205--// GUI
206
207local Gui = New("ScreenGui", {
208 Name = "NEVERBLOX_V2_CLEAN",
209 ResetOnSpawn = false,
210 IgnoreGuiInset = true,
211 DisplayOrder = 20,
212 ZIndexBehavior = Enum.ZIndexBehavior.Sibling
213}, PlayerGui)
214
215local Main = New("Frame", {
216 Name = "Main",
217 Size = UDim2.fromOffset(820, 630),
218 Position = UDim2.new(0.5, -410, 0.5, -315),
219 BackgroundColor3 = Theme.BG,
220 BorderSizePixel = 0,
221 ZIndex = 50
222}, Gui)
223Corner(Main, 6)
224
225local Sidebar = New("Frame", {
226 Name = "Sidebar",
227 Size = UDim2.fromOffset(210, 630),
228 BackgroundColor3 = Theme.Sidebar,
229 BorderSizePixel = 0,
230 ZIndex = 51
231}, Main)
232
233New("TextLabel", {
234 Size = UDim2.fromOffset(180, 40),
235 Position = UDim2.fromOffset(18, 16),
236 BackgroundTransparency = 1,
237 Text = "NEVERBLOX",
238 TextColor3 = Theme.Text,
239 TextSize = 28,
240 Font = Enum.Font.FredokaOne,
241 TextXAlignment = Enum.TextXAlignment.Left,
242 ZIndex = 52
243}, Sidebar)
244
245New("TextLabel", {
246 Size = UDim2.fromOffset(170, 18),
247 Position = UDim2.fromOffset(20, 47),
248 BackgroundTransparency = 1,
249 Text = "by Nyrex",
250 TextColor3 = Theme.Accent,
251 TextSize = 12,
252 Font = Enum.Font.GothamBold,
253 TextXAlignment = Enum.TextXAlignment.Left,
254 ZIndex = 52
255}, Sidebar)
256
257local TabHolder = New("Frame", {
258 Size = UDim2.fromOffset(190, 455),
259 Position = UDim2.fromOffset(10, 88),
260 BackgroundTransparency = 1,
261 ZIndex = 52
262}, Sidebar)
263
264New("UIListLayout", {
265 SortOrder = Enum.SortOrder.LayoutOrder,
266 Padding = UDim.new(0, 7)
267}, TabHolder)
268
269local ProfileLine = New("Frame", {
Size = UDim2.new(1, 0, 0, 1),
Position = UDim2.new(0, 0, 1, -68),
BackgroundColor3 = Color3.fromRGB(24, 54, 82),
BackgroundTransparency = 0.45,
BorderSizePixel = 0,
ZIndex = 52
}, Sidebar)
local Avatar = New("ImageLabel", {
Size = UDim2.fromOffset(44, 44),
Position = UDim2.fromOffset(14, 12),
BackgroundTransparency = 1,
Image = "https://www.roblox.com/headshot-thumbnail/image?userId=" .. LocalPlayer.UserId .. "&width=420&height=420&format=png",
ZIndex = 53
}, ProfileLine)
Corner(Avatar, 50)
New("TextLabel", {
Size = UDim2.fromOffset(125, 22),
Position = UDim2.fromOffset(68, 11),
BackgroundTransparency = 1,
Text = LocalPlayer.Name,
TextColor3 = Theme.Text,
TextSize = 14,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 53
}, ProfileLine)
New("TextLabel", {
Size = UDim2.fromOffset(125, 18),
Position = UDim2.fromOffset(68, 34),
BackgroundTransparency = 1,
Text = "RightShift",
TextColor3 = Theme.Accent,
TextSize = 12,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 53
}, ProfileLine)
local Top = New("Frame", {
Size = UDim2.new(1, -210, 0, 70),
Position = UDim2.fromOffset(210, 0),
BackgroundTransparency = 1,
ZIndex = 52
}, Main)
local PageTitle = New("TextLabel", {
Size = UDim2.fromOffset(270, 40),
Position = UDim2.fromOffset(24, 16),
BackgroundTransparency = 1,
Text = "Rage Bot",
TextColor3 = Theme.Text,
TextSize = 22,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 53
}, Top)
local PresetButton = New("TextButton", {
Size = UDim2.fromOffset(95, 34),
Position = UDim2.new(1, -235, 0, 18),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.35,
BorderSizePixel = 0,
Text = "Preset",
TextColor3 = Theme.Text,
TextSize = 14,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
ZIndex = 53
}, Top)
Corner(PresetButton, 4)
local InfoButton = New("TextButton", {
Size = UDim2.fromOffset(95, 34),
Position = UDim2.new(1, -125, 0, 18),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.35,
BorderSizePixel = 0,
Text = "Info",
TextColor3 = Theme.Text,
TextSize = 14,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
ZIndex = 53
}, Top)
Corner(InfoButton, 4)
New("Frame", {
Size = UDim2.new(1, -230, 0, 1),
Position = UDim2.fromOffset(220, 70),
BackgroundColor3 = Color3.fromRGB(40, 50, 65),
BackgroundTransparency = 0.4,
BorderSizePixel = 0,
ZIndex = 52
}, Main)
local Content = New("Frame", {
Size = UDim2.new(1, -230, 1, -86),
Position = UDim2.fromOffset(220, 80),
BackgroundTransparency = 1,
ZIndex = 52
}, Main)
local NotifyHolder = New("Frame", {
Name = "NotifyHolder",
Size = UDim2.fromOffset(320, 700),
Position = UDim2.new(1, -340, 0, 20),
BackgroundTransparency = 1,
ZIndex = 199
}, Gui)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 10),
HorizontalAlignment = Enum.HorizontalAlignment.Right
}, NotifyHolder)
local function Notify(title, text)
local frame = New("Frame", {
Size = UDim2.fromOffset(0, 66),
BackgroundColor3 = Color3.fromRGB(13, 24, 38),
BackgroundTransparency = 0.08,
BorderSizePixel = 0,
ZIndex = 200
}, NotifyHolder)
Corner(frame, 5)
local line = New("Frame", {
Size = UDim2.new(1, 0, 0, 4),
Position = UDim2.new(0, 0, 1, -4),
BackgroundColor3 = Theme.Accent,
BorderSizePixel = 0,
ZIndex = 201
}, frame)
Corner(line, 5)
New("TextLabel", {
Size = UDim2.fromOffset(230, 22),
Position = UDim2.fromOffset(16, 9),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 15,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 201
}, frame)
New("TextLabel", {
Size = UDim2.fromOffset(250, 22),
Position = UDim2.fromOffset(16, 34),
BackgroundTransparency = 1,
Text = text,
TextColor3 = Color3.fromRGB(215, 220, 230),
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 201
}, frame)
TweenService:Create(frame, TweenInfo.new(0.22), {
Size = UDim2.fromOffset(285, 66)
}):Play()
TweenService:Create(line, TweenInfo.new(2.1), {
Size = UDim2.new(0, 0, 0, 4)
}):Play()
task.delay(2.35, function()
if frame then
TweenService:Create(frame, TweenInfo.new(0.22), {
Size = UDim2.fromOffset(0, 66),
BackgroundTransparency = 1
}):Play()
task.wait(0.25)
frame:Destroy()
end
end)
end
local Pages = {}
local Tabs = {}
local function SetTab(name)
for pageName, page in pairs(Pages) do
page.Visible = pageName == name
end
for tabName, data in pairs(Tabs) do
local active = tabName == name
TweenService:Create(data.Button, TweenInfo.new(0.18), {
BackgroundTransparency = active and 0.15 or 1
}):Play()
TweenService:Create(data.Label, TweenInfo.new(0.18), {
TextColor3 = active and Theme.Text or Color3.fromRGB(165, 170, 180)
}):Play()
end
PageTitle.Text = name
end
local function MakePage(name)
local tab = New("TextButton", {
Name = name,
Size = UDim2.fromOffset(182, 31),
BackgroundColor3 = Color3.fromRGB(13, 98, 144),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Text = "",
AutoButtonColor = false,
ZIndex = 53
}, TabHolder)
Corner(tab, 4)
local label = New("TextLabel", {
Size = UDim2.fromOffset(150, 20),
Position = UDim2.fromOffset(14, 6),
BackgroundTransparency = 1,
Text = name,
TextColor3 = Color3.fromRGB(165, 170, 180),
TextSize = 14,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 54
}, tab)
local page = New("ScrollingFrame", {
Name = name,
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
BorderSizePixel = 0,
ScrollBarThickness = 0,
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.fromOffset(0, 0),
Visible = false,
ZIndex = 53
}, Content)
local left = New("Frame", {
Name = "LeftColumn",
Size = UDim2.new(0.5, -8, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
ZIndex = 53
}, page)
local right = New("Frame", {
Name = "RightColumn",
Size = UDim2.new(0.5, -8, 0, 0),
Position = UDim2.new(0.5, 8, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
ZIndex = 53
}, page)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 13)
}, left)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 13)
}, right)
Pages[name] = page
Tabs[name] = {
Button = tab,
Label = label
}
tab.MouseButton1Click:Connect(function()
SetTab(name)
end)
return page
end
local function MakeSection(page, title, side)
local parent = side == "right" and page.RightColumn or page.LeftColumn
local section = New("Frame", {
Name = title,
Size = UDim2.new(1, 0, 0, 58),
BackgroundColor3 = Theme.Panel,
BorderSizePixel = 0,
ZIndex = 54
}, parent)
Corner(section, 8)
New("TextLabel", {
Size = UDim2.new(1, -20, 0, 38),
Position = UDim2.fromOffset(10, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 16,
Font = Enum.Font.SourceSansBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 55
}, section)
New("Frame", {
Size = UDim2.new(1, -18, 0, 1),
Position = UDim2.fromOffset(9, 39),
BackgroundColor3 = Color3.fromRGB(23, 50, 83),
BackgroundTransparency = 0.45,
BorderSizePixel = 0,
ZIndex = 55
}, section)
local holder = New("Frame", {
Name = "Holder",
Size = UDim2.new(1, -12, 0, 0),
Position = UDim2.fromOffset(6, 48),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
ZIndex = 55
}, section)
local layout = New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 8)
}, holder)
local function Resize()
task.defer(function()
section.Size = UDim2.new(1, 0, 0, layout.AbsoluteContentSize.Y + 58)
end)
end
layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(Resize)
Resize()
return holder
end
local function AddToggle(parent, key, title, callback)
local value = State[key] == true
local row = New("TextButton", {
Name = title,
Size = UDim2.new(1, 0, 0, 26),
BackgroundTransparency = 1,
Text = "",
AutoButtonColor = false,
ZIndex = 56
}, parent)
New("TextLabel", {
Size = UDim2.new(1, -70, 1, 0),
Position = UDim2.fromOffset(8, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 57
}, row)
local frame = New("Frame", {
Size = UDim2.fromOffset(38, 15),
Position = UDim2.new(1, -48, 0.5, -7),
BackgroundColor3 = Theme.PanelDark,
BorderSizePixel = 0,
ZIndex = 57
}, row)
Corner(frame, 50)
local dot = New("Frame", {
Size = UDim2.fromOffset(17, 17),
Position = UDim2.fromOffset(0, -1),
BackgroundColor3 = Theme.Off,
BorderSizePixel = 0,
ZIndex = 58
}, frame)
Corner(dot, 50)
local function Render()
if value then
TweenService:Create(dot, TweenInfo.new(0.18), {
Position = UDim2.fromOffset(20, -1),
BackgroundColor3 = Theme.Accent
}):Play()
else
TweenService:Create(dot, TweenInfo.new(0.18), {
Position = UDim2.fromOffset(0, -1),
BackgroundColor3 = Theme.Off
}):Play()
end
end
local function SetRaw(v)
value = v == true
State[key] = value
Render()
if callback then
callback(value)
end
end
row.MouseButton1Click:Connect(function()
SetRaw(not value)
end)
SetRaw(value)
ToggleControls[key] = {
Set = function(_, v)
SetRaw(v)
end,
Get = function()
return value
end
}
return ToggleControls[key]
end
local function AddSlider(parent, key, title, min, max, default, step, callback)
local value = State[key] or default
step = step or 1
local row = New("Frame", {
Name = title,
Size = UDim2.new(1, 0, 0, 38),
BackgroundTransparency = 1,
ZIndex = 56
}, parent)
New("TextLabel", {
Size = UDim2.new(0, 110, 0, 18),
Position = UDim2.fromOffset(8, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 57
}, row)
local valueBox = New("TextBox", {
Size = UDim2.fromOffset(48, 17),
Position = UDim2.new(1, -54, 0, 1),
BackgroundColor3 = Theme.PanelDark,
BorderSizePixel = 0,
Text = tostring(value),
TextColor3 = Theme.Text,
TextSize = 12,
Font = Enum.Font.Gotham,
ClearTextOnFocus = false,
ZIndex = 57
}, row)
Corner(valueBox, 3)
local bar = New("Frame", {
Size = UDim2.new(1, -145, 0, 2),
Position = UDim2.fromOffset(116, 14),
BackgroundColor3 = Color3.fromRGB(3, 30, 58),
BorderSizePixel = 0,
ZIndex = 57
}, row)
local fill = New("Frame", {
Size = UDim2.fromScale(0, 1),
BackgroundColor3 = Theme.Accent,
BorderSizePixel = 0,
ZIndex = 58
}, bar)
local dot = New("Frame", {
Size = UDim2.fromOffset(17, 17),
BackgroundColor3 = Theme.Accent,
BorderSizePixel = 0,
ZIndex = 59
}, bar)
Corner(dot, 50)
local draggingSlider = false
local function RoundToStep(n)
return math.floor((n / step) + 0.5) * step
end
local function SetRaw(v)
local num = tonumber(v) or min
num = math.clamp(RoundToStep(num), min, max)
value = num
State[key] = value
local pct = (value - min) / (max - min)
fill.Size = UDim2.fromScale(pct, 1)
dot.Position = UDim2.new(pct, -8, 0, -8)
if step < 1 then
valueBox.Text = string.format("%.2f", value)
else
valueBox.Text = tostring(math.floor(value))
end
if callback then
callback(value)
end
end
local function FromX(x)
local pct = math.clamp((x - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1)
SetRaw(min + (max - min) * pct)
end
bar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = true
FromX(input.Position.X)
end
end)
dot.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = true
FromX(input.Position.X)
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = false
end
end)
UIS.InputChanged:Connect(function(input)
if draggingSlider and input.UserInputType == Enum.UserInputType.MouseMovement then
FromX(input.Position.X)
end
end)
valueBox.FocusLost:Connect(function()
SetRaw(valueBox.Text)
end)
SetRaw(value)
SliderControls[key] = {
Set = function(_, v)
SetRaw(v)
end,
Get = function()
return value
end
}
return SliderControls[key]
end
local function AddDropdown(parent, key, title, list, default, callback)
local selected = State[key] or default or list[1]
local row = New("TextButton", {
Name = title,
Size = UDim2.new(1, 0, 0, 31),
BackgroundTransparency = 1,
Text = "",
AutoButtonColor = false,
ZIndex = 80
}, parent)
New("TextLabel", {
Size = UDim2.new(0, 110, 0, 26),
Position = UDim2.fromOffset(8, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 81
}, row)
local box = New("TextButton", {
Size = UDim2.fromOffset(130, 21),
Position = UDim2.new(1, -137, 0, 2),
BackgroundColor3 = Theme.PanelDark,
BorderSizePixel = 0,
Text = selected,
TextColor3 = Theme.Text,
TextSize = 12,
Font = Enum.Font.Gotham,
AutoButtonColor = false,
ZIndex = 81
}, row)
Corner(box, 3)
local drop = New("Frame", {
Size = UDim2.fromOffset(130, 0),
Position = UDim2.new(1, -137, 0, 25),
BackgroundColor3 = Color3.fromRGB(0, 18, 35),
BorderSizePixel = 0,
Visible = false,
ZIndex = 100
}, row)
Corner(drop, 3)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 2)
}, drop)
local opened = false
local function Close()
opened = false
TweenService:Create(drop, TweenInfo.new(0.16), {
Size = UDim2.fromOffset(130, 0)
}):Play()
task.delay(0.17, function()
if not opened then
drop.Visible = false
end
end)
end
local function Open()
opened = true
drop.Visible = true
TweenService:Create(drop, TweenInfo.new(0.16), {
Size = UDim2.fromOffset(130, math.min(#list * 24 + 4, 165))
}):Play()
end
local function SetRaw(v)
selected = v
State[key] = v
box.Text = v
if callback then
callback(v)
end
end
for _, item in ipairs(list) do
local itemButton = New("TextButton", {
Size = UDim2.new(1, 0, 0, 22),
BackgroundTransparency = 1,
Text = " " .. item,
TextColor3 = Theme.Text,
TextSize = 12,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
AutoButtonColor = false,
ZIndex = 101
}, drop)
itemButton.MouseButton1Click:Connect(function()
SetRaw(item)
Close()
end)
end
box.MouseButton1Click:Connect(function()
if opened then
Close()
else
Open()
end
end)
SetRaw(selected)
DropdownControls[key] = {
Set = function(_, v)
SetRaw(v)
end,
Get = function()
return selected
end
}
return DropdownControls[key]
end
local function AddButton(parent, title, callback)
local button = New("TextButton", {
Name = title,
Size = UDim2.new(1, 0, 0, 28),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.45,
BorderSizePixel = 0,
Text = "",
AutoButtonColor = false,
ZIndex = 56
}, parent)
Corner(button, 4)
New("TextLabel", {
Size = UDim2.new(1, -18, 1, 0),
Position = UDim2.fromOffset(9, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 57
}, button)
button.MouseEnter:Connect(function()
TweenService:Create(button, TweenInfo.new(0.18), {
BackgroundTransparency = 0.2
}):Play()
end)
button.MouseLeave:Connect(function()
TweenService:Create(button, TweenInfo.new(0.18), {
BackgroundTransparency = 0.45
}):Play()
end)
button.MouseButton1Click:Connect(function()
if callback then
callback()
end
end)
return button
end
--// Keybind system
local BindModes = {"Toggle", "Hold", "Always"}
local Keybinds = {}
local ListeningBind = nil
local function SetBoundState(stateKey, value)
if ToggleControls[stateKey] then
ToggleControls[stateKey]:Set(value)
else
State[stateKey] = value
end
end
local function GetBoundState(stateKey)
if ToggleControls[stateKey] then
return ToggleControls[stateKey]:Get()
end
return State[stateKey] == true
end
local function KeyToText(key)
if not key or key == Enum.KeyCode.Unknown then
return "None"
end
return key.Name
end
local function AddBindRow(parent, stateKey, title, defaultKey, defaultMode)
local key = Enum.KeyCode[defaultKey] or Enum.KeyCode.Unknown
local mode = defaultMode or "Toggle"
Keybinds[stateKey] = {
Title = title,
Key = key,
Mode = mode
}
local row = New("Frame", {
Name = title,
Size = UDim2.new(1, 0, 0, 32),
BackgroundTransparency = 1,
ZIndex = 56
}, parent)
New("TextLabel", {
Size = UDim2.new(1, -150, 1, 0),
Position = UDim2.fromOffset(8, 0),
BackgroundTransparency = 1,
Text = title,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 57
}, row)
local keyButton = New("TextButton", {
Size = UDim2.fromOffset(58, 22),
Position = UDim2.new(1, -135, 0.5, -11),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.25,
BorderSizePixel = 0,
Text = KeyToText(key),
TextColor3 = Theme.Text,
TextSize = 12,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
ZIndex = 57
}, row)
Corner(keyButton, 4)
local modeButton = New("TextButton", {
Size = UDim2.fromOffset(68, 22),
Position = UDim2.new(1, -70, 0.5, -11),
BackgroundColor3 = Theme.PanelDark,
BackgroundTransparency = 0.25,
BorderSizePixel = 0,
Text = mode,
TextColor3 = Theme.Accent,
TextSize = 12,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
ZIndex = 57
}, row)
Corner(modeButton, 4)
keyButton.MouseButton1Click:Connect(function()
ListeningBind = stateKey
keyButton.Text = "..."
end)
modeButton.MouseButton1Click:Connect(function()
local currentIndex = table.find(BindModes, Keybinds[stateKey].Mode) or 1
local nextIndex = currentIndex + 1
if nextIndex > #BindModes then
nextIndex = 1
end
local newMode = BindModes[nextIndex]
Keybinds[stateKey].Mode = newMode
modeButton.Text = newMode
if newMode == "Always" then
SetBoundState(stateKey, true)
end
end)
Keybinds[stateKey].UpdateText = function()
keyButton.Text = KeyToText(Keybinds[stateKey].Key)
modeButton.Text = Keybinds[stateKey].Mode
end
end
local function ProcessBindInput(input, began)
if input.UserInputType ~= Enum.UserInputType.Keyboard then
return false
end
if ListeningBind and began then
Keybinds[ListeningBind].Key = input.KeyCode
Keybinds[ListeningBind].UpdateText()
Notify("Bind", Keybinds[ListeningBind].Title .. " = " .. input.KeyCode.Name)
ListeningBind = nil
return true
end
if UIS:GetFocusedTextBox() then
return false
end
for stateKey, bind in pairs(Keybinds) do
if bind.Key == input.KeyCode then
if bind.Mode == "Toggle" and began then
SetBoundState(stateKey, not GetBoundState(stateKey))
return true
end
if bind.Mode == "Hold" then
SetBoundState(stateKey, began)
return true
end
if bind.Mode == "Always" and began then
SetBoundState(stateKey, true)
return true
end
end
end
return false
end
local function ApplyAlwaysBinds()
for stateKey, bind in pairs(Keybinds) do
if bind.Mode == "Always" and not GetBoundState(stateKey) then
SetBoundState(stateKey, true)
end
end
end
--// Pages
local RagePage = MakePage("Rage Bot")
local LegitPage = MakePage("Legit Bot")
local VisualsPage = MakePage("Visuals")
local WorldPage = MakePage("World")
local MovementPage = MakePage("Movement")
local MiscPage = MakePage("Misc")
local ConfigPage = MakePage("Configs")
local BindsPage = MakePage("Binds")
--// Rage Bot page
local RageMain = MakeSection(RagePage, "Rage Bot", "left")
AddToggle(RageMain, "RageBot", "Enabled")
AddDropdown(RageMain, "RageActivation", "Activation", {"Always", "Hold RMB"}, "Always")
AddToggle(RageMain, "RageTeamCheck", "Team Check")
AddToggle(RageMain, "RageWallCheck", "Wall Check")
AddDropdown(RageMain, "RageHitbox", "Hitbox", {"Head", "HumanoidRootPart", "UpperTorso", "Torso"}, "Head")
AddDropdown(RageMain, "RageTargetSelection", "Target By", {"FOV", "Distance", "Health"}, "FOV")
local RageAccuracy = MakeSection(RagePage, "Accuracy", "right")
AddSlider(RageAccuracy, "RageFOV", "FOV", 20, 700, 260, 1)
AddSlider(RageAccuracy, "RageSmooth", "Smooth", 1, 40, 1, 1)
AddSlider(RageAccuracy, "RagePrediction", "Prediction", 0, 1, 0.08, 0.01)
AddSlider(RageAccuracy, "RageMaxDistance", "Max Distance", 100, 5000, 2500, 50)
AddSlider(RageAccuracy, "RageHitchance", "Hitchance %", 1, 100, 100, 1)
local RageFire = MakeSection(RagePage, "Fire Control", "right")
AddToggle(RageFire, "RageAutoFire", "Auto Fire")
AddToggle(RageFire, "RageDoubleTap", "Double Tap")
AddToggle(RageFire, "RageQuickStop", "Quick Stop")
--// Legit Bot page
local LegitMain = MakeSection(LegitPage, "Legit Bot", "left")
AddToggle(LegitMain, "LegitBot", "Enabled")
AddDropdown(LegitMain, "LegitActivation", "Activation", {"Hold RMB", "Always"}, "Hold RMB")
AddToggle(LegitMain, "LegitTeamCheck", "Team Check")
AddToggle(LegitMain, "LegitWallCheck", "Wall Check")
AddDropdown(LegitMain, "LegitHitbox", "Hitbox", {"Head", "HumanoidRootPart", "UpperTorso", "Torso"}, "Head")
local LegitTune = MakeSection(LegitPage, "Fine Tuning", "right")
AddSlider(LegitTune, "LegitFOV", "FOV", 20, 350, 110, 1)
AddSlider(LegitTune, "LegitSmooth", "Smooth", 1, 100, 30, 1)
AddSlider(LegitTune, "LegitPrediction", "Prediction", 0, 0.5, 0.03, 0.01)
AddSlider(LegitTune, "LegitMaxDistance", "Max Distance", 100, 3000, 1500, 50)
local LegitTrigger = MakeSection(LegitPage, "Triggerbot", "left")
AddToggle(LegitTrigger, "LegitTriggerbot", "Enabled")
AddSlider(LegitTrigger, "LegitTriggerDelay", "Delay MS", 0, 600, 120, 5)
--// Visuals page
local ESPMain = MakeSection(VisualsPage, "Player ESP", "left")
AddToggle(ESPMain, "VisualsEnabled", "Enabled")
AddToggle(ESPMain, "TeamCheck", "Team Check")
AddToggle(ESPMain, "BoxESP", "Box")
AddToggle(ESPMain, "CornerBox", "Corner Box")
AddToggle(ESPMain, "NameESP", "Name")
AddToggle(ESPMain, "HealthESP", "Health")
AddToggle(ESPMain, "DistanceESP", "Distance")
AddSlider(ESPMain, "ESPMaxDistance", "Max Distance", 100, 5000, 2500, 50)
local ChamsMain = MakeSection(VisualsPage, "Chams / Glow", "right")
AddToggle(ChamsMain, "Chams", "Chams")
AddToggle(ChamsMain, "Glow", "Glow")
AddToggle(ChamsMain, "ChamsXRay", "X-Ray")
local IndicatorsSec = MakeSection(VisualsPage, "Screen", "right")
AddToggle(IndicatorsSec, "FOVCircles", "FOV Circles")
AddToggle(IndicatorsSec, "Indicators", "Indicators")
AddToggle(IndicatorsSec, "Watermark", "Watermark")
AddToggle(IndicatorsSec, "KeybindList", "Keybind List")
--// World page
local WorldMain = MakeSection(WorldPage, "World", "left")
AddToggle(WorldMain, "Nightmode", "Nightmode")
AddToggle(WorldMain, "Fullbright", "Fullbright")
AddToggle(WorldMain, "RemoveFog", "Remove Fog")
AddDropdown(WorldMain, "SkyColor", "Sky Color", {"Default", "Blue", "Purple", "Red", "Black"}, "Default")
AddSlider(WorldMain, "Brightness", "Brightness", 0, 10, 2, 0.1)
AddSlider(WorldMain, "CameraFOV", "Camera FOV", 50, 120, 70, 1, function(v)
Camera.FieldOfView = v
end)
--// Movement page
local MovementMain = MakeSection(MovementPage, "Movement", "left")
AddToggle(MovementMain, "BunnyHop", "BunnyHop")
AddToggle(MovementMain, "AutoStrafer", "Auto Strafer")
AddDropdown(MovementMain, "AutoStraferMode", "Strafe Mode", {"Legit", "Rage"}, "Legit")
AddToggle(MovementMain, "FastStop", "Fast Stop")
local MovementInfo = MakeSection(MovementPage, "Info", "right")
AddButton(MovementInfo, "How it works", function()
Notify("Movement", "Works only on your character in your game")
end)
--// Misc page
local MiscMain = MakeSection(MiscPage, "Misc", "left")
AddToggle(MiscMain, "Thirdperson", "Thirdperson")
AddSlider(MiscMain, "ThirdpersonDistance", "Thirdperson Distance", 6, 30, 12, 1)
AddToggle(MiscMain, "Hitsounds", "Hitsounds")
AddDropdown(MiscMain, "HitSoundType", "Hit Sound", {"Neverlose", "Skeet", "Bell", "Metal", "Ding", "Click"}, "Neverlose")
local MiscInfo = MakeSection(MiscPage, "Info", "right")
AddButton(MiscInfo, "Test Hitsound", function()
local sound = Instance.new("Sound")
sound.SoundId = HitSounds[State.HitSoundType] or HitSounds.Neverlose
sound.Volume = 0.7
sound.Parent = SoundService
sound:Play()
task.delay(2, function()
if sound then
sound:Destroy()
end
end)
end)
--// Config page
local Presets = MakeSection(ConfigPage, "Presets", "left")
AddButton(Presets, "Rage Preset", function()
ToggleControls.RageBot:Set(true)
ToggleControls.RageAutoFire:Set(true)
ToggleControls.RageDoubleTap:Set(true)
ToggleControls.RageQuickStop:Set(true)
DropdownControls.RageActivation:Set("Always")
DropdownControls.RageTargetSelection:Set("FOV")
SliderControls.RageFOV:Set(360)
SliderControls.RageSmooth:Set(1)
SliderControls.RagePrediction:Set(0.1)
SliderControls.RageHitchance:Set(100)
Notify("Preset", "Rage preset loaded")
end)
AddButton(Presets, "Legit Preset", function()
ToggleControls.LegitBot:Set(true)
ToggleControls.LegitTriggerbot:Set(false)
DropdownControls.LegitActivation:Set("Hold RMB")
SliderControls.LegitFOV:Set(90)
SliderControls.LegitSmooth:Set(45)
SliderControls.LegitPrediction:Set(0.03)
Notify("Preset", "Legit preset loaded")
end)
AddButton(Presets, "Visuals Preset", function()
ToggleControls.VisualsEnabled:Set(true)
ToggleControls.BoxESP:Set(true)
ToggleControls.CornerBox:Set(false)
ToggleControls.NameESP:Set(true)
ToggleControls.HealthESP:Set(true)
ToggleControls.DistanceESP:Set(true)
ToggleControls.Chams:Set(true)
ToggleControls.Glow:Set(true)
Notify("Preset", "Visuals preset loaded")
end)
AddButton(Presets, "Clean Preset", function()
ToggleControls.VisualsEnabled:Set(true)
ToggleControls.BoxESP:Set(false)
ToggleControls.CornerBox:Set(true)
ToggleControls.NameESP:Set(true)
ToggleControls.HealthESP:Set(true)
ToggleControls.DistanceESP:Set(false)
ToggleControls.Chams:Set(false)
ToggleControls.Glow:Set(false)
Notify("Preset", "Clean preset loaded")
end)
local ResetSec = MakeSection(ConfigPage, "Reset", "right")
AddButton(ResetSec, "Reset Aim", function()
ToggleControls.RageBot:Set(false)
ToggleControls.RageAutoFire:Set(false)
ToggleControls.RageDoubleTap:Set(false)
ToggleControls.LegitBot:Set(false)
ToggleControls.LegitTriggerbot:Set(false)
Notify("Reset", "Aim reset")
end)
AddButton(ResetSec, "Reset Visuals", function()
ToggleControls.VisualsEnabled:Set(false)
ToggleControls.BoxESP:Set(false)
ToggleControls.CornerBox:Set(false)
ToggleControls.NameESP:Set(false)
ToggleControls.HealthESP:Set(false)
ToggleControls.DistanceESP:Set(false)
ToggleControls.Chams:Set(false)
ToggleControls.Glow:Set(false)
Notify("Reset", "Visuals reset")
end)
AddButton(ResetSec, "Reset World", function()
ToggleControls.Nightmode:Set(false)
ToggleControls.Fullbright:Set(false)
ToggleControls.RemoveFog:Set(false)
DropdownControls.SkyColor:Set("Default")
SliderControls.CameraFOV:Set(70)
Lighting.Brightness = OldLighting.Brightness
Lighting.ClockTime = OldLighting.ClockTime
Lighting.FogEnd = OldLighting.FogEnd
Lighting.FogStart = OldLighting.FogStart
Lighting.GlobalShadows = OldLighting.GlobalShadows
Lighting.Ambient = OldLighting.Ambient
Lighting.OutdoorAmbient = OldLighting.OutdoorAmbient
Notify("Reset", "World reset")
end)
AddButton(ResetSec, "Unload UI", function()
Gui:Destroy()
end)
--// Binds page
local AimBinds = MakeSection(BindsPage, "Aim Binds", "left")
AddBindRow(AimBinds, "RageBot", "Rage Bot", "F1", "Toggle")
AddBindRow(AimBinds, "RageAutoFire", "Rage Auto Fire", "F2", "Toggle")
AddBindRow(AimBinds, "LegitBot", "Legit Bot", "F3", "Toggle")
AddBindRow(AimBinds, "LegitTriggerbot", "Triggerbot", "F4", "Toggle")
local VisualBinds = MakeSection(BindsPage, "Visual Binds", "left")
AddBindRow(VisualBinds, "VisualsEnabled", "Visuals", "F5", "Toggle")
AddBindRow(VisualBinds, "BoxESP", "Box ESP", "F6", "Toggle")
AddBindRow(VisualBinds, "NameESP", "Name ESP", "F7", "Toggle")
AddBindRow(VisualBinds, "HealthESP", "Health ESP", "F8", "Toggle")
AddBindRow(VisualBinds, "Chams", "Chams", "F9", "Toggle")
AddBindRow(VisualBinds, "Glow", "Glow", "F10", "Toggle")
local MoveBinds = MakeSection(BindsPage, "Movement / Misc", "right")
AddBindRow(MoveBinds, "Thirdperson", "Thirdperson", "V", "Toggle")
AddBindRow(MoveBinds, "BunnyHop", "BunnyHop", "B", "Toggle")
AddBindRow(MoveBinds, "AutoStrafer", "Auto Strafer", "N", "Toggle")
AddBindRow(MoveBinds, "FastStop", "Fast Stop", "X", "Hold")
AddBindRow(MoveBinds, "Hitsounds", "Hitsounds", "H", "Toggle")
AddBindRow(MoveBinds, "Nightmode", "Nightmode", "J", "Toggle")
SetTab("Rage Bot")
--// Overlay
local Overlay = New("Frame", {
Name = "Overlay",
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
ZIndex = 1
}, Gui)
local RageCircle = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(State.RageFOV * 2, State.RageFOV * 2),
BackgroundTransparency = 1,
Visible = true,
ZIndex = 4
}, Overlay)
Corner(RageCircle, 999)
New("UIStroke", {
Color = Theme.Red,
Transparency = 0.45,
Thickness = 1
}, RageCircle)
local LegitCircle = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(State.LegitFOV * 2, State.LegitFOV * 2),
BackgroundTransparency = 1,
Visible = true,
ZIndex = 4
}, Overlay)
Corner(LegitCircle, 999)
New("UIStroke", {
Color = Theme.Accent,
Transparency = 0.35,
Thickness = 1
}, LegitCircle)
--// Dragging
local draggingMenu = false
local dragStart
local startPos
Top.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingMenu = true
dragStart = input.Position
startPos = Main.Position
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingMenu = false
end
end)
UIS.InputChanged:Connect(function(input)
if draggingMenu and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
Main.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
--// Inputs
UIS.InputBegan:Connect(function(input, gp)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
HoldingRMB = true
end
if input.KeyCode == Enum.KeyCode.W then Keys.W = true end
if input.KeyCode == Enum.KeyCode.A then Keys.A = true end
if input.KeyCode == Enum.KeyCode.S then Keys.S = true end
if input.KeyCode == Enum.KeyCode.D then Keys.D = true end
if input.KeyCode == Enum.KeyCode.Space then Keys.Space = true end
if input.KeyCode == MENU_KEY and not UIS:GetFocusedTextBox() then
State.MenuOpen = not State.MenuOpen
Main.Visible = State.MenuOpen
return
end
if ProcessBindInput(input, true) then
return
end
if gp then return end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
HoldingRMB = false
end
if input.KeyCode == Enum.KeyCode.W then Keys.W = false end
if input.KeyCode == Enum.KeyCode.A then Keys.A = false end
if input.KeyCode == Enum.KeyCode.S then Keys.S = false end
if input.KeyCode == Enum.KeyCode.D then Keys.D = false end
if input.KeyCode == Enum.KeyCode.Space then Keys.Space = false end
ProcessBindInput(input, false)
end)
--// ESP
local ESPCache = {}
local function ClearESP(plr)
local data = ESPCache[plr]
if not data then return end
for _, obj in pairs(data.Objects) do
if obj and obj.Destroy then
obj:Destroy()
end
end
ESPCache[plr] = nil
end
local function CreateESP(plr)
if plr == LocalPlayer or ESPCache[plr] then return end
local box = New("Frame", {
BackgroundTransparency = 1,
Visible = false,
ZIndex = 8
}, Overlay)
local boxStroke = New("UIStroke", {
Color = Theme.Accent,
Transparency = 0.05,
Thickness = 1
}, box)
local corners = {}
for i = 1, 8 do
corners[i] = New("Frame", {
BackgroundColor3 = Theme.Accent,
BorderSizePixel = 0,
Visible = false,
ZIndex = 9
}, Overlay)
end
local name = New("TextLabel", {
BackgroundTransparency = 1,
Text = "",
TextColor3 = Theme.Text,
TextStrokeTransparency = 0.1,
TextSize = 13,
Font = Enum.Font.GothamBold,
Visible = false,
ZIndex = 11
}, Overlay)
local bottom = New("TextLabel", {
BackgroundTransparency = 1,
Text = "",
TextColor3 = Theme.Text,
TextStrokeTransparency = 0.1,
TextSize = 12,
Font = Enum.Font.Gotham,
Visible = false,
ZIndex = 11
}, Overlay)
local hpBack = New("Frame", {
BackgroundColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Visible = false,
ZIndex = 8
}, Overlay)
local hpFill = New("Frame", {
BackgroundColor3 = Theme.Green,
BorderSizePixel = 0,
Size = UDim2.fromScale(1, 1),
ZIndex = 9
}, hpBack)
local highlight = New("Highlight", {
Enabled = false,
FillColor = Theme.Accent,
OutlineColor = Color3.fromRGB(230, 245, 255),
FillTransparency = 0.78,
OutlineTransparency = 0.08
}, Gui)
local objects = {box, boxStroke, name, bottom, hpBack, hpFill, highlight}
for _, c in ipairs(corners) do
table.insert(objects, c)
end
ESPCache[plr] = {
Objects = objects,
Box = box,
BoxStroke = boxStroke,
Corners = corners,
Name = name,
Bottom = bottom,
HPBack = hpBack,
HPFill = hpFill,
Highlight = highlight
}
end
local function HideESP(data)
data.Box.Visible = false
data.Name.Visible = false
data.Bottom.Visible = false
data.HPBack.Visible = false
data.Highlight.Enabled = false
for _, c in ipairs(data.Corners) do
c.Visible = false
end
end
local function GetBox2D(char)
local root = char:FindFirstChild("HumanoidRootPart")
local hum = char:FindFirstChildOfClass("Humanoid")
if not root or not hum then
return nil
end
local topWorld = root.Position + Vector3.new(0, 3.2, 0)
local bottomWorld = root.Position - Vector3.new(0, 3.2, 0)
local top, topOn = Camera:WorldToViewportPoint(topWorld)
local bottom, bottomOn = Camera:WorldToViewportPoint(bottomWorld)
if top.Z <= 0 or bottom.Z <= 0 then return nil end
if not topOn and not bottomOn then return nil end
local h = math.abs(bottom.Y - top.Y)
local w = h * 0.45
local x1 = bottom.X - w / 2
local x2 = bottom.X + w / 2
local y1 = top.Y
local y2 = bottom.Y
return x1, y1, x2, y2
end
local function SetCornerBox(corners, x, y, w, h, color)
local len = math.clamp(math.min(w, h) * 0.25, 8, 22)
local thick = 2
local p = {
{x, y, len, thick}, {x, y, thick, len},
{x + w - len, y, len, thick}, {x + w - thick, y, thick, len},
{x, y + h - thick, len, thick}, {x, y + h - len, thick, len},
{x + w - len, y + h - thick, len, thick}, {x + w - thick, y + h - len, thick, len}
}
for i, c in ipairs(corners) do
c.Visible = true
c.Position = UDim2.fromOffset(p[i][1], p[i][2])
c.Size = UDim2.fromOffset(p[i][3], p[i][4])
c.BackgroundColor3 = color
end
end
local function UpdateESP()
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then
CreateESP(plr)
local data = ESPCache[plr]
local char = plr.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChildOfClass("Humanoid")
local myRoot = GetRoot(LocalPlayer)
if not data or not char or not root or not hum or hum.Health <= 0 or not myRoot then
if data then
HideESP(data)
end
continue
end
local distance = (root.Position - myRoot.Position).Magnitude
if not State.VisualsEnabled or not IsEnemyForVisuals(plr) or distance > State.ESPMaxDistance then
HideESP(data)
continue
end
local x1, y1, x2, y2 = GetBox2D(char)
if not x1 then
HideESP(data)
continue
end
local color = Theme.Accent
local w = x2 - x1
local h = y2 - y1
data.Box.Visible = State.BoxESP and not State.CornerBox
data.Box.Position = UDim2.fromOffset(x1, y1)
data.Box.Size = UDim2.fromOffset(w, h)
data.BoxStroke.Color = color
for _, c in ipairs(data.Corners) do
c.Visible = false
end
if State.CornerBox then
SetCornerBox(data.Corners, x1, y1, w, h, color)
end
data.Highlight.Adornee = char
data.Highlight.Enabled = State.Chams or State.Glow
data.Highlight.FillColor = color
data.Highlight.OutlineColor = State.Glow and Theme.Accent or Color3.fromRGB(230, 245, 255)
data.Highlight.FillTransparency = State.Chams and 0.78 or 1
data.Highlight.OutlineTransparency = State.Glow and 0.08 or 1
data.Highlight.DepthMode = State.ChamsXRay and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded
local topParts = {}
local bottomParts = {}
if State.NameESP then
table.insert(topParts, plr.Name)
end
if State.DistanceESP then
table.insert(bottomParts, math.floor(distance) .. " studs")
end
if State.HealthESP then
table.insert(bottomParts, "HP: " .. math.floor(hum.Health))
end
data.Name.Visible = #topParts > 0
data.Name.Text = table.concat(topParts, " | ")
data.Name.Position = UDim2.fromOffset(x1 - 40, y1 - 18)
data.Name.Size = UDim2.fromOffset(w + 80, 16)
data.Bottom.Visible = #bottomParts > 0
data.Bottom.Text = table.concat(bottomParts, " | ")
data.Bottom.Position = UDim2.fromOffset(x1 - 50, y2 + 2)
data.Bottom.Size = UDim2.fromOffset(w + 100, 16)
data.HPBack.Visible = State.HealthESP
data.HPBack.Position = UDim2.fromOffset(x1 - 7, y1)
data.HPBack.Size = UDim2.fromOffset(4, h)
local hp = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
data.HPFill.Size = UDim2.new(1, 0, hp, 0)
data.HPFill.Position = UDim2.new(0, 0, 1 - hp, 0)
data.HPFill.BackgroundColor3 = hp > 0.5 and Theme.Green or Theme.Red
end
end
end
Players.PlayerRemoving:Connect(ClearESP)
--// Aim system
local function GetAimPart(char, hitbox)
local part = char:FindFirstChild(hitbox)
if not part then
part = char:FindFirstChild("Head")
or char:FindFirstChild("HumanoidRootPart")
or char:FindFirstChild("UpperTorso")
or char:FindFirstChild("Torso")
end
return part
end
local function IsVisible(part, targetChar)
local myChar = GetChar(LocalPlayer)
if not myChar then return true end
local origin = Camera.CFrame.Position
local direction = part.Position - origin
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = {myChar}
local result = workspace:Raycast(origin, direction, params)
if not result then
return true
end
return result.Instance:IsDescendantOf(targetChar)
end
local function GetBestAimTarget(mode)
local isRage = mode == "Rage"
local enabled = isRage and State.RageBot or State.LegitBot
if not enabled then return nil end
local activation = isRage and State.RageActivation or State.LegitActivation
if activation == "Hold RMB" and not HoldingRMB then
return nil
end
local teamCheck = isRage and State.RageTeamCheck or State.LegitTeamCheck
local wallCheck = isRage and State.RageWallCheck or State.LegitWallCheck
local hitbox = isRage and State.RageHitbox or State.LegitHitbox
local fov = isRage and State.RageFOV or State.LegitFOV
local maxDistance = isRage and State.RageMaxDistance or State.LegitMaxDistance
local selection = isRage and State.RageTargetSelection or "FOV"
local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local bestPart = nil
local bestPlr = nil
local bestScore = math.huge
for _, plr in ipairs(Players:GetPlayers()) do
if IsEnemyForAim(plr, teamCheck) then
local char = plr.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
local part = char and GetAimPart(char, hitbox)
if hum and hum.Health > 0 and root and part then
local worldDistance = (part.Position - Camera.CFrame.Position).Magnitude
if worldDistance <= maxDistance then
if not wallCheck or IsVisible(part, char) then
local screen, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen and screen.Z > 0 then
local screenDistance = (Vector2.new(screen.X, screen.Y) - center).Magnitude
if screenDistance <= fov then
local score = screenDistance
if selection == "Distance" then
score = worldDistance
elseif selection == "Health" then
score = hum.Health
end
if score < bestScore then
bestScore = score
bestPart = part
bestPlr = plr
end
end
end
end
end
end
end
end
return bestPart, bestPlr
end
local function AimAt(part, smooth, prediction)
if not part then return end
local velocity = part.AssemblyLinearVelocity or Vector3.zero
local targetPos = part.Position + velocity * prediction
local current = Camera.CFrame
local wanted = CFrame.new(current.Position, targetPos)
local alpha = math.clamp(1 / math.max(smooth, 1), 0.01, 1)
Camera.CFrame = current:Lerp(wanted, alpha)
end
local function GetEquippedTool()
local char = GetChar(LocalPlayer)
if not char then return nil end
return char:FindFirstChildOfClass("Tool")
end
local function FireWeapon(doubleTap)
local now = os.clock()
if now - LastFire < 0.06 then
return
end
LastFire = now
local tool = GetEquippedTool()
if not tool then return end
pcall(function()
tool:Activate()
end)
if doubleTap then
task.delay(0.035, function()
local secondTool = GetEquippedTool()
if secondTool then
pcall(function()
secondTool:Activate()
end)
end
end)
end
end
local function ApplyQuickStop()
local root = GetRoot(LocalPlayer)
local hum = GetHumanoid(LocalPlayer)
if not root or not hum then return end
if hum.FloorMaterial == Enum.Material.Air then return end
local v = root.AssemblyLinearVelocity
root.AssemblyLinearVelocity = Vector3.new(v.X * 0.12, v.Y, v.Z * 0.12)
end
local function UpdateAim()
if State.RageBot then
local target = GetBestAimTarget("Rage")
if target then
if State.RageQuickStop then
ApplyQuickStop()
end
AimAt(target, State.RageSmooth, State.RagePrediction)
if State.RageAutoFire then
if math.random(1, 100) <= State.RageHitchance then
FireWeapon(State.RageDoubleTap)
end
end
end
end
if State.LegitBot then
local target = GetBestAimTarget("Legit")
if target then
AimAt(target, State.LegitSmooth, State.LegitPrediction)
end
end
end
local function UpdateTriggerbot()
if not State.LegitTriggerbot then return end
local now = os.clock()
if now - LastTrigger < State.LegitTriggerDelay / 1000 then
return
end
local ray = Camera:ViewportPointToRay(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local myChar = GetChar(LocalPlayer)
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = myChar and {myChar} or {}
local result = workspace:Raycast(ray.Origin, ray.Direction * State.LegitMaxDistance, params)
if not result then return end
local model = result.Instance:FindFirstAncestorOfClass("Model")
if not model then return end
local plr = Players:GetPlayerFromCharacter(model)
if not IsEnemyForAim(plr, State.LegitTeamCheck) then return end
local hum = model:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then return end
LastTrigger = now
FireWeapon(false)
end
--// World
local function ApplyWorld()
Camera.FieldOfView = State.CameraFOV
if State.Nightmode then
Lighting.ClockTime = 0
Lighting.Brightness = 1
Lighting.Ambient = Color3.fromRGB(45, 55, 85)
Lighting.OutdoorAmbient = Color3.fromRGB(25, 30, 50)
else
Lighting.ClockTime = OldLighting.ClockTime
end
if State.Fullbright then
Lighting.Brightness = State.Brightness
Lighting.GlobalShadows = false
Lighting.Ambient = Color3.fromRGB(255, 255, 255)
Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
elseif not State.Nightmode then
Lighting.Brightness = OldLighting.Brightness
Lighting.GlobalShadows = OldLighting.GlobalShadows
Lighting.Ambient = OldLighting.Ambient
Lighting.OutdoorAmbient = OldLighting.OutdoorAmbient
end
if State.RemoveFog then
Lighting.FogEnd = 100000
Lighting.FogStart = 0
else
Lighting.FogEnd = OldLighting.FogEnd
Lighting.FogStart = OldLighting.FogStart
end
if State.SkyColor == "Blue" then
Lighting.Ambient = Color3.fromRGB(50, 90, 160)
elseif State.SkyColor == "Purple" then
Lighting.Ambient = Color3.fromRGB(90, 50, 140)
elseif State.SkyColor == "Red" then
Lighting.Ambient = Color3.fromRGB(120, 45, 45)
elseif State.SkyColor == "Black" then
Lighting.Ambient = Color3.fromRGB(10, 10, 15)
end
end
--// Movement
local function ApplyMovement()
local hum = GetHumanoid(LocalPlayer)
local root = GetRoot(LocalPlayer)
if not hum or not root then return end
if State.BunnyHop and Keys.Space and hum.FloorMaterial ~= Enum.Material.Air then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
if State.AutoStrafer and hum.FloorMaterial == Enum.Material.Air then
local move = Vector3.zero
if State.AutoStraferMode == "Legit" then
if Keys.A then move -= Camera.CFrame.RightVector end
if Keys.D then move += Camera.CFrame.RightVector end
else
local side = math.sin(os.clock() * 10) > 0 and 1 or -1
move = Camera.CFrame.RightVector * side
end
if move.Magnitude > 0 then
hum:Move(move, false)
end
end
if State.FastStop and hum.FloorMaterial ~= Enum.Material.Air then
local moving = Keys.W or Keys.A or Keys.S or Keys.D
if not moving then
local v = root.AssemblyLinearVelocity
root.AssemblyLinearVelocity = Vector3.new(v.X * 0.2, v.Y, v.Z * 0.2)
end
end
end
--// Thirdperson
local function ApplyThirdperson()
if State.Thirdperson then
LocalPlayer.CameraMode = Enum.CameraMode.Classic
LocalPlayer.CameraMinZoomDistance = State.ThirdpersonDistance
LocalPlayer.CameraMaxZoomDistance = State.ThirdpersonDistance
else
LocalPlayer.CameraMode = OldCamera.Mode
LocalPlayer.CameraMinZoomDistance = OldCamera.MinZoom
LocalPlayer.CameraMaxZoomDistance = OldCamera.MaxZoom
end
end
--// Hitsounds
local LastHealth = {}
local LastSound = 0
local function PlayHitSound()
if not State.Hitsounds then return end
if os.clock() - LastSound < 0.08 then
return
end
LastSound = os.clock()
local sound = Instance.new("Sound")
sound.SoundId = HitSounds[State.HitSoundType] or HitSounds.Neverlose
sound.Volume = 0.7
sound.Parent = SoundService
sound:Play()
task.delay(2, function()
if sound then
sound:Destroy()
end
end)
end
local function WatchHumanoid(plr, hum)
if not hum or LastHealth[hum] then return end
LastHealth[hum] = hum.Health
hum.HealthChanged:Connect(function(newHealth)
local old = LastHealth[hum] or newHealth
if plr ~= LocalPlayer and newHealth < old then
PlayHitSound()
end
LastHealth[hum] = newHealth
end)
end
local function WatchPlayer(plr)
plr.CharacterAdded:Connect(function(char)
task.wait(0.3)
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
WatchHumanoid(plr, hum)
end
end)
if plr.Character then
local hum = plr.Character:FindFirstChildOfClass("Humanoid")
if hum then
WatchHumanoid(plr, hum)
end
end
end
for _, plr in ipairs(Players:GetPlayers()) do
WatchPlayer(plr)
end
Players.PlayerAdded:Connect(WatchPlayer)
--// Indicators
local IndicatorFrame = New("Frame", {
Size = UDim2.fromOffset(220, 260),
Position = UDim2.fromOffset(18, 120),
BackgroundTransparency = 1,
ZIndex = 30
}, Gui)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 4)
}, IndicatorFrame)
local KeybindFrame = New("Frame", {
Size = UDim2.fromOffset(240, 260),
Position = UDim2.new(1, -260, 0, 120),
BackgroundTransparency = 1,
ZIndex = 30
}, Gui)
New("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 4)
}, KeybindFrame)
local Watermark = New("TextLabel", {
Size = UDim2.fromOffset(280, 26),
Position = UDim2.fromOffset(18, 18),
BackgroundColor3 = Color3.fromRGB(8, 16, 26),
BackgroundTransparency = 0.1,
BorderSizePixel = 0,
Text = " NEVERBLOX v2 | " .. LocalPlayer.Name,
TextColor3 = Theme.Text,
TextSize = 13,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 31
}, Gui)
Corner(Watermark, 5)
local ActiveIndicators = {}
local ActiveBindLabels = {}
local function MakeSmallLabel(parent, text, color)
local item = New("TextLabel", {
Size = UDim2.fromOffset(220, 22),
BackgroundColor3 = Color3.fromRGB(8, 16, 26),
BackgroundTransparency = 0.12,
BorderSizePixel = 0,
Text = " " .. text,
TextColor3 = color or Theme.Text,
TextSize = 12,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 31
}, parent)
Corner(item, 4)
return item
end
local function UpdateIndicators()
for _, obj in ipairs(ActiveIndicators) do
obj:Destroy()
end
for _, obj in ipairs(ActiveBindLabels) do
obj:Destroy()
end
table.clear(ActiveIndicators)
table.clear(ActiveBindLabels)
Watermark.Visible = State.Watermark
IndicatorFrame.Visible = State.Indicators
KeybindFrame.Visible = State.KeybindList
if State.Indicators then
local items = {}
if State.RageBot then table.insert(items, {"RAGE", Theme.Red}) end
if State.RageAutoFire then table.insert(items, {"AUTOFIRE", Theme.Red}) end
if State.LegitBot then table.insert(items, {"LEGIT", Theme.Accent}) end
if State.LegitTriggerbot then table.insert(items, {"TRIGGER", Theme.Yellow}) end
if State.VisualsEnabled then table.insert(items, {"VISUALS", Theme.Accent}) end
if State.Chams then table.insert(items, {"CHAMS", Theme.Accent}) end
if State.Glow then table.insert(items, {"GLOW", Theme.Accent}) end
if State.BunnyHop then table.insert(items, {"BHOP", Theme.Green}) end
if State.AutoStrafer then table.insert(items, {"STRAFE " .. State.AutoStraferMode, Theme.Green}) end
if State.FastStop then table.insert(items, {"FAST STOP", Theme.Yellow}) end
if State.Thirdperson then table.insert(items, {"THIRDPERSON", Theme.Accent}) end
if State.Nightmode then table.insert(items, {"NIGHTMODE", Theme.Accent}) end
if State.Hitsounds then table.insert(items, {"HITSOUNDS", Theme.Yellow}) end
for _, item in ipairs(items) do
table.insert(ActiveIndicators, MakeSmallLabel(IndicatorFrame, item[1], item[2]))
end
end
if State.KeybindList then
table.insert(ActiveBindLabels, MakeSmallLabel(KeybindFrame, "KEYBINDS", Theme.Accent))
for stateKey, bind in pairs(Keybinds) do
local active = GetBoundState(stateKey)
if bind.Mode == "Always" or active then
local text = bind.Title .. " [" .. KeyToText(bind.Key) .. "] " .. bind.Mode
table.insert(ActiveBindLabels, MakeSmallLabel(KeybindFrame, text, Theme.Text))
end
end
end
end
--// Runtime
local lastSlowUpdate = 0
RunService.RenderStepped:Connect(function()
Camera = workspace.CurrentCamera or Camera
ApplyAlwaysBinds()
RageCircle.Visible = State.FOVCircles and State.RageBot
RageCircle.Size = UDim2.fromOffset(State.RageFOV * 2, State.RageFOV * 2)
LegitCircle.Visible = State.FOVCircles and State.LegitBot
LegitCircle.Size = UDim2.fromOffset(State.LegitFOV * 2, State.LegitFOV * 2)
UpdateAim()
UpdateTriggerbot()
UpdateESP()
ApplyMovement()
ApplyThirdperson()
if os.clock() - lastSlowUpdate > 0.2 then
lastSlowUpdate = os.clock()
ApplyWorld()
UpdateIndicators()
end
end)
PresetButton.MouseButton1Click:Connect(function()
SetTab("Configs")
end)
InfoButton.MouseButton1Click:Connect(function()
Notify("NEVERBLOX", "Menu key: RightShift")
end)
Notify("Welcome", "NEVERBLOX v2 Aim loaded")