Tool.Equipped only fires on the local client that equipped the tool

For some reason, the “Equipped” (as well as Unequipped) event of Tool objects will only fire on the client that equipped the tool, even though the Tool object exists on other clients.

Repro: Equipped bug.rbxl (15.3 KB)

In a Server + 2 Players test (Although this should also happen in an actual server), the tools are registered on both clients (via CollectionService), and the “Equipped” event is connected, but it never fires on a client that doesn’t actually equip the tool.


I would expect this event to fire on all clients upon replication of the tool being equipped.
For now I’ll just use my own remotes.


Instead of remotes maybe could you hook to the parent property?

Tool:GetPropertyChangedSignal( 'Parent' ):Connect( function ( parent )
    if parent == theirCharacter then
        -- equipped
        -- unequipped
end )

Thank you for posting this! I just ran into this issue today and I felt like I was losing my mind until finding this post. XP

If this isn’t going to be fixed in the near future, the wiki page needs to be updated to say that these events don’t replicate, otherwise more people are going to get confused when they run into this.

1 Like