local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local replicatedStorage = game:GetService("ReplicatedStorage")
local SimpleLib = loadstring(game:HttpGet("https://raw.githubusercontent.com/IcantAffordSynapse/SimpleLib/refs/heads/main/SimpleLib.lua"))()
local Window = SimpleLib:Window("killaura")
local mainTab = Window:AddSection("main")
local isEnabled = false
local attackRange = 13
local maxAngle = 360
local maxTargets = 5
local attackDelay = {}
local isAttacking = false
local function getInventory()
local backpack = LocalPlayer:FindFirstChild("Backpack")
if not backpack then return {} end
local tools = {}
for _, tool in ipairs(backpack:GetChildren()) do
if tool:IsA("Tool") then
table.insert(tools, tool)
end
end
return tools
end
local function getSword()
local inv = getInventory()
for _, tool in ipairs(inv) do
if tool:GetAttribute('WeaponType') then
return tool
end
end
local character = LocalPlayer.Character
if character then
for _, tool in ipairs(character:GetChildren()) do
if tool:IsA("Tool") and tool:GetAttribute('WeaponType') then
return tool
end
end
end
return nil
end
local function getPlayersInRange()
local character = LocalPlayer.Character
if not character then return {} end
local rootPart = character:FindFirstChild("HumanoidRootPart")
if not rootPart then return {} end
local players = {}
local selfPos = rootPart.Position
local localFacing = rootPart.CFrame.LookVector * Vector3.new(1, 0, 1)
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if player.Team == LocalPlayer.Team then continue end
local targetChar = player.Character
if not targetChar then continue end
local targetRoot = targetChar:FindFirstChild("HumanoidRootPart")
if not targetRoot then continue end
local delta = targetRoot.Position - selfPos
local dist = delta.Magnitude
if dist > attackRange then continue end
local angle = math.acos(localFacing:Dot((delta * Vector3.new(1, 0, 1)).Unit))
if angle > math.rad(maxAngle / 2) then continue end
table.insert(players, {
Character = targetChar,
RootPart = targetRoot,
Distance = dist
})
end
return players
end
mainTab:Toggle("toggle", false, function(state)
isEnabled = state
if not state then
isAttacking = false
end
end)
mainTab:Slider("range", 1, 13, 13, function(value)
attackRange = value
end)
mainTab:Slider("angle", 1, 360, 90, function(value)
maxAngle = value
end)
mainTab:Slider("targets", 1, 10, 10, function(value)
maxTargets = value
end)
spawn(function()
while true do
task.wait(0.016)
if not isEnabled then
isAttacking = false
continue
end
local tool = getSword()
if not tool then
isAttacking = false
continue
end
local players = getPlayersInRange()
if #players == 0 then
isAttacking = false
continue
end
isAttacking = true
local character = LocalPlayer.Character
if not character then continue end
local humanoid = character:FindFirstChild("Humanoid")
if tool.Parent ~= character then
if humanoid then
humanoid:EquipTool(tool)
end
end
local count = 0
for _, player in ipairs(players) do
if count >= maxTargets then break end
if (os.clock() - (attackDelay[player.Character] or 0)) < 0.03 then
continue
end
local combatRemotes = replicatedStorage:FindFirstChild("GameEvents")
if combatRemotes then
combatRemotes = combatRemotes:FindFirstChild("CombatRemotes")
end
if combatRemotes then
local swing = combatRemotes:FindFirstChild("Combat_FeintSwing")
local attack = combatRemotes:FindFirstChild("Combat_RequestAttack")
if swing then
swing:FireServer()
end
if attack then
local weaponType = tool:GetAttribute('WeaponType')
attack:FireServer(weaponType, player.Character)
end
end
attackDelay[player.Character] = os.clock()
count = count + 1
end
end
end)