Trying to move arms with tools (FirstPerson R6 only)

Guys, I just edited the script. When you unequip it will go back to the default pose or old rotation of the arms.
This is the code I make for myself. But the problem is that the camera does not rotate. I mean, like this problem How could I make your arms and head follow your mouse up and down? - #40 by Bikereh? u=jando_123456

So this is the code now. I hope it helps.

local run = game:GetService("RunService")
local tool = script.Parent
local equipped = false
local Player = game.Players.LocalPlayer
local mouse = Player:GetMouse()
local char = Player.Character

local DefaultRightArm = char:WaitForChild('Torso'):WaitForChild('Right Shoulder').C0
local DefaultLeftArm = char:WaitForChild('Torso'):WaitForChild('Left Shoulder').C0

tool.Equipped:Connect(function()
	equipped = true
end)

tool.Unequipped:Connect(function()
	equipped = false
	char:WaitForChild('Torso'):WaitForChild('Right Shoulder').C0 = DefaultRightArm
	char:WaitForChild('Torso'):WaitForChild('Left Shoulder').C0 = DefaultLeftArm
end)

run.RenderStepped:Connect(function()
	mouse.TargetFilter = game.Workspace
	if equipped == true then
		local rightX, rightY, rightZ = char:WaitForChild('Torso'):WaitForChild('Right Shoulder').C0:ToEulerAnglesYXZ()
		char:WaitForChild('Torso'):WaitForChild('Right Shoulder').C0 = (char.Torso["Right Shoulder"].C0 * CFrame.Angles(0, 0, -rightZ)) * CFrame.Angles(0, 0, math.asin((mouse.Hit.p - mouse.Origin.p).unit.y))

		local leftX, leftY, leftZ = char.Torso["Left Shoulder"].C0:ToEulerAnglesYXZ()
		char:WaitForChild('Torso'):WaitForChild('Left Shoulder').C0 = (char.Torso["Left Shoulder"].C0 * CFrame.Angles(0, 0, -leftZ)) * CFrame.Angles(0, 0, math.asin((-mouse.Hit.p - -mouse.Origin.p).unit.y))
	end
end)

--Code original by: ToxicalGamer2006
--Code edited by: Jando_123456