local ArmWeld = Instance.new("Weld")
ArmWeld.Parent = Torso
ArmWeld.Part0 = Head
ArmWeld.Part1 = RArm
ArmWeld.C1 = CFrame.new(0,0,0)
local HeadWeld = Instance.new("Weld")
HeadWeld.Parent = Torso
HeadWeld.Part0 = Head
HeadWeld.Part1 = LArm
HeadWeld.C1 = CFrame.new(0,0,0)
game:GetService("RunService").RenderStepped:connect(function() --Runs the function each time a frame is rendered.
Mouse.TargetFilter = workspace --This is important when setting the C0 at the bottom as it ignores everything in the workspace to give clean movement of the arms on the Y axis.
Player.Character.Torso.Neck.C1 = CFrame.new() --Sets the C1 to a blank CFrame so the head doesn't glitch.
Player.Character.Torso.Neck.C0 = CFrame.new(0, 1.5, 0) * CFrame.Angles(math.asin((Mouse.Hit.p - Mouse.Origin.p).unit.y), 0, 0) --Moves the head up by 1.5 studs and then sets the angle of your character's neck looking up towards the mouse using inverse trigonometry (A grade maths) and unit vectors (so you only get the direction.)
end)
This is what I have so far, the problem is that the head gets welded to the arm and doesn't move, I need the arm to stop moving and move with the head, the bottom portion of this script moves the head with the mouse perfectly fine, yet when I weld the arms to the head, the head no longer moves but the arms continue to move, doesn't matter whether I change the C0 and C1 properties.
I am eventually trying to get to the point where the entire character rotates with the mouse in 3rd person and the arms move up and down while gripping the gun.
Any help appreciated, leave a rep if this helped anyone.

2 comments
Thanks so much!
No problem.