Reference API Roblox

Engine API

Website

Related

Reference API Roblox

BallSocketConstraint

Forces its two attachments into the same position and allows them to freely rotate about all three axes, with optional limits to restrict both tilt and twist.

Member index 9

HistoryMember
728EnableSkinning: bool
726LimitsEnabled: bool
726MaxFrictionTorque: float
726Radius: float
726Restitution: float
726TwistLimitsEnabled: bool
726TwistLowerAngle: float
726TwistUpperAngle: float
726UpperAngle: float
inherited from Constraint
726Active: bool
726Attachment0: Attachment
726Attachment1: Attachment
726Color: BrickColor
726Enabled: bool
726Visible: bool
604GetDebugAppliedForce(bodyId: int): Vector3
604GetDebugAppliedTorque(bodyId: int): Vector3
inherited from Instance
726Archivable: bool
726Capabilities: SecurityCapabilities
726IsInSandbox: bool
726Name: string
726Parent: Instance
726PredictionMode: PredictionMode
726Sandboxed: bool
726UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
707GetDescendants(): Instances
486GetFullName(): string
706GetStyled(name: string, selector: string?): Variant
657GetStyledPropertyChangedSignal(property: string): RBXScriptSignal
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
664IsPropertyModified(property: string): bool
698QueryDescendants(selector: string): Instances
573Remove(): null
576RemoveTag(tag: string): null
664ResetPropertyToDefault(property: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
726children(): Instances
726clone(): Instance
726destroy(): null
726findFirstChild(name: string, recursive: bool = false): Instance
726getChildren(): Instances
726isDescendantOf(ancestor: Instance): bool
726remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
657StyledPropertiesChanged()
726childAdded(child: Instance)
inherited from Object
726ClassName: string
726className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
726isA(className: string): bool
647Changed(property: string)

Removed member index 1

HistoryMember

Description

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 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.

When configuring this constraint, it may be helpful to study Roblox Units to understand how Roblox units compare to metric units.

Limits

You can set limits to restrict both tilt and twist of a ball socket, similar to how a human's head can tilt and turn within a limited axial range. Enabling the LimitsEnabled property exposes the UpperAngle value to restrict tilt within a cone; it also exposes the TwistLimitsEnabled property which, when enabled, lets you restrict twist rotation through the TwistLowerAngle and TwistUpperAngle limits.

History 52

Members 9

EnableSkinning

TypeDefault
bool

History 1

LimitsEnabled

TypeDefault
bool

Sets whether the BallSocketConstraint has a limit on rotation based on UpperAngle. When true, it enforces that its Attachment1 isn't rotated more than a set angle from its Attachment0.

History 5

MaxFrictionTorque

TypeDefault
float

Sets the maximum frictional torque applied to keep its Attachments aligned.

MaxFrictionTorque specifies the stiffness of the BallSocketConstraint (how much it resists rotation around its Attachments).

History 9

Radius

TypeDefault
float

The visualized radius of the BallSocketConstraint.

History 5

Restitution

TypeDefault
float

How elastic Attachments connected by a BallSocketConstraint will be when they reach the end of the range specified by UpperAngle when LimitsEnabled is true. Constrained between 0 and 1.

History 5

TwistLimitsEnabled

TypeDefault
bool

Sets whether the BallSocketConstraint sets a limit on twist rotation based on TwistUpperAngle and TwistLowerAngle. The twist angle is defined as the angle between the Y axis of Attachment1 and the Y axis of Attachment0.

History 5

TwistLowerAngle

TypeDefault
float

Sets the lower twist rotation limit of the BallSocketConstraint, as long as TwistLimitsEnabled is true.

History 5

TwistUpperAngle

TypeDefault
float

Sets the upper twist rotation limit of the BallSocketConstraint, as long as TwistLimitsEnabled is true.

History 5

UpperAngle

TypeDefault
float

Sets the upper rotation limit of the BallSocketConstraint, as long as LimitsEnabled is true.

History 5

Removed members 1

Settings