-- CRACKED SCRIPT FEEL FREE TO IMPROVE IT!! local Players = game:GetService("Players") local RunService = game:GetService("RunService") local VirtualUser = game:GetService("VirtualUser") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local LOCAL_PLAYER = Players.LocalPlayer local MIN_RADIUS, MAX_RADIUS = 5, 30 local MIN_DELAY, MAX_DELAY = 0, 500 local DEFAULT_RADIUS = 11 local Config = { isEnabled = true, radius = DEFAULT_RADIUS, blockDelay = 0, sphereVisible = true, toggleKey = Enum.KeyCode.M, blockToggleKey = Enum.KeyCode.B } local GUI = { statusLabel = nil, rangeLabel = nil, valueLabel = nil, delayLabel = nil, visualSphere = nil, mainFrame = nil, blockToggleKeyLabel = nil } local SAFE_ANIMATIONS = { ["180426354"] = true, ["180435792"] = true, ["180435557"] = true, ["180435571"] = true, ["684969250"] = true, ["12246410284"] = true, ["684949179"] = true, ["180436148"] = true, ["180436148"] = true, ["7950784441"] = true, ["12245963642"] = true, ["16398226659"] = true, ["6691954521"] = true, ["6768460286"] = true, ["6835294179"] = true, ["6835294624"] = true, ["6835295587"] = true, ["6835295340"] = true, ["6835295768"] = true, ["6843685401"] = true, ["6843686183"] = true, ["6843688241"] = true, ["6844129816"] = true, ["6844132951"] = true, ["6848072990"] = true, ["6857596237"] = true, ["6887306042"] = true, ["6887334158"] = true, ["6891877544"] = true, ["6910931126"] = true, ["9819726292"] = true, ["9819735529"] = true, ["9819745648"] = true, ["9819790668"] = true, ["9819806597"] = true, ["9819811478"] = true, ["9819823356"] = true, ["9819830644"] = true, ["9822389499"] = true, ["9825822267"] = true, ["9825834442"] = true, ["6846937588"] = true, ["6846943217"] = true, ["11116879670"] = true, ["10950534442"] = true, ["11116773443"] = true, ["11116829154"] = true, ["11116842345"] = true, ["11116851650"] = true, ["11116868980"] = true, ["11116876082"] = true, ["11116879769"] = true, ["11116883670"] = true, ["11116904044"] = true, ["11116906510"] = true, ["11116911916"] = true, ["11116928049"] = true, ["11116935344"] = true, ["11116942197"] = true, ["11116953107"] = true, ["11739213999"] = true, ["11739218535"] = true, ["11739221487"] = true, ["11824454279"] = true, ["12110667126"] = true, ["12110738932"] = true, ["12110743424"] = true, ["12119297992"] = true, ["15171648575"] = true, ["15434704458"] = true, ["15434415778"] = true, ["15434491089"] = true, ["15434493570"] = true, ["15744847038"] = true, ["16203609238"] = true, ["16294404827"] = true, ["17003507450"] = true, ["18357490871"] = true, ["18570567181"] = true, ["18570580687"] = true, ["18570584513"] = true, ["18570587568"] = true, ["18570592488"] = true, ["18570596139"] = true, ["6849692501"] = true, ["6849441527"] = true, ["7950763400"] = true, ["7814314769"] = true, ["6849491789"] = true, ["6835295052"] = true, ["6849489471"] = true, ["8201303807"] = true, ["10697528876"] = true, ["8201293554"] = true, ["16398208032"] = true, ["11580783004"] = true, ["18570602813"] = true, ["18570605663"] = true, ["18570610312"] = true, ["18570613289"] = true, ["18570616732"] = true, ["18570620535"] = true, ["18570623746"] = true, ["18570626263"] = true, ["18570632470"] = true, ["18570671957"] = true, ["18570683512"] = true, ["18570687683"] = true, ["18850450498"] = true, ["85696117023177"] = true, ["123461108716822"] = true, ["1190149394074304"] = true, ["116839058176293"] = true, ["752942489704875"] = true, ["130879133604226"] = true, ["11580787715"] = true, ["6835295057"] = true, ["7814305242"] = true, ["119813141112551"] = true, ["80008594862427"] = true } local function normalizeAnimationId(id) return id:match("id=(%d+)") or id:match("%d+") end local function getDistance(player) local char, localChar = player.Character, LOCAL_PLAYER.Character if not (char and localChar) then return math.huge end local root, localRoot = char:FindFirstChild("HumanoidRootPart"), localChar:FindFirstChild("HumanoidRootPart") if not (root and localRoot) then return math.huge end return (root.Position - localRoot.Position).Magnitude end local function updateGUIStatus(isBlocking) if not GUI.statusLabel then return end GUI.statusLabel.Text = isBlocking and "Status: Blocking!" or "Status: Active" GUI.statusLabel.TextColor3 = isBlocking and Color3.fromRGB(255, 0, 0) or Color3.fromRGB(0, 255, 0) if GUI.visualSphere and Config.sphereVisible then GUI.visualSphere.Color = isBlocking and Color3.new(1, 0, 0) or Color3.new(1, 1, 0) end end local function updateRadius(percentage) Config.radius = MIN_RADIUS + (MAX_RADIUS - MIN_RADIUS) * percentage Config.radius = math.floor(Config.radius * 10) / 10 if GUI.valueLabel then GUI.valueLabel.Text = string.format("Radius: %.1f studs", Config.radius) end if GUI.rangeLabel then GUI.rangeLabel.Text = string.format("Range: %.1f studs", Config.radius) end if GUI.visualSphere then local newSize = Config.radius * 2 GUI.visualSphere.Size = Vector3.new(newSize, newSize, newSize) end end local function updateDelay(percentage) Config.blockDelay = math.floor(MIN_DELAY + (MAX_DELAY - MIN_DELAY) * percentage) if GUI.delayLabel then GUI.delayLabel.Text = string.format("Delay: %d ms", Config.blockDelay) end end local function handleAnimation(player, animTrack) if not (Config.isEnabled and player ~= LOCAL_PLAYER) or UserInputService:GetFocusedTextBox() then return end local animId = normalizeAnimationId(animTrack.Animation.AnimationId) if SAFE_ANIMATIONS[animId] then return end local distance = getDistance(player) if distance > Config.radius then return end updateGUIStatus(true) task.spawn(function() if Config.blockDelay > 0 then task.wait(Config.blockDelay/1000) end if not UserInputService:GetFocusedTextBox() then VirtualUser:Button2Down(Vector2.new(0, 0), workspace.CurrentCamera.CFrame) animTrack.Stopped:Wait() VirtualUser:Button2Up(Vector2.new(0, 0), workspace.CurrentCamera.CFrame) end updateGUIStatus(false) end) end local function initializePlayerTracking(player) local function onCharacterAdded(character) local humanoid = character:WaitForChild("Humanoid") local animator = humanoid:WaitForChild("Animator") animator.AnimationPlayed:Connect(function(animTrack) handleAnimation(player, animTrack) end) end if player.Character then onCharacterAdded(player.Character) end player.CharacterAdded:Connect(onCharacterAdded) end local function updateBlockToggleButton(toggleButton) if Config.isEnabled then toggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0) toggleButton.Text = "Enabled" GUI.statusLabel.Text = "Status: Active" GUI.statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) if Config.sphereVisible then GUI.visualSphere.Transparency = 0.8 end else toggleButton.BackgroundColor3 = Color3.fromRGB(170, 0, 0) toggleButton.Text = "Disabled" GUI.statusLabel.Text = "Status: Inactive" GUI.statusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) GUI.visualSphere.Transparency = 1 end end local function createGUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "AutoBlockerGUI" screenGui.Parent = LOCAL_PLAYER:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 200, 0, 290) mainFrame.Position = UDim2.new(0.8, 0, 0.5, -60) mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui GUI.mainFrame = mainFrame local function addCorners(instance, radius) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, radius) corner.Parent = instance end local dragging, dragStart, startPos mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement and dragging then local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) local titleLabel = Instance.new("TextLabel") titleLabel.Name = "TitleLabel" titleLabel.Size = UDim2.new(1, 0, 0, 30) titleLabel.Position = UDim2.new(0, 0, 0, 0) titleLabel.BackgroundColor3 = Color3.fromRGB(40, 40, 40) titleLabel.BorderSizePixel = 0 titleLabel.Text = "Auto Blocker" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 14 titleLabel.Parent = mainFrame GUI.statusLabel = Instance.new("TextLabel") GUI.statusLabel.Name = "StatusLabel" GUI.statusLabel.Size = UDim2.new(1, 0, 0, 20) GUI.statusLabel.Position = UDim2.new(0, 0, 0, 35) GUI.statusLabel.BackgroundTransparency = 1 GUI.statusLabel.Text = "Status: Active" GUI.statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) GUI.statusLabel.Font = Enum.Font.Gotham GUI.statusLabel.TextSize = 12 GUI.statusLabel.Parent = mainFrame GUI.rangeLabel = Instance.new("TextLabel") GUI.rangeLabel.Name = "RangeLabel" GUI.rangeLabel.Size = UDim2.new(1, 0, 0, 20) GUI.rangeLabel.Position = UDim2.new(0, 0, 0, 55) GUI.rangeLabel.BackgroundTransparency = 1 GUI.rangeLabel.Text = string.format("Range: %.1f studs", Config.radius) GUI.rangeLabel.TextColor3 = Color3.fromRGB(255, 255, 255) GUI.rangeLabel.Font = Enum.Font.Gotham GUI.rangeLabel.TextSize = 12 GUI.rangeLabel.Parent = mainFrame local sliderFrame = Instance.new("Frame") sliderFrame.Name = "SliderFrame" sliderFrame.Size = UDim2.new(0.8, 0, 0, 4) sliderFrame.Position = UDim2.new(0.1, 0, 0, 80) sliderFrame.BackgroundColor3 = Color3.fromRGB(60, 60, 60) sliderFrame.BorderSizePixel = 0 sliderFrame.Parent = mainFrame local sliderButton = Instance.new("TextButton") sliderButton.Name = "SliderButton" sliderButton.Size = UDim2.new(0, 16, 0, 16) sliderButton.Position = UDim2.new(0, -8, 0, -6) sliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255) sliderButton.BorderSizePixel = 0 sliderButton.Text = "" sliderButton.Parent = sliderFrame GUI.valueLabel = Instance.new("TextLabel") GUI.valueLabel.Name = "ValueLabel" GUI.valueLabel.Size = UDim2.new(1, 0, 0, 20) GUI.valueLabel.Position = UDim2.new(0, 0, 0, 90) GUI.valueLabel.BackgroundTransparency = 1 GUI.valueLabel.Text = string.format("Radius: %.1f studs", Config.radius) GUI.valueLabel.TextColor3 = Color3.fromRGB(255, 255, 255) GUI.valueLabel.Font = Enum.Font.Gotham GUI.valueLabel.TextSize = 12 GUI.valueLabel.Parent = mainFrame local delaySliderFrame = Instance.new("Frame") delaySliderFrame.Name = "DelaySliderFrame" delaySliderFrame.Size = UDim2.new(0.8, 0, 0, 4) delaySliderFrame.Position = UDim2.new(0.1, 0, 0, 120) delaySliderFrame.BackgroundColor3 = Color3.fromRGB(60, 60, 60) delaySliderFrame.BorderSizePixel = 0 delaySliderFrame.Parent = mainFrame local delaySliderButton = Instance.new("TextButton") delaySliderButton.Name = "DelaySliderButton" delaySliderButton.Size = UDim2.new(0, 16, 0, 16) delaySliderButton.Position = UDim2.new(0, -8, 0, -6) delaySliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255) delaySliderButton.BorderSizePixel = 0 delaySliderButton.Text = "" delaySliderButton.Parent = delaySliderFrame GUI.delayLabel = Instance.new("TextLabel") GUI.delayLabel.Name = "DelayLabel" GUI.delayLabel.Size = UDim2.new(1, 0, 0, 20) GUI.delayLabel.Position = UDim2.new(0, 0, 0, 130) GUI.delayLabel.BackgroundTransparency = 1 GUI.delayLabel.Text = string.format("Delay: %d ms", Config.blockDelay) GUI.delayLabel.TextColor3 = Color3.fromRGB(255, 255, 255) GUI.delayLabel.Font = Enum.Font.Gotham GUI.delayLabel.TextSize = 12 GUI.delayLabel.Parent = mainFrame local keybindButton = Instance.new("TextButton") keybindButton.Name = "KeybindButton" keybindButton.Size = UDim2.new(0.8, 0, 0, 25) keybindButton.Position = UDim2.new(0.1, 0, 0, 160) keybindButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60) keybindButton.BorderSizePixel = 0 keybindButton.Text = "Toggle Key: " .. Config.toggleKey.Name keybindButton.TextColor3 = Color3.fromRGB(255, 255, 255) keybindButton.Font = Enum.Font.GothamSemibold keybindButton.TextSize = 14 keybindButton.Parent = mainFrame local blockToggleKeybindButton = Instance.new("TextButton") blockToggleKeybindButton.Name = "BlockToggleKeybindButton" blockToggleKeybindButton.Size = UDim2.new(0.8, 0, 0, 25) blockToggleKeybindButton.Position = UDim2.new(0.1, 0, 0, 190) blockToggleKeybindButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60) blockToggleKeybindButton.BorderSizePixel = 0 blockToggleKeybindButton.Text = "Block Key: " .. Config.blockToggleKey.Name blockToggleKeybindButton.TextColor3 = Color3.fromRGB(255, 255, 255) blockToggleKeybindButton.Font = Enum.Font.GothamSemibold blockToggleKeybindButton.TextSize = 14 blockToggleKeybindButton.Parent = mainFrame local sphereToggleButton = Instance.new("TextButton") sphereToggleButton.Name = "SphereToggleButton" sphereToggleButton.Size = UDim2.new(0.8, 0, 0, 25) sphereToggleButton.Position = UDim2.new(0.1, 0, 0, 220) sphereToggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 170) sphereToggleButton.BorderSizePixel = 0 sphereToggleButton.Text = "Sphere Visible" sphereToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) sphereToggleButton.Font = Enum.Font.GothamSemibold sphereToggleButton.TextSize = 14 sphereToggleButton.Parent = mainFrame local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(0.8, 0, 0, 25) toggleButton.Position = UDim2.new(0.1, 0, 0, 250) toggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0) toggleButton.BorderSizePixel = 0 toggleButton.Text = "Enabled" toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.Font = Enum.Font.GothamSemibold toggleButton.TextSize = 14 toggleButton.Parent = mainFrame addCorners(mainFrame, 6) addCorners(toggleButton, 4) addCorners(sphereToggleButton, 4) addCorners(sliderButton, 8) addCorners(delaySliderButton, 8) addCorners(keybindButton, 4) addCorners(blockToggleKeybindButton, 4) GUI.visualSphere = Instance.new("Part") GUI.visualSphere.Shape = Enum.PartType.Ball GUI.visualSphere.Size = Vector3.new(Config.radius * 2, Config.radius * 2, Config.radius * 2) GUI.visualSphere.Transparency = 0.8 GUI.visualSphere.CanCollide = false GUI.visualSphere.Anchored = true GUI.visualSphere.Color = Color3.new(1, 1, 0) GUI.visualSphere.Parent = workspace local isDragging = false local isDelayDragging = false sliderButton.MouseButton1Down:Connect(function() isDragging = true end) delaySliderButton.MouseButton1Down:Connect(function() isDelayDragging = true end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = false isDelayDragging = false end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then if isDragging then local mousePos = UserInputService:GetMouseLocation() local sliderPos = sliderFrame.AbsolutePosition local sliderWidth = sliderFrame.AbsoluteSize.X local percentage = math.clamp((mousePos.X - sliderPos.X) / sliderWidth, 0, 1) sliderButton.Position = UDim2.new(percentage, -8, 0, -6) updateRadius(percentage) elseif isDelayDragging then local mousePos = UserInputService:GetMouseLocation() local sliderPos = delaySliderFrame.AbsolutePosition local sliderWidth = delaySliderFrame.AbsoluteSize.X local percentage = math.clamp((mousePos.X - sliderPos.X) / sliderWidth, 0, 1) delaySliderButton.Position = UDim2.new(percentage, -8, 0, -6) updateDelay(percentage) end end end) local function updateKeybindText() keybindButton.Text = "Toggle Key: " .. Config.toggleKey.Name blockToggleKeybindButton.Text = "Block Key: " .. Config.blockToggleKey.Name end local function handleKeybindChange(isBlockToggle) local button = isBlockToggle and blockToggleKeybindButton or keybindButton local originalText = button.Text button.Text = "Press any key..." local connection connection = UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Keyboard then if isBlockToggle then Config.blockToggleKey = input.KeyCode else Config.toggleKey = input.KeyCode end updateKeybindText() connection:Disconnect() end end) end keybindButton.MouseButton1Click:Connect(function() handleKeybindChange(false) end) blockToggleKeybindButton.MouseButton1Click:Connect(function() handleKeybindChange(true) end) sphereToggleButton.MouseButton1Click:Connect(function() Config.sphereVisible = not Config.sphereVisible if Config.sphereVisible then sphereToggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 170) sphereToggleButton.Text = "Sphere Visible" if Config.isEnabled then GUI.visualSphere.Transparency = 0.8 end else sphereToggleButton.BackgroundColor3 = Color3.fromRGB(170, 85, 85) sphereToggleButton.Text = "Sphere Hidden" GUI.visualSphere.Transparency = 1 end end) toggleButton.MouseButton1Click:Connect(function() Config.isEnabled = not Config.isEnabled updateBlockToggleButton(toggleButton) end) end local function initialize() createGUI() UserInputService.InputBegan:Connect(function(input, gameProcessed) if UserInputService:GetFocusedTextBox() then return end if input.UserInputType == Enum.UserInputType.Keyboard then if input.KeyCode == Config.toggleKey then GUI.mainFrame.Visible = not GUI.mainFrame.Visible elseif input.KeyCode == Config.blockToggleKey then Config.isEnabled = not Config.isEnabled updateBlockToggleButton(GUI.mainFrame:FindFirstChild("ToggleButton")) end end end) RunService.Heartbeat:Connect(function() if not (Config.isEnabled and GUI.visualSphere) then return end local character = LOCAL_PLAYER.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") if rootPart then GUI.visualSphere.Position = rootPart.Position end end) for _, player in ipairs(Players:GetPlayers()) do initializePlayerTracking(player) end Players.PlayerAdded:Connect(initializePlayerTracking) end initialize()