Your current code instantly destroys NewHandle after creating the Touched connection and at the same time it also makes plr.Character.Hammer.Handle visible again and disconnects the connection. That’s why nothing happens when the hammer is supposed to be thrown. I believe you could solve this by just adding a wait between creating the connection and doing the things after it.
-- earlier code...
print("Connected function")
wait(n)
plr.Character.Hammer.Handle.Transparency = 0
-- ... and the rest of the code
This isn’t related to the problem, but it’s not recommended to use Instance.new with parent argument.
https://devforum.roblox.com/t/psa-dont-use-instance-new-with-parent-argument/30296