For example in this script - I cant understand why he needs math.pi. local playa=game.Players.LocalPlayer;
script.Parent.Selected:connect(function(mouse)
while Wait() do
local weld=playa.Character.Torso["Left Shoulder"];
--[[
p0=part0.CFrame
c0=c0
p1=part1.CFrame
c1=c1
p1*c1 == p0*c0
c1 == p1:inverse()*p0*c0
c0 == p0:inverse()*p1*c1
--]]
local desired_p1=CFrame.new(--the CFrame that we want the arm to be at
(weld.Part0.CFrame*CFrame.new(-1,1,0)).p,--the position we want
mouse.hit.p--look at the mouse
)*
CFrame.Angles(math.pi/2,0,0);--rotate it so that the hand points that way
weld.C0=CFrame.new();--set C0 to identity matrix so it is out of the equation
weld.C1=desired_p1:inverse()*weld.Part0.CFrame;--same equation as shown above
end end
)
-- Also can someone explain how each line of this scripts work with a n explantion on how the math works in this script.

3 comments
Why does 90 degrees work for rotating the arm as well.
you can change the Rotation property, using Vector3.new and accepting degrees
what does line 19 and 20 do.