Adjusting welds for gun aim goes wrong

When the player looks up with a gun, I want their arms to hold the gun up as well. I adjust the shoulder welds to do this, but unfortunately, the left arm moves away from the gun as this happens.

Character.Torso["Right Shoulder"].C1 = CFrame.new(-0.5, 0.5, 0) * CFrame.Angles(-math.rad(rinf.Aim.Value), math.rad(90), 0)
Character.Torso["Left Shoulder"].C1 = CFrame.new(0.5, 0.5, 0) * CFrame.Angles(-math.rad(rinf.Aim.Value), math.rad(-90), 0)

de799

Is there any way I can get the left arm to properly stay in place? Like pivoting it around a different point?

I suggest animating the gun hold animation. Then make an equip script that plays and loops the holding animation.

That’s what’s already happening. A gun holding animation plays, and the weld edits are meant to adjust it to look up and down.

Oops. I thought you were changing the motor6d of the arms. I suggest moving the torso and not the arms.

I am changing the motors of the arms.

Rotating the torso would look horrendous. This is R6.

The holding animation itself isn’t messed up either. If I look forward, it looks like this.

de800

I need the arms to rotate as if they were connected to the head, I guess.