-- [[ 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 ]] -- Jailbreak Script v9 | God Mode + Auto Shoot + Brutal Aim + Full Silent local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local Lighting = game:GetService("Lighting") local CoreGui = game:GetService("CoreGui") local VirtualUser = game:GetService("VirtualUser") local Camera = Workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() getgenv().JBS = { Aimbot = true, SilentAim = false, ShowFOV = false, AimbotSnap = true, AutoShoot = false, GodMode = false, ESP = false, ESP2D = false, ESPSkeleton = false, ESPVisibility = false, ShowTeam = false, ESPName = true, ESPDist = true, Fly = false, NoRecoil = false, NoSpread = false, Noclip = false, Triggerbot = false, AntiAFK = false, AntiFlash = false, AntiSmoke = false, SwitchBtnLocked = false, RequireLOS = false, AimbotFOV = 250, AimbotSmooth = 0.2, AimbotPart = "Head", AimbotDistWeight = 0.3, MaxAimDistance = 500, MaxVerticalDelta = 300, FlySpeed = 80, TriggerDelay = 0.05, FlyBV = nil, FlyBG = nil, NoclipConn = nil, AntiAFKConn = nil, ESPTracked = {}, HealthHookInstalled = false, } local bypassHook = false local lockedTarget = nil local shootingUntil = 0 local RECOIL_WINDOW = 0.18 local function markShooting() shootingUntil = os.clock() + RECOIL_WINDOW end local function getViewportCenter() local vp = Camera.ViewportSize return Vector2.new(vp.X / 2, vp.Y / 2) end local function isEnemy(p) if p == LocalPlayer then return false end if JBS.ShowTeam then return true end if p.Team and LocalPlayer.Team then return p.Team ~= LocalPlayer.Team end return true end -- ============================================ -- STRICT RIG FILTER -- ============================================ local function getPlayerRig(p) if not p or p == LocalPlayer then return nil end if not p:IsA("Player") then return nil end if p.Parent ~= Players then return nil end local char = p.Character if not char or char.ClassName ~= "Model" then return nil end if char.Parent ~= Workspace then return nil end local hum = char:FindFirstChildOfClass("Humanoid") if not hum or hum.Health <= 0 then return nil end local root = hum.RootPart or char:FindFirstChild("HumanoidRootPart") if not root or not root:IsA("BasePart") then return nil end local head = char.Head or char:FindFirstChild("Head") if not head or not head:IsA("BasePart") then return nil end if (head.Position - root.Position).Magnitude > 6 then return nil end local torso = char:FindFirstChild("UpperTorso") or char:FindFirstChild("LowerTorso") or char:FindFirstChild("Torso") if not torso or not torso:IsA("BasePart") then return nil end return { char = char, hum = hum, root = root, head = head, torso = torso, rigType = hum.RigType } end local function getAimPart(rig) if not rig then return nil end local p = rig.char:FindFirstChild(JBS.AimbotPart) if p and p:IsA("BasePart") and not p.Anchored then if (p.Position - rig.root.Position).Magnitude < 6 then return p end end return rig.head end local function targetPassesFilters(rig) if not rig then return false end local root = rig.root if root.Position.Y > 10000 or root.Position.Y < -500 then return false end local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not myRoot then return true end local dist = (root.Position - myRoot.Position).Magnitude if dist > JBS.MaxAimDistance then return false end local vDelta = math.abs(root.Position.Y - myRoot.Position.Y) if vDelta > JBS.MaxVerticalDelta then return false end if JBS.RequireLOS then local rp = RaycastParams.new() rp.FilterType = Enum.RaycastFilterType.Exclude rp.FilterDescendantsInstances = { LocalPlayer.Character, rig.char } if Workspace:Raycast(Camera.CFrame.Position, root.Position - Camera.CFrame.Position, rp) then return false end end return true end local function collectTargets(maxDist) local center = getViewportCenter() local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") local candidates = {} for _, p in ipairs(Players:GetPlayers()) do if not isEnemy(p) then continue end local rig = getPlayerRig(p) if not rig then continue end if not targetPassesFilters(rig) then continue end local sp, onScreen = Camera:WorldToViewportPoint(rig.root.Position) if not onScreen then continue end local sd = (Vector2.new(sp.X, sp.Y) - center).Magnitude if sd > (maxDist or JBS.AimbotFOV) then continue end local d3 = myRoot and (rig.root.Position - myRoot.Position).Magnitude or 0 table.insert(candidates, { rig = rig, plr = p, part = getAimPart(rig), score = sd + d3 * JBS.AimbotDistWeight, }) end table.sort(candidates, function(a, b) return a.score < b.score end) return candidates end local function targetStillValid(t) if not t or not t.plr or not t.plr.Parent then return false end local rig = getPlayerRig(t.plr) if not rig then return false end if not targetPassesFilters(rig) then return false end t.rig = rig t.part = getAimPart(rig) return t.part ~= nil end local function getTarget(maxDist) if lockedTarget and targetStillValid(lockedTarget) then return lockedTarget end lockedTarget = collectTargets(maxDist)[1] return lockedTarget end local function findNextTarget(current, maxDist) local c = collectTargets(maxDist) if #c == 0 then return nil end if not current then return c[1] end for i, cand in ipairs(c) do if cand.plr == current.plr then return c[i + 1] end end return c[1] end -- ============================================ -- GOD MODE (hook Health setter + loop enforcement) -- ============================================ local godModeHealth = 1000000 pcall(function() local mt = getrawmetatable(game) local oldNew = mt.__newindex setreadonly(mt, false) mt.__newindex = newcclosure(function(self, key, value) if JBS.GodMode and typeof(self) == "Instance" and self:IsA("Humanoid") then if self:IsDescendantOf(LocalPlayer.Character or game) then if key == "Health" and type(value) == "number" and value < self.MaxHealth then return end if key == "MaxHealth" and type(value) == "number" and value < godModeHealth then return oldNew(self, key, godModeHealth) end end end return oldNew(self, key, value) end) setreadonly(mt, true) end) task.spawn(function() while task.wait(0.1) do if JBS.GodMode then local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then pcall(function() if hum.MaxHealth ~= godModeHealth then hum.MaxHealth = godModeHealth end if hum.Health ~= godModeHealth then hum.Health = godModeHealth end end) end end end end) -- ============================================ -- AIMBOT — default SNAP instant lock -- ============================================ local function applyAimbotToCFrame(inputCF) local t = getTarget() if not t or not t.part then return inputCF end local pos = typeof(inputCF) == "CFrame" and inputCF.Position or Camera.CFrame.Position local desired = CFrame.lookAt(pos, t.part.Position) if JBS.AimbotSnap or JBS.AimbotSmooth <= 0.39 then return desired end local alpha = math.clamp(JBS.AimbotSmooth * 0.5, 0.05, 1) return inputCF:Lerp(desired, alpha) end pcall(function() local mt = getrawmetatable(game) local oldNew = mt.__newindex setreadonly(mt, false) mt.__newindex = newcclosure(function(self, key, value) if bypassHook then return oldNew(self, key, value) end if key == "CFrame" and typeof(self) == "Instance" and self == Camera then if JBS.Aimbot then return oldNew(self, key, applyAimbotToCFrame(value)) end end return oldNew(self, key, value) end) setreadonly(mt, true) end) -- Recoil local prevCamCF = Camera.CFrame RunService:BindToRenderStep("JBS_RecoilStrip", Enum.RenderPriority.Camera.Value + 2, function() local cur = Camera.CFrame if JBS.NoRecoil and os.clock() < shootingUntil then local delta = prevCamCF.Rotation:ToObjectSpace(cur.Rotation) local rx, ry, rz = delta:ToEulerAnglesXYZ() if math.abs(rx) + math.abs(ry) + math.abs(rz) < 0.15 then bypassHook = true Camera.CFrame = CFrame.new(cur.Position) * prevCamCF.Rotation bypassHook = false else prevCamCF = cur end else prevCamCF = cur end end) UserInputService.InputBegan:Connect(function(i, g) if g then return end if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then markShooting() end end) -- ============================================ -- SILENT AIM (GetMouseLocation + all ray methods) -- ============================================ local function getSilentTarget() return getTarget(JBS.AimbotFOV) end pcall(function() local mt = getrawmetatable(game) local oldIndex = mt.__index local oldNamecall = mt.__namecall setreadonly(mt, false) mt.__index = newcclosure(function(self, key) if JBS.SilentAim then local t = getSilentTarget() if t and t.part then if key == "Hit" and (self == Mouse or self == Camera) then return CFrame.new(t.part.Position) end if key == "Target" and (self == Mouse or self == Camera) then return t.part end if key == "UnitRay" and self == Mouse then local o = Camera.CFrame.Position return Ray.new(o, (t.part.Position - o).Unit * 2000) end if key == "GetMouseLocation" and self == UserInputService then local sp, onScreen = Camera:WorldToViewportPoint(t.part.Position) if onScreen then return Vector2.new(sp.X, sp.Y) end end end end return oldIndex(self, key) end) mt.__namecall = newcclosure(function(self, ...) local method = getnamecallmethod() if JBS.SilentAim and (method == "ScreenPointToRay" or method == "ViewportPointToRay") then local t = getSilentTarget() if t and t.part then local o = Camera.CFrame.Position return Ray.new(o, (t.part.Position - o).Unit * 1000) end end if (method == "Raycast" or method == "FindPartOnRay" or method == "FindPartOnRayWithIgnoreList" or method == "FindPartOnRayWithWhitelist") and (JBS.SilentAim or JBS.NoSpread) then local args = {...} local camOrigin = Camera.CFrame.Position local camDir = Camera.CFrame.LookVector local origin if method == "Raycast" then origin = args[1] elseif typeof(self) == "Ray" then origin = self.Origin end local isPlayerRay = typeof(origin) == "Vector3" and (origin - camOrigin).Magnitude < 15 if isPlayerRay and JBS.SilentAim then local t = getSilentTarget() if t and t.part then if method == "Raycast" and typeof(args[1]) == "Vector3" and typeof(args[2]) == "Vector3" then args[2] = (t.part.Position - args[1]).Unit * args[2].Magnitude elseif typeof(self) == "Ray" then return oldNamecall(Ray.new(self.Origin, (t.part.Position - self.Origin).Unit * self.Direction.Magnitude), ...) end return oldNamecall(self, unpack(args)) end end if isPlayerRay and JBS.NoSpread then if method == "Raycast" and typeof(args[1]) == "Vector3" and typeof(args[2]) == "Vector3" then local dir = args[2] if dir.Magnitude > 0 and dir.Unit:Dot(camDir) > 0.5 then args[2] = camDir * dir.Magnitude end elseif typeof(self) == "Ray" then local dir = self.Direction if dir.Magnitude > 0 and dir.Unit:Dot(camDir) > 0.5 then return oldNamecall(Ray.new(self.Origin, camDir * dir.Magnitude), ...) end end end return oldNamecall(self, unpack(args)) end return oldNamecall(self, ...) end) setreadonly(mt, true) end) if hookfunction then pcall(function() local oldRayNew = Ray.new hookfunction(Ray.new, function(origin, direction) if typeof(origin) ~= "Vector3" or typeof(direction) ~= "Vector3" then return oldRayNew(origin, direction) end if (origin - Camera.CFrame.Position).Magnitude > 15 then return oldRayNew(origin, direction) end if JBS.SilentAim then local t = getSilentTarget() if t and t.part then return oldRayNew(origin, (t.part.Position - origin).Unit * direction.Magnitude) end end if JBS.NoSpread then local camDir = Camera.CFrame.LookVector if direction.Magnitude > 0 and direction.Unit:Dot(camDir) > 0.5 then return oldRayNew(origin, camDir * direction.Magnitude) end end return oldRayNew(origin, direction) end) end) end -- ============================================ -- TRIGGERBOT + AUTO SHOOT (fire via VirtualUser fallback) -- ============================================ local function fireOnce() markShooting() pcall(function() if mouse1click then mouse1click() else VirtualUser:CaptureController() VirtualUser:ClickButton1(Vector2.new(0, 0)) end end) pcall(function() VirtualUser:CaptureController() VirtualUser:ClickButton1(Vector2.new(0, 0)) end) end task.spawn(function() while task.wait(JBS.TriggerDelay) do if JBS.Triggerbot and lockedTarget and targetStillValid(lockedTarget) then local t = getTarget(80) if t and t.plr and t.plr.Character then local hum = t.plr.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then fireOnce() end end end if JBS.AutoShoot and JBS.Aimbot and lockedTarget and targetStillValid(lockedTarget) then fireOnce() end end end) -- ============================================ -- ESP — parent ke char (bukan CoreGui), AlwaysOnTop -- ============================================ local function isPartVisible(part, char) if not JBS.ESPVisibility then return true end local origin = Camera.CFrame.Position local rp = RaycastParams.new() rp.FilterType = Enum.RaycastFilterType.Exclude local excludes = { LocalPlayer.Character } if char then table.insert(excludes, char) end rp.FilterDescendantsInstances = excludes return Workspace:Raycast(origin, part.Position - origin, rp) == nil end local function clearESP() for _, entry in pairs(JBS.ESPTracked) do if entry.highlight then pcall(function() entry.highlight:Destroy() end) end if entry.billboard then pcall(function() entry.billboard:Destroy() end) end if entry.boxLines then for _, l in ipairs(entry.boxLines) do pcall(function() l:Remove() end) end end if entry.skelLines then for _, l in ipairs(entry.skelLines) do pcall(function() l:Remove() end) end end end JBS.ESPTracked = {} end local function removePlayerESP(p) local e = JBS.ESPTracked[p] if not e then return end if e.highlight then pcall(function() e.highlight:Destroy() end) end if e.billboard then pcall(function() e.billboard:Destroy() end) end if e.boxLines then for _, l in ipairs(e.boxLines) do pcall(function() l:Remove() end) end end if e.skelLines then for _, l in ipairs(e.skelLines) do pcall(function() l:Remove() end) end end JBS.ESPTracked[p] = nil end local function attachESP(p) if p == LocalPlayer or not isEnemy(p) then removePlayerESP(p) return end local rig = getPlayerRig(p) if not rig then removePlayerESP(p) return end local char = rig.char local entry = JBS.ESPTracked[p] if not entry then entry = { boxLines = {}, skelLines = {} } JBS.ESPTracked[p] = entry end -- Highlight parent = char, adornee = char (v7 style — works) if JBS.ESP then if not entry.highlight or entry.highlight.Parent ~= char or entry.highlight.Adornee ~= char then if entry.highlight then pcall(function() entry.highlight:Destroy() end) end local hl = Instance.new("Highlight") hl.Name = "JBS_HL" hl.FillColor = Color3.fromRGB(255, 60, 60) hl.OutlineColor = Color3.fromRGB(255, 255, 0) hl.FillTransparency = 0.45 hl.OutlineTransparency = 0.2 hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Adornee = char hl.Parent = char entry.highlight = hl else entry.highlight.Enabled = true end else if entry.highlight then entry.highlight.Enabled = false end end -- Billboard if JBS.ESPName or JBS.ESPDist then if not entry.billboard or entry.billboard.Parent ~= rig.head then if entry.billboard then pcall(function() entry.billboard:Destroy() end) end local bb = Instance.new("BillboardGui") bb.Name = "JBS_BB" bb.Size = UDim2.new(0, 160, 0, 40) bb.StudsOffset = Vector3.new(0, 2, 0) bb.AlwaysOnTop = true bb.Parent = rig.head local lbl = Instance.new("TextLabel") lbl.Name = "Lbl" lbl.Size = UDim2.new(1, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.TextColor3 = Color3.fromRGB(255, 255, 0) lbl.Font = Enum.Font.GothamBold lbl.TextSize = 14 lbl.TextStrokeTransparency = 0 lbl.Text = p.Name lbl.Parent = bb entry.billboard = bb end entry.billboard.Enabled = true else if entry.billboard then entry.billboard.Enabled = false end end end local function refreshAllESP() if not JBS.ESP and not JBS.ESP2D and not JBS.ESPSkeleton then clearESP() return end for _, p in ipairs(Players:GetPlayers()) do attachESP(p) end end Players.PlayerAdded:Connect(function(p) p.CharacterAdded:Connect(function() task.defer(function() attachESP(p) end) end) p.CharacterRemoving:Connect(function() removePlayerESP(p) end) end) Players.PlayerRemoving:Connect(function(p) removePlayerESP(p) end) task.spawn(function() while task.wait(0.1) do if JBS.ESP or JBS.ESP2D or JBS.ESPSkeleton then for _, p in ipairs(Players:GetPlayers()) do if isEnemy(p) and p.Character then attachESP(p) elseif not isEnemy(p) then removePlayerESP(p) end end end end end) RunService.RenderStepped:Connect(function() if not JBS.ESPDist then return end local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not myRoot then return end for p, entry in pairs(JBS.ESPTracked) do if entry.billboard and entry.billboard.Parent then local lbl = entry.billboard:FindFirstChild("Lbl") local root = p.Character and p.Character:FindFirstChild("HumanoidRootPart") if lbl and root then local txt = p.Name if JBS.ESPDist then txt = txt .. " [" .. math.floor((root.Position - myRoot.Position).Magnitude) .. "m]" end lbl.Text = txt end end end end) -- 2D + Skeleton local function ensureBoxLines(entry) if #entry.boxLines >= 4 then return end for i = 1, 4 do local l = Drawing.new("Line") l.Thickness = 1.5 l.Color = Color3.fromRGB(255, 60, 60) l.Transparency = 1 l.Visible = false table.insert(entry.boxLines, l) end end local function ensureSkelLines(entry, count) while #entry.skelLines < count do local l = Drawing.new("Line") l.Thickness = 2 l.Color = Color3.fromRGB(255, 255, 0) l.Transparency = 1 l.Visible = false table.insert(entry.skelLines, l) end end local function drawSkeleton(entry, rig, visible) local bones = {} if rig.rigType == Enum.HumanoidRigType.R15 then local function gp(n) local x = rig.char:FindFirstChild(n) if x and x:IsA("BasePart") then return x end end local h, ut, lt = rig.head, gp("UpperTorso"), gp("LowerTorso") local lua_a, lla = gp("LeftUpperArm"), gp("LeftLowerArm") local rua, rla = gp("RightUpperArm"), gp("RightLowerArm") local lul, lll = gp("LeftUpperLeg"), gp("LeftLowerLeg") local rul, rll = gp("RightUpperLeg"), gp("RightLowerLeg") if h and ut then table.insert(bones, {h, ut}) end if ut and lt then table.insert(bones, {ut, lt}) end if ut and lua_a then table.insert(bones, {ut, lua_a}) end if lua_a and lla then table.insert(bones, {lua_a, lla}) end if ut and rua then table.insert(bones, {ut, rua}) end if rua and rla then table.insert(bones, {rua, rla}) end if lt and lul then table.insert(bones, {lt, lul}) end if lul and lll then table.insert(bones, {lul, lll}) end if lt and rul then table.insert(bones, {lt, rul}) end if rul and rll then table.insert(bones, {rul, rll}) end else local h = rig.head local t = rig.char:FindFirstChild("Torso") local la, ra = rig.char:FindFirstChild("Left Arm"), rig.char:FindFirstChild("Right Arm") local ll, rl = rig.char:FindFirstChild("Left Leg"), rig.char:FindFirstChild("Right Leg") if h and t then table.insert(bones, {h, t}) end if t and la then table.insert(bones, {t, la}) end if t and ra then table.insert(bones, {t, ra}) end if t and ll then table.insert(bones, {t, ll}) end if t and rl then table.insert(bones, {t, rl}) end end ensureSkelLines(entry, #bones) for i, pair in ipairs(bones) do if visible then local av, aon = Camera:WorldToViewportPoint(pair[1].Position) local bv, bon = Camera:WorldToViewportPoint(pair[2].Position) if aon and bon then entry.skelLines[i].From = Vector2.new(av.X, av.Y) entry.skelLines[i].To = Vector2.new(bv.X, bv.Y) entry.skelLines[i].Visible = true else entry.skelLines[i].Visible = false end else entry.skelLines[i].Visible = false end end for i = #bones + 1, #entry.skelLines do entry.skelLines[i].Visible = false end end local function drawBox2D(entry, rig, visible) ensureBoxLines(entry) if not visible then for _, l in ipairs(entry.boxLines) do l.Visible = false end return end local hp = Camera:WorldToViewportPoint(rig.head.Position + Vector3.new(0, 0.5, 0)) local fp = Camera:WorldToViewportPoint(rig.root.Position - Vector3.new(0, 2.5, 0)) if not hp or not fp then for _, l in ipairs(entry.boxLines) do l.Visible = false end return end local h = math.abs(fp.Y - hp.Y) if h < 8 then for _, l in ipairs(entry.boxLines) do l.Visible = false end return end local w = h * 0.55 local left, right = hp.X - w/2, hp.X + w/2 local topY, botY = hp.Y, fp.Y local pts = { {Vector2.new(left, topY), Vector2.new(right, topY)}, {Vector2.new(right, topY), Vector2.new(right, botY)}, {Vector2.new(right, botY), Vector2.new(left, botY)}, {Vector2.new(left, botY), Vector2.new(left, topY)}, } for i, p in ipairs(pts) do entry.boxLines[i].From = p[1] entry.boxLines[i].To = p[2] entry.boxLines[i].Visible = true end end RunService.RenderStepped:Connect(function() for p, entry in pairs(JBS.ESPTracked) do local rig = getPlayerRig(p) if not rig then for _, l in ipairs(entry.boxLines) do l.Visible = false end for _, l in ipairs(entry.skelLines) do l.Visible = false end continue end local _, onScreen = Camera:WorldToViewportPoint(rig.root.Position) local visible = onScreen and (not JBS.ESPVisibility or isPartVisible(rig.root, rig.char)) if JBS.ESP2D then drawBox2D(entry, rig, visible) else for _, l in ipairs(entry.boxLines) do l.Visible = false end end if JBS.ESPSkeleton then drawSkeleton(entry, rig, visible) else for _, l in ipairs(entry.skelLines) do l.Visible = false end end end for p, entry in pairs(JBS.ESPTracked) do if not p.Parent then if entry.highlight then pcall(function() entry.highlight:Destroy() end) end if entry.billboard then pcall(function() entry.billboard:Destroy() end) end for _, l in ipairs(entry.boxLines) do pcall(function() l:Remove() end) end for _, l in ipairs(entry.skelLines) do pcall(function() l:Remove() end) end JBS.ESPTracked[p] = nil end end end) -- ============================================ -- ANTI-FLASH + ANTI-SMOKE (extended filter) -- ============================================ task.spawn(function() while task.wait(0.1) do if not JBS.AntiFlash then continue end for _, v in pairs(Lighting:GetChildren()) do if v:IsA("ColorCorrectionEffect") and (v.Brightness > 0.3 or v.Contrast > 0.3) then v.Enabled = false elseif v:IsA("BloomEffect") or v:IsA("SunRaysEffect") then v.Enabled = false end end local pg = LocalPlayer:FindFirstChild("PlayerGui") if pg then for _, v in pairs(pg:GetDescendants()) do local n = v.Name:lower() if n:find("flash") or n:find("blind") or n:find("white") or n:find("grenade") or n:find("glare") then pcall(function() if v:IsA("ScreenGui") or v:IsA("Frame") or v:IsA("ImageLabel") then v.Enabled = false v.Visible = false end end) end end end end end) local SMOKE_KEYS = {"smoke","dust","fog","gas","haze","mist","cloud","poison","toxic","vapor","steam","tear","spore"} local function isSmokeName(n) n = n:lower() for _, k in ipairs(SMOKE_KEYS) do if n:find(k) then return true end end return false end task.spawn(function() while task.wait(0.15) do if not JBS.AntiSmoke then continue end for _, v in pairs(Workspace:GetDescendants()) do if v:IsA("Smoke") then v.Enabled = false elseif v:IsA("Fire") then v.Enabled = false elseif v:IsA("ParticleEmitter") then if isSmokeName(v.Name) or isSmokeName(v.Parent and v.Parent.Name or "") then v.Enabled = false end elseif v:IsA("Beam") or v:IsA("Trail") then if isSmokeName(v.Name) then v.Enabled = false end elseif v:IsA("BasePart") then if isSmokeName(v.Name) then v.Transparency = 1 v.CanCollide = false end end end end end) -- ============================================ -- Fly / Noclip / Anti-AFK -- ============================================ local function toggleFly(state) local char = LocalPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if not hrp then return end if state then local bv = Instance.new("BodyVelocity") bv.Name = "JBS_FlyBV" bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bv.Velocity = Vector3.new(0, 0, 0) bv.Parent = hrp local bg = Instance.new("BodyGyro") bg.Name = "JBS_FlyBG" bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bg.P = 1000 bg.D = 50 bg.Parent = hrp JBS.FlyBV, JBS.FlyBG = bv, bg task.spawn(function() while JBS.Fly do local c = LocalPlayer.Character local h = c and c:FindFirstChildOfClass("Humanoid") if not h or not JBS.FlyBV then break end local m = h.MoveDirection if m.Magnitude > 0 then JBS.FlyBV.Velocity = Camera.CFrame:VectorToWorldSpace(m) * JBS.FlySpeed else JBS.FlyBV.Velocity = Vector3.new(0, 0, 0) end JBS.FlyBG.CFrame = Camera.CFrame task.wait(0.03) end end) else if JBS.FlyBV then JBS.FlyBV:Destroy() JBS.FlyBV = nil end if JBS.FlyBG then JBS.FlyBG:Destroy() JBS.FlyBG = nil end end end local function toggleNoclip(state) if JBS.NoclipConn then JBS.NoclipConn:Disconnect() JBS.NoclipConn = nil end if state then JBS.NoclipConn = RunService.Stepped:Connect(function() local char = LocalPlayer.Character if char then for _, p in pairs(char:GetDescendants()) do if p:IsA("BasePart") and p.CanCollide then p.CanCollide = false end end end end) else local char = LocalPlayer.Character if char then for _, p in pairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = true end end end end end local function toggleAntiAFK(state) if JBS.AntiAFKConn then JBS.AntiAFKConn:Disconnect() JBS.AntiAFKConn = nil end if state then JBS.AntiAFKConn = LocalPlayer.Idled:Connect(function() pcall(function() VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new()) end) end) end end -- FOV circle local fovCircle pcall(function() fovCircle = Drawing.new("Circle") fovCircle.Thickness = 1.5 fovCircle.Color = Color3.fromRGB(255, 255, 255) fovCircle.Filled = false fovCircle.NumSides = 60 fovCircle.Visible = false end) RunService.RenderStepped:Connect(function() if fovCircle then local vp = Camera.ViewportSize fovCircle.Position = Vector2.new(vp.X / 2, vp.Y / 2) fovCircle.Radius = JBS.AimbotFOV fovCircle.Visible = JBS.ShowFOV end end) -- ============================================ -- UI -- ============================================ local gui = Instance.new("ScreenGui") gui.Name = "JailbreakScript" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = CoreGui local wm = Instance.new("TextLabel") wm.Size = UDim2.new(0, 260, 0, 26) wm.Position = UDim2.new(0, 15, 0, 10) wm.BackgroundColor3 = Color3.fromRGB(18, 18, 22) wm.BackgroundTransparency = 0.2 wm.TextColor3 = Color3.fromRGB(255, 200, 50) wm.Font = Enum.Font.GothamBold wm.TextSize = 13 wm.Text = " Jailbreak Script v9" wm.TextXAlignment = Enum.TextXAlignment.Left wm.Parent = gui Instance.new("UICorner", wm).CornerRadius = UDim.new(0, 6) local win = Instance.new("Frame") win.Size = UDim2.new(0, 370, 0, 490) win.Position = UDim2.new(0.5, -185, 0.5, -245) win.BackgroundColor3 = Color3.fromRGB(22, 22, 28) win.BorderSizePixel = 0 win.Active = false win.Parent = gui Instance.new("UICorner", win).CornerRadius = UDim.new(0, 12) Instance.new("UIStroke", win).Color = Color3.fromRGB(60, 60, 80) local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 42) header.BackgroundColor3 = Color3.fromRGB(30, 30, 40) header.BorderSizePixel = 0 header.Active = true header.Parent = win Instance.new("UICorner", header).CornerRadius = UDim.new(0, 12) local hTitle = Instance.new("TextLabel") hTitle.Size = UDim2.new(1, -80, 1, 0) hTitle.Position = UDim2.new(0, 14, 0, 0) hTitle.BackgroundTransparency = 1 hTitle.Text = "Jailbreak Script v9" hTitle.TextColor3 = Color3.new(1, 1, 1) hTitle.Font = Enum.Font.GothamBold hTitle.TextSize = 15 hTitle.TextXAlignment = Enum.TextXAlignment.Left hTitle.Parent = header local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 26, 0, 26) closeBtn.Position = UDim2.new(1, -34, 0, 8) closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeBtn.Text = "×" closeBtn.TextColor3 = Color3.new(1, 1, 1) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 18 closeBtn.Parent = header Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 6) local floatBtn = Instance.new("TextButton") floatBtn.Size = UDim2.new(0, 55, 0, 55) floatBtn.Position = UDim2.new(0, 20, 0, 180) floatBtn.BackgroundColor3 = Color3.fromRGB(80, 60, 200) floatBtn.Text = "⚡" floatBtn.TextColor3 = Color3.new(1, 1, 1) floatBtn.Font = Enum.Font.GothamBold floatBtn.TextSize = 24 floatBtn.Visible = false floatBtn.Parent = gui Instance.new("UICorner", floatBtn).CornerRadius = UDim.new(1, 0) closeBtn.MouseButton1Click:Connect(function() win.Visible = false floatBtn.Visible = true end) floatBtn.MouseButton1Click:Connect(function() win.Visible = true floatBtn.Visible = false end) local dragging, dragStart, startPos header.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = i.Position startPos = win.Position i.Changed:Connect(function() if i.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local d = i.Position - dragStart win.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end) local aimBtn = Instance.new("TextButton") aimBtn.Size = UDim2.new(0, 70, 0, 70) aimBtn.Position = UDim2.new(1, -90, 1, -100) aimBtn.BackgroundColor3 = Color3.fromRGB(200, 40, 40) aimBtn.BackgroundTransparency = 0.2 aimBtn.Text = "AIM" aimBtn.TextColor3 = Color3.new(1, 1, 1) aimBtn.Font = Enum.Font.GothamBold aimBtn.TextSize = 16 aimBtn.Visible = false aimBtn.Parent = gui Instance.new("UICorner", aimBtn).CornerRadius = UDim.new(1, 0) aimBtn.MouseButton1Down:Connect(function() JBS.Aimbot = true markShooting() end) aimBtn.MouseButton1Up:Connect(function() JBS.Aimbot = false lockedTarget = nil end) local switchBtn = Instance.new("TextButton") switchBtn.Size = UDim2.new(0, 60, 0, 60) switchBtn.Position = UDim2.new(0, 20, 0.5, -30) switchBtn.BackgroundColor3 = Color3.fromRGB(255, 140, 0) switchBtn.BackgroundTransparency = 0.15 switchBtn.Text = "🎯" switchBtn.TextColor3 = Color3.new(1, 1, 1) switchBtn.Font = Enum.Font.GothamBold switchBtn.TextSize = 26 switchBtn.Visible = false switchBtn.Active = true switchBtn.Parent = gui Instance.new("UICorner", switchBtn).CornerRadius = UDim.new(1, 0) local switchDragging, switchDragStart, switchStartPos, switchMoved = false, nil, nil, false switchBtn.InputBegan:Connect(function(i) if JBS.SwitchBtnLocked then return end if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then switchDragging = true switchMoved = false switchDragStart = i.Position switchStartPos = switchBtn.Position i.Changed:Connect(function() if i.UserInputState == Enum.UserInputState.End then switchDragging = false end end) end end) UserInputService.InputChanged:Connect(function(i) if switchDragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local d = i.Position - switchDragStart if d.Magnitude > 4 then switchMoved = true end switchBtn.Position = UDim2.new(switchStartPos.X.Scale, switchStartPos.X.Offset + d.X, switchStartPos.Y.Scale, switchStartPos.Y.Offset + d.Y) end end) switchBtn.MouseButton1Click:Connect(function() if switchMoved then switchMoved = false return end local nextT = findNextTarget(lockedTarget, JBS.AimbotFOV) if nextT then lockedTarget = nextT switchBtn.BackgroundColor3 = Color3.fromRGB(0, 200, 100) task.delay(0.3, function() if switchBtn and switchBtn.Parent then switchBtn.BackgroundColor3 = Color3.fromRGB(255, 140, 0) end end) else lockedTarget = nil switchBtn.BackgroundColor3 = Color3.fromRGB(200, 40, 40) task.delay(0.3, function() if switchBtn and switchBtn.Parent then switchBtn.BackgroundColor3 = Color3.fromRGB(255, 140, 0) end end) end end) local tabBar = Instance.new("Frame") tabBar.Size = UDim2.new(1, -20, 0, 32) tabBar.Position = UDim2.new(0, 10, 0, 50) tabBar.BackgroundTransparency = 1 tabBar.Parent = win local tabLayout = Instance.new("UIListLayout") tabLayout.FillDirection = Enum.FillDirection.Horizontal tabLayout.Padding = UDim.new(0, 4) tabLayout.Parent = tabBar local content = Instance.new("Frame") content.Size = UDim2.new(1, -20, 1, -95) content.Position = UDim2.new(0, 10, 0, 88) content.BackgroundTransparency = 1 content.Parent = win content.ClipsDescendants = true local contentScroll = Instance.new("ScrollingFrame") contentScroll.Size = UDim2.new(1, 0, 1, 0) contentScroll.BackgroundTransparency = 1 contentScroll.ScrollBarThickness = 6 contentScroll.ScrollBarImageColor3 = Color3.fromRGB(80, 60, 200) contentScroll.ScrollingEnabled = true contentScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y contentScroll.CanvasSize = UDim2.new(0, 0, 0, 0) contentScroll.Parent = content local contentLayout = Instance.new("UIListLayout") contentLayout.Padding = UDim.new(0, 6) contentLayout.Parent = contentScroll local pages, tabButtons = {}, {} local function createTab(name) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 105, 1, 0) btn.BackgroundColor3 = Color3.fromRGB(40, 40, 52) btn.Text = name btn.TextColor3 = Color3.fromRGB(180, 180, 200) btn.Font = Enum.Font.GothamMedium btn.TextSize = 12 btn.Parent = tabBar Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local page = Instance.new("Frame") page.Size = UDim2.new(1, -6, 0, 0) page.AutomaticSize = Enum.AutomaticSize.Y page.BackgroundTransparency = 1 page.Visible = false page.Parent = contentScroll Instance.new("UIListLayout", page).Padding = UDim.new(0, 6) pages[name] = page table.insert(tabButtons, { btn = btn, name = name }) btn.MouseButton1Click:Connect(function() for _, pg in pairs(pages) do pg.Visible = false end for _, tb in ipairs(tabButtons) do tb.btn.BackgroundColor3 = Color3.fromRGB(40, 40, 52) tb.btn.TextColor3 = Color3.fromRGB(180, 180, 200) end page.Visible = true btn.BackgroundColor3 = Color3.fromRGB(80, 60, 200) btn.TextColor3 = Color3.new(1, 1, 1) contentScroll.CanvasPosition = Vector2.new(0, 0) end) return page end local function makeToggle(parent, label, key, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -10, 0, 40) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 45) frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -60, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = label lbl.TextColor3 = Color3.fromRGB(220, 220, 230) lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = frame local ind = Instance.new("Frame") ind.Size = UDim2.new(0, 40, 0, 22) ind.Position = UDim2.new(1, -50, 0.5, -11) ind.BackgroundColor3 = Color3.fromRGB(60, 60, 70) ind.Parent = frame Instance.new("UICorner", ind).CornerRadius = UDim.new(1, 0) local circ = Instance.new("Frame") circ.Size = UDim2.new(0, 18, 0, 18) circ.Position = UDim2.new(0, 2, 0.5, -9) circ.BackgroundColor3 = Color3.fromRGB(180, 180, 190) circ.Parent = ind Instance.new("UICorner", circ).CornerRadius = UDim.new(1, 0) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 1, 0) btn.BackgroundTransparency = 1 btn.Text = "" btn.Parent = frame local state = JBS[key] or false if state then ind.BackgroundColor3 = Color3.fromRGB(80, 60, 200) circ.Position = UDim2.new(1, -20, 0.5, -9) circ.BackgroundColor3 = Color3.new(1, 1, 1) end btn.MouseButton1Click:Connect(function() state = not state JBS[key] = state if state then ind.BackgroundColor3 = Color3.fromRGB(80, 60, 200) circ.Position = UDim2.new(1, -20, 0.5, -9) circ.BackgroundColor3 = Color3.new(1, 1, 1) else ind.BackgroundColor3 = Color3.fromRGB(60, 60, 70) circ.Position = UDim2.new(0, 2, 0.5, -9) circ.BackgroundColor3 = Color3.fromRGB(180, 180, 190) end if callback then callback(state) end end) end local function makeSlider(parent, label, min, max, default, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -10, 0, 55) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 45) frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -20, 0, 22) lbl.Position = UDim2.new(0, 12, 0, 4) lbl.BackgroundTransparency = 1 lbl.Text = label .. ": " .. default lbl.TextColor3 = Color3.fromRGB(220, 220, 230) lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = frame local bar = Instance.new("Frame") bar.Size = UDim2.new(1, -24, 0, 6) bar.Position = UDim2.new(0, 12, 1, -16) bar.BackgroundColor3 = Color3.fromRGB(60, 60, 70) bar.Parent = frame Instance.new("UICorner", bar).CornerRadius = UDim.new(1, 0) local fill = Instance.new("Frame") fill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(80, 60, 200) fill.Parent = bar Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0) local knob = Instance.new("Frame") knob.Size = UDim2.new(0, 14, 0, 14) knob.Position = UDim2.new((default - min) / (max - min), -7, 0.5, -7) knob.BackgroundColor3 = Color3.new(1, 1, 1) knob.Parent = bar Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0) local dragging = false local function update(x) local rel = math.clamp((x - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1) local val = math.floor(min + (max - min) * rel) fill.Size = UDim2.new(rel, 0, 1, 0) knob.Position = UDim2.new(rel, -7, 0.5, -7) lbl.Text = label .. ": " .. val callback(val) end bar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true update(i.Position.X) end end) UserInputService.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then update(i.Position.X) end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end local function makeDropdown(parent, label, options, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -10, 0, 40) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 45) frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -20, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = label .. ": " .. options[1] lbl.TextColor3 = Color3.fromRGB(220, 220, 230) lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = frame local idx = 1 local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 1, 0) btn.BackgroundTransparency = 1 btn.Text = "" btn.Parent = frame btn.MouseButton1Click:Connect(function() idx = idx % #options + 1 lbl.Text = label .. ": " .. options[idx] callback(options[idx]) end) end local function makeButton(parent, label, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -10, 0, 38) btn.BackgroundColor3 = Color3.fromRGB(50, 50, 65) btn.Text = label btn.TextColor3 = Color3.fromRGB(220, 220, 230) btn.Font = Enum.Font.Gotham btn.TextSize = 12 btn.Parent = parent Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8) btn.MouseButton1Click:Connect(callback) end local mainTab = createTab("Main") local visTab = createTab("Visuals") local miscTab = createTab("Misc") makeToggle(mainTab, "Aimbot (Camera Lock)", "Aimbot", function(s) if s then markShooting() switchBtn.Visible = true else lockedTarget = nil switchBtn.Visible = false end end) makeToggle(mainTab, "Snap Aim (Instant)", "AimbotSnap") makeToggle(mainTab, "Silent Aim (Bullet Redirect)", "SilentAim") makeToggle(mainTab, "Auto Shoot (while aim)", "AutoShoot") makeToggle(mainTab, "Triggerbot", "Triggerbot") makeToggle(mainTab, "Show FOV Circle", "ShowFOV") makeToggle(mainTab, "Lock Switch Button", "SwitchBtnLocked") makeToggle(mainTab, "Require Line-of-Sight", "RequireLOS") makeSlider(mainTab, "FOV", 50, 700, 250, function(v) JBS.AimbotFOV = v end) makeSlider(mainTab, "Smooth (x100)", 1, 100, 20, function(v) JBS.AimbotSmooth = v / 100 end) makeSlider(mainTab, "Dist Weight", 0, 10, 3, function(v) JBS.AimbotDistWeight = v / 10 end) makeSlider(mainTab, "Max Aim Distance", 100, 1500, 500, function(v) JBS.MaxAimDistance = v end) makeSlider(mainTab, "Max Vertical Delta", 50, 1000, 300, function(v) JBS.MaxVerticalDelta = v end) makeDropdown(mainTab, "Aim Part", {"Head", "HumanoidRootPart", "UpperTorso", "Torso"}, function(v) JBS.AimbotPart = v end) makeToggle(visTab, "ESP Highlight", "ESP", function() refreshAllESP() end) makeToggle(visTab, "ESP 2D Box", "ESP2D") makeToggle(visTab, "ESP Skeleton", "ESPSkeleton") makeToggle(visTab, "ESP Visibility Check (no xray)", "ESPVisibility") makeToggle(visTab, "Show Teammates", "ShowTeam", function() refreshAllESP() end) makeToggle(visTab, "ESP Name", "ESPName") makeToggle(visTab, "ESP Distance", "ESPDist") makeToggle(visTab, "Full Bright", "FullBright", function(s) if s then Lighting.Brightness = 5 Lighting.ClockTime = 12 Lighting.FogEnd = 100000 Lighting.GlobalShadows = false else Lighting.Brightness = 2 Lighting.FogEnd = 1000 Lighting.GlobalShadows = true end end) makeButton(visTab, "Refresh ESP", function() refreshAllESP() end) makeToggle(miscTab, "God Mode", "GodMode") makeToggle(miscTab, "Fly", "Fly", function(s) toggleFly(s) end) makeToggle(miscTab, "Noclip", "Noclip", function(s) toggleNoclip(s) end) makeToggle(miscTab, "No Recoil", "NoRecoil") makeToggle(miscTab, "No Spread", "NoSpread") makeToggle(miscTab, "Anti-Flashbang", "AntiFlash") makeToggle(miscTab, "Anti-Smoke", "AntiSmoke") makeToggle(miscTab, "Anti-AFK", "AntiAFK", function(s) toggleAntiAFK(s) end) makeSlider(miscTab, "Fly Speed", 20, 300, 80, function(v) JBS.FlySpeed = v end) makeSlider(miscTab, "WalkSpeed", 16, 200, 16, function(v) local c = LocalPlayer.Character local h = c and c:FindFirstChildOfClass("Humanoid") if h then h.WalkSpeed = v end end) makeSlider(miscTab, "JumpPower", 50, 300, 50, function(v) local c = LocalPlayer.Character local h = c and c:FindFirstChildOfClass("Humanoid") if h then h.UseJumpPower = true h.JumpPower = v end end) makeButton(miscTab, "Toggle AIM Button", function() aimBtn.Visible = not aimBtn.Visible end) makeButton(miscTab, "Reset Character", function() local c = LocalPlayer.Character local h = c and c:FindFirstChildOfClass("Humanoid") if h then h.Health = 0 end end) for _, tb in ipairs(tabButtons) do if tb.name == "Main" then tb.btn:Fire("MouseButton1Click") break end end LocalPlayer.CharacterAdded:Connect(function() task.defer(function() if JBS.ESP or JBS.ESP2D or JBS.ESPSkeleton then refreshAllESP() end end) if JBS.Fly then task.defer(function() toggleFly(false) toggleFly(true) end) end lockedTarget = nil end) print("[Jailbreak Script v9] Loaded. God Mode + Auto Shoot + Full Silent.")