Run it
Copy the script and paste it into your executor.
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
ReplicatedStorage = :()
player = Players.LocalPlayer
character = player.Character player.CharacterAdded:()
myRoot = character:()
ATTACK_RANGE =
COOLDOWN =
ATTACK_TYPES = {, }
TARGET_PART =
combatEvent = ReplicatedStorage:():()
enemies = {}
(obj)
obj:() obj:() Players:(obj)
(obj)
(obj)
.(enemies, obj)
posStr =
root = obj:() obj.PrimaryPart
root posStr = (root.Position)
(, obj.Name, , posStr)
(obj)
i, e (enemies)
e == obj
.(enemies, i)
(, obj.Name)
_, obj (Workspace:())
(obj)
Workspace.ChildAdded:(addEnemy)
Workspace.ChildRemoved:(removeEnemy)
(()
()
new = {}
_, obj (Workspace:())
(obj) .(new, obj)
enemies = new
(, #enemies)
)
lastAttack =
RunService.Heartbeat:(()
now = ()
now - lastAttack < COOLDOWN
myPos = myRoot.Position
attacked =
_, npc (enemies)
targetPart = npc:(TARGET_PART, ) npc:() npc.PrimaryPart
targetPart
dist = (myPos - targetPart.Position).Magnitude
dist <= ATTACK_RANGE
_, at (ATTACK_TYPES)
combatEvent:(at, targetPart)
attacked =
(, npc.Name, , dist, , .(ATTACK_TYPES, ))
attacked
lastAttack = now
)