Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Joint3D

Inherits: Node3D < Node < Object

Inherited By: ConeTwistJoint3D, Generic6DOFJoint3D, HingeJoint3D, PinJoint3D, SliderJoint3D

Abstract base class for all 3D physics joints.

Description

Abstract base class for all joints in 3D physics. 3D joints bind together two physics bodies (node_a and node_b) and apply a constraint. If only one body is defined, it is attached to a fixed StaticBody3D without collision shapes.

Tutorials

Properties

bool

exclude_nodes_from_collision

true

NodePath

node_a

NodePath("")

NodePath

node_b

NodePath("")

int

solver_priority

1

Methods

RID

get_rid() const


Property Descriptions

bool exclude_nodes_from_collision = true 🔗

  • void set_exclude_nodes_from_collision(value: bool)

  • bool get_exclude_nodes_from_collision()

If true, the two bodies bound together do not collide with each other.


NodePath node_a = NodePath("") 🔗

Path to the first node (A) attached to the joint. The node must inherit PhysicsBody3D.

If left empty and node_b is set, the body is attached to a fixed StaticBody3D without collision shapes.


NodePath node_b = NodePath("") 🔗

Path to the second node (B) attached to the joint. The node must inherit PhysicsBody3D.

If left empty and node_a is set, the body is attached to a fixed StaticBody3D without collision shapes.


int solver_priority = 1 🔗

  • void set_solver_priority(value: int)

  • int get_solver_priority()

The priority specifies how accurately a joint is solved. Generally, higher values improve accuracy. This has very different implementations between Godot Physics and Jolt Physics:

Godot Physics: Values above 1 have a performance impact. Joint is solved max(1, solver_priority) * iterations times. A value of 4 would solve the same joint 4× additional times per physics step.

Jolt Physics: Aside from sorting the joints, there is no performance impact with higher values. Joints with high priorities are solved later. A value of 4 would solve after priorities of 0, 1, 2, and 3. Later joints have the final say between the two bodies they connect.

Negative values are not allowed and will be silently max(0, solver_priority) when set.


Method Descriptions

RID get_rid() const 🔗

Returns the joint's internal RID from the PhysicsServer3D.