Tool.Unequipped does not fire when tool is dropped, but only when SignalBehavior is Deferred

The signal for when a tool is unequipped does not fire if the tool is dropped, but only if SignalBehavior is Deferred/AncestryDeferred.

Reproduction steps:

  1. Create a tool in StarterPack, and add a Handle Part so you can drop the tool.
  2. Insert a LocalScript in the tool.
  3. Using the LocalScript, connect a function to the Unequipped signal. You can make the function do anything, even print to console.
  4. Start a playtest.
  5. Drop the tool.

The function will not run if SignalBehavior is set to Deferred.

Simple reproduction file:
DeferredUnequipped.rbxl (55.3 KB)

Expected behavior

Even if signals are Deferred, I expected them to still fire so I can run code when the player drops an item on the ground.
This code could clean up currently playing animations, or hide GUIs.

3 Likes

Thanks for the report! We’ll take a look.

2 Likes