-- hi this is an open source give credit if you want to... if you do ill be happy
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local StarterGui = game:GetService("StarterGui")
local VIM = game:GetService("VirtualInputManager")
local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera
local Mouse = LocalPlayer:GetMouse()
local function getChar() return LocalPlayer.Character end
local function getHRP()
local c = getChar(); return c and c:FindFirstChild("HumanoidRootPart")
end
local function getHum()
local c = getChar(); return c and c:FindFirstChildOfClass("Humanoid")
end
local function hasLOS(origin, target)
-- true = clear line of sight (no wall blocking)
local dir = target - origin
local rp = RaycastParams.new()
rp.FilterType = Enum.RaycastFilterType.Exclude
local ex = {}
for _, p in ipairs(Players:GetPlayers()) do
if p.Character then table.insert(ex, p.Character) end
end
rp.FilterDescendantsInstances = ex
return Workspace:Raycast(origin, dir.Unit * dir.Magnitude, rp) == nil
end
local function worldToViewport(pos)
local vp, onScreen = Camera:WorldToViewportPoint(pos)
return Vector2.new(vp.X, vp.Y), onScreen, vp.Z
end
local flags = {
fly = false,
noclip = false,
shootWalls = false,
triggerbot = false,
esp = false,
espNames = true,
espBoxes = true,
espHealth = true,
espTracers = true,
espDistance = true,
espWallCheck = false,
aimbot = false,
aimbotHead = true,
aimbotSmooth = true,
teamCheck = true, -- skip teammates in aimbot/triggerbot
hitbox = false, -- expand enemy hitboxes
speed = false,
infJump = false,
killAura = false,
antiAfk = false,
godMode = false,
}
local FLY_SPEED = 60
local SPEED_MULT = 1.5
local AIMBOT_FOV = 120 -- pixels radius
local AIMBOT_SMOOTH= 0.5 -- lerp factor (lower = smoother)
local KILLAURA_R = 15 -- stud radius
local HITBOX_SIZE = 10 -- studs โ expands HumanoidRootPart on all axes
local function isEnemy(p)
if p == LocalPlayer then return false end
if flags.teamCheck then
local myTeam = LocalPlayer.Team
local theirTeam = p.Team
if myTeam and theirTeam then
return myTeam ~= theirTeam
end
end
return true
end
local hitboxOriginals = {} -- [player] = original HRP Size
local function applyHitbox(p)
if not isEnemy(p) then return end
local char = p.Character; if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart"); if not hrp then return end
if not hitboxOriginals[p] then
hitboxOriginals[p] = hrp.Size -- save original
end
hrp.Size = Vector3.new(HITBOX_SIZE, HITBOX_SIZE, HITBOX_SIZE)
-- Keep it invisible so it doesn't look weird
hrp.Transparency = 1
end
local function restoreHitbox(p)
local orig = hitboxOriginals[p]; if not orig then return end
local char = p.Character; if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart"); if not hrp then return end
hrp.Size = orig
hitboxOriginals[p] = nil
end
local function enableHitbox()
for _, p in ipairs(Players:GetPlayers()) do applyHitbox(p) end
end
local function disableHitbox()
for _, p in ipairs(Players:GetPlayers()) do restoreHitbox(p) end
hitboxOriginals = {}
end
-- Continuously apply hitbox to new characters (respawns, new players)
RunService.Heartbeat:Connect(function()
if not flags.hitbox then return end
for _, p in ipairs(Players:GetPlayers()) do
if not isEnemy(p) then continue end
local char = p.Character; if not char then continue end
local hrp = char:FindFirstChild("HumanoidRootPart"); if not hrp then continue end
-- Re-apply if the size got reset (e.g. after respawn)
if hrp.Size.X 0 then
return char, hitPart
end
end
return nil, nil
end
local function triggerFireTool(enemyChar, hitPart)
local char = getChar(); if not char then return end
local tool = char:FindFirstChildOfClass("Tool"); if not tool then return end
local hitPos = hitPart and hitPart.Position or Mouse.Hit.Position
local hitNormal = Vector3.new(0, 1, 0)
-- Fire every RemoteEvent in the entire tool tree
for _, obj in ipairs(tool:GetDescendants()) do
if not obj:IsA("RemoteEvent") then continue end
pcall(function() obj:FireServer(hitPos, hitPart, hitNormal) end)
pcall(function() obj:FireServer(hitPos, hitPart) end)
pcall(function() obj:FireServer(hitPos) end)
pcall(function() obj:FireServer(Mouse.Hit, hitPart) end)
pcall(function() obj:FireServer(Mouse.Hit) end)
end
-- Named remotes: Arsenal uses "RE", Rivals uses "Shoot"/"FireWeapon"
for _, name in ipairs({"RE","Fire","Shoot","FireWeapon","ShootEvent",
"RemoteEvent","BulletEvent","HitEvent","Attack"}) do
local r = tool:FindFirstChild(name)
if r and r:IsA("RemoteEvent") then
pcall(function() r:FireServer(hitPos, hitPart, hitNormal) end)
pcall(function() r:FireServer(hitPos, hitPart) end)
pcall(function() r:FireServer(hitPos) end)
end
end
-- LMB click for click-activated / melee tools
pcall(function()
VIM:SendMouseButtonEvent(Mouse.X, Mouse.Y, 0, true, game, 1)
VIM:SendMouseButtonEvent(Mouse.X, Mouse.Y, 0, false, game, 1)
end)
end
local function enableTriggerbot()
if triggerbotConn then return end
triggerbotConn = RunService.Heartbeat:Connect(function()
if not flags.triggerbot then return end
-- Instant โ no throttle, fires every Heartbeat (~60/sec)
local enemyChar, hitPart = getEnemyAtCrosshair()
if not enemyChar then return end
triggerFireTool(enemyChar, hitPart)
end)
end
local function disableTriggerbot()
if triggerbotConn then triggerbotConn:Disconnect(); triggerbotConn = nil end
end
-- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-- ESP (Boxes โข Names โข Health bars โข Tracers โข Distance)
-- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
local espFolder = Instance.new("Folder")
espFolder.Name = "ESP_Drawings"
espFolder.Parent = LocalPlayer.PlayerGui -- just a holder, drawings are Drawing objects
local espObjects = {} -- [player] = { box, nameLabel, healthBg, healthBar, tracer, distLabel, topLine, bottomLine, leftLine, rightLine }
local ESP_COLOR = Color3.fromRGB(255, 60, 60)
local ESP_FRIEND = Color3.fromRGB(60, 200, 255)
local TRACER_COLOR = Color3.fromRGB(255, 220, 50)
local function rgb(c) return {c.R, c.G, c.B} end -- unused but handy
local function newDrawing(type_, props)
local d = Drawing.new(type_)
for k, v in pairs(props) do d[k] = v end
return d
end
local function removeESPForPlayer(p)
local objs = espObjects[p]
if not objs then return end
for _, d in pairs(objs) do
if typeof(d) == "table" then
for _, dd in pairs(d) do pcall(function() dd:Remove() end) end
else
pcall(function() d:Remove() end)
end
end
espObjects[p] = nil
end
local function createESPForPlayer(p)
if p == LocalPlayer then return end
removeESPForPlayer(p)
local c = ESP_COLOR
local objs = {}
-- Box (4 lines)
objs.boxLines = {}
for i = 1, 4 do
objs.boxLines[i] = newDrawing("Line", {Visible=false, Color=c, Thickness=1.5, Transparency=1, ZIndex=5})
end
-- Corner box accent lines (small corners only)
objs.cornerLines = {}
for i = 1, 8 do
objs.cornerLines[i] = newDrawing("Line", {Visible=false, Color=Color3.fromRGB(255,255,255), Thickness=2, Transparency=1, ZIndex=6})
end
-- Name label
objs.nameLabel = newDrawing("Text", {
Visible=false, Color=Color3.fromRGB(255,255,255), Size=13,
Font=Drawing.Fonts.UI, Outline=true, OutlineColor=Color3.fromRGB(0,0,0),
Center=true, ZIndex=7
})
-- Distance label
objs.distLabel = newDrawing("Text", {
Visible=false, Color=Color3.fromRGB(200,200,200), Size=11,
Font=Drawing.Fonts.UI, Outline=true, OutlineColor=Color3.fromRGB(0,0,0),
Center=true, ZIndex=7
})
-- Health bar background
objs.healthBg = newDrawing("Line", {Visible=false, Color=Color3.fromRGB(0,0,0), Thickness=4, Transparency=1, ZIndex=4})
-- Health bar fill
objs.healthBar = newDrawing("Line", {Visible=false, Color=Color3.fromRGB(50,210,80), Thickness=3, Transparency=1, ZIndex=5})
-- Tracer
objs.tracer = newDrawing("Line", {Visible=false, Color=TRACER_COLOR, Thickness=1, Transparency=0.7, ZIndex=3})
espObjects[p] = objs
end
local function updateESP()
if not flags.esp then
for p, objs in pairs(espObjects) do
for _, v in pairs(objs) do
if typeof(v) == "table" then for _, d in pairs(v) do pcall(function() d.Visible = false end) end
else pcall(function() v.Visible = false end) end
end
end
return
end
local vp = Camera.ViewportSize
local tracerOrigin = Vector2.new(vp.X / 2, vp.Y) -- bottom center
for _, p in ipairs(Players:GetPlayers()) do
if p == LocalPlayer then continue end
if not espObjects[p] then createESPForPlayer(p) end
local objs = espObjects[p]
local char = p.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChildOfClass("Humanoid")
if not hrp or not hum or hum.Health <= 0 then
for _, v in pairs(objs) do
if typeof(v) == "table" then for _, d in pairs(v) do pcall(function() d.Visible = false end) end
else pcall(function() v.Visible = false end) end
end
continue
end
-- Wall check (optional)
local myHRP = getHRP()
if flags.espWallCheck and myHRP then
if not hasLOS(myHRP.Position, hrp.Position) then
for _, v in pairs(objs) do
if typeof(v) == "table" then for _, d in pairs(v) do pcall(function() d.Visible = false end) end
else pcall(function() v.Visible = false end) end
end
continue
end
end
-- Get head and feet positions
local head = char:FindFirstChild("Head")
local headPos = head and head.Position or (hrp.Position + Vector3.new(0, 2.5, 0))
local feetPos = hrp.Position - Vector3.new(0, 2.8, 0)
local topScreen, topOn, topZ = worldToViewport(headPos + Vector3.new(0, 0.4, 0))
local bottomScreen, bottomOn, _ = worldToViewport(feetPos)
local _, centerOn, centerZ = worldToViewport(hrp.Position)
local visible = topOn or bottomOn
if not visible or topZ 0 and math.clamp(hp / maxHp, 0, 1) or 0
local hpColor = Color3.fromRGB(
math.floor(255 * (1 - hpRatio)),
math.floor(255 * hpRatio),
40
)
-- โโ BOX โโ
if flags.espBoxes then
local bl = objs.boxLines
-- top, bottom, left, right
bl[1].From = Vector2.new(L, T); bl[1].To = Vector2.new(R, T); bl[1].Visible = true; bl[1].Color = ESP_COLOR
bl[2].From = Vector2.new(L, B); bl[2].To = Vector2.new(R, B); bl[2].Visible = true; bl[2].Color = ESP_COLOR
bl[3].From = Vector2.new(L, T); bl[3].To = Vector2.new(L, B); bl[3].Visible = true; bl[3].Color = ESP_COLOR
bl[4].From = Vector2.new(R, T); bl[4].To = Vector2.new(R, B); bl[4].Visible = true; bl[4].Color = ESP_COLOR
-- Corner accents (white corners overlaid)
local cw = width * 0.28
local ch = height * 0.18
local cl = objs.cornerLines
-- top-left H, V
cl[1].From=Vector2.new(L,T); cl[1].To=Vector2.new(L+cw,T); cl[1].Visible=true
cl[2].From=Vector2.new(L,T); cl[2].To=Vector2.new(L,T+ch); cl[2].Visible=true
-- top-right H, V
cl[3].From=Vector2.new(R,T); cl[3].To=Vector2.new(R-cw,T); cl[3].Visible=true
cl[4].From=Vector2.new(R,T); cl[4].To=Vector2.new(R,T+ch); cl[4].Visible=true
-- bottom-left H, V
cl[5].From=Vector2.new(L,B); cl[5].To=Vector2.new(L+cw,B); cl[5].Visible=true
cl[6].From=Vector2.new(L,B); cl[6].To=Vector2.new(L,B-ch); cl[6].Visible=true
-- bottom-right H, V
cl[7].From=Vector2.new(R,B); cl[7].To=Vector2.new(R-cw,B); cl[7].Visible=true
cl[8].From=Vector2.new(R,B); cl[8].To=Vector2.new(R,B-ch); cl[8].Visible=true
else
for _, l in ipairs(objs.boxLines) do l.Visible = false end
for _, l in ipairs(objs.cornerLines) do l.Visible = false end
end
-- โโ NAME โโ
if flags.espNames then
objs.nameLabel.Text = p.DisplayName
objs.nameLabel.Position = Vector2.new(cx, T - 16)
objs.nameLabel.Visible = true
else
objs.nameLabel.Visible = false
end
-- โโ DISTANCE โโ
if flags.espDistance then
objs.distLabel.Text = dist .. "m"
objs.distLabel.Position = Vector2.new(cx, B + 3)
objs.distLabel.Visible = true
else
objs.distLabel.Visible = false
end
-- โโ HEALTH BAR (left side) โโ
if flags.espHealth then
local barX = L - 5
local barTop = T
local barBot = B
local fillTo = barBot - (barBot - barTop) * hpRatio
objs.healthBg.From = Vector2.new(barX, barTop)
objs.healthBg.To = Vector2.new(barX, barBot)
objs.healthBg.Visible = true
objs.healthBar.From = Vector2.new(barX, fillTo)
objs.healthBar.To = Vector2.new(barX, barBot)
objs.healthBar.Color = hpColor
objs.healthBar.Visible = true
else
objs.healthBg.Visible = false
objs.healthBar.Visible = false
end
-- โโ TRACER โโ
if flags.espTracers then
local centerScreen, _, _ = worldToViewport(hrp.Position)
objs.tracer.From = tracerOrigin
objs.tracer.To = centerScreen
objs.tracer.Visible = true
else
objs.tracer.Visible = false
end
end
end
-- Cleanup ESP when player leaves
Players.PlayerRemoving:Connect(function(p) removeESPForPlayer(p) end)
-- Pre-create for existing players
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer then createESPForPlayer(p) end
end
Players.PlayerAdded:Connect(function(p)
task.wait(1)
createESPForPlayer(p)
end)
local fovCircle = Drawing.new("Circle")
fovCircle.Visible = false
fovCircle.Color = Color3.fromRGB(255, 255, 255)
fovCircle.Thickness = 2
fovCircle.NumSides = 64
fovCircle.Filled = false
fovCircle.Transparency = 1 -- 1 = fully opaque in Drawing API (NOT 0)
-- Shared rainbow hue for FOV circle (syncs with ESP)
local aimbotHue = 0
local function getBestAimTarget()
local mPos = UserInputService:GetMouseLocation()
local myHRP = getHRP()
local best, bestDist = nil, math.huge
for _, p in ipairs(Players:GetPlayers()) do
if p == LocalPlayer then continue end
local char = p.Character; if not char then continue end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then continue end
-- Use shared team/enemy check
if not isEnemy(p) then continue end
local aimPart = (flags.aimbotHead and char:FindFirstChild("Head"))
or char:FindFirstChild("HumanoidRootPart")
if not aimPart then continue end
-- LOS check (only visible enemies)
if myHRP and not hasLOS(myHRP.Position, aimPart.Position) then continue end
-- Screen-space distance from mouse cursor (matches reference script logic)
local vPos, onScreen = Camera:WorldToViewportPoint(aimPart.Position)
if not onScreen or vPos.Z <= 0 then continue end
local screenPos = Vector2.new(vPos.X, vPos.Y)
local d = (screenPos - mPos).Magnitude
if d < AIMBOT_FOV and d < bestDist then
best = aimPart
bestDist = d
end
end
return best
end
local aimbotConn
local function enableAimbot()
if aimbotConn then return end
aimbotConn = RunService.RenderStepped:Connect(function(dt)
-- Rainbow FOV circle โ follows mouse cursor exactly like reference
aimbotHue = (aimbotHue + dt * 0.4) % 1
local rainbowColor = Color3.fromHSV(aimbotHue, 0.85, 1)
local mPos = UserInputService:GetMouseLocation()
fovCircle.Position = mPos
fovCircle.Radius = AIMBOT_FOV
fovCircle.Color = rainbowColor
fovCircle.Visible = flags.aimbot
if not flags.aimbot then return end
local target = getBestAimTarget()
if not target then return end
-- CFrame.lookAt is the proven method from the Arsenal reference script.
-- It locks the camera to look at the target continuously every frame,
-- which is what makes the aimbot persistent (not just 1 second).
local camPos = Camera.CFrame.Position
local goalCF = CFrame.lookAt(camPos, target.Position)
if flags.aimbotSmooth then
-- Smooth lerp โ 0.35 per frame feels natural, not snappy
Camera.CFrame = Camera.CFrame:Lerp(goalCF, 0.35)
else
Camera.CFrame = goalCF
end
end)
end
local function disableAimbot()
if aimbotConn then aimbotConn:Disconnect(); aimbotConn = nil end
fovCircle.Visible = false
end
local defaultWalkSpeed = 16
RunService.Heartbeat:Connect(function()
local hum = getHum(); if not hum then return end
if flags.speed then
hum.WalkSpeed = defaultWalkSpeed * SPEED_MULT
else
if hum.WalkSpeed ~= defaultWalkSpeed and not flags.fly then
hum.WalkSpeed = defaultWalkSpeed
end
end
end)
UserInputService.JumpRequest:Connect(function()
if not flags.infJump then return end
local hum = getHum()
if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end
end)
local killAuraConn
local killAuraCooldown = {}
local function killAuraFireAllRemotes(tool, targetChar)
if not tool then return end
local eHRP = targetChar and targetChar:FindFirstChild("HumanoidRootPart")
for _, obj in ipairs(tool:GetDescendants()) do
if obj:IsA("RemoteEvent") then
pcall(function() obj:FireServer(eHRP, 100) end)
pcall(function() obj:FireServer(targetChar, 100) end)
pcall(function() obj:FireServer(eHRP) end)
pcall(function() obj:FireServer() end)
end
if obj:IsA("RemoteFunction") then
pcall(function() obj:InvokeServer(eHRP, 100) end)
end
if obj:IsA("BindableEvent") then
pcall(function() obj:Fire(eHRP) end)
end
end
end
local function enableKillAura()
if killAuraConn then return end
killAuraConn = RunService.Heartbeat:Connect(function()
if not flags.killAura then return end
local char = getChar(); if not char then return end
local hrp = getHRP(); if not hrp then return end
local tool = char:FindFirstChildOfClass("Tool")
for _, p in ipairs(Players:GetPlayers()) do
if not isEnemy(p) then continue end
local eChar = p.Character; if not eChar then continue end
local eHRP = eChar:FindFirstChild("HumanoidRootPart"); if not eHRP then continue end
local eHum = eChar:FindFirstChildOfClass("Humanoid")
if not eHum or eHum.Health KILLAURA_R then continue end
local now = tick()
if killAuraCooldown[p] and (now - killAuraCooldown[p]) < 0.12 then continue end
killAuraCooldown[p] = now
-- Snap camera toward enemy to ensure tool fires in their direction
local prevCT = Camera.CameraType
local prevCF = Camera.CFrame
Camera.CameraType = Enum.CameraType.Scriptable
Camera.CFrame = CFrame.new(Camera.CFrame.Position, eHRP.Position)
-- Simulate real mouse click (activates any LocalScript-driven tool)
pcall(function()
VIM:SendMouseButtonEvent(Mouse.X, Mouse.Y, 0, true, game, 1)
VIM:SendMouseButtonEvent(Mouse.X, Mouse.Y, 0, false, game, 1)
end)
-- Fire all remotes as backup for server-driven damage systems
killAuraFireAllRemotes(tool, eChar)
-- Restore camera next frame
task.defer(function()
pcall(function()
Camera.CameraType = prevCT
Camera.CFrame = prevCF
end)
end)
end
end)
end
local function disableKillAura()
if killAuraConn then killAuraConn:Disconnect(); killAuraConn = nil end
killAuraCooldown = {}
end
local antiAfkConn
local function enableAntiAfk()
if antiAfkConn then return end
antiAfkConn = task.spawn(function()
while flags.antiAfk do
task.wait(110)
if not flags.antiAfk then break end
-- Simulate a jump to reset AFK timer
local hum = getHum()
if hum then hum.Jump = true end
-- Also fire fake VirtualUser to be safe
pcall(function()
game:GetService("VirtualUser"):CaptureController()
game:GetService("VirtualUser"):ClickButton2(Vector2.new())
end)
end
end)
end
local function disableAntiAfk()
flags.antiAfk = false
antiAfkConn = nil
end
RunService.Heartbeat:Connect(function()
if not flags.godMode then return end
local hum = getHum(); if not hum then return end
if hum.Health < hum.MaxHealth then
hum.Health = hum.MaxHealth
end
end)
RunService.RenderStepped:Connect(updateESP)
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "PremiumDashboard"
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.DisplayOrder = 999
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 380, 0, 620)
MainFrame.Position = UDim2.new(0.5, -190, 0.5, -310)
MainFrame.BackgroundColor3 = Color3.fromRGB(13, 13, 18)
MainFrame.BorderSizePixel = 0
MainFrame.Parent = ScreenGui
MainFrame.ClipsDescendants = true
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 14)
local MFStroke = Instance.new("UIStroke")
MFStroke.Color = Color3.fromRGB(65, 100, 255)
MFStroke.Thickness = 1.5
MFStroke.Transparency = 0.35
MFStroke.Parent = MainFrame
local dragging, dragStart, startPos = false, nil, nil
local function updateDrag(input)
local d = input.Position - dragStart
MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
end
-- โโโ HEADER โโ
local Header = Instance.new("Frame")
Header.Size = UDim2.new(1, 0, 0, 54)
Header.BackgroundColor3 = Color3.fromRGB(22, 22, 32)
Header.BorderSizePixel = 0; Header.ZIndex = 2; Header.Parent = MainFrame
Instance.new("UICorner", Header).CornerRadius = UDim.new(0, 14)
local HCover = Instance.new("Frame") -- fills bottom round gap
HCover.Size = UDim2.new(1, 0, 0, 14)
HCover.Position = UDim2.new(0, 0, 1, -14)
HCover.BackgroundColor3 = Header.BackgroundColor3
HCover.BorderSizePixel = 0; HCover.ZIndex = 2; HCover.Parent = Header
local AccentBar = Instance.new("Frame")
AccentBar.Size = UDim2.new(0, 64, 0, 3)
AccentBar.Position = UDim2.new(0, 16, 1, -1)
AccentBar.BackgroundColor3 = Color3.fromRGB(80, 120, 255)
AccentBar.BorderSizePixel = 0; AccentBar.ZIndex = 3; AccentBar.Parent = Header
Instance.new("UICorner", AccentBar).CornerRadius = UDim.new(1, 0)
local DragIcon = Instance.new("TextLabel")
DragIcon.Text = "โ ฟ"; DragIcon.Size = UDim2.new(0, 22, 0, 54)
DragIcon.Position = UDim2.new(1, -38, 0, 0); DragIcon.BackgroundTransparency = 1
DragIcon.TextColor3 = Color3.fromRGB(80, 85, 115); DragIcon.Font = Enum.Font.BuilderSansBold
DragIcon.TextSize = 18; DragIcon.ZIndex = 3; DragIcon.Parent = Header
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Text = "Glitch Systems"; TitleLabel.Size = UDim2.new(1, -50, 0, 28)
TitleLabel.Position = UDim2.new(0, 16, 0, 8)
TitleLabel.BackgroundTransparency = 1; TitleLabel.TextColor3 = Color3.fromRGB(235, 238, 255)
TitleLabel.Font = Enum.Font.BuilderSansBold; TitleLabel.TextSize = 15
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left; TitleLabel.ZIndex = 3; TitleLabel.Parent = Header
local SubLabel = Instance.new("TextLabel")
SubLabel.Text = "v4.0 โข Full Feature Pack"; SubLabel.Size = UDim2.new(1, -50, 0, 14)
SubLabel.Position = UDim2.new(0, 16, 0, 33)
SubLabel.BackgroundTransparency = 1; SubLabel.TextColor3 = Color3.fromRGB(80, 90, 140)
SubLabel.Font = Enum.Font.BuilderSans; SubLabel.TextSize = 11
SubLabel.TextXAlignment = Enum.TextXAlignment.Left; SubLabel.ZIndex = 3; SubLabel.Parent = Header
Header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true; dragStart = input.Position; startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then dragging = false end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
updateDrag(input)
end
end)
-- โโโ SECTION LABEL โโ
local SectionLbl = Instance.new("TextLabel")
SectionLbl.Text = "SCRIPT LIST"; SectionLbl.Size = UDim2.new(1, -32, 0, 18)
SectionLbl.Position = UDim2.new(0, 16, 0, 62)
SectionLbl.BackgroundTransparency = 1; SectionLbl.TextColor3 = Color3.fromRGB(75, 115, 255)
SectionLbl.Font = Enum.Font.BuilderSansBold; SectionLbl.TextSize = 11
SectionLbl.TextXAlignment = Enum.TextXAlignment.Left; SectionLbl.Parent = MainFrame
-- โโโ SCROLL FRAME โ
local ScrollFrame = Instance.new("ScrollingFrame")
ScrollFrame.Size = UDim2.new(1, -32, 1, -118)
ScrollFrame.Position = UDim2.new(0, 16, 0, 84)
ScrollFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 26)
ScrollFrame.BorderSizePixel = 0
ScrollFrame.ScrollBarThickness = 4
ScrollFrame.ScrollBarImageColor3 = Color3.fromRGB(80, 120, 255)
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
ScrollFrame.ScrollingDirection = Enum.ScrollingDirection.Y
ScrollFrame.Parent = MainFrame
Instance.new("UICorner", ScrollFrame).CornerRadius = UDim.new(0, 10)
local ListLayout = Instance.new("UIListLayout")
ListLayout.SortOrder = Enum.SortOrder.LayoutOrder
ListLayout.Padding = UDim.new(0, 5); ListLayout.Parent = ScrollFrame
local LPad = Instance.new("UIPadding")
LPad.PaddingTop = UDim.new(0, 7); LPad.PaddingBottom = UDim.new(0, 7)
LPad.PaddingLeft = UDim.new(0, 7); LPad.PaddingRight = UDim.new(0, 7)
LPad.Parent = ScrollFrame
-- โโโ STATUS BAR โ
local StatusBar = Instance.new("Frame")
StatusBar.Size = UDim2.new(1, 0, 0, 30)
StatusBar.Position = UDim2.new(0, 0, 1, -30)
StatusBar.BackgroundColor3 = Color3.fromRGB(18, 18, 26)
StatusBar.BorderSizePixel = 0; StatusBar.Parent = MainFrame
local SDot = Instance.new("Frame")
SDot.Size = UDim2.new(0, 8, 0, 8); SDot.Position = UDim2.new(0, 14, 0.5, -4)
SDot.BackgroundColor3 = Color3.fromRGB(50, 210, 120); SDot.BorderSizePixel = 0; SDot.Parent = StatusBar
Instance.new("UICorner", SDot).CornerRadius = UDim.new(1, 0)
local StatusTxt = Instance.new("TextLabel")
StatusTxt.Text = "Connected โข Injected โข v4.0"
StatusTxt.Size = UDim2.new(1, -30, 1, 0); StatusTxt.Position = UDim2.new(0, 28, 0, 0)
StatusTxt.BackgroundTransparency = 1; StatusTxt.TextColor3 = Color3.fromRGB(75, 90, 130)
StatusTxt.Font = Enum.Font.BuilderSans; StatusTxt.TextSize = 11
StatusTxt.TextXAlignment = Enum.TextXAlignment.Left; StatusTxt.Parent = StatusBar
task.spawn(function()
while true do
TweenService:Create(SDot, TweenInfo.new(0.9, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {BackgroundTransparency=0.65}):Play()
task.wait(0.9)
TweenService:Create(SDot, TweenInfo.new(0.9, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {BackgroundTransparency=0}):Play()
task.wait(0.9)
end
end)
local rowOrder = 0
local function nextOrder() rowOrder = rowOrder + 1; return rowOrder end
local function makeDivider(text)
local D = Instance.new("Frame")
D.Size = UDim2.new(1, 0, 0, 26); D.BackgroundTransparency = 1
D.LayoutOrder = nextOrder(); D.Parent = ScrollFrame
local Line = Instance.new("Frame")
Line.Size = UDim2.new(1, -90, 0, 1); Line.Position = UDim2.new(0, 0, 0.5, 0)
Line.BackgroundColor3 = Color3.fromRGB(35, 38, 60); Line.BorderSizePixel = 0; Line.Parent = D
local Line2 = Instance.new("Frame")
Line2.Size = UDim2.new(1, -90, 0, 1); Line2.Position = UDim2.new(1, 0, 0.5, 0)
Line2.BackgroundColor3 = Color3.fromRGB(35, 38, 60); Line2.BorderSizePixel = 0
Line2.AnchorPoint = Vector2.new(1,0); Line2.Parent = D
local Lbl = Instance.new("TextLabel")
Lbl.Text = text; Lbl.Size = UDim2.new(0, 90, 1, 0); Lbl.Position = UDim2.new(0.5, -45, 0, 0)
Lbl.BackgroundTransparency = 1; Lbl.TextColor3 = Color3.fromRGB(55, 65, 100)
Lbl.Font = Enum.Font.BuilderSansBold; Lbl.TextSize = 10; Lbl.Parent = D
end
-- Toggle row โ returns the toggle button so callers can watch it
local function makeToggleRow(name, sub, tag, color, onEnable, onDisable)
local Row = Instance.new("Frame")
Row.Size = UDim2.new(1, 0, 0, 52); Row.BackgroundColor3 = Color3.fromRGB(24, 24, 35)
Row.BorderSizePixel = 0; Row.LayoutOrder = nextOrder(); Row.Parent = ScrollFrame
Instance.new("UICorner", Row).CornerRadius = UDim.new(0, 8)
local Stripe = Instance.new("Frame")
Stripe.Size = UDim2.new(0, 3, 0, 30); Stripe.Position = UDim2.new(0, 9, 0.5, -15)
Stripe.BackgroundColor3 = color; Stripe.BorderSizePixel = 0; Stripe.Parent = Row
Instance.new("UICorner", Stripe).CornerRadius = UDim.new(1, 0)
local NL = Instance.new("TextLabel")
NL.Text = name; NL.Size = UDim2.new(0, 162, 0, 20); NL.Position = UDim2.new(0, 21, 0.5, -19)
NL.BackgroundTransparency = 1; NL.TextColor3 = Color3.fromRGB(215, 220, 255)
NL.Font = Enum.Font.BuilderSansMedium; NL.TextSize = 13
NL.TextXAlignment = Enum.TextXAlignment.Left; NL.Parent = Row
local SL = Instance.new("TextLabel")
SL.Text = sub; SL.Size = UDim2.new(0, 162, 0, 14); SL.Position = UDim2.new(0, 21, 0.5, 3)
SL.BackgroundTransparency = 1; SL.TextColor3 = Color3.fromRGB(60, 70, 105)
SL.Font = Enum.Font.BuilderSans; SL.TextSize = 10
SL.TextXAlignment = Enum.TextXAlignment.Left; SL.Parent = Row
local Tag = Instance.new("TextLabel")
Tag.Text = tag; Tag.Size = UDim2.new(0, 64, 0, 18); Tag.Position = UDim2.new(1, -118, 0.5, -9)
Tag.BackgroundColor3 = Color3.fromRGB(13, 13, 20); Tag.TextColor3 = color
Tag.Font = Enum.Font.BuilderSansBold; Tag.TextSize = 9; Tag.BorderSizePixel = 0; Tag.Parent = Row
Instance.new("UICorner", Tag).CornerRadius = UDim.new(1, 0)
local isOn = false
local Btn = Instance.new("TextButton")
Btn.Text = "OFF"; Btn.Size = UDim2.new(0, 46, 0, 26); Btn.Position = UDim2.new(1, -52, 0.5, -13)
Btn.BackgroundColor3 = Color3.fromRGB(38, 38, 55); Btn.TextColor3 = Color3.fromRGB(100, 105, 145)
Btn.Font = Enum.Font.BuilderSansBold; Btn.TextSize = 10; Btn.BorderSizePixel = 0
Btn.AutoButtonColor = false; Btn.Parent = Row
Instance.new("UICorner", Btn).CornerRadius = UDim.new(0, 6)
Btn.MouseEnter:Connect(function()
if not isOn then TweenService:Create(Btn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(55,55,75)}):Play() end
end)
Btn.MouseLeave:Connect(function()
if not isOn then TweenService:Create(Btn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(38,38,55)}):Play() end
end)
Btn.MouseButton1Click:Connect(function()
isOn = not isOn
if isOn then
Btn.Text = "ON"
TweenService:Create(Btn, TweenInfo.new(0.18), {BackgroundColor3=color, TextColor3=Color3.fromRGB(255,255,255)}):Play()
if onEnable then onEnable() end
else
Btn.Text = "OFF"
TweenService:Create(Btn, TweenInfo.new(0.18), {BackgroundColor3=Color3.fromRGB(38,38,55), TextColor3=Color3.fromRGB(100,105,145)}):Play()
if onDisable then onDisable() end
end
end)
Row.MouseEnter:Connect(function() TweenService:Create(Row,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(30,30,45)}):Play() end)
Row.MouseLeave:Connect(function() TweenService:Create(Row,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(24,24,35)}):Play() end)
return Btn
end
-- Sub-option toggle (smaller, indented)
local function makeSubToggle(name, flag, color)
local Row = Instance.new("Frame")
Row.Size = UDim2.new(1, -14, 0, 36); Row.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
Row.BorderSizePixel = 0; Row.LayoutOrder = nextOrder(); Row.Parent = ScrollFrame
Instance.new("UICorner", Row).CornerRadius = UDim.new(0, 7)
local Indent = Instance.new("Frame")
Indent.Size = UDim2.new(0, 2, 0, 18); Indent.Position = UDim2.new(0, 12, 0.5, -9)
Indent.BackgroundColor3 = color; Indent.BorderSizePixel = 0; Indent.Parent = Row
Instance.new("UICorner", Indent).CornerRadius = UDim.new(1, 0)
local NL = Instance.new("TextLabel")
NL.Text = " โ " .. name; NL.Size = UDim2.new(1, -80, 1, 0); NL.Position = UDim2.new(0, 18, 0, 0)
NL.BackgroundTransparency = 1; NL.TextColor3 = Color3.fromRGB(160, 165, 200)
NL.Font = Enum.Font.BuilderSans; NL.TextSize = 12
NL.TextXAlignment = Enum.TextXAlignment.Left; NL.Parent = Row
local isOn = flags[flag]
local Btn = Instance.new("TextButton")
Btn.Text = isOn and "ON" or "OFF"
Btn.Size = UDim2.new(0, 40, 0, 22); Btn.Position = UDim2.new(1, -46, 0.5, -11)
Btn.BackgroundColor3 = isOn and color or Color3.fromRGB(35,35,50)
Btn.TextColor3 = isOn and Color3.fromRGB(255,255,255) or Color3.fromRGB(90,95,130)
Btn.Font = Enum.Font.BuilderSansBold; Btn.TextSize = 9; Btn.BorderSizePixel = 0
Btn.AutoButtonColor = false; Btn.Parent = Row
Instance.new("UICorner", Btn).CornerRadius = UDim.new(0, 5)
Btn.MouseButton1Click:Connect(function()
isOn = not isOn; flags[flag] = isOn
if isOn then
Btn.Text = "ON"
TweenService:Create(Btn, TweenInfo.new(0.15), {BackgroundColor3=color, TextColor3=Color3.fromRGB(255,255,255)}):Play()
else
Btn.Text = "OFF"
TweenService:Create(Btn, TweenInfo.new(0.15), {BackgroundColor3=Color3.fromRGB(35,35,50), TextColor3=Color3.fromRGB(90,95,130)}):Play()
end
end)
end
-- โโ MOVEMENT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
makeDivider("MOVEMENT")
makeToggleRow("Fly", "W/A/S/D + Space / Shift", "MOVEMENT", Color3.fromRGB(80,130,255),
function() flags.fly = true; enableFly() end,
function() flags.fly = false; disableFly() end
)
makeToggleRow("Noclip", "Phase through all geometry", "MOVEMENT", Color3.fromRGB(80,200,255),
function() flags.noclip = true end,
function()
flags.noclip = false
local c = getChar()
if c then for _, p in ipairs(c:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = true end end end
end
)
makeToggleRow("Speed Boost", "x2.5 walk speed multiplier", "MOVEMENT", Color3.fromRGB(130,220,255),
function() flags.speed = true end,
function() flags.speed = false; local h=getHum(); if h then h.WalkSpeed=defaultWalkSpeed end end
)
makeToggleRow("Infinite Jump", "Jump infinitely in the air", "MOVEMENT", Color3.fromRGB(160,140,255),
function() flags.infJump = true end,
function() flags.infJump = false end
)
-- โโ VISUAL โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
makeDivider("VISUAL / ESP")
makeToggleRow("ESP", "Boxes โข Names โข HP โข Tracers", "VISUAL", Color3.fromRGB(255,180,50),
function() flags.esp = true end,
function() flags.esp = false end
)
-- ESP sub-options
makeSubToggle("Show Names", "espNames", Color3.fromRGB(255,180,50))
makeSubToggle("Show Boxes", "espBoxes", Color3.fromRGB(255,180,50))
makeSubToggle("Show Health Bar", "espHealth", Color3.fromRGB(255,180,50))
makeSubToggle("Show Tracers", "espTracers", Color3.fromRGB(255,180,50))
makeSubToggle("Show Distance", "espDistance", Color3.fromRGB(255,180,50))
makeSubToggle("Wall Check", "espWallCheck", Color3.fromRGB(255,180,50))
-- โโ COMBAT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
makeDivider("COMBAT")
makeToggleRow("Aimbot", "Always-on FOV lock โข LOS check", "COMBAT", Color3.fromRGB(255,80,80),
function() flags.aimbot = true; enableAimbot() end,
function() flags.aimbot = false; disableAimbot() end
)
makeSubToggle("Aim at Head (off = Torso)", "aimbotHead", Color3.fromRGB(255,80,80))
makeSubToggle("Smooth Aim", "aimbotSmooth", Color3.fromRGB(255,80,80))
makeSubToggle("Team Check (skip allies)", "teamCheck", Color3.fromRGB(255,80,80))
makeToggleRow("Triggerbot", "Auto-fire on target โข no camera glitch", "COMBAT", Color3.fromRGB(255,100,60),
function() flags.triggerbot = true; enableTriggerbot() end,
function() flags.triggerbot = false; disableTriggerbot() end
)
makeToggleRow("Hitbox Expander", "Grow enemy HRP to " .. HITBOX_SIZE .. " studs", "COMBAT", Color3.fromRGB(255,60,180),
function() flags.hitbox = true; enableHitbox() end,
function() flags.hitbox = false; disableHitbox() end
)
makeToggleRow("Shoot Through Walls", "Bypass geometry collision", "COMBAT", Color3.fromRGB(255,145,40),
function() flags.shootWalls = true; enableShootWall() end,
function() flags.shootWalls = false; disableShootWall() end
)
makeToggleRow("Kill Aura", "Instant kill in 15-stud radius", "COMBAT", Color3.fromRGB(220,50,50),
function() flags.killAura = true; enableKillAura() end,
function() flags.killAura = false; disableKillAura() end
)
-- โโ UTILITY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
makeDivider("UTILITY")
makeToggleRow("God Mode", "Restore health every frame", "UTILITY", Color3.fromRGB(50,220,130),
function() flags.godMode = true end,
function() flags.godMode = false end
)
makeToggleRow("Anti-AFK", "Prevent auto-kick (2 min ping)", "UTILITY", Color3.fromRGB(160,100,255),
function() flags.antiAfk = true; enableAntiAfk() end,
function() disableAntiAfk() end
)
makeToggleRow("Auto Farm", "Proximity farm loop", "UTILITY", Color3.fromRGB(80,200,120), nil, nil)
makeToggleRow("Chest Collector", "Auto-open nearby chests", "UTILITY", Color3.fromRGB(255,200,50), nil, nil)
MainFrame.Size = UDim2.new(0, 380, 0, 0)
MainFrame.ClipsDescendants = true
TweenService:Create(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 380, 0, 620)}):Play()
--pls give me some credits atleast
task.spawn(function()
task.wait(0.6)
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "Made By ๐Buttershot๐",
Text = "Sub to me on YT",
Duration = 5,
})
end)
end)