Component image 
Joint component as seen in the Scene Inspector

The Joint component allows for a slot or object to rotate around a single point, in any direction, or around an axis. Common uses are doors, helmet tops, and dials.
Fields
Name | Type | Description |
---|---|---|
persistent
|
Bool | Determines whether or not this item will be saved to the server. |
UpdateOrder
|
Int | Controls the order in which this component is updated. |
Enabled
|
Bool | Controls whether or not this component is enabled. Some components stop their functionality when this field is disabled, but some don't. |
EditModeOnly
|
Bool | User can only interact with the joint in Edit Mode |
AllowSteal
|
Bool | Controls whether other users can steal the grabbable joint from other players |
DropOnDisable
|
Bool | Controls whether the user drops the joint if the object has been disabled |
DontDrive
|
Bool | Write the transforms every game tick, rather than driving it on the local machine and then sending the final value to the host. |
AllowOnlyPhysicalGrab
|
Bool | Only allow grabbing the joint with a physical interaction - remote grabs are not allowed |
ActiveUserFilter
|
ActiveUserHandling | How to allow or deny users from interacting with this component depending on the active user. |
CustomGrabCheck
|
delegate of identity GrabCheck | A sync delegate that controls whether this object can be grabbed in certain instances. |
_grabber
|
Grabber | The current Grabber component grabbing this joint. |
_holdSlot
|
Slot | The current slot holding this joint. |
_pos
|
reference drive of Sync`1<Float3> | The current position field this is driving or influencing. |
_rot
|
reference drive of Sync`1<FloatQ> | The current rotation field this is driving or influencing. |
_scl
|
reference drive of Sync`1<Float3> | The current scale field this is driving or influencing. |
__legacyActiveUserRootOnly
|
Bool | Whether to use the legacy active user root only behavior. |
GrabPriority
|
Int | Determines what gets grabbed if several grabbable objects are touching someone's grab sphere. The IGrabbable with the highest priority will be grabbed first. If the highest priority ties with another IGrabbable, it will grab both of those and ignore any lower priority IGrabbables. |
MaxSwing
|
Float | Maximum amount the joint will Twist during rotation. |
MaxTwist
|
Float | Maximum amount the joint will rotate in the given axis |
Axis
|
Float3 | Determines which axis the joint rotates on. Is used like a vector. |
TwistReferenceAxis
|
Float3 | The reference axis (vector) for twisting. |
PositionTwistThresholdAngle
|
Float | |
VibrationAngle
|
Float | The angle at which to trigger vibration. |
VibrationPreset
|
VibratePreset | The kind and intensity of vibration to send to the grabbing controller. |
SnapIncrement
|
Float | Snap the joint to a multiple of this angle during grabbing. Can be used to simulate "detents" on a rotary switch. |
SnapTime
|
Float | The time it takes for the joint to lerp towards given SnapOrientations . Higher the value the slower it takes
|
SnapOnRelease
|
Bool | Controls whether the join snaps to given SnapOrientations |
SnapOrientations
|
list of Joint.SnapOrientation | A list of snap orientations that the joint can snap to. |
origRotation
|
FloatQ | The resting rotation of the joint. |
rotReference
|
FloatQ | The reference rotation, which is where the joint started. |
dirReference
|
Float3 | The direction the joint started. |
twistReference
|
Float3 | The position to use for twist calculations |
usePositionTwist
|
Bool | Whether twist can influence the position of the joint. |
Usage
Examples
Here is a video explaining how joints work by making a door (by Stellanora)
Here are some old videos by ProbablePrime Using Joint to make A Door Pt. 1
Using Joint to make a Door pt.2