-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. 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 Rscripts 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")