Script Doesn't Work

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