if _G.AntiBang_Shutdown then pcall(_G.AntiBang_Shutdown) _G.AntiBang_Shutdown = nil end local Players = game:GetService("Players") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer -- {{ toggle }} local CONFIG = { ENABLED = true, -- turn anti off or on (use true or false) } local NOTIFY = true -- notify if it succeeded (use true or false) local function getTorso(char) if not char then return nil end return char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("LowerTorso") or char:FindFirstChild("HumanoidRootPart") end local function getRoot(char) if not char then return nil end local hum = char:FindFirstChildOfClass("Humanoid") return (hum and hum.RootPart) or char.PrimaryPart end local function notify(title, text) if not NOTIFY then return end pcall(function() StarterGui:SetCore("SendNotification", { Title = title, Text = text, Duration = 3 }) end) end local function matchesBangFingerprint(plr, myTorso) local theirChar = plr.Character if not theirChar then return false end local theirHRP = theirChar:FindFirstChild("HumanoidRootPart") if not theirHRP then return false end local localOffset = myTorso.CFrame:PointToObjectSpace(theirHRP.Position) if math.abs(localOffset.X) > 0.25 then return false end if math.abs(localOffset.Y) > 0.25 then return false end if math.abs(localOffset.Z - 1.1) > 0.25 then return false end local dot = theirHRP.CFrame.LookVector:Dot(myTorso.CFrame.LookVector) if dot < 0.995 then return false end return true end local dipBusy = false local function voidDip() if dipBusy then return end local myChar = LocalPlayer.Character if not myChar then return end local root = getRoot(myChar) if not root or not root.Parent then return end dipBusy = true local savedCF = root.CFrame local savedDH = workspace.FallenPartsDestroyHeight workspace.FallenPartsDestroyHeight = -1e9 local t0 = tick() pcall(function() while tick() - t0 < 0.15 do if not root.Parent then break end root.CFrame = CFrame.new(0, -800, 0) root.AssemblyLinearVelocity = Vector3.zero root.AssemblyAngularVelocity = Vector3.zero task.wait() end end) if root.Parent then root.AssemblyLinearVelocity = Vector3.zero root.AssemblyAngularVelocity = Vector3.zero root.CFrame = savedCF local hum = myChar:FindFirstChildOfClass("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.GettingUp) end end task.wait() workspace.FallenPartsDestroyHeight = savedDH dipBusy = false end local confirmCount = {} local lastAction = 0 local steppedConn = RunService.Stepped:Connect(function() if not CONFIG.ENABLED then return end if dipBusy then return end local myChar = LocalPlayer.Character if not myChar then return end local myTorso = getTorso(myChar) if not myTorso then return end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character then if matchesBangFingerprint(plr, myTorso) then confirmCount[plr] = (confirmCount[plr] or 0) + 1 if confirmCount[plr] >= 5 then confirmCount[plr] = 0 if tick() - lastAction < 1.5 then return end lastAction = tick() notify("Anti-Bang", "Bang confirmed from " .. plr.Name) voidDip() return end else confirmCount[plr] = 0 end end end end) local inputConn = UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.RightControl then CONFIG.ENABLED = not CONFIG.ENABLED notify("Anti-Bang", CONFIG.ENABLED and "Enabled" or "Disabled") end end) local removeConn = Players.PlayerRemoving:Connect(function(plr) confirmCount[plr] = nil end) local charConn = LocalPlayer.CharacterAdded:Connect(function() confirmCount = {} dipBusy = false end) _G.AntiBang_Shutdown = function() steppedConn:Disconnect() inputConn:Disconnect() removeConn:Disconnect() charConn:Disconnect() end _G.AntiBang_Toggle = function(state) if type(state) == "boolean" then CONFIG.ENABLED = state else CONFIG.ENABLED = not CONFIG.ENABLED end notify("Anti-Bang", CONFIG.ENABLED and "Enabled" or "Disabled") end notify("Anti-Bang", "Loaded")