This animation handler that I have works without returning errors however, when the animations are played, they stutter as if being started over 4 or 5 times before playing. I just want the animations to play normally and when they are called.

Now, when I don't stop all animations being played in the humanoid, the animations play infinitely over the idle animations (Even while using animtrack:Stop()) , but when I do stop them all, the animations begin to jitter and shake. Taking a few moments to play in most cases. Please help if you can, thanks!

See line 66


--Player Variables--
local Left = Instance.new("Animation")
	Left.Name = ("Left")
    Left.AnimationId = "rbxassetid://416628708"
	local Right = Instance.new("Animation")
	Right.Name = ("Right")
    Right.AnimationId = "rbxassetid://428103166"
	local Forward = Instance.new("Animation")
	Forward.Name = ("Forward")
    Forward.AnimationId = "rbxassetid://416928312"
	local Backward = Instance.new("Animation")
	Backward.Name = ("Backward")
    Backward.AnimationId = "rbxassetid://416928338"
	local Jump = Instance.new("Animation")
    Jump.AnimationId = "rbxassetid://408621791"
	local Idle = Instance.new("Animation")
	Idle.Name = ("Idle")
    Idle.AnimationId = "rbxassetid://416928266"
	local Sprint = Instance.new("Animation")
    Sprint.AnimationId = "rbxassetid://409050900"

	local already_ran = false
	local grounded = false
	local State = false
	local RunningDebounce = false
local P = game:GetService('Players').LocalPlayer
repeat wait() until P.Character
local Inputs = {Left,Right,Forward,Backward,Jump,Idle,Sprint}
local Event = game.ReplicatedStorage.Events:WaitForChild("AnimationEvent")		
local Value
local Walkspeed = script.Walkspeed.Value
function playAnimation(parent)
		local AnimTrack = P.Character.Humanoid:LoadAnimation(parent)
		AnimTrack:Stop()
		wait(.01)
		AnimTrack:Play()
		--AnimTrack:AdjustSpeed(1.5)
	end

function onKeyPress(inputObject, gameProcessedEvent)
	--if State == true then
	if inputObject.KeyCode == Enum.KeyCode.A then
		Value = Inputs[1]
		Walkspeed = 12
		elseif inputObject.KeyCode == Enum.KeyCode.D then
		Value = Inputs[2]
		Walkspeed = 14
		elseif  inputObject.KeyCode == Enum.KeyCode.W then
		Value = Inputs[3]
		Walkspeed = 12
		elseif  inputObject.KeyCode == Enum.KeyCode.S then
		Value = Inputs[4]
		Walkspeed = 10
		elseif  inputObject.KeyCode == Enum.KeyCode.Space then
		Value = Inputs[5]

	end
end

game:GetService("UserInputService").InputBegan:connect(onKeyPress)
			
	P.Character.Humanoid.Running:connect(function(speed)

		if speed < 1 then
		for _,v in pairs(P.Character.Humanoid:GetPlayingAnimationTracks()) do v:Stop() end
		playAnimation(Idle)
		
		elseif speed > 0 then
			for _,v in pairs(P.Character.Humanoid:GetPlayingAnimationTracks()) do v:Stop() end
			playAnimation(Value)
			--local e = game.ReplicatedStorage.Events.WalkspeedEvent
			--e:FireServer(Walkspeed)
			print(Walkspeed)
			wait(0.1)
		end
		end)