local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local lp = Players.LocalPlayer
local detectionRange = 490
local checkDelay = 0.1
local safeNudge = Vector3.new(0.25, 0, 0.25)
local notifyCooldown = 6
local healRate = 10 -- Amount healed per tick
local healDelay = 0.1 -- Delay between each regen tick
local recentAttackers = {}
local canMove = true
local function waitForCharacter()
lp.CharacterAdded:Wait()
lp.Character:WaitForChild("HumanoidRootPart")
lp.Character:WaitForChild("Humanoid")
end
if not lp.Character then waitForCharacter() end
local char = lp.Character
local hrp = char:WaitForChild("HumanoidRootPart")
local hum = char:WaitForChild("Humanoid")
function isDangerousTool(tool)
local dangerNames = {"Mace", "Pencil", "Knife", "Blade", "Hammer"}
for _, word in pairs(dangerNames) do
if tool.Name:lower():find(word:lower()) then
return true
end
end
return false
end
function notifyOnce(player)
local name = player.Name
if recentAttackers[name] then return end
recentAttackers[name] = true
pcall(function()
local thumb = Players:GetUserThumbnailAsync(player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100)
StarterGui:SetCore("SendNotification", {
Title = "⚠️ Aura Warning",
Text = player.DisplayName .. " (@" .. player.Name .. ") is targeting you!",
Icon = thumb,
Duration = 3
})
end)
task.delay(notifyCooldown, function()
recentAttackers[name] = nil
end)
end
function checkAura()
if not lp.Character or not lp.Character:FindFirstChild("HumanoidRootPart") then return end
hrp = lp.Character.HumanoidRootPart
for _, p in ipairs(Players:GetPlayers()) do
if p ~= lp and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
local theirHRP = p.Character.HumanoidRootPart
local distance = (theirHRP.Position - hrp.Position).Magnitude
if distance <= detectionRange then
local tool = p.Character:FindFirstChildOfClass("Tool")
if tool and isDangerousTool(tool) then
notifyOnce(p)
if canMove then
canMove = false
local newPos = hrp.Position + safeNudge
hrp.CFrame = CFrame.new(newPos, newPos + hrp.CFrame.LookVector)
task.delay(0.2, function() canMove = true end)
end
end
end
end
end
end
-- Fast health regen loop
task.spawn(function()
while true do
task.wait(healDelay)
if lp.Character and lp.Character:FindFirstChild("Humanoid") then
local h = lp.Character:FindFirstChild("Humanoid")
if h.Health < h.MaxHealth then
h.Health = math.min(h.Health + healRate, h.MaxHealth)
end
end
end
end)
-- Handle respawn
Players.LocalPlayer.CharacterAdded:Connect(function(newChar)
char = newChar
hrp = char:WaitForChild("HumanoidRootPart")
hum = char:WaitForChild("Humanoid")
end)
-- Main loop
while true do
task.wait(checkDelay)
checkAura()
end
