-- [[ 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 ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Player = Players.LocalPlayer local Camera = workspace.CurrentCamera local YOUR_CLASS = "YOUR_CLASS_NAME" local RS = ReplicatedStorage:WaitForChild("Remotes") local Charge = RS:WaitForChild("Charge") local Activate = RS:WaitForChild("Activate") local Damage = RS:WaitForChild("Damage") local CFG = { KillAura = true, InfStamina = true, SpeedHack = true, SpeedValue = 120, HighJump = false, JumpHeight = 18, Fly = false, Noclip = false, Aimbot = true, FOV = 220, SafeKite = true, Dummy = false } local LV, AO = nil, nil local lastEnemies = {} local KillAuraButton local fovCircle = Drawing.new("Circle") fovCircle.Radius = CFG.FOV; fovCircle.Color = Color3.fromRGB(255,0,255) fovCircle.Thickness = 2; fovCircle.Filled = false; fovCircle.Transparency = 0.8 -- Respawn restore settings Player.CharacterAdded:Connect(function(char) task.wait(1) if CFG.SpeedHack and char:FindFirstChild("Humanoid") then char.Humanoid.WalkSpeed = CFG.SpeedValue end if CFG.HighJump and char:FindFirstChild("Humanoid") then char.Humanoid.JumpHeight = CFG.JumpHeight end end) -- Permanent speed + high jump RunService.Heartbeat:Connect(function() local char = Player.Character if not char or not char:FindFirstChild("Humanoid") then return end local hum = char.Humanoid if CFG.SpeedHack then hum.WalkSpeed = CFG.SpeedValue end if CFG.HighJump then hum.JumpHeight = CFG.JumpHeight end end) -- Infinite stamina task.spawn(function() while task.wait(0.1) do if CFG.InfStamina and Player:FindFirstChild("Energy") then Player.Energy.Value = math.huge end end end) -- Zero self-damage shield task.spawn(function() while task.wait(0.25) do local char = Player.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid:TakeDamage(0) for _,v in char:GetChildren() do if v.Name:find("Paint") or v.Name:find("Splash") or v.Name:find("Burn") then v:Destroy() end end end end end) -- Fly function local function toggleFly(v) CFG.Fly = v if v and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then local r = Player.Character.HumanoidRootPart if LV then LV:Destroy() end if AO then AO:Destroy() end LV = Instance.new("LinearVelocity", r); LV.MaxForce = Vector3.new(1e5,1e5,1e5) AO = Instance.new("AlignOrientation", r); AO.MaxTorque = Vector3.new(1e5,1e5,1e5); AO.Responsiveness = 200 task.spawn(function() while CFG.Fly and r and r.Parent do local look = Camera.CFrame.LookVector local move = Vector3.new(0,0,0) local mul = UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) and 2 or 1 if UserInputService:IsKeyDown(Enum.KeyCode.W) then move += look end if UserInputService:IsKeyDown(Enum.KeyCode.S) then move -= look end if UserInputService:IsKeyDown(Enum.KeyCode.A) then move -= Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then move += Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then move += Vector3.new(0,1,0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then move -= Vector3.new(0,1,0) end LV.VectorVelocity = (move.Magnitude > 0 and move.Unit or Vector3.new(0,0,0)) * 200 * mul task.wait() end end) else if LV then LV:Destroy() end if AO then AO:Destroy() end end end -- Noclip RunService.Stepped:Connect(function() if CFG.Noclip and Player.Character then for _,v in Player.Character:GetDescendants() do if v:IsA("BasePart") then v.CanCollide = false end end end end) -- Aimbot + FOV circle RunService.RenderStepped:Connect(function() fovCircle.Position = UserInputService:GetMouseLocation() fovCircle.Visible = CFG.Aimbot fovCircle.Radius = CFG.FOV if not CFG.Aimbot or not Player.Character then return end local best, min = nil, math.huge local enemies = workspace:FindFirstChild("Characters") and workspace.Characters:FindFirstChild("Enemies") if enemies then for _,e in enemies:GetChildren() do local head = e:FindFirstChild("Head") or e:FindFirstChild("HumanoidRootPart") local hum = e:FindFirstChild("Humanoid") if head and hum and hum.Health > 0 then local sp,on = Camera:WorldToViewportPoint(head.Position) if on then local d = (Vector2.new(sp.X,sp.Y) - fovCircle.Position).Magnitude if d < CFG.FOV and d < min then min = d; best = head end end end end if best then Camera.CFrame = CFrame.new(Camera.CFrame.Position, best.Position) end end end) -- ==================== UI ==================== local sg = Instance.new("ScreenGui", game.CoreGui) local m = Instance.new("Frame", sg) m.Name = "UltimateToolUI"; m.Size = UDim2.new(0,450,0,650); m.Position = UDim2.new(0.5,-225,0.5,-325) m.BackgroundColor3 = Color3.fromRGB(15,15,30); m.Draggable = true; m.Active = true local title = Instance.new("TextLabel", m) title.Size = UDim2.new(1,0,0,60); title.Text = "Ultimate Tool × SBBF v9.6 HighJump" title.BackgroundColor3 = Color3.fromRGB(255,0,255); title.TextColor3 = Color3.new(1,1,1) title.Font = Enum.Font.GothamBold; title.TextSize = 28 local close = Instance.new("TextButton", m) close.Size = UDim2.new(0,40,0,40); close.Position = UDim2.new(1,-45,0,10) close.BackgroundColor3 = Color3.fromRGB(255,50,50); close.Text = "X"; close.TextSize = 24 close.MouseButton1Click:Connect(function() sg:Destroy() end) local y = 80 local function btn(txt, def, callback) local b = Instance.new("TextButton", m) b.Size = UDim2.new(0.9,0,0,50); b.Position = UDim2.new(0.05,0,0,y); y = y + 60 b.BackgroundColor3 = def and Color3.fromRGB(0,255,0) or Color3.fromRGB(80,80,80) b.Text = (def and "[ON] " or "[OFF] ")..txt b.TextColor3 = Color3.new(1,1,1); b.TextSize = 22; b.Font = Enum.Font.Gotham b.MouseButton1Click:Connect(function() local newState = not (b.Text:find("%[ON%]") and true or false) b.BackgroundColor3 = newState and Color3.fromRGB(0,255,0) or Color3.fromRGB(80,80,80) b.Text = (newState and "[ON] " or "[OFF] ")..txt callback(newState) end) if txt:find("Auto Attack") then KillAuraButton = b end return b end btn("Auto Attack (Zero Self-Damage)", true, function(v) CFG.KillAura = v end) btn("Permanent Speed", true, function(v) CFG.SpeedHack = v end) btn("High Jump (2.5x)", false, function(v) CFG.HighJump = v end) btn("Infinite Stamina", true, function(v) CFG.InfStamina = v end) btn("Fly (WASD+Space)", false, toggleFly) btn("Noclip", false, function(v) CFG.Noclip = v end) btn("Aimbot + FOV Circle", true, function(v) CFG.Aimbot = v end) btn("Kite Mode (Safe Distance)", true, function(v) CFG.SafeKite = v end) -- Speed adjustment local speedLabel = Instance.new("TextLabel", m) speedLabel.Size = UDim2.new(0.9,0,0,30); speedLabel.Position = UDim2.new(0.05,0,0,y+10) speedLabel.BackgroundTransparency = 1; speedLabel.Text = "Speed: "..CFG.SpeedValue speedLabel.TextColor3 = Color3.new(1,1,1); speedLabel.TextSize = 24 local speedUp = Instance.new("TextButton", m) speedUp.Size = UDim2.new(0.44,0,0,40); speedUp.Position = UDim2.new(0.05,0,0,y+45) speedUp.BackgroundColor3 = Color3.fromRGB(0,200,0); speedUp.Text = "+20" speedUp.MouseButton1Click:Connect(function() CFG.SpeedValue = CFG.SpeedValue + 20; speedLabel.Text = "Speed: "..CFG.SpeedValue end) local speedDown = Instance.new("TextButton", m) speedDown.Size = UDim2.new(0.44,0,0,40); speedDown.Position = UDim2.new(0.51,0,0,y+45) speedDown.BackgroundColor3 = Color3.fromRGB(200,0,0); speedDown.Text = "-20" speedDown.MouseButton1Click:Connect(function() CFG.SpeedValue = math.max(16, CFG.SpeedValue - 20); speedLabel.Text = "Speed: "..CFG.SpeedValue end) -- ==================== Hotkeys ==================== UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == Enum.KeyCode.K then CFG.KillAura = not CFG.KillAura if KillAuraButton then KillAuraButton.BackgroundColor3 = CFG.KillAura and Color3.fromRGB(0,255,0) or Color3.fromRGB(80,80,80) KillAuraButton.Text = (CFG.KillAura and "[ON] " or "[OFF] ").."Auto Attack (Zero Self-Damage)" end game.StarterGui:SetCore("SendNotification", {Title = "Auto Attack", Text = CFG.KillAura and "Enabled" or "Disabled", Duration = 2}) elseif input.KeyCode == Enum.KeyCode.Insert then for k,v in pairs(CFG) do if type(v)=="boolean" then CFG[k]=false end end toggleFly(false) if m and m.Parent then m.Visible = not m.Visible end print("[EMERGENCY ALL OFF]") end end) -- ==================== Smart auto attack main loop (FIXED: No self-damage v2) ==================== local isAttacking = false local lastAttackTime = 0 local ATTACK_INTERVAL = 0.35 -- 攻击间隔(秒)[已修改为 0.35] local MAX_RETRIES = 2 -- 最大重试次数 -- 攻击状态枚举 local ATTACK_STATE = { IDLE = 0, CHARGING = 1, ACTIVATING = 2, DAMAGING = 3, DONE = 4, FAILED = 5 } task.spawn(function() while task.wait(0.15) do if not CFG.KillAura then isAttacking = false continue end local char = Player.Character if not char or not char:FindFirstChild("HumanoidRootPart") or (char:FindFirstChild("Humanoid") and char.Humanoid.Health <= 0) then isAttacking = false continue end local root = char.HumanoidRootPart local myPos = root.Position -- 冷却检查 if tick() - lastAttackTime < ATTACK_INTERVAL then continue end local valid = {} local groups = {} local current = {} local enemiesFolder = workspace:FindFirstChild("Characters") and workspace.Characters:FindFirstChild("Enemies") if not enemiesFolder then continue end for _,e in enemiesFolder:GetChildren() do if not CFG.Dummy and e.Name == "Training Dummy" then continue end local hum = e:FindFirstChild("Humanoid") local eroot = e:FindFirstChild("HumanoidRootPart") if not (hum and eroot and hum.Health > 0) then continue end local dist = (myPos - eroot.Position).Magnitude if dist < 12 then continue end current[e] = true if not groups[e.Name] then groups[e.Name] = {count=0, boss=false} end groups[e.Name].count += 1 if string.find(e.Name, "Boss") or string.find(e.Name, "Lord") or string.find(e.Name, "King") or hum.MaxHealth > 15000 then groups[e.Name].boss = true end table.insert(valid, { E = e, H = hum, R = eroot, D = dist, New = not lastEnemies[e], G = groups[e.Name].count, B = groups[e.Name].boss }) end lastEnemies = current if #valid == 0 then continue end table.sort(valid, function(a,b) if a.New ~= b.New then return a.New end if a.G ~= b.G then return a.G > b.G end if a.B ~= b.B then return not a.B end local hpA = a.H.Health / a.H.MaxHealth local hpB = b.H.Health / b.H.MaxHealth if hpA ~= hpB then return hpA < hpB end return a.D < b.D end) local t = valid[1] -- 安全风筝 if CFG.SafeKite then if t.D > 65 then root.CFrame = root.CFrame:lerp(CFrame.lookAt(root.Position, t.R.Position), 0.3) elseif t.D < 45 then root.CFrame = root.CFrame * CFrame.new(0,0,12) end end -- ===== 修复 v2:完整状态机 + 失败回滚 ===== if not isAttacking then isAttacking = true local attackState = ATTACK_STATE.IDLE local retryCount = 0 local target = t.H local targetPos = t.R.Position -- 攻击主循环(带重试机制) while attackState ~= ATTACK_STATE.DONE and retryCount < MAX_RETRIES do if attackState == ATTACK_STATE.IDLE then attackState = ATTACK_STATE.CHARGING retryCount = retryCount + 1 end if attackState == ATTACK_STATE.CHARGING then local pos = targetPos + Vector3.new(math.random(-8,8), math.random(30,48), math.random(-8,8)) local chargeOk = pcall(function() Charge:FireServer("Zealot", {Mousepos = pos}) -- 已修改为 Zealot end) if chargeOk then task.wait(0.08) -- 等待蓄力 attackState = ATTACK_STATE.ACTIVATING else -- Charge失败,等一会重试 task.wait(0.1) attackState = ATTACK_STATE.IDLE end end if attackState == ATTACK_STATE.ACTIVATING then local pos = targetPos + Vector3.new(math.random(-8,8), math.random(30,48), math.random(-8,8)) local activateOk = pcall(function() Activate:FireServer("Zealot", {Charge=100, Mousepos=pos, ComboNum=1}, 1, "+1") -- 已修改为 Zealot end) if activateOk then task.wait(0.08) -- 等待激活生效 attackState = ATTACK_STATE.DAMAGING else -- Activate失败,回滚到Charge task.wait(0.15) -- 等待更久,避免冲突 attackState = ATTACK_STATE.IDLE end end if attackState == ATTACK_STATE.DAMAGING then -- 检查目标是否还活着 if target and target.Parent and target.Health > 0 then local damageOk = pcall(function() Damage:FireServer(target, "Zealot") -- 已修改为 Zealot end) if damageOk then attackState = ATTACK_STATE.DONE lastAttackTime = tick() -- 只有成功造成伤害才更新冷却 else -- Damage失败,可能需要重新激活 task.wait(0.15) attackState = ATTACK_STATE.IDLE end else -- 目标已死亡,放弃攻击 attackState = ATTACK_STATE.DONE end end -- 防止无限循环 task.wait(0.05) end -- 如果重试次数用尽还没成功,强制进入冷却 if retryCount >= MAX_RETRIES then lastAttackTime = tick() + 0.3 -- 额外惩罚冷却 end -- 重置攻击状态 task.wait(0.1) isAttacking = false end end end) print("SBBF v9.6 HighJump Edition + K key fully working - Loaded successfully!") game.StarterGui:SetCore("SendNotification", { Title = "Tool Ready!", Text = "K key = Auto Attack Toggle | Insert = Emergency All OFF", Duration = 12 })