I’m making a FPS/3rd person gun, and I’m welding a part to the HumanoidRootPart through Motor6D and then copying the values of the head CFrame and putting them on that part. The fake arms are welded to this part (gun welded to the right arm, and I’m using one of the head moving codes algorithms from the devforum to move it up and down- but when I do this, the rear sight can’t be seen anymore when I move up or down.
The rear sight disappears when I move up like this
Here’s the code I use for moving the arms up and down:
mouse.Move:connect(function(pos) local CFNew, CFAng, CFtoObjectSpace = CFrame.new, CFrame.Angles, CFrame.new( ).toObjectSpace local asin, pi, hpi = math.asin, math.pi, math.pi / 2 local Root, Neck, Humanoid, Camera = player.Character:FindFirstChild("HumanoidRootPart"), player.Character:FindFirstChild("Neck", true), player.Character:FindFirstChild("Humanoid"), workspace.CurrentCamera if Root and Neck and Humanoid and Camera.CameraSubject then local R6 = Humanoid.RigType == Enum.HumanoidRigType.R6 Neck.MaxVelocity = 100 if Camera.CameraSubject.Parent == player.Character then local CameraDirection = CFtoObjectSpace(Root.CFrame, Camera.CFrame).lookVector.unit moveweld.C0 = CFNew(moveweld.C0.p) * CFAng(0, -asin(CameraDirection.x), 0) * (R6 and CFAng(-hpi + asin(CameraDirection.y), 0, pi) or CFAng(asin(CameraDirection.y), 0, 0)) -- what the part is that moves, works same as neckweld except welded to humanoidrootpart Neck.C0 = CFNew(Neck.C0.p) * CFAng(0, -asin(CameraDirection.x), 0) * (R6 and CFAng(-hpi + asin(CameraDirection.y), 0, pi) or CFAng(asin(CameraDirection.y), 0, 0)) else Neck.C0 = R6 and CFNew(Neck.C0.p) * CFAng(-hpi, 0, pi) or CFNew(Neck.C0.p) end end end)
Any ideas on why this is happening, or how to fix it?