Your question isn’t very clear — is it that your weapon deals damage simply when held and brushed against another player?
I suggest making the weapon also check whether it is currently being swung.
Before, your damage dealing script might look something like if debounce == false and isPlayer(hit) then dealDamage(hit) end.
You’d have to make it check for some sort of “swinging” variable (if debounce == false and swinging == true and isPlayer(hit) then dealDamage(hit) end), then set this variable to true when the player swings it and set it to false shortly afterward.
This way, the weapon will be harmless when it’s not being used to attack.
If your swinging and damaging scripts are separate, this becomes a bit harder, you have to mess with remoteevents (if there’s a localscript involved) or use a BoolValue to share the “swinging” state between scripts, but this is how you’d do it.