This is really all you need in the tool script it will set an attribute when the tool is being activated and held down when they let off mouse it will remove the activated attribute
local Tool = script.Parent
Tool.Activated:Connect(function() -- this will add the activated attribute so you can check on server if tool is activated
print('Hi i have been Activated')
Tool:SetAttribute('Activated', true)
end)
Tool.Deactivated:Connect(function() -- this will remove the activated attribute
print('Hi i have been Deactivated')
Tool:SetAttribute('Activated', nil)
end)
now on the server in the touched function get the Tool from the character and do
if Tool:GetAttribute('Activated') then
--- do something here their tool is active
end