A trouble with animation playing

Hello guys i making a medieval open world game. Its now time to make anims play and i wrote this script. The thing is none of anims in the code below are working rn so i need your help.
Anims are loaded in ‘Animation’ objects they are in folder which is in tool which is in replicatedstorage. So the way they should work:
Onback - axe tool in inventory, not equipped
equip - tool equipping anim
walk - tool already equipped, not activated, and player is walking
idle - tool already equipped, not activated, and player is idle/afk
any help aprecciated
code below

```local tool = script.Parent
local player = game.Players.LocalPlayer
if not player then return end

local Humanoid = nil
local equip = nil
local idle = nil
local walk = nil
local Onback = nil

local function loadAnimations()
	local character = player.Character
	if not character then return end
	Humanoid = character:WaitForChild("Humanoid")
	if Humanoid then
		local animationsFolder = tool.Animations
		if animationsFolder then
			equip = Humanoid:LoadAnimation(animationsFolder:FindFirstChild("Axe_Equip"))
			idle = Humanoid:LoadAnimation(animationsFolder:FindFirstChild("Axe_Equip_Idle"))
			walk = Humanoid:LoadAnimation(animationsFolder:FindFirstChild("Axe_Equip_Walk"))
			Onback = Humanoid:LoadAnimation(animationsFolder:FindFirstChild("Axe_OnBack & Reference"))
		else
			warn("Animations folder not found!")
		end
	end
end

local function playEquipAnimation()
	if Humanoid and Humanoid.Health > 0 and Humanoid.RigType == Enum.HumanoidRigType.R15 then
		if equip then
			Onback:Stop()
			equip:Play()
			equip.Stopped:Connect(function()
				idle:Play()
			end)
		end
	end
end

local function stopAnimations()
	if idle then idle:Stop() end
	if walk then walk:Stop() end
	if Onback then Onback:Play() end
end

player.CharacterAdded:Connect(function(character)
	Humanoid = character:WaitForChild("Humanoid")
	loadAnimations()
	tool.Equipped:Connect(playEquipAnimation)
	tool.Unequipped:Connect(stopAnimations)

	local currentAnimation = idle -- Начальная анимация - idle

	Humanoid.StateChanged:Connect(function(oldState, newState)
		if newState == Enum.HumanoidStateType.Running or newState == Enum.HumanoidStateType.Jumping then
			if currentAnimation ~= walk then
				idle:Stop()
				walk:Play()
				currentAnimation = walk
			end
		elseif oldState == Enum.HumanoidStateType.Running or oldState == Enum.HumanoidStateType.Jumping then
			if currentAnimation ~= idle then
				walk:Stop()
				idle:Play()
				currentAnimation = idle
			end
		end
	end)
end)

Assuming all animations are set up correctly, heres how you can try and see if theres any issues with your code:

local function playEquipAnimation()
	print("Equipped")
	if Humanoid and Humanoid.Health > 0 and Humanoid.RigType == Enum.HumanoidRigType.R15 then
		if equip then
			print("Trying to play equip animation")
			Onback:Stop()
			equip:Play()
			equip.Stopped:Connect(function()
				idle:Play()
			end)
		end
	end
end

For debugging you can insert print statements wherever you do something but it doesn’t work

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.