A simple way to achieve only doing damage to each hit player a single time is to store hit players in a table.
For example:
local tool = script.parent
local debounce = nil
local hitPlayers = {}
local function Attack()
if debounce == nil then
hitPlayers = {}
--(The rest of your code; I'm too lazy to write it lol)
end
end
tool.Activated:Connect(Attack)
tool.Handle.Blade.Touched:Connect(function(hit)
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if player and debounce == true and not table.find(hitPlayers, player.UserId) then
table.insert(hitPlayers, player.UserId)
--(Rest of your code)
end
end)
** You are now Level 2! **
