A BallSocketConstraint constrains its Attachments so that they occupy the same position. By default it allows both attachments to freely rotate about all of their axes, but if BallSocketConstraint.LimitsEnabled is true, the attachments can only rotate in a limited cone.
Note that if this constraint attaches one part (A) to another part (B) that is anchored or connected to an anchored part (Z), part A will not be locally simulated when interacting with a player.
Sets the maximum frictional torque applied to keep its Attachments aligned.
Sets whether the BallSocketConstraint has a limit on rotation based on BallSocketConstraint.UpperAngle. When a BallSocketConstraint has LimitsEnabled set to true, it enforces that its Constraint.Attachment1 isn't rotated more than a set angle from its Constraint.Attachment0.
The angle that is used is the angle between the x-axes of the Attachments:
Sets whether the BallSocketConstraint sets a limit on twist rotation based on BallSocketConstraint.TwistUpperAngle and BallSocketConstraint.TwistLowerAngle. The twist angle is defined as the angle between the y-axis of Constraint.Attachment1 and the y-axis of Constraint.Attachment0.