tool.Activated not firing no matter what

Im not tho, thats in the Equipped function :slight_smile: And thats the one that works, so you tell me…

and do you even know what that variable states? i dont think you do

I do know what that variable states

When I work with tools, I split it between the client and the server. The client takes the input and uses a remote event to trigger the operation of the tool on the server. But in your case, I’ll do this from the client side.

local toolInstance = script.Parent
local equipped = false
local debounce = true

-- Tool equipped event handler
toolInstance.Equipped:Connect(function()
	equipped = true
end)

-- Tool unequipped event handler
toolInstance.Unequipped:Connect(function()
	equipped = false
end)

-- Tool activated handler
toolInstance.Activated:Connect(function()
	if equipped then
		if debounce then
			debounce = false
			print("Tool Activated")
			delay(0.1, function()
				debounce = true
			end)
		end
	end
end)

Now, outside of the tool code, you should be able to do toolInstance:Activate() to activate the tool if it’s equipped.