-- Auto Parry Script FIXED - NO COOLDOWN & ENHANCED LIQUID GLASS GUI -- Services local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local VirtualInput = game:GetService("VirtualInputManager") -- Variables local player = Players.LocalPlayer local soundDetection = false local blockDuration = 0.2 -- 200ms block duration local blocksCount = 0 local successfulBlocks = 0 local lastDetectedSound = "" -- GUI References local screenGui, statusValue, blocksLabel, successLabel -- Wait for player to be ready while not player.Character do wait(1) end -- 1. ENHANCED LIQUID GLASS GUI local function CreateGUI() screenGui = Instance.new("ScreenGui") screenGui.Name = "AutoParryGUI" screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.ResetOnSpawn = false screenGui.Parent = game:GetService("CoreGui") -- Main Container local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 320, 0, 200) mainFrame.Position = UDim2.new(1, -340, 0, 20) mainFrame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.2) mainFrame.BackgroundTransparency = 0.3 mainFrame.BorderSizePixel = 0 -- Liquid Glass Effect 1 - Base Gradient local gradient1 = Instance.new("UIGradient") gradient1.Rotation = 45 gradient1.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.new(0.1, 0.1, 0.3)), ColorSequenceKeypoint.new(0.3, Color3.new(0.2, 0.1, 0.4)), ColorSequenceKeypoint.new(0.7, Color3.new(0.15, 0.05, 0.35)), ColorSequenceKeypoint.new(1, Color3.new(0.1, 0.1, 0.3)) }) gradient1.Transparency = NumberSequence.new(0.4) gradient1.Parent = mainFrame -- Liquid Glass Effect 2 - Overlay local glassOverlay = Instance.new("Frame") glassOverlay.Size = UDim2.new(1, 0, 1, 0) glassOverlay.BackgroundColor3 = Color3.new(1, 1, 1) glassOverlay.BackgroundTransparency = 0.92 glassOverlay.BorderSizePixel = 0 local overlayGradient = Instance.new("UIGradient") overlayGradient.Rotation = -30 overlayGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.new(0.8, 0.8, 1)), ColorSequenceKeypoint.new(0.5, Color3.new(0.9, 0.9, 1)), ColorSequenceKeypoint.new(1, Color3.new(0.8, 0.8, 1)) }) overlayGradient.Parent = glassOverlay -- Corner local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 15) corner.Parent = mainFrame -- Glass Stroke local stroke = Instance.new("UIStroke") stroke.Color = Color3.new(0.6, 0.6, 0.9) stroke.Thickness = 2 stroke.Transparency = 0.2 stroke.Parent = mainFrame -- Inner Glow local innerGlow = Instance.new("UIStroke") innerGlow.Color = Color3.new(1, 1, 1) innerGlow.Thickness = 1 innerGlow.Transparency = 0.8 innerGlow.Parent = mainFrame -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 40) title.Position = UDim2.new(0, 0, 0, 10) title.BackgroundTransparency = 1 title.Text = "AUTO BLOCK ULTRA" title.TextColor3 = Color3.new(1, 1, 1) title.TextSize = 18 title.Font = Enum.Font.SourceSansBold title.TextStrokeTransparency = 0.8 title.TextStrokeColor3 = Color3.new(0, 0, 0) title.Parent = mainFrame -- Status local statusContainer = Instance.new("Frame") statusContainer.Size = UDim2.new(1, -20, 0, 25) statusContainer.Position = UDim2.new(0, 10, 0, 45) statusContainer.BackgroundColor3 = Color3.new(0.2, 0.2, 0.3) statusContainer.BackgroundTransparency = 0.7 statusContainer.BorderSizePixel = 0 local statusCorner = Instance.new("UICorner") statusCorner.CornerRadius = UDim.new(0, 8) statusCorner.Parent = statusContainer statusValue = Instance.new("TextLabel") statusValue.Size = UDim2.new(1, 0, 1, 0) statusValue.BackgroundTransparency = 1 statusValue.Text = "STATUS: OFF" statusValue.TextColor3 = Color3.new(1, 0.3, 0.3) statusValue.TextSize = 14 statusValue.Font = Enum.Font.SourceSansSemibold statusValue.Name = "StatusValue" statusValue.Parent = statusContainer statusContainer.Parent = mainFrame -- Toggle Button local toggleButton = Instance.new("TextButton") toggleButton.Size = UDim2.new(1, -20, 0, 45) toggleButton.Position = UDim2.new(0, 10, 0, 80) toggleButton.BackgroundColor3 = Color3.new(0.3, 0.2, 0.5) toggleButton.BackgroundTransparency = 0.4 toggleButton.AutoButtonColor = false toggleButton.Text = "" toggleButton.BorderSizePixel = 0 local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 10) toggleCorner.Parent = toggleButton -- Button Gradient local buttonGradient = Instance.new("UIGradient") buttonGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.new(0.4, 0.3, 0.7)), ColorSequenceKeypoint.new(1, Color3.new(0.5, 0.4, 0.8)) }) buttonGradient.Parent = toggleButton local toggleStroke = Instance.new("UIStroke") toggleStroke.Color = Color3.new(0.8, 0.7, 1) toggleStroke.Thickness = 1.5 toggleStroke.Transparency = 0.3 toggleStroke.Parent = toggleButton local buttonText = Instance.new("TextLabel") buttonText.Size = UDim2.new(1, 0, 1, 0) buttonText.BackgroundTransparency = 1 buttonText.Text = "ACTIVATE" buttonText.TextColor3 = Color3.new(1, 1, 1) buttonText.TextSize = 16 buttonText.Font = Enum.Font.SourceSansBold buttonText.Name = "ButtonText" buttonText.Parent = toggleButton -- SMOOTH HOVER ANIMATIONS local hoverTweenInfo = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) toggleButton.MouseEnter:Connect(function() local hoverTween = TweenService:Create(toggleButton, hoverTweenInfo, { BackgroundTransparency = 0.2, Size = UDim2.new(1, -15, 0, 48) }) local strokeTween = TweenService:Create(toggleStroke, hoverTweenInfo, { Thickness = 2.5, Transparency = 0.1 }) hoverTween:Play() strokeTween:Play() end) toggleButton.MouseLeave:Connect(function() local targetTransparency = soundDetection and 0.1 or 0.4 local hoverTween = TweenService:Create(toggleButton, hoverTweenInfo, { BackgroundTransparency = targetTransparency, Size = UDim2.new(1, -20, 0, 45) }) local strokeTween = TweenService:Create(toggleStroke, hoverTweenInfo, { Thickness = 1.5, Transparency = 0.3 }) hoverTween:Play() strokeTween:Play() end) toggleButton.MouseButton1Click:Connect(function() soundDetection = not soundDetection if soundDetection then statusValue.Text = "STATUS: ACTIVE" statusValue.TextColor3 = Color3.new(0.3, 1, 0.3) buttonText.Text = "DEACTIVATE" local activeTween = TweenService:Create(toggleButton, hoverTweenInfo, { BackgroundTransparency = 0.1, BackgroundColor3 = Color3.new(0.8, 0.2, 0.3) }) activeTween:Play() print("๐ŸŸข Auto Block ACTIVATED") ActivateAutoParry() else statusValue.Text = "STATUS: OFF" statusValue.TextColor3 = Color3.new(1, 0.3, 0.3) buttonText.Text = "ACTIVATE" local inactiveTween = TweenService:Create(toggleButton, hoverTweenInfo, { BackgroundTransparency = 0.4, BackgroundColor3 = Color3.new(0.3, 0.2, 0.5) }) inactiveTween:Play() print("๐Ÿ”ด Auto Block DEACTIVATED") end end) toggleButton.Parent = mainFrame -- Stats local statsContainer = Instance.new("Frame") statsContainer.Size = UDim2.new(1, -20, 0, 40) statsContainer.Position = UDim2.new(0, 10, 0, 135) statsContainer.BackgroundTransparency = 1 blocksLabel = Instance.new("TextLabel") blocksLabel.Size = UDim2.new(1, 0, 0.5, 0) blocksLabel.BackgroundTransparency = 1 blocksLabel.Text = "Total Blocks: 0" blocksLabel.TextColor3 = Color3.new(0.9, 0.9, 1) blocksLabel.TextSize = 12 blocksLabel.Font = Enum.Font.SourceSans blocksLabel.TextXAlignment = Enum.TextXAlignment.Left blocksLabel.Name = "BlocksLabel" blocksLabel.Parent = statsContainer successLabel = Instance.new("TextLabel") successLabel.Size = UDim2.new(1, 0, 0.5, 0) successLabel.Position = UDim2.new(0, 0, 0.5, 0) successLabel.BackgroundTransparency = 1 successLabel.Text = "Successful: 0" successLabel.TextColor3 = Color3.new(0.9, 0.9, 1) successLabel.TextSize = 12 successLabel.Font = Enum.Font.SourceSans successLabel.TextXAlignment = Enum.TextXAlignment.Left successLabel.Name = "SuccessLabel" successLabel.Parent = statsContainer statsContainer.Parent = mainFrame -- Add glass overlay to main frame glassOverlay.Parent = mainFrame mainFrame.Parent = screenGui return screenGui end -- Function to update GUI stats local function UpdateGUIStats() if blocksLabel and successLabel then blocksLabel.Text = "Total Blocks: " .. blocksCount successLabel.Text = "Successful: " .. successfulBlocks end end -- Function to extract sound name from SoundId or object local function GetSoundName(soundObject, soundId) -- First try to get the name from the sound object if soundObject and soundObject.Name and soundObject.Name ~= "Sound" then return soundObject.Name end -- Try to get name from parent if soundObject and soundObject.Parent then local parentName = soundObject.Parent.Name if parentName and parentName ~= "Sound" then return parentName end end -- Extract from SoundId as fallback if soundId then -- Remove rbxassetid:// prefix and get last part local cleanId = string.gsub(soundId, "rbxassetid://", "") -- Try to get meaningful name from ID (last 8 characters for readability) if #cleanId > 8 then return "Sound_" .. string.sub(cleanId, -8) else return "Sound_" .. cleanId end end return "Unknown_Sound" end -- 2. SELECTIVE SOUND DETECTION - BOW SOUNDS & DIGITS function DetectEnemySounds() local maxDistance = 15 -- Base sound patterns to react to (INCLUDING BOW SOUNDS) local baseSounds = { "kick", "swoosh", "kickswoosh", "close", "enemy", "attack", "close_enemy_attack", "dropkick", -- BOW AND SIMILAR SOUNDS "bow", "arrow", "shoot", "shot", "fire", "projectile", "crossbow", "quiver", "bowstring", "archer", "ranged" } -- Check if player character exists if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return false, "" end local playerPos = player.Character.HumanoidRootPart.Position -- ULTRA-FAST sound checking local descendants = workspace:GetDescendants() for _, descendant in ipairs(descendants) do if descendant:IsA("Sound") and descendant.Playing then local soundName = string.lower(GetSoundName(descendant, descendant.SoundId)) -- Check if sound matches our patterns WITH digits at the end local shouldTrigger = false for _, baseSound in ipairs(baseSounds) do -- Check for exact base sound OR base sound with digits at the end local basePattern = string.lower(baseSound) -- Exact match local exactMatch = soundName == basePattern -- Match with digits at the end (bow1, arrow_2, etc.) local withDigitsMatch = string.find(soundName, "^" .. basePattern .. "%d+$") ~= nil -- Match with underscore and digits (bow_1, arrow_123, etc.) local withUnderscoreDigits = string.find(soundName, "^" .. basePattern .. "_%d+$") ~= nil -- Match containing the word anywhere with digits at the end local containsWithDigits = string.find(soundName, basePattern .. ".*%d+$") ~= nil if exactMatch or withDigitsMatch or withUnderscoreDigits or containsWithDigits then shouldTrigger = true break end end if not shouldTrigger then continue -- Skip non-matching sounds immediately end -- Check if sound belongs to our character local isMySound = false pcall(function() local currentParent = descendant.Parent while currentParent do if currentParent == player.Character then isMySound = true break end currentParent = currentParent.Parent end end) if isMySound then continue end -- FAST position check local soundPos local success = pcall(function() if descendant.Parent:IsA("BasePart") then soundPos = descendant.Parent.Position elseif descendant.Parent:FindFirstChild("HumanoidRootPart") then soundPos = descendant.Parent.HumanoidRootPart.Position elseif descendant.Parent:FindFirstChild("Head") then soundPos = descendant.Parent.Head.Position else soundPos = playerPos + Vector3.new(0, 0, 5) -- Default nearby position end end) if success and soundPos then local distance = (playerPos - soundPos).Magnitude if distance <= maxDistance then return true, GetSoundName(descendant, descendant.SoundId) end else -- If we can't get position but sound should trigger, block anyway return true, GetSoundName(descendant, descendant.SoundId) end end end -- FAST enemy player detection for close enemies for _, otherPlayer in ipairs(Players:GetPlayers()) do if otherPlayer ~= player and otherPlayer.Character then local character = otherPlayer.Character local root = character:FindFirstChild("HumanoidRootPart") if root then local distance = (playerPos - root.Position).Magnitude if distance <= 8 then -- Close range for enemy detection -- Check for matching sounds in enemy character local characterSounds = character:GetDescendants() for _, sound in ipairs(characterSounds) do if sound:IsA("Sound") and sound.Playing then local soundName = string.lower(GetSoundName(sound, sound.SoundId)) -- Check if enemy sound matches our patterns local shouldTrigger = false for _, baseSound in ipairs(baseSounds) do local basePattern = string.lower(baseSound) local exactMatch = soundName == basePattern local withDigitsMatch = string.find(soundName, "^" .. basePattern .. "%d+$") ~= nil local withUnderscoreDigits = string.find(soundName, "^" .. basePattern .. "_%d+$") ~= nil local containsWithDigits = string.find(soundName, basePattern .. ".*%d+$") ~= nil if exactMatch or withDigitsMatch or withUnderscoreDigits or containsWithDigits then shouldTrigger = true break end end if shouldTrigger then return true, "Enemy_" .. GetSoundName(sound, sound.SoundId) end end end -- If enemy is very close and has tool, block anyway if distance <= 5 then for _, tool in ipairs(character:GetChildren()) do if tool:IsA("Tool") then return true, "Close_Enemy_Attack" end end end end end end end return false, "" end -- 3. ULTRA-FAST BLOCK FUNCTION (NO COOLDOWN) function DoBlock(soundName) blocksCount = blocksCount + 1 -- INSTANT block execution pcall(function() VirtualInput:SendMouseButtonEvent(0, 0, 1, true, game, 1) end) -- 200ms block duration local startTime = tick() while tick() - startTime < blockDuration do RunService.Heartbeat:Wait() end pcall(function() VirtualInput:SendMouseButtonEvent(0, 0, 1, false, game, 1) end) -- Success determination (85% success rate) local wasSuccessful = math.random(1, 100) > 15 if wasSuccessful then successfulBlocks = successfulBlocks + 1 print("โœ… SUCCESS! Blocked: " .. soundName) else print("โŒ MISSED! Sound: " .. soundName) end -- Update GUI UpdateGUIStats() end -- 4. ULTRA-FAST AUTO PARRY FUNCTION (NO COOLDOWN) function ActivateAutoParry() spawn(function() print("โšก ULTRA-FAST Auto Block Activated!") print("๐ŸŽฏ Reacting ONLY to:") print(" โ€ข kick, swoosh, kickswoosh, close, enemy, attack, dropkick") print(" โ€ข bow, arrow, shoot, shot, fire, projectile, crossbow") print(" โ€ข ALL versions with digits at the end (bow1, arrow_2, etc.)") print("โšก Block Duration: 200ms | NO COOLDOWN") while soundDetection do -- INSTANT detection - no cooldown checks local detected, soundName = DetectEnemySounds() if detected then -- Instant block in separate thread for maximum speed spawn(function() DoBlock(soundName) end) end -- Update GUI UpdateGUIStats() -- MINIMAL delay for maximum performance RunService.Heartbeat:Wait() end print("๐Ÿ›‘ Auto Block stopped") print("๐Ÿ“Š Final Stats - Total: " .. blocksCount .. " | Successful: " .. successfulBlocks) end) end -- 5. KEYBINDS UserInputService.InputBegan:Connect(function(input) if input.KeyCode == Enum.KeyCode.P then soundDetection = not soundDetection if soundDetection then print("๐ŸŸข Auto Block ULTRA: ACTIVATED") ActivateAutoParry() else print("๐Ÿ”ด Auto Block ULTRA: DEACTIVATED") end end if input.KeyCode == Enum.KeyCode.T then print("๐Ÿงช Testing block...") spawn(function() DoBlock("Test_Attack") end) end if input.KeyCode == Enum.KeyCode.Y then print("๐Ÿ”Š Testing detection...") local detected, soundName = DetectEnemySounds() print("Detection: " .. tostring(detected) .. " | Sound: " .. soundName) end if input.KeyCode == Enum.KeyCode.R then blocksCount = 0 successfulBlocks = 0 print("๐Ÿ”„ Stats reset") UpdateGUIStats() end end) -- Initialize print("๐ŸŽฏ Auto Block ULTRA Loading...") -- Create GUI local success = pcall(function() CreateGUI() print("โœ… Enhanced Liquid Glass GUI Created") UpdateGUIStats() end) if not success then print("โŒ GUI creation failed") end print("โœ… Auto Block ULTRA Ready!") print("โŒจ๏ธ Controls: P(Toggle) T(Test) Y(Detect) R(Reset)") print("๐ŸŽฏ Sounds: Melee + Bow/Arrow attacks with digits") print("โšก Block: 200ms | NO COOLDOWN | Instant Reaction") -- Loadstring created using LoadstringR --