Why is the animation event not always firing when the animation is playing too fast?

function pickup(tool : Tool)
	pickupAnim:Play()
	local func = pickupAnim:GetMarkerReachedSignal("PickUp"):Connect(function()
		print(2)
		tool.Parent = script.Parent

	end)
end

pickup(workspace.Tool)

it wont always fire the event when the animation plays too fast

This can happen due to various reasons such as frame rate issues or the animation not being able to keep up with the rapid playback speed.

If possible, slow down the playback speed of the animation. This can be done either within the animation editor or programmatically in your script.