So I am some-what bad at scripting, but I decided to use this script, the script will play the Idle animation however when unequipped the Idle animation will keep playing even though I use :Stop()
Script:
local Tool = script.Parent local Animation = Tool.Idle Tool.Equipped:Connect(function() local Character = Tool.Parent local Humanoid = Character.Humanoid local AnimationTrack = Humanoid:LoadAnimation(Animation) AnimationTrack:Play() end) Tool.Unequipped:Connect(function() AnimationTrack:Stop() end)
Well, Uneqquiped function couldn't access AnimationTrack variable because it is a local variable in another function, so I made it a global one, hope it works (:
local Tool = script.Parent local Animation = Tool.Idle local AnimationTrack Tool.Equipped:Connect(function() local Character = Tool.Parent local Humanoid = Character.Humanoid AnimationTrack = Humanoid:LoadAnimation(Animation) AnimationTrack:Play() end) Tool.Unequipped:Connect(function() AnimationTrack:Stop() end)
This is a quick simple mistake. :Stop() actually doesn’t exist. Here’s an actual script that works! ~~~~~~~~~~~~~~~~ Tool.Unequipped:Connect(function() AnimationTrack:Pause() end) ~~~~~~~~~~~~~~~~~ Thanks!
Removing the local infront of the variable because of the scope.
Reversing the animation would be an option too. https://developer.roblox.com/en-us/api-reference/function/AnimationTrack/AdjustSpeed
AnimationTrack:AdjustSpeed(negative number to play it backwards)