M
Description
a script for flick featuring silent aim rapid fire and esp the silent aim sometimes misses and is best used with rapid fire on u can skid of it i dont care since its made with ai
GAME[FPS] Flick
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
-- =====================================================================
-- SILENT AIM + RAPID FIRE + ESP + TRIGGERBOT + WALLCHECK + 360° AIM
-- by uogwads
-- X = silent aim | R = rapid fire | T = triggerbot | G = 360 aim | RightShift = GUI
-- =====================================================================
-- SERVICES
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LP = Players.LocalPlayer
local Camera = workspace.CurrentCamera
-- INTERNAL FIXED CONSTANTS
local ANGLE_TOLERANCE = 20
local MAX_SHOTS_PER_CALL = 15
local MIN_TARGET_DIST = 5
-- CONFIG
local CONFIG = {
SilentAim = false,
RapidFire = false,
Triggerbot = false,
TriggerDelay = 0.05,
Wallcheck = true,
ThreeSixty = false,
TargetPart = "Head",
FOV = 150,
ShowFOV = true,
DynamicPart = true,
ESPEnabled = true,
ShowBox = false,
ShowSkeleton = true,
ShowHealth = true,
ShowName = true,
ShowWeapon = true,
ShowDistance = true,
}
-- =====================================================================
-- MODULES
-- =====================================================================
local SignalManager = require(ReplicatedStorage:WaitForChild("SignalManager"))
local BulletHandler = _G.__SA_BulletHandler
if not BulletHandler then
BulletHandler = require(
ReplicatedStorage.ModuleScripts.GunModules.BulletHandler
)
_G.__SA_BulletHandler = BulletHandler
end
assert(type(BulletHandler) == "table", "[SA] BulletHandler not a table")
assert(type(BulletHandler.Fire) == "function","[SA] BulletHandler.Fire not a function")
if _G.__SA_HookInstalled and _G.__SA_OriginalBulletFire then
BulletHandler.Fire = _G.__SA_OriginalBulletFire
_G.__SA_HookInstalled = false
end
local originalFire = BulletHandler.Fire
_G.__SA_OriginalBulletFire = originalFire
_G.__SA_HookInstalled = true
-- FOV CIRCLE
local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 1
fovCircle.Transparency = 0.55
fovCircle.Filled = false
fovCircle.NumSides = 64
fovCircle.Visible = false
RunService.RenderStepped:Connect(function()
local m = UserInputService:GetMouseLocation()
fovCircle.Position = Vector2.new(m.X, m.Y + 36)
fovCircle.Radius = CONFIG.FOV
fovCircle.Visible = CONFIG.ShowFOV
and (CONFIG.SilentAim or CONFIG.Triggerbot)
and not CONFIG.ThreeSixty
fovCircle.Color = CONFIG.SilentAim
and Color3.fromRGB(0,255,140)
or Color3.fromRGB(255,70,70)
end)
-- =====================================================================
-- TARGET SELECTION
-- =====================================================================
local PART_PRIORITY = {
"HumanoidRootPart",
"UpperTorso",
"Torso",
"LowerTorso",
"Head",
}
local function findPart(char, partName)
local p = char:FindFirstChild(partName)
if p and p:IsA("BasePart") then return p end
for _, d in ipairs(char:GetDescendants()) do
if d.Name == partName and d:IsA("BasePart") then return d end
end
return nil
end
local function hasLineOfSight(originPos, partPos, ignoreChar)
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = { LP.Character, Camera, ignoreChar }
params.IgnoreWater = true
local dir = partPos - originPos
local dist = dir.Magnitude
if dist <= 0 then return false end
local result = workspace:Raycast(originPos, dir, params)
if not result then return true end
return result.Distance >= dist - 0.5
end
local function buildTargetFromChar(char, originPos)
if not char or not char.Parent then return nil end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum then return nil end
if hum.Health <= 0 then
local spawnTick = char:GetAttribute("__spawnTick")
if not spawnTick then
pcall(function() char:SetAttribute("__spawnTick", tick()) end)
spawnTick = tick()
end
if tick() - spawnTick > 5 then return nil end
end
local chosenPart, chosenPos = nil, nil
if CONFIG.Wallcheck then
local primary = findPart(char, CONFIG.TargetPart)
if primary and hasLineOfSight(originPos, primary.Position, char) then
chosenPart, chosenPos = primary, primary.Position
end
if not chosenPart then
for _, partName in ipairs(PART_PRIORITY) do
if partName ~= CONFIG.TargetPart then
local part = findPart(char, partName)
if part and hasLineOfSight(originPos, part.Position, char) then
chosenPart, chosenPos = part, part.Position
break
end
end
end
end
if not chosenPart then return nil end
else
local primary = findPart(char, CONFIG.TargetPart)
if primary then
chosenPart, chosenPos = primary, primary.Position
else
for _, partName in ipairs(PART_PRIORITY) do
local part = findPart(char, partName)
if part then
chosenPart, chosenPos = part, part.Position
break
end
end
end
if not chosenPart then return nil end
end
return {
character = char,
humanoid = hum,
part = chosenPart,
partPos = chosenPos,
}
end
local function buildSkipSet()
local skip = {}
for _, obj in ipairs(Camera:GetChildren()) do
skip[obj] = true
for _, d in ipairs(obj:GetDescendants()) do
skip[d] = true
end
end
local function markVM(root, depth)
depth = depth or 0
if depth > 3 then return end
for _, obj in ipairs(root:GetChildren()) do
if obj.Name == "ViewModel"
or obj.Name == "Viewmodel"
or obj.Name == "viewModel" then
skip[obj] = true
for _, d in ipairs(obj:GetDescendants()) do
skip[d] = true
end
end
markVM(obj, depth + 1)
end
end
markVM(workspace, 0)
if LP.Character then
skip[LP.Character] = true
for _, d in ipairs(LP.Character:GetDescendants()) do
skip[d] = true
end
end
return skip
end
local function getTarget(origin)
if not CONFIG.SilentAim then return nil end
local targets = {}
local mouse = UserInputService:GetMouseLocation()
local seenChars = {}
local skipSet = buildSkipSet()
local myChar = LP.Character
local function evaluate(char)
if char == myChar then return end
if skipSet[char] then return end
local info = buildTargetFromChar(char, origin)
if not info then return end
local pos = info.partPos
if CONFIG.ThreeSixty then
if not hasLineOfSight(origin, pos, char) then return end
end
local sp, onScreen = Camera:WorldToViewportPoint(pos)
local screenDist = onScreen
and (Vector2.new(sp.X, sp.Y) - Vector2.new(mouse.X, mouse.Y)).Magnitude
or 99999
if not CONFIG.ThreeSixty then
if not onScreen then return end
if screenDist > CONFIG.FOV then return end
end
local dist3D = (pos - origin).Magnitude
if dist3D < MIN_TARGET_DIST then return end
table.insert(targets, {
position = pos,
dist = screenDist,
dist3D = dist3D,
onScreen = onScreen,
part = info.part,
character = char,
})
end
for _, player in ipairs(Players:GetPlayers()) do
if player == LP then continue end
local char = player.Character
if not char or seenChars[char] then continue end
seenChars[char] = true
evaluate(char)
end
for _, obj in ipairs(workspace:GetChildren()) do
if obj:IsA("Model")
and not seenChars[obj]
and obj ~= myChar
and not skipSet[obj] then
local hum = obj:FindFirstChildOfClass("Humanoid")
if hum then
local owner = Players:GetPlayerFromCharacter(obj)
if owner ~= LP then
seenChars[obj] = true
evaluate(obj)
end
end
end
end
table.sort(targets, function(a, b)
if a.onScreen ~= b.onScreen then
return a.onScreen
end
if a.onScreen and b.onScreen then
if math.abs(a.dist - b.dist) < 30 then
return a.dist3D < b.dist3D
end
return a.dist < b.dist
end
return a.dist3D < b.dist3D
end)
return targets[1], targets
end
-- =====================================================================
-- HOOK
-- =====================================================================
local shotsTotal = 0
local function fireRapidCopies(payload, n)
for i = 2, n do
local copy = {}
for k, v in pairs(payload) do copy[k] = v end
if type(payload.Misc) == "table" then
local newMisc = {}
for k, v in pairs(payload.Misc) do newMisc[k] = v end
copy.Misc = newMisc
end
local newId = tick() + (i * 0.0001)
if copy.Misc then
copy.Misc.ShotID = newId
copy.Misc.NewSeed = (copy.Misc.NewSeed or 0) + 11
end
copy.BulletId = newId
pcall(function() originalFire(copy) end)
shotsTotal = shotsTotal + 1
end
end
BulletHandler.Fire = function(payload)
if type(payload) ~= "table" then
return originalFire(payload)
end
local char = LP.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local hrp = char and char:FindFirstChild("HumanoidRootPart")
local isAirborne = hum and hum.FloorMaterial == Enum.Material.Air
if isAirborne and hrp and typeof(payload.Origin) == "Vector3" then
local newOrigin = hrp.Position + Vector3.new(0, 1.5, 0)
payload.Origin = newOrigin
if typeof(payload.VisualOrigin) == "Vector3" then
payload.VisualOrigin = newOrigin
end
end
local originPos = typeof(payload.Origin) == "Vector3"
and payload.Origin or nil
local needsCameraSpoof = false
local spoofCF = nil
if originPos then
local target = getTarget(originPos)
if target then
local newDir = (target.position - originPos).Unit
payload.Direction = newDir
if type(payload.Misc) == "table"
and typeof(payload.Misc.CamCFrame) == "CFrame" then
payload.Misc.CamCFrame =
CFrame.lookAt(originPos, originPos + newDir)
end
if type(payload.Misc) == "table" then
payload.Misc.Spread = 0
end
local realLook = Camera.CFrame.LookVector
local dot = math.clamp(realLook:Dot(newDir), -1, 1)
local angle = math.deg(math.acos(dot))
if CONFIG.ThreeSixty then
needsCameraSpoof = true
spoofCF = CFrame.lookAt(originPos, originPos + newDir)
elseif angle > ANGLE_TOLERANCE and not isAirborne then
needsCameraSpoof = true
spoofCF = CFrame.lookAt(originPos, originPos + newDir)
end
end
end
local n = CONFIG.RapidFire and MAX_SHOTS_PER_CALL or 1
shotsTotal = shotsTotal + 1
local oldCF = nil
if needsCameraSpoof then
oldCF = Camera.CFrame
Camera.CFrame = spoofCF
end
local result = originalFire(payload)
if n > 1 then
fireRapidCopies(payload, n)
end
if needsCameraSpoof and oldCF then
Camera.CFrame = oldCF
end
return result
end
print("[SA+RF] Hook installed. 360:", tostring(CONFIG.ThreeSixty))
-- =====================================================================
-- TRIGGERBOT — mode-aware target selection
-- Normal mode: on-screen + inside FOV + LOS clear
-- 360 mode: any world target + LOS clear (off-screen OK)
-- =====================================================================
local lastTrigger = 0
local function triggerbotFindTarget()
local char = LP.Character
if not char then return nil end
local tool = char:FindFirstChildOfClass("Tool")
if not tool then return nil end
local origin = Camera.CFrame.Position
local mouse = UserInputService:GetMouseLocation()
local myChar = LP.Character
local skipSet = buildSkipSet()
local candidates = {}
local function eval(c)
if c == myChar then return end
if skipSet[c] then return end
local info = buildTargetFromChar(c, origin)
if not info then return end
local pos = info.partPos
if not hasLineOfSight(origin, pos, c) then return end
if (pos - origin).Magnitude < MIN_TARGET_DIST then return end
local sp, onScreen = Camera:WorldToViewportPoint(pos)
local screenDist
if onScreen then
screenDist = (Vector2.new(sp.X, sp.Y)
- Vector2.new(mouse.X, mouse.Y)).Magnitude
else
screenDist = math.huge
end
if not CONFIG.ThreeSixty then
if not onScreen then return end
if screenDist > CONFIG.FOV then return end
end
local dist3D = (pos - origin).Magnitude
table.insert(candidates, {
position = pos,
screenDist = screenDist,
dist3D = dist3D,
onScreen = onScreen,
character = c,
})
end
for _, player in ipairs(Players:GetPlayers()) do
if player == LP then continue end
local c = player.Character
if c then eval(c) end
end
if CONFIG.ThreeSixty then
table.sort(candidates, function(a, b)
if a.onScreen ~= b.onScreen then
return a.onScreen
end
return a.dist3D < b.dist3D
end)
else
table.sort(candidates, function(a, b)
return a.screenDist < b.screenDist
end)
end
return candidates[1]
end
RunService.Heartbeat:Connect(function()
if not CONFIG.Triggerbot then return end
if not LP.Character then return end
local now = tick()
if now - lastTrigger < CONFIG.TriggerDelay then return end
local target = triggerbotFindTarget()
if not target then return end
lastTrigger = now
pcall(function()
SignalManager.Fire("FireWeapon", Enum.UserInputState.Begin)
end)
pcall(function()
SignalManager.Fire("FireWeapon", Enum.UserInputState.End)
end)
end)
-- =====================================================================
-- ESP
-- =====================================================================
local ESP = { players = {} }
local BONES_R15 = {
{"Head", "UpperTorso"},
{"UpperTorso", "LowerTorso"},
{"UpperTorso", "LeftUpperArm"},
{"UpperTorso", "RightUpperArm"},
{"LowerTorso", "LeftUpperLeg"},
{"LowerTorso", "RightUpperLeg"},
}
local BONES_R6 = {
{"Head", "Torso"},
{"Torso", "Left Arm"},
{"Torso", "Right Arm"},
{"Torso", "Left Leg"},
{"Torso", "Right Leg"},
}
local function newLine()
local l = Drawing.new("Line")
l.Thickness = 1.0
l.Visible = false
l.Transparency = 1
return l
end
local function newText()
local t = Drawing.new("Text")
t.Size = 13
t.Center = true
t.Outline = true
t.OutlineColor = Color3.new(0,0,0)
t.Visible = false
t.Font = 2
return t
end
local function newSquare()
local s = Drawing.new("Square")
s.Thickness = 1
s.Filled = false
s.Visible = false
return s
end
local function isR15(char)
return char:FindFirstChild("UpperTorso") ~= nil
end
local function getBones(char)
return isR15(char) and BONES_R15 or BONES_R6
end
local function getWeaponName(char)
local tool = char:FindFirstChildOfClass("Tool")
if tool then return tool.Name end
return nil
end
local function buildESP(player)
local tbl = {
lines = {},
box = newSquare(),
healthBg = newSquare(),
healthFg = newSquare(),
}
for i = 1, 15 do
tbl.lines[i] = newLine()
end
tbl.nameText = newText()
tbl.weaponText = newText()
tbl.distanceText = newText()
return tbl
end
local function clearESP(player)
local tbl = ESP.players[player]
if not tbl then return end
for _, l in ipairs(tbl.lines) do pcall(function() l:Remove() end) end
pcall(function() tbl.box:Remove() end)
pcall(function() tbl.healthBg:Remove() end)
pcall(function() tbl.healthFg:Remove() end)
pcall(function() tbl.nameText:Remove() end)
pcall(function() tbl.weaponText:Remove() end)
pcall(function() tbl.distanceText:Remove() end)
ESP.players[player] = nil
end
local function setupPlayer(player)
if player == LP then return end
if not ESP.players[player] then
ESP.players[player] = buildESP(player)
end
end
local function teardownPlayer(player)
if ESP.players[player] then clearESP(player) end
end
for _, p in ipairs(Players:GetPlayers()) do setupPlayer(p) end
Players.PlayerAdded:Connect(setupPlayer)
Players.PlayerRemoving:Connect(teardownPlayer)
RunService.RenderStepped:Connect(function()
if not CONFIG.ESPEnabled then
for _, tbl in pairs(ESP.players) do
for _, l in ipairs(tbl.lines) do l.Visible = false end
tbl.box.Visible = false
tbl.healthBg.Visible = false
tbl.healthFg.Visible = false
tbl.nameText.Visible = false
tbl.weaponText.Visible = false
tbl.distanceText.Visible = false
end
return
end
for player, tbl in pairs(ESP.players) do
local char = player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and (char:FindFirstChild("HumanoidRootPart")
or char:FindFirstChild("Torso"))
if not (char and hum and root and hum.Health > 0) then
for _, l in ipairs(tbl.lines) do l.Visible = false end
tbl.box.Visible = false
tbl.healthBg.Visible = false
tbl.healthFg.Visible = false
tbl.nameText.Visible = false
tbl.weaponText.Visible = false
tbl.distanceText.Visible = false
continue
end
local baseColor = (player.Team == LP.Team)
and Color3.fromRGB(0, 200, 255)
or Color3.fromRGB(255, 80, 80)
if CONFIG.ShowSkeleton then
local bones = getBones(char)
local i = 0
local distFromCam = (Camera.CFrame.Position - root.Position).Magnitude
local thick = math.clamp(1.0 - (distFromCam - 20) / 200, 0.3, 1.0)
for _, pair in ipairs(bones) do
local a = char:FindFirstChild(pair[1])
local b = char:FindFirstChild(pair[2])
i = i + 1
if a and b then
local a3, aOn = Camera:WorldToViewportPoint(a.Position)
local b3, bOn = Camera:WorldToViewportPoint(b.Position)
if aOn and bOn then
local ln = tbl.lines[i]
ln.From = Vector2.new(a3.X, a3.Y)
ln.To = Vector2.new(b3.X, b3.Y)
ln.Color = baseColor
ln.Thickness = thick
ln.Visible = true
else
tbl.lines[i].Visible = false
end
else
tbl.lines[i].Visible = false
end
end
for j = i + 1, #tbl.lines do
tbl.lines[j].Visible = false
end
else
for _, l in ipairs(tbl.lines) do l.Visible = false end
end
if CONFIG.ShowBox then
local head = char:FindFirstChild("Head")
if head and root then
local headTop = head.Position + Vector3.new(0, head.Size.Y / 2, 0)
local feetPos = root.Position - Vector3.new(0, 3, 0)
local topScreen, topOn = Camera:WorldToViewportPoint(headTop)
local botScreen, botOn = Camera:WorldToViewportPoint(feetPos)
if topOn and botOn then
local height = math.abs(botScreen.Y - topScreen.Y)
local width = height * 0.55
tbl.box.Size = Vector2.new(width, height)
tbl.box.Position = Vector2.new(
topScreen.X - width / 2, topScreen.Y)
tbl.box.Color = baseColor
tbl.box.Visible = true
else
tbl.box.Visible = false
end
end
else
tbl.box.Visible = false
end
if CONFIG.ShowHealth and tbl.box.Visible then
local pct = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
local barW, barH = 3, tbl.box.Size.Y
local barX = tbl.box.Position.X - 8
local barY = tbl.box.Position.Y
tbl.healthBg.Size = Vector2.new(barW, barH)
tbl.healthBg.Position = Vector2.new(barX, barY)
tbl.healthBg.Color = Color3.fromRGB(30,30,30)
tbl.healthBg.Filled = true
tbl.healthBg.Visible = true
local fillH = barH * pct
tbl.healthFg.Size = Vector2.new(barW, fillH)
tbl.healthFg.Position = Vector2.new(barX, barY + (barH - fillH))
tbl.healthFg.Color = pct > 0.5 and Color3.fromRGB(0,255,80)
or pct > 0.25 and Color3.fromRGB(255,200,0)
or Color3.fromRGB(255,50,50)
tbl.healthFg.Filled = true
tbl.healthFg.Visible = true
else
tbl.healthBg.Visible = false
tbl.healthFg.Visible = false
end
local head = char:FindFirstChild("Head")
if not head then
tbl.nameText.Visible = false
tbl.weaponText.Visible = false
tbl.distanceText.Visible = false
continue
end
local headTop = head.Position + Vector3.new(0, head.Size.Y / 2, 0)
local screenHead, onHead = Camera:WorldToViewportPoint(headTop)
if not onHead then
tbl.nameText.Visible = false
tbl.weaponText.Visible = false
tbl.distanceText.Visible = false
continue
end
local yCursor = screenHead.Y - 20
if CONFIG.ShowName then
tbl.nameText.Text = player.Name
tbl.nameText.Position = Vector2.new(screenHead.X, yCursor)
tbl.nameText.Color = baseColor
tbl.nameText.Visible = true
yCursor = yCursor - 16
else
tbl.nameText.Visible = false
end
if CONFIG.ShowWeapon then
local weapon = getWeaponName(char)
if weapon then
tbl.weaponText.Text = "[" .. weapon .. "]"
tbl.weaponText.Position = Vector2.new(screenHead.X, yCursor)
tbl.weaponText.Color = Color3.fromRGB(255, 220, 100)
tbl.weaponText.Visible = true
yCursor = yCursor - 16
else
tbl.weaponText.Visible = false
end
else
tbl.weaponText.Visible = false
end
if CONFIG.ShowDistance then
local dist = (Camera.CFrame.Position - head.Position).Magnitude
tbl.distanceText.Text = string.format("%d studs", math.floor(dist))
tbl.distanceText.Position = Vector2.new(screenHead.X, yCursor)
tbl.distanceText.Color = Color3.fromRGB(200, 200, 200)
tbl.distanceText.Visible = true
else
tbl.distanceText.Visible = false
end
end
end)
print("[ESP] Loaded.")
-- =====================================================================
-- GUI
-- =====================================================================
local parentGui
pcall(function() parentGui = gethui() end)
parentGui = parentGui or LP:WaitForChild("PlayerGui")
if _G.SilentAimGUI then pcall(function() _G.SilentAimGUI:Destroy() end) end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SilentAimGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = parentGui
_G.SilentAimGUI = ScreenGui
local Main = Instance.new("Frame")
Main.Size = UDim2.new(0, 260, 0, 604)
Main.Position = UDim2.new(0, 40, 0, 50)
Main.BackgroundColor3 = Color3.fromRGB(18, 18, 22)
Main.BorderSizePixel = 0
Main.Active = true
Main.Draggable = true
Main.Parent = ScreenGui
Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 10)
local MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(45,45,55)
MainStroke.Parent = Main
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 34)
Title.BackgroundColor3 = Color3.fromRGB(25, 25, 32)
Title.BorderSizePixel = 0
Title.Text = " by uogwads"
Title.TextColor3 = Color3.fromRGB(0, 255, 140)
Title.TextSize = 13
Title.Font = Enum.Font.GothamBold
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Main
Instance.new("UICorner", Title).CornerRadius = UDim.new(0, 10)
local TitleCover = Instance.new("Frame")
TitleCover.Size = UDim2.new(1, 0, 0, 10)
TitleCover.Position = UDim2.new(0, 0, 1, -10)
TitleCover.BackgroundColor3 = Color3.fromRGB(25, 25, 32)
TitleCover.BorderSizePixel = 0
TitleCover.Parent = Title
local function makeRow(y, txt)
local R = Instance.new("Frame")
R.Size = UDim2.new(1, -20, 0, 34)
R.Position = UDim2.new(0, 10, 0, y)
R.BackgroundColor3 = Color3.fromRGB(24, 24, 30)
R.BorderSizePixel = 0
R.Parent = Main
Instance.new("UICorner", R).CornerRadius = UDim.new(0, 6)
local L = Instance.new("TextLabel")
L.Size = UDim2.new(1, -80, 1, 0)
L.Position = UDim2.new(0, 12, 0, 0)
L.BackgroundTransparency = 1
L.Text = txt
L.TextColor3 = Color3.fromRGB(220, 220, 230)
L.TextSize = 12
L.Font = Enum.Font.Gotham
L.TextXAlignment = Enum.TextXAlignment.Left
L.Parent = R
return R
end
local function makeToggle(parent, on)
local B = Instance.new("TextButton")
B.Size = UDim2.new(0, 60, 0, 22)
B.Position = UDim2.new(1, -70, 0.5, -11)
B.BackgroundColor3 = on and Color3.fromRGB(0,170,90)
or Color3.fromRGB(50,50,60)
B.BorderSizePixel = 0
B.Text = on and "ON" or "OFF"
B.TextColor3 = Color3.fromRGB(255,255,255)
B.TextSize = 11
B.Font = Enum.Font.GothamBold
B.AutoButtonColor = false
B.Parent = parent
Instance.new("UICorner", B).CornerRadius = UDim.new(0, 6)
return B
end
local function setToggle(btn, on)
btn.Text = on and "ON" or "OFF"
btn.BackgroundColor3 = on and Color3.fromRGB(0,170,90)
or Color3.fromRGB(50,50,60)
end
local saRow = makeRow(44, "Silent Aim")
local saBtn = makeToggle(saRow, CONFIG.SilentAim)
local rfRow = makeRow(82, "Rapid Fire (auto)")
local rfBtn = makeToggle(rfRow, CONFIG.RapidFire)
local tbRow = makeRow(120, "Triggerbot")
local tbBtn = makeToggle(tbRow, CONFIG.Triggerbot)
local wcRow = makeRow(158, "Wallcheck")
local wcBtn = makeToggle(wcRow, CONFIG.Wallcheck)
local tsRow = makeRow(196, "360 Aim (all angles)")
local tsBtn = makeToggle(tsRow, CONFIG.ThreeSixty)
local pRow = makeRow(234, "Target Part")
local pBtn = Instance.new("TextButton")
pBtn.Size = UDim2.new(0, 90, 0, 22)
pBtn.Position = UDim2.new(1, -100, 0.5, -11)
pBtn.BackgroundColor3 = Color3.fromRGB(45,45,60)
pBtn.BorderSizePixel = 0
pBtn.Text = CONFIG.TargetPart
pBtn.TextColor3 = Color3.fromRGB(0,255,140)
pBtn.TextSize = 11
pBtn.Font = Enum.Font.GothamBold
pBtn.AutoButtonColor = false
pBtn.Parent = pRow
Instance.new("UICorner", pBtn).CornerRadius = UDim.new(0, 6)
local dynRow = makeRow(272, "Dynamic Part")
local dynBtn = makeToggle(dynRow, CONFIG.DynamicPart)
local espRow = makeRow(310, "ESP Enabled")
local espBtn = makeToggle(espRow, CONFIG.ESPEnabled)
local skelRow = makeRow(348, "ESP Skeleton")
local skelBtn = makeToggle(skelRow, CONFIG.ShowSkeleton)
local healthRow = makeRow(386, "ESP Health")
local healthBtn = makeToggle(healthRow, CONFIG.ShowHealth)
local nameRow = makeRow(424, "ESP Name")
local nameBtn = makeToggle(nameRow, CONFIG.ShowName)
local weaponRow = makeRow(462, "ESP Weapon")
local weaponBtn = makeToggle(weaponRow, CONFIG.ShowWeapon)
local distRow = makeRow(500, "ESP Distance")
local distBtn = makeToggle(distRow, CONFIG.ShowDistance)
local function makeSlider(y, txt, minV, maxV, initial, fmt, onUpdate)
local R = makeRow(y, txt)
local bar = Instance.new("Frame")
bar.Size = UDim2.new(0, 110, 0, 6)
bar.Position = UDim2.new(0, 90, 0.5, -3)
bar.BackgroundColor3 = Color3.fromRGB(45,45,60)
bar.BorderSizePixel = 0
bar.Parent = R
Instance.new("UICorner", bar).CornerRadius = UDim.new(1, 0)
local fill = Instance.new("Frame")
fill.Size = UDim2.new((initial - minV) / (maxV - minV), 0, 1, 0)
fill.BackgroundColor3 = Color3.fromRGB(0, 200, 120)
fill.BorderSizePixel = 0
fill.Parent = bar
Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0, 45, 1, 0)
lbl.Position = UDim2.new(1, -55, 0, 0)
lbl.BackgroundTransparency = 1
lbl.Text = fmt and fmt(initial) or tostring(math.floor(initial))
lbl.TextColor3 = Color3.fromRGB(0,255,140)
lbl.TextSize = 12
lbl.Font = Enum.Font.GothamBold
lbl.TextXAlignment = Enum.TextXAlignment.Right
lbl.Parent = R
local dragging = false
bar.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1
or i.UserInputType == Enum.UserInputType.Touch then dragging = true end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1
or i.UserInputType == Enum.UserInputType.Touch then dragging = false end
end)
UserInputService.InputChanged:Connect(function(i)
if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement
or i.UserInputType == Enum.UserInputType.Touch) then
local rel = math.clamp(
(i.Position.X - bar.AbsolutePosition.X)
/ bar.AbsoluteSize.X, 0, 1)
local val = minV + rel * (maxV - minV)
fill.Size = UDim2.new(rel, 0, 1, 0)
lbl.Text = fmt and fmt(val) or tostring(math.floor(val))
onUpdate(val)
end
end)
end
makeSlider(538, "FOV", 25, 500, CONFIG.FOV, nil, function(v)
CONFIG.FOV = math.floor(v)
fovCircle.Radius = CONFIG.FOV
end)
local counterLbl = Instance.new("TextLabel")
counterLbl.Size = UDim2.new(1, -20, 0, 20)
counterLbl.Position = UDim2.new(0, 10, 1, -26)
counterLbl.BackgroundTransparency = 1
counterLbl.Text = "Shots: 0 | X=aim R=rapid T=trigger G=360"
counterLbl.TextColor3 = Color3.fromRGB(140,140,160)
counterLbl.TextSize = 10
counterLbl.Font = Enum.Font.Gotham
counterLbl.TextXAlignment = Enum.TextXAlignment.Center
counterLbl.Parent = Main
RunService.Heartbeat:Connect(function()
counterLbl.Text = string.format(
"Shots: %d | X=aim R=rapid T=trigger G=360", shotsTotal)
end)
local function setSA(on)
CONFIG.SilentAim = on
setToggle(saBtn, on)
fovCircle.Visible = (on or CONFIG.Triggerbot) and CONFIG.ShowFOV and not CONFIG.ThreeSixty
end
local function setRF(on) CONFIG.RapidFire = on; setToggle(rfBtn, on) end
local function setTB(on)
CONFIG.Triggerbot = on
setToggle(tbBtn, on)
fovCircle.Visible = (on or CONFIG.SilentAim) and CONFIG.ShowFOV and not CONFIG.ThreeSixty
end
local function setWC(on)
CONFIG.Wallcheck = on
setToggle(wcBtn, on)
end
local function setTS(on)
CONFIG.ThreeSixty = on
setToggle(tsBtn, on)
if on then
fovCircle.Visible = false
print("[360] ON")
else
fovCircle.Visible = (CONFIG.SilentAim or CONFIG.Triggerbot) and CONFIG.ShowFOV
print("[360] OFF")
end
end
local function setESP(on) CONFIG.ESPEnabled = on; setToggle(espBtn, on) end
local function setSkel(on) CONFIG.ShowSkeleton = on; setToggle(skelBtn, on) end
local function setHealth(on) CONFIG.ShowHealth = on; setToggle(healthBtn, on) end
local function setName(on) CONFIG.ShowName = on; setToggle(nameBtn, on) end
local function setWeapon(on) CONFIG.ShowWeapon = on; setToggle(weaponBtn, on) end
local function setDist(on) CONFIG.ShowDistance = on; setToggle(distBtn, on) end
local function setDyn(on) CONFIG.DynamicPart = on; setToggle(dynBtn, on) end
saBtn.MouseButton1Click:Connect(function() setSA(not CONFIG.SilentAim) end)
rfBtn.MouseButton1Click:Connect(function() setRF(not CONFIG.RapidFire) end)
tbBtn.MouseButton1Click:Connect(function() setTB(not CONFIG.Triggerbot) end)
wcBtn.MouseButton1Click:Connect(function() setWC(not CONFIG.Wallcheck) end)
tsBtn.MouseButton1Click:Connect(function() setTS(not CONFIG.ThreeSixty) end)
espBtn.MouseButton1Click:Connect(function() setESP(not CONFIG.ESPEnabled) end)
skelBtn.MouseButton1Click:Connect(function() setSkel(not CONFIG.ShowSkeleton) end)
healthBtn.MouseButton1Click:Connect(function() setHealth(not CONFIG.ShowHealth) end)
nameBtn.MouseButton1Click:Connect(function() setName(not CONFIG.ShowName) end)
weaponBtn.MouseButton1Click:Connect(function() setWeapon(not CONFIG.ShowWeapon) end)
distBtn.MouseButton1Click:Connect(function() setDist(not CONFIG.ShowDistance) end)
dynBtn.MouseButton1Click:Connect(function() setDyn(not CONFIG.DynamicPart) end)
local PARTS = {"Head","HumanoidRootPart","UpperTorso","LowerTorso","Torso"}
local pIdx = 1
for i, p in ipairs(PARTS) do
if p == CONFIG.TargetPart then pIdx = i break end
end
pBtn.MouseButton1Click:Connect(function()
pIdx = pIdx % #PARTS + 1
CONFIG.TargetPart = PARTS[pIdx]
pBtn.Text = CONFIG.TargetPart
end)
local guiOpen = true
UserInputService.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.X then
setSA(not CONFIG.SilentAim)
elseif input.KeyCode == Enum.KeyCode.R then
setRF(not CONFIG.RapidFire)
elseif input.KeyCode == Enum.KeyCode.T then
setTB(not CONFIG.Triggerbot)
elseif input.KeyCode == Enum.KeyCode.G then
setTS(not CONFIG.ThreeSixty)
elseif input.KeyCode == Enum.KeyCode.RightShift then
guiOpen = not guiOpen
Main.Visible = guiOpen
end
end)
setSA(CONFIG.SilentAim)
setRF(CONFIG.RapidFire)
setTB(CONFIG.Triggerbot)
setWC(CONFIG.Wallcheck)
setTS(CONFIG.ThreeSixty)
setESP(CONFIG.ESPEnabled)
setSkel(CONFIG.ShowSkeleton)
setHealth(CONFIG.ShowHealth)
setName(CONFIG.ShowName)
setWeapon(CONFIG.ShowWeapon)
setDist(CONFIG.ShowDistance)
setDyn(CONFIG.DynamicPart)
print("[FINAL] Loaded. X=aim | R=rapid | T=trigger | G=360 | RightShift=GUI")Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place