How to make R6 character leaning?

I want to add leaning to my gun system. I already have camera effects for leaning, but I’m stuck on the character leaning part. Right now, what I do is rotate the character’s RootJoint when the character leans. Like this:

game:GetService("TweenService"):Create(rootJoint,, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, 0, false, 0), {C0 = rootJointC0Origin *, 0, 0) * CFrame.Angles(0, 0.3, 0)}):Play()

But this has a huge problem. When the character leans while in first-person, they will also rotate to the left or right on another axis. Here’s a video of what that looks like

And I don’t really want to use animations because that just seems inefficient to me. Is there any better way to make the character lean?

Edit: I tried using animations and it does the same thing.