Humanoid:LoadAnimation not working when player resets/dies

I’m trying to load animations from the tool into the players humanoid. This works fine, until the player dies. When they die, I get these two errors:

LoadAnimation requires the Humanoid object (Towren.Humanoid) to be a descendant of the game object

Anims is not a valid member of Tool “Players.Towren.Backpack.HK416”

Same errors get thrown for all the other weapons too. Full script:

local maxAmmo = 30
local Ammo = maxAmmo
local reloading = false
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local textLabel = playerGui:WaitForChild("HK416Ammo"):FindFirstChild("AmmoText")
local animation = game.Players.LocalPlayer.Character.Humanoid:LoadAnimation(script.Parent.Anims:FindFirstChild("Reload"))
local holdAnim = game.Players.LocalPlayer.Character.Humanoid:LoadAnimation(script.Parent.Anims:FindFirstChild("Hold"))

script.Parent.Equipped:Connect(function(Mouse)
	holdAnim:Play()
	textLabel.Parent.Enabled = true
	
	local function reload()
		local reloadSound = Instance.new("Sound")
		reloadSound.SoundId = "rbxassetid://144798533"
		reloadSound.Parent = script.Parent
		reloadSound.Playing = true
		reloadSound.PlaybackSpeed = 1.5
		reloading = true
		animation:Play()
		wait(2.5)
		Ammo = maxAmmo
		reloading = false
	end
	
	script.Parent.Activated:Connect(function()
		if Ammo > 0 and not reloading then
				Ammo = Ammo - 1
				local sound = Instance.new("Sound")
				sound.SoundId = "rbxassetid://168143115"
				sound.Parent = script.Parent
				sound.Playing = true
				if Mouse.Target.Parent:FindFirstChild("Humanoid") then
					script.Parent.DealDamage:FireServer(Mouse.Target.Parent, 15)
				end
		elseif reloading == false then
			reload()
		end
		
		while wait() do
			textLabel.Text = (Ammo).." / "..maxAmmo
		end
	end)
	
	local input = game:GetService("UserInputService")
	input.InputBegan:Connect(function(Key)
		if Key.KeyCode == Enum.KeyCode.R and reloading == false and Ammo ~= maxAmmo then
			reload()
		end
	end)
end)

script.Parent.Unequipped:Connect(function()
	holdAnim:Stop()
	textLabel.Parent.Enabled = false
end)

Anyone got any solutions? Really bugging me.

Well LoadAnimation on the humanoid has been deprecated for months now.

Use Animator.
https://developer.roblox.com/en-us/api-reference/function/Animator/LoadAnimation

You can check for the player health whenever you are playing an animation like:

If game.Players.LocalPlayer.Character.Humanoid.Health <= 0 then  return end