local Magnitude = 15 local players = game:GetService("Players") local client = players.LocalPlayer local camera = workspace.CurrentCamera local vim = game:GetService("VirtualInputManager") local uis = game:GetService("UserInputService") local function iskeydown(enum) return uis:IsKeyDown(enum) end local function keyclick(enum) vim:SendKeyEvent(true, enum, false, game) task.wait(math.random(0.05, 0.15)) -- Randomized delay to avoid detection vim:SendKeyEvent(false, enum, false, game) end local function lookAt(character) local target = character.HumanoidRootPart.Position local goal = CFrame.lookAt(camera.CFrame.Position, target) camera.CFrame = camera.CFrame:Lerp(goal, 0.5) -- Smooth transition end local function islooking(chr, sensitivity) local direction = chr.HumanoidRootPart.CFrame.LookVector local toPlayer = (client.Character.HumanoidRootPart.Position - chr.HumanoidRootPart.Position).unit return direction:Dot(toPlayer) >= sensitivity end local function autoParry(child, chr) if not child:IsA("Sound") or iskeydown(Enum.KeyCode.C) then return end if not client.Character:FindFirstChildOfClass("Tool") then return end if (chr.HumanoidRootPart.Position - client.Character.HumanoidRootPart.Position).Magnitude >= Magnitude then return end local looking = islooking(chr, 0.25) if not looking then lookAt(chr) end task.wait(math.random(0.05, 0.1)) -- Add a slight humanized delay keyclick(Enum.KeyCode.F) end local function antiParry(child, chr) if not child:IsA("Sound") or not client.Character:FindFirstChildOfClass("Tool") then return end if (chr.HumanoidRootPart.Position - client.Character.HumanoidRootPart.Position).Magnitude >= Magnitude then return end local looking = islooking(chr, 0.25) if looking then local tool = client.Character:FindFirstChildOfClass("Tool") client.Character.Humanoid:UnequipTools() task.wait(math.random(0.1, 0.2)) -- Randomized delay chr.SemiTransparentShield:GetPropertyChangedSignal("Transparency"):Wait() client.Character.Humanoid:EquipTool(tool) end end function Update(plr) if plr == client then return end local function onRespawn(chr) local tool repeat task.wait() tool = chr:FindFirstChildOfClass("Tool") until tool and tool:FindFirstChild("Hitboxes") print(plr.DisplayName .. " loaded.") -- Auto Parry Setup local hitbox = tool.Hitboxes:FindFirstChild("Hitbox") or tool.Hitboxes:FindFirstChild("Weapon1Hitbox") or tool.Hitboxes:FindFirstChild("Weapon2Hitbox") if hitbox then print("Not gonna sugar coat it") hitbox.ChildAdded:Connect(function(child) autoParry(child, chr) end) end -- Anti Parry Setup chr.SemiTransparentShield.ChildAdded:Connect(function(child) antiParry(child, chr) end) end if plr.Character then task.spawn(onRespawn, plr.Character) end plr.CharacterAdded:Connect(function(chr) task.spawn(onRespawn, chr) end) end for _, v in ipairs(players:GetPlayers()) do task.spawn(Update, v) end players.PlayerAdded:Connect(function(plr) task.spawn(Update, plr) end)