Tool without Handle not firing events [SOLVED]

  1. What do you want to achieve? Keep it simple and clear!
    I want to make a tool that makes you spin and fly up like a helicopter.
  2. What is the issue? Include screenshots / videos if possible!
    The events are not firing, like Equipped or Activated. It does not have a handle, but RequiresHandle is false. This is the code so far, the print statement does not run.
script.Parent.Equipped:Connect(function()
	print("eq")
	local char = script.Parent.Parent
	local hum :Humanoid = char:WaitForChild("Humanoid")
	local animator = hum:WaitForChild("Animator")
	local Anim = script:WaitForChild("Animation")
	local track = animator:LoadAnimation(Anim)
	track.Priority = Enum.AnimationPriority.Action
	track:Play()
end)

Here is the ancestry, too.
Screenshot 2025-04-30 185426

  1. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    I tried using .Changed and checking if prop == "Parent" --prop is the property changed
    and then if script.Parent.Parent:FindFirstChild("Humanoid") ~= nil but it still wouldn’t work.

I tried looking on the dev forum but it seems nobody is having the same issue.

2 Likes

accidentally uploaded too early gonna edit now

Are they bindablefunctions?

Just updated it, accidentally pressed upload post check it now.

Also, they are not bindablefunctions.

Try doing this Tool.RequiresHandle = false

Ok, but it is already set to false but i dont know it might switch for some reason

It doesn’t seem to be affecting it.

Do you have ManualActivationOnly set to true?

Oh, I don’t. Should I turn it on?

No, it should be turned off. Do you have maybe Enabled set to false?

Enabled is true. 30charlimit

Hmmmm do you clone the tool into the player backpack on the client?

This is the code, on the LocalScript in StarterPlayerScripts.

local plr = game.Players.LocalPlayer
plr.CharacterAdded:Connect(function(char)
	print("a")
	for i = 1, 3 do
		local randomtool = game.ReplicatedStorage.Tools:GetChildren()[math.random(1,#game.ReplicatedStorage.Tools:GetChildren())]
		randomtool.Parent = plr.Backpack
	end
	char.Humanoid.Died:Connect(function()
		for i, v in plr.Backpack:GetChildren() do
			v.Parent = game.ReplicatedStorage.Tools
		end
		if char:FindFirstChildWhichIsA("Tool") then
			char:FindFirstChildWhichIsA("Tool").Parent = game.ReplicatedStorage.Tools
		end
	end)
end)

Basically on the client, it parents the tools to the player, so i dont get repeats, and when they die it is added back on the client. I couldn’t find a better way of getting no repeats.

Ohhhhh that’s the issue!!! You can’t clone a script with a local script

Oh… Its parenting not cloning though, does that still affect it?

Try fixing it by replacing the script to a local script (the script inside of the tool) and make a remoteevent to run the animation on the server

2 Likes

Yeah it still affects it (30charlimit)

Ok. I thought i heard player animations are replicated automatically though?

Idk about that but you can try it

Ok, we’ll see what happens. I have a feeling this will work. I assume you can’t clone or move scripts on a localscript because of exploits.