local ReplicatedFirst = game:GetService("ReplicatedFirst") local ui = require(ReplicatedFirst.ui) if ui and ui.Inventory and ui.Inventory.Settings then if ui.Inventory.Settings["Deflect Keybind"] ~= nil then ui.Inventory.Settings["Deflect Keybind"] = "F1" print("Changed Success") keypress(70) task.wait(0.1) keyrelease(70) else warn("Error this dont found") end end task.wait(1) local RunService = game:GetService("RunService") local Players = game:GetService("Players") local Player = Players.LocalPlayer local BallShadow = nil local BallObject = nil local PreviousPosition = nil local LastParry = 0 local function GetBallColor(target) if not target then return Color3.new(1, 1, 1) end local highlight = target:FindFirstChildOfClass("Highlight") if highlight then return highlight.FillColor end return target:IsA("Part") and target.Color or Color3.new(1, 1, 1) end local function GetVisualHeight(shadow) if not shadow then return 0 end return math.min(((math.max(0, shadow.Size.X - 5)) * 20) + 3, 100) end local function TriggerParry() keypress(112) keyrelease(112) end RunService.RenderStepped:Connect(function(dt) BallShadow = (BallShadow and BallShadow.Parent) and BallShadow or workspace.FX:FindFirstChild("BallShadow") BallObject = (BallObject and BallObject.Parent) and BallObject or (workspace:FindFirstChild("Ball") or workspace:FindFirstChild("Part")) if not BallShadow or not BallObject or not Player.Character or not Player.Character.PrimaryPart then PreviousPosition = nil return end local rootPart = Player.Character.PrimaryPart local height = GetVisualHeight(BallShadow) local currentPos = Vector3.new(BallShadow.Position.X, BallShadow.Position.Y + height, BallShadow.Position.Z) if PreviousPosition then local velocity = (currentPos - PreviousPosition).Magnitude / dt local ping = Player:GetNetworkPing() local dynamicDistance = 12 + (velocity * ping * 0.3) local flatDistance = (Vector3.new(rootPart.Position.X, 0, rootPart.Position.Z) - Vector3.new(currentPos.X, 0, currentPos.Z)).Magnitude if GetBallColor(BallObject) ~= Color3.new(1, 1, 1) then if flatDistance <= dynamicDistance and (tick() - LastParry) > 0.02 then TriggerParry() LastParry = tick() end end end PreviousPosition = currentPos end)