When the animations load into the gun an equip animation plays with a couple remote events. If you either spam between the gun and another item or unequip the gun before the equip animation and it's remote events are done the Idle animation doesn't go away.

function OnEquipped(mouse)
	script.Parent.Handle.DrawSound:Play()
	local EquipR = Tool:WaitForChild("EquipR")
    RecoilAnim = WaitForChild(Tool, "Recoil")
	IdleAnim = WaitForChild(Tool, "Idle")
	EquipAnim = WaitForChild(Tool, "Equip")
	
    ReloadAnim = WaitForChild(Tool, "Reload")
	FireSound  = WaitForChild(Handle, 'FireSound')
	MyCharacter = Tool.Parent
	MyPlayer = game:GetService('Players'):GetPlayerFromCharacter(MyCharacter)
	MyHumanoid = MyCharacter:FindFirstChild('Humanoid')
	MyTorso = MyCharacter:FindFirstChild('Torso')
	MyMouse = mouse
	if IdleAnim then
		if MyHumanoid ~= nil then
			local spamcheck = false
			if spamcheck == false then 
		IdleTrack = MyHumanoid:LoadAnimation(IdleAnim)
		wait(0.1)
		spamcheck = true
			elseif spamcheck == true then
				
		end
		end
	end
	if RecoilAnim then
    RecoilTrack = MyHumanoid:LoadAnimation(RecoilAnim)
  end
  	if ReloadAnim then
    ReloadTrack = MyHumanoid:LoadAnimation(ReloadAnim)
  	end
	

	WeaponGui = WaitForChild(Tool, 'WeaponHud'):Clone()
	if WeaponGui and MyPlayer then
		WeaponGui.Parent = MyPlayer.PlayerGui
		UpdateAmmo(AmmoInClip)
	end
	if EquipAnim then
	EquipTrack = MyHumanoid:LoadAnimation(EquipAnim)
	EquipTrack:Play()
	wait(1)
	EquipR:FireServer()
	Receiver:FireServer("PlaySound", "EquipSound")
	wait(0.6)
	if IdleAnim ~= nil then
	if IdleTrack ~= nil then
    IdleTrack:Play()
else if IdleAnim == nil then
	IdleAnim:Stop()
	IdleTrack:Destroy()
	IdleTrack:Stop()
end
end
end
end
	if MyMouse then
		MyMouse.Icon = "rbxassetid://18662154"
		MyMouse.Button1Down:connect(OnMouseDown)
		MyMouse.Button1Up:connect(OnMouseUp)
		MyMouse.KeyDown:connect(OnKeyDown)
		wait(0.25)
		StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, true)
		Check = true
	end
  	end


function OnUnequipped()
	Check = false
	LeftButtonDown = false
	Reloading = false
	MyCharacter = nil
	MyHumanoid = nil
	MyTorso = nil
	MyPlayer = nil
	MyMouse = nil
	if EquipAnim ~= nil then
		IdleTrack:Stop()
	end
	if IdleAnim ~= nil then
	IdleTrack:Destroy()
    IdleTrack:Stop()
  end
	if EquipAnim then
		EquipTrack:Stop()
	end
  if RecoilTrack then
    RecoilTrack:Stop()
  end
  MyHumanoid = nil
  MyTorso = nil
  MyPlayer = nil
  MyMouse = nil
  if OnFireConnection then
    OnFireConnection:disconnect()
  end
  if OnReloadConnection then
    OnReloadConnection:disconnect()
  end
  if FlashHolder then
    FlashHolder = nil
  end
  if WeaponGui then
    WeaponGui.Parent = nil
    WeaponGui = nil
  end
end
if Reload == true then
Reload = false
end