Problems with viewmodel animations

Animation Editor:


In Game:

I’m currently using Egomoose’s fps viewmodel method, with the animation being played with a modified method of Headstackk’s method (where the tool is attached to the animation rig’s head instead of the upper torso and the right upper arm is attached to the animation rig’s heads as well)

Apart from these differences, I don’t see why the animation would play differently in studio test mode?

I tried changing the motor6d so that the tool is attached to the right hand when the mouse if being held down but so far I’ve only dug myself into a confusing rabbit hole.

Local script, attaches tool handle to right hand

local function updateArm(key)
	if EquippedAnything and Humanoid.Animplaying.Value == false then
		local ViewTool = ViewModel:FindFirstChildWhichIsA("Model")
		local shoulder = ViewModel[key.."UpperArm"][key.."Shoulder"]
		local cf = ViewTool[key].CFrame * CFrame.Angles(math.pi/2, 0, 0) * CFrame.new(0, 1.2, 0)
		shoulder.C1 = cf:inverse() * shoulder.Part0.CFrame * shoulder.C0
	elseif EquippedAnything and Humanoid.Animplaying.Value == true then	-- Animplaying is true when mouse button down
		local ViewTool = ViewModel:FindFirstChildWhichIsA("Model")
		ToolJoint.Part1 = ViewTool.BodyAttach	-- part1 is tool handle, attaches tool to right hand
	end
end

The result is this:
https://gyazo.com/5a265c7d487f8182a93374ad8f81bd68

I think its better? But the release animation still doesnt play properly, it should look like this:
https://gyazo.com/138055b3a83737c5867ac8a9975e3c2a