Component:Joint

From Resonite Wiki
Revision as of 19:00, 6 April 2025 by 989onan (talk | contribs) (add missing)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.

Joints go in both directions, making it sometimes confusing. Giving the entire door mechanism a parent slot, rotating it max angle degrees, and then halving the max angle will fix this issue.

Fields

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 The angle at which twist will start affecting position of the slot via position twisting.
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

See Also