local RS = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local LP = Players.LocalPlayer local pkg = RS["ReplicatedStorage Package"] local REM = pkg["Remote Events"] local SendPacket = REM.SendPacket local PunchRemote = REM.Punch local PUNCH_ID = 362367237823 -- stop any earlier aura loop and remove old GUI if _G._SPA7 then _G._SPA7.running = false end local oldGui = LP.PlayerGui:FindFirstChild("SilentPunchAssist") if oldGui then oldGui:Destroy() end local MIN, MAX, Range, Enabled = 5, 300, 12, true local function getClosest() local me = LP.Character if not me then return nil end local myHRP = me:FindFirstChild("HumanoidRootPart") if not myHRP then return nil end local best, bestD = nil, Range for _, pl in ipairs(Players:GetPlayers()) do if pl ~= LP and pl.Character then local hrp = pl.Character:FindFirstChild("HumanoidRootPart") if hrp and hrp:IsA("BasePart") then local d = (hrp.Position - myHRP.Position).Magnitude if d <= bestD then bestD = d; best = {char = pl.Character, part = hrp, name = pl.Name, dist = d} end end end end return best end local function fireAt(t) local me = LP.Character if not me then return end local hb = me:FindFirstChild("Hitbox") local hrp = me:FindFirstChild("HumanoidRootPart") local weld = hrp and hrp:FindFirstChild("Hitbox Weld") if not (hb and hrp and weld) then return end -- spoofed near hit: v1 near the player, small magnitude and passes server reach check :3 local v1 = hb.Position + Vector3.new(0, 0.5, 0) local magnitude = 2 local size = hb.Size local C0 = weld.C0 local look = hrp.CFrame.LookVector pcall(function() SendPacket:FireServer("Use Punch", PUNCH_ID, t.char, v1, magnitude, size, C0, t.part, t.part.Size, look) end) pcall(function() PunchRemote:FireServer(t.char, hrp.Position, 1.8757749795913696, t.char:FindFirstChild("Head")) end) end -- hook Punch: on each swing, hit the closest enemy within Range _G._SPA8 = _G._SPA8 or {} local S = _G._SPA8 local PunchClass = require(LP.PlayerScripts["StarterPlayerScripts Package"].Controller.Character.Punch) if not S.oP then S.oP = PunchClass.Punch end PunchClass.Punch = function(self, ...) local r = S.oP(self, ...) if Enabled then local t = getClosest() if t then fireAt(t) end end return r end -- lock-on highlight local hl = Instance.new("Highlight") hl.Name = "SPA_Lock"; hl.FillColor = Color3.fromRGB(255, 40, 40) hl.OutlineColor = Color3.fromRGB(255, 230, 0); hl.FillTransparency = 0.7 hl.OutlineTransparency = 0; hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Enabled = false; hl.Parent = workspace if not S.loop then S.loop = true task.spawn(function() while S.loop do task.wait(0.1) if Enabled then local t = getClosest() if t then hl.Adornee = t.char; hl.Enabled = true else hl.Enabled = false end else hl.Enabled = false end end end) end -- UI local gui = Instance.new("ScreenGui", LP:WaitForChild("PlayerGui")) gui.Name = "SilentPunchAssist"; gui.ResetOnSpawn = false local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 250, 0, 165); frame.Position = UDim2.new(0, 20, 0, 20) frame.BackgroundColor3 = Color3.fromRGB(28, 28, 38); frame.BorderSizePixel = 1; frame.Active = true; frame.Draggable = true local title = Instance.new("TextLabel", frame); title.Size = UDim2.new(1, 0, 0, 24) title.Text = "Punch Assist v9"; title.BackgroundColor3 = Color3.fromRGB(48, 48, 68) title.TextColor3 = Color3.new(1, 1, 1); title.Font = Enum.Font.SourceSansBold; title.TextSize = 15 local toggle = Instance.new("TextButton", frame); toggle.Size = UDim2.new(0, 230, 0, 28) toggle.Position = UDim2.new(0, 10, 0, 30); toggle.Text = "ENABLED" toggle.BackgroundColor3 = Color3.fromRGB(40, 160, 90); toggle.TextColor3 = Color3.new(1, 1, 1) toggle.Font = Enum.Font.SourceSansBold; toggle.TextSize = 14 local track = Instance.new("Frame", frame); track.Size = UDim2.new(0, 230, 0, 8) track.Position = UDim2.new(0, 10, 0, 74); track.BackgroundColor3 = Color3.fromRGB(70, 70, 80) local fill = Instance.new("Frame", track); fill.Size = UDim2.new(0, 0, 1, 0); fill.BackgroundColor3 = Color3.fromRGB(0, 200, 120) local knob = Instance.new("TextButton", track); knob.Size = UDim2.new(0, 14, 0, 18) knob.Position = UDim2.new(0, -7, -0.62, 0); knob.BackgroundColor3 = Color3.new(1, 1, 1); knob.Text = ""; knob.AutoButtonColor = false local valueBox = Instance.new("TextBox", frame); valueBox.Size = UDim2.new(0, 230, 0, 28) valueBox.Position = UDim2.new(0, 10, 0, 94); valueBox.Text = tostring(Range) valueBox.PlaceholderText = "Range (studs)"; valueBox.BackgroundColor3 = Color3.fromRGB(20, 20, 28) valueBox.TextColor3 = Color3.new(1, 1, 1); valueBox.Font = Enum.Font.SourceSans; valueBox.TextSize = 14; valueBox.ClearTextOnFocus = false local lockLbl = Instance.new("TextLabel", frame); lockLbl.Size = UDim2.new(0, 230, 0, 18) lockLbl.Position = UDim2.new(0, 10, 0, 128); lockLbl.Text = "Locked: none" lockLbl.BackgroundTransparency = 1; lockLbl.TextColor3 = Color3.fromRGB(160, 160, 170); lockLbl.Font = Enum.Font.SourceSans; lockLbl.TextSize = 12 local function v2x(v) return (v - MIN) / (MAX - MIN) * track.AbsoluteSize.X end local function x2v(x) return MIN + math.clamp(x / math.max(track.AbsoluteSize.X, 1), 0, 1) * (MAX - MIN) end local function setVal(v, fb) v = math.clamp(math.round(v), MIN, MAX); Range = v; local x = v2x(v) knob.Position = UDim2.new(0, x - 7, -0.62, 0); fill.Size = UDim2.new(0, x, 1, 0) if not fb then valueBox.Text = tostring(v) end end local drag = false knob.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then drag = true end end) knob.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then drag = false end end) UIS.InputChanged:Connect(function(i) if drag and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then setVal(x2v(i.Position.X - track.AbsolutePosition.X)) end end) valueBox.FocusLost:Connect(function() local n = tonumber(valueBox.Text); if n then setVal(n, true) end end) toggle.MouseButton1Click:Connect(function() Enabled = not Enabled; toggle.Text = Enabled and "ENABLED" or "DISABLED"; toggle.BackgroundColor3 = Enabled and Color3.fromRGB(40, 160, 90) or Color3.fromRGB(150, 50, 50) end) task.spawn(function() while true do task.wait(0.15); if gui and gui.Parent then lockLbl.Text = "Locked: " .. (getClosest() and getClosest().name or "none") end end end) setVal(Range) print("WE'RE SO BAAAAACKKKKKK") -- oh yeah also: FUCK YOU JOHN.