--// Services local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") --// Constants local LOCAL_PLAYER = Players.LocalPlayer local HITBOX_EVENT = ReplicatedStorage:WaitForChild("event"):WaitForChild("combat"):WaitForChild("hitbox") local PARRY_EVENT = ReplicatedStorage:WaitForChild("event"):WaitForChild("combat"):WaitForChild("parry") local ATTACK_TYPES = { "attack", "specialattack", "sprintattack", "kick", "sprintkick", "jumpkick", "jumpattack" } local ATTACK_DELAY = 0.5 local DAMAGE_TIMEOUT = 2 local PARRY_RANGE = 6 local PARRY_ANIM_ID = "rbxassetid://78964624031588" --// State local farmEnabled = false local autoParryEnabled = false local killAuraEnabled = false local currentTarget = nil local lastAttackTime = 0 local lastKillAuraTime = 0 local attackIndex = 1 local lastTargetHealth = nil local lastDamageTime = 0 --// GUI local gui = Instance.new("ScreenGui", LOCAL_PLAYER:WaitForChild("PlayerGui")) gui.ResetOnSpawn = false local header = Instance.new("TextLabel", gui) header.Size = UDim2.new(0, 260, 0, 22) header.Position = UDim2.new(1, -270, 0.03, 0) header.BackgroundTransparency = 1 header.Text = "@imqwenzy | discord.gg/MjPs8RPcuN" header.TextColor3 = Color3.new(1, 1, 1) header.TextScaled = true header.Font = Enum.Font.GothamBold local button = Instance.new("TextButton", gui) button.Size = UDim2.new(0, 90, 0, 26) button.Position = UDim2.new(1, -100, 0.08, 0) button.Text = "Start Farm" button.Font = Enum.Font.GothamBold button.TextScaled = true button.TextColor3 = Color3.new(1, 1, 1) button.BackgroundColor3 = Color3.new(0, 0, 0) button.BackgroundTransparency = 0.4 Instance.new("UICorner", button).CornerRadius = UDim.new(0, 6) local parryBtn = Instance.new("TextButton", gui) parryBtn.Size = UDim2.new(0, 90, 0, 26) parryBtn.Position = UDim2.new(1, -200, 0.08, 0) parryBtn.Text = "AutoParry: OFF" parryBtn.Font = Enum.Font.GothamBold parryBtn.TextScaled = true parryBtn.TextColor3 = Color3.new(1, 1, 1) parryBtn.BackgroundColor3 = Color3.new(0, 0, 0) parryBtn.BackgroundTransparency = 0.4 Instance.new("UICorner", parryBtn).CornerRadius = UDim.new(0, 6) local killAuraBtn = Instance.new("TextButton", gui) killAuraBtn.Size = UDim2.new(0, 90, 0, 26) killAuraBtn.Position = UDim2.new(1, -300, 0.08, 0) killAuraBtn.Text = "KillAura: OFF" killAuraBtn.Font = Enum.Font.GothamBold killAuraBtn.TextScaled = true killAuraBtn.TextColor3 = Color3.new(1, 1, 1) killAuraBtn.BackgroundColor3 = Color3.new(0, 0, 0) killAuraBtn.BackgroundTransparency = 0.4 Instance.new("UICorner", killAuraBtn).CornerRadius = UDim.new(0, 6) button.MouseButton1Click:Connect(function() farmEnabled = not farmEnabled button.Text = farmEnabled and "Stop Farm" or "Start Farm" end) parryBtn.MouseButton1Click:Connect(function() autoParryEnabled = not autoParryEnabled parryBtn.Text = "AutoParry: " .. (autoParryEnabled and "ON" or "OFF") end) killAuraBtn.MouseButton1Click:Connect(function() killAuraEnabled = not killAuraEnabled killAuraBtn.Text = "KillAura: " .. (killAuraEnabled and "ON" or "OFF") end) --// Helpers local function getRandomPart(char) local parts = {"Head", "Torso", "HumanoidRootPart", "Left Arm", "Right Arm", "Left Leg", "Right Leg"} local found = {} for _, name in ipairs(parts) do local p = char:FindFirstChild(name) if p then table.insert(found, p) end end return #found > 0 and found[math.random(1, #found)] or nil end local function getAlivePlayers() local list = {} for _, player in ipairs(Players:GetPlayers()) do if player ~= LOCAL_PLAYER and player.Character and player.Character:FindFirstChild("Humanoid") then local hum = player.Character:FindFirstChild("Humanoid") if hum and hum.Health > 0 then table.insert(list, player) end end end return list end local function getRandomAlivePlayer() local pool = getAlivePlayers() return #pool > 0 and pool[math.random(1, #pool)] or nil end local function isSomeoneAttackingNearby(localHRP) for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LOCAL_PLAYER and plr.Character and plr.Character:FindFirstChild("data") then local data = plr.Character.data local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp and (data:GetAttribute("clash") or data:GetAttribute("kickiframe")) then if (hrp.Position - localHRP.Position).Magnitude <= PARRY_RANGE then return true end end end end return false end local function removeParryAnimation(char) local humanoid = char:FindFirstChildOfClass("Humanoid") if not humanoid then return end for _, animTrack in ipairs(humanoid:GetPlayingAnimationTracks()) do if animTrack.Animation and animTrack.Animation.AnimationId == PARRY_ANIM_ID then animTrack:Stop() animTrack:Destroy() end end end --// Main Loop RunService.RenderStepped:Connect(function() local localChar = LOCAL_PLAYER.Character local localHRP = localChar and localChar:FindFirstChild("HumanoidRootPart") if not localHRP then return end if autoParryEnabled then local parryVal = nil if localChar:FindFirstChild("data") then parryVal = localChar.data:GetAttribute("parry") end if parryVal == 0 then PARRY_EVENT:FireServer() end if not isSomeoneAttackingNearby(localHRP) then removeParryAnimation(localChar) end else removeParryAnimation(localChar) end if killAuraEnabled and tick() - lastKillAuraTime >= 0.3 then for _, player in ipairs(getAlivePlayers()) do local char = player.Character if char then local part = getRandomPart(char) local hum = char:FindFirstChild("Humanoid") if part and hum then HITBOX_EVENT:FireServer(part, hum, ATTACK_TYPES[attackIndex], 1, false, "Grass") end end end attackIndex = (attackIndex % #ATTACK_TYPES) + 1 lastKillAuraTime = tick() end if not farmEnabled then return end if not currentTarget or not currentTarget.Character or not currentTarget.Character:FindFirstChild("HumanoidRootPart") then currentTarget = getRandomAlivePlayer() lastTargetHealth = nil lastDamageTime = tick() return end local targetChar = currentTarget.Character local targetHRP = targetChar:FindFirstChild("HumanoidRootPart") local targetHum = targetChar:FindFirstChild("Humanoid") if not targetHRP or not targetHum or targetHum.Health <= 0 then currentTarget = getRandomAlivePlayer() lastTargetHealth = nil lastDamageTime = tick() return end if lastTargetHealth and targetHum.Health < lastTargetHealth then lastDamageTime = tick() end lastTargetHealth = targetHum.Health if tick() - lastDamageTime > DAMAGE_TIMEOUT then currentTarget = getRandomAlivePlayer() lastTargetHealth = nil lastDamageTime = tick() return end localHRP.Velocity = Vector3.zero localHRP.CFrame = CFrame.new(targetHRP.Position - Vector3.new(0, 7, 0)) if tick() - lastAttackTime >= ATTACK_DELAY then local part = getRandomPart(targetChar) if part then HITBOX_EVENT:FireServer(part, targetHum, ATTACK_TYPES[attackIndex], 1, false, "Grass") attackIndex = (attackIndex % #ATTACK_TYPES) + 1 lastAttackTime = tick() end end end)