Best way to keep the UpperTorso animations for OTS gun system aligned with HumanoidRootPart with beta Roblox strafing animations?

I’m working on an over-the-shoulder weapon system for my game, using the original R15 animation system I get the desired effect. When switching to the beta strafing animator it messes with the positioning, I assume it is something to do with the LowerTorso being animated. What would be the best way to resolve this issue while potentially keeping the beta animator?

The GIF shows how the weapon violently sways in the direction the character is moving when staffing, the weapon also pulls up when moving backward more than normal. The weapon should stay aligned with the rootpart/camera.

This is the code I use for alignment:

if self.values.shoulderEnabled then
	rootPart.CFrame = rootPart.CFrame:Lerp(CFrame.new(rootPart.CFrame.Position, rootPart.CFrame.Position + newCameraCFrame.LookVector * Vector3.new(1, 0, 1)), 0.15)
	upperTorso.Waist.C0 = upperTorso.Waist.C0:Lerp(
		CFrame.new(upperTorso.Waist.C0.Position)
		* CFrame.Angles(((currentCamera.CFrame.LookVector.Y) * 0.8 + (self.springs.recoil.Position.Y * 0.1)), 0, 0),
		0.4
	)
	rightUpperArm.RightShoulder.C0 = rightUpperArm.RightShoulder.C0:Lerp(
		CFrame.new(rightUpperArm.RightShoulder.C0.Position)
		* CFrame.Angles(((currentCamera.CFrame.LookVector.Y) * 0.3 + (self.springs.recoil.Position.Y * 0.8)), 0, 0),
		0.1
	)
	leftUpperArm.LeftShoulder.C0 = leftUpperArm.LeftShoulder.C0:Lerp(
		CFrame.new(leftUpperArm.LeftShoulder.C0.Position)
		* CFrame.Angles(((currentCamera.CFrame.LookVector.Y) * 0.3 + (self.springs.recoil.Position.Y * 0.8)), 0, 0),
		0.1
	)
	head.Neck.C0 = head.Neck.C0:Lerp(CFrame.new(head.Neck.C0.Position), 0.2)
end

Is there any potential coding modifications I can apply to solve this issue? Thanks.

If you are shoot a bullet from a gun, then animating a character model will affect the direction of the bullet, since you gun will move in the same way as how your character model moves. Most FPS implements ‘shooting from barrel’, or ‘shooting from camera’. For example, many milirary simulator game shoot bullets from barrel, so when the gun moves, the bullet vector changes. Some FPS game uses shooting from camera, or shooting from the center of your monitor screen (ie. Rainbow Six: Siege) Your problem can be solved by creating an invisible part in front of your character which has its position relative to the HumanoidRootPart. Then shoot a bullet to where that invisible part is positioned. This method will solve gun swaying problem when trying to shoot. For realistic purposes, you can track whether the player is running, if they are running, you can stop them from shooting bullets right away, but wait for your animation until the gun is correctly positioned first.