@DARKM_SSIAH Equipped is a RBXScriptSignal, not a boolean property. This would do nothing and it’s not a wise use of loops either - there shouldn’t be any looping in this at all.
The issue here as to why the rocket shot out does nothing is because the Tool is destroyed. Considering the script controlling the rocket is a descendant of the Tool, destroying the tool means destroying any connections or code associated with the rocket. It becomes a static object.
I would use the Rocket Launcher uploaded by Roblox as opposed to the one by UristMcSparks, since that version separates the rocket touched control from the tool instead of putting them in one. Destroying the tool would not make the rocket a static object.
In this code under the Server script, you can change a line to destroy the tool instead of re-enabling it for continued usage.
Tool.Enabled = true
There’s a few ugly and clean workarounds for the one uploaded by UristMcSparks, but I wouldn’t look into them. Since the functionality for firing rockets (handling the tool) and exploding the rocket (handling the rocket) are in the same script, it makes it slightly more difficult or time-consuming to tailor the code for a one-use approach without changing the code by a lot.