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:
- Create a tool in StarterPack, and add a Handle Part so you can drop the tool.
- Insert a LocalScript in the tool.
- Using the LocalScript, connect a function to the Unequipped signal. You can make the function do anything, even print to console.
- Start a playtest.
- 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.