Animation will not play [Need Help]

I was making a ability for a tool and it isn’t playing animations any reasons why?

Script:

------------------Main-----------------
local RaycastHitbox = require(game.ReplicatedStorage.RaycastHitboxV4)
local Hitbox = RaycastHitbox.new(script.Parent.Handle)
local uis = game:GetService("UserInputService")
Hitbox.Visualizer = true
local CurrentHumnanoid
local Snd = script.Parent.Handle.Slash
local idle
local CurrentAnimation
local CurrentAnimation2
local CurrentAnimation3
local db = true
local click = 0
------------------ShortNames-----------
local tool = script.Parent
local char = tool.Parent
local handle = tool:FindFirstChild("Handle")
local T = 1
local Dmg = math.random(10, 20)
local Poison = 0
local cd = .7
------------------functions------------

script.Parent.Activated:Connect(function()
	if db then
		db = false
		
		click += 1
		if click == 1 then
		Hitbox:HitStart(.55)
		if CurrentAnimation then
				CurrentAnimation:Play()
				Snd:Play()
			end
		elseif click == 2 then
			Hitbox:HitStart(.55)
			if CurrentAnimation2 then
				CurrentAnimation2:Play()
				Snd:Play()
				click = 0
			end
end
		wait(cd)
		db = true
	end
end)

Hitbox.OnHit:Connect(function(Part, Humanoid)
	if Humanoid and Humanoid ~= script.Parent.Parent.Humanoid then
		Humanoid:TakeDamage(Dmg)
		while Poison < 22 do
			Poison = Poison + 1
			Humanoid:TakeDamage((Humanoid.MaxHealth / 50))
			print("Poisoned")
			wait(0.8)
		end
		Poison = 0
		print("Poisonable")
	end
end)

tool.Equipped:Connect(function()
	local Humanoid = script.Parent.Parent:FindFirstChild("Humanoid")
	if Humanoid and Humanoid ~= CurrentHumnanoid then
		CurrentHumnanoid = Humanoid
		idle = script.Parent.Parent.Humanoid:LoadAnimation(script.Idle)
		idle.Priority = Enum.AnimationPriority.Action
		idle.Looped = true
		idle:Play()
		CurrentAnimation = Humanoid.Animator:LoadAnimation(script.Slash)
		CurrentAnimation2 = Humanoid.Animator:LoadAnimation(script.Slash2)
	end
end)

script.Parent.Unequipped:Connect(function()

end)

local script:

local RaycastHitbox = require(game.ReplicatedStorage.RaycastHitboxV4)
local Hitbox = RaycastHitbox.new(script.Parent.Handle)
local uis = game:GetService("UserInputService")
local db = true

uis.InputBegan:Connect(function(input, gameProcessedEvent)
	if gameProcessedEvent == false then
		script.Parent.RemoteEvent:FireServer(input.KeyCode)
	end
end)

tool:
https://gyazo.com/d8fd363f2aa8cf841a13f0984c8bafc6

Happened to me before, my animation was in my group and by game was in my profile.
I’ve reuploaded that animation on my profile then it seemed to work.

Also theres no need to use Animation, you can just do Humanoid:LoadAnimation()

No the animations for slash and other stuff are working fine its just this

script.Parent.RemoteEvent.OnServerEvent:Connect(function(caller, KeyCode) 
	if KeyCode == Enum.KeyCode.Q then
		if db then
			db = false
			Hitbox:HitStart(2)
			character:WaitForChild("Humanoid"):LoadAnimation(9304484527)
		end
	wait(T)
	db = true
end
end)

Do

local anima = Instance.new("Animation")
anima.AnimationId = "rbxassetid://9304484527"
character:WaitForChild("Humanoid"):LoadAnimation(anima)

I got error
attempt to index nil with ‘WaitForChild’
also do I put this in the function

local anima = Instance.new("Animation")
anima.AnimationId = "rbxassetid://9304484527"

Then your character doesn’t exists (nil)

so what do I do then?
(char limit)

You have caller parameter (the caller is the player)
You can get a player character by doing Player.Character, so it will be
caller.Character

Heres the code.

script.Parent.RemoteEvent.OnServerEvent:Connect(function(caller, KeyCode) 
	if KeyCode == Enum.KeyCode.Q then
		if db then
			db = false
			Hitbox:HitStart(2)
            local character = caller.Character
            local humanoid = character:WaitForChild("Humanoid") or character:FindFirstChild("Humanoid")
			local anima = Instance.new("Animation")
            anima.AnimationId = "rbxassetid://9304484527"
             character:WaitForChild("Humanoid"):LoadAnimation(anima)
		end
	wait(T)
	db = true
end
end)

You forgot:

anima:Play()

its still not working
(char limit)

Did you defined db? [char,char]

Try this

script.Parent.RemoteEvent.OnServerEvent:Connect(function(caller, KeyCode) 
	if KeyCode == Enum.KeyCode.Q then
		if db then
			db = false
			Hitbox:HitStart(2)
            local character = caller.Character
            local humanoid = character:WaitForChild("Humanoid") or character:FindFirstChild("Humanoid")
			local anima = Instance.new("Animation")
            anima.AnimationId = "rbxassetid://9304484527"
             character:WaitForChild("Humanoid"):LoadAnimation(anima):Play()
		end
	wait(T)
	db = true
end
end)

its still not working
(char limit)

db is just debounce like cooldown