Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
player = Players.LocalPlayer
FOLLOW_DISTANCE =
ATTACK_DISTANCE =
ATTACK_DELAY =
JUMP_MIN =
JUMP_MAX =
character
humanoid
root
equippedTool
attacking =
nextJump =
(char)
character = char
humanoid = char:()
root = char:()
equippedTool =
player.Character
(player.Character)
player.CharacterAdded:(setupCharacter)
(tool)
tool:()
tool:()
tool:(, )
()
root
closest =
closestDistance = .huge
_, target (Players:())
target ~= player target.Character
targetHumanoid = target.Character:()
targetRoot = target.Character:()
targetHumanoid targetRoot targetHumanoid.Health >
distance = (targetRoot.Position - root.Position).Magnitude
distance < closestDistance
closestDistance = distance
closest = target
closest, closestDistance
()
equippedTool equippedTool.Parent
(()
equippedTool:()
)
(tool)
tool:() (tool)
equippedTool = tool
(tool)
tool:()
tool.Equipped:(()
(tool)
equippedTool = tool
)
tool.Unequipped:(()
equippedTool == tool
equippedTool =
)
tool.Parent == character
equippedTool = tool
()
character
_, tool (character:())
(tool)
_, tool (player.Backpack:())
(tool)
player.Backpack.ChildAdded:((child)
(child)
)
character
character.ChildAdded:((child)
(child)
)
()
RunService.Heartbeat:(()
character humanoid root
humanoid.Health <=
equippedTool equippedTool.Parent ~= character
target, distance = ()
target target.Character
targetRoot = target.Character:()
targetRoot
distance > FOLLOW_DISTANCE
humanoid:(targetRoot.Position)
direction = (root.Position - targetRoot.Position)
direction.Magnitude <
direction = .(, , )
desiredPosition =
targetRoot.Position + direction.Unit * FOLLOW_DISTANCE
humanoid:(desiredPosition)
.() >= nextJump
.(, ) <=
humanoid.Jump =
nextJump = .() + .() * (JUMP_MAX - JUMP_MIN) + JUMP_MIN
distance <= ATTACK_DISTANCE attacking
attacking =
.(()
()
.(ATTACK_DELAY)
attacking =
)
)
Universal