Work in progress

Godot documentation is being updated to reflect the latest changes in version 4.0. Some documentation pages may still state outdated information. This banner will tell you if you're reading one of such pages.

The contents of this page are up to date. If you can still find outdated information, please open an issue.

PhysicsServer3DΒΆ

Inherits: Object

Inherited By: PhysicsServer3DExtension

Server interface for low-level physics access.

DescriptionΒΆ

PhysicsServer3D is the server responsible for all 3D physics. It can create many kinds of physics objects, but does not insert them on the node tree.

MethodsΒΆ

void

area_add_shape ( RID area, RID shape, Transform3D transform=Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), bool disabled=false )

void

area_attach_object_instance_id ( RID area, int id )

void

area_clear_shapes ( RID area )

RID

area_create ( )

int

area_get_collision_layer ( RID area ) const

int

area_get_collision_mask ( RID area ) const

int

area_get_object_instance_id ( RID area ) const

Variant

area_get_param ( RID area, AreaParameter param ) const

RID

area_get_shape ( RID area, int shape_idx ) const

int

area_get_shape_count ( RID area ) const

Transform3D

area_get_shape_transform ( RID area, int shape_idx ) const

RID

area_get_space ( RID area ) const

Transform3D

area_get_transform ( RID area ) const

void

area_remove_shape ( RID area, int shape_idx )

void

area_set_area_monitor_callback ( RID area, Callable callback )

void

area_set_collision_layer ( RID area, int layer )

void

area_set_collision_mask ( RID area, int mask )

void

area_set_monitor_callback ( RID area, Callable callback )

void

area_set_monitorable ( RID area, bool monitorable )

void

area_set_param ( RID area, AreaParameter param, Variant value )

void

area_set_ray_pickable ( RID area, bool enable )

void

area_set_shape ( RID area, int shape_idx, RID shape )

void

area_set_shape_disabled ( RID area, int shape_idx, bool disabled )

void

area_set_shape_transform ( RID area, int shape_idx, Transform3D transform )

void

area_set_space ( RID area, RID space )

void

area_set_transform ( RID area, Transform3D transform )

void

body_add_collision_exception ( RID body, RID excepted_body )

void

body_add_constant_central_force ( RID body, Vector3 force )

void

body_add_constant_force ( RID body, Vector3 force, Vector3 position=Vector3(0, 0, 0) )

void

body_add_constant_torque ( RID body, Vector3 torque )

void

body_add_shape ( RID body, RID shape, Transform3D transform=Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), bool disabled=false )

void

body_apply_central_force ( RID body, Vector3 force )

void

body_apply_central_impulse ( RID body, Vector3 impulse )

void

body_apply_force ( RID body, Vector3 force, Vector3 position=Vector3(0, 0, 0) )

void

body_apply_impulse ( RID body, Vector3 impulse, Vector3 position=Vector3(0, 0, 0) )

void

body_apply_torque ( RID body, Vector3 torque )

void

body_apply_torque_impulse ( RID body, Vector3 impulse )

void

body_attach_object_instance_id ( RID body, int id )

void

body_clear_shapes ( RID body )

RID

body_create ( )

int

body_get_collision_layer ( RID body ) const

int

body_get_collision_mask ( RID body ) const

float

body_get_collision_priority ( RID body ) const

Vector3

body_get_constant_force ( RID body ) const

Vector3

body_get_constant_torque ( RID body ) const

PhysicsDirectBodyState3D

body_get_direct_state ( RID body )

int

body_get_max_contacts_reported ( RID body ) const

BodyMode

body_get_mode ( RID body ) const

int

body_get_object_instance_id ( RID body ) const

Variant

body_get_param ( RID body, BodyParameter param ) const

RID

body_get_shape ( RID body, int shape_idx ) const

int

body_get_shape_count ( RID body ) const

Transform3D

body_get_shape_transform ( RID body, int shape_idx ) const

RID

body_get_space ( RID body ) const

Variant

body_get_state ( RID body, BodyState state ) const

bool

body_is_axis_locked ( RID body, BodyAxis axis ) const

bool

body_is_continuous_collision_detection_enabled ( RID body ) const

bool

body_is_omitting_force_integration ( RID body ) const

void

body_remove_collision_exception ( RID body, RID excepted_body )

void

body_remove_shape ( RID body, int shape_idx )

void

body_reset_mass_properties ( RID body )

void

body_set_axis_lock ( RID body, BodyAxis axis, bool lock )

void

body_set_axis_velocity ( RID body, Vector3 axis_velocity )

void

body_set_collision_layer ( RID body, int layer )

void

body_set_collision_mask ( RID body, int mask )

void

body_set_collision_priority ( RID body, float priority )

void

body_set_constant_force ( RID body, Vector3 force )

void

body_set_constant_torque ( RID body, Vector3 torque )

void

body_set_enable_continuous_collision_detection ( RID body, bool enable )

void

body_set_force_integration_callback ( RID body, Callable callable, Variant userdata=null )

void

body_set_max_contacts_reported ( RID body, int amount )

void

body_set_mode ( RID body, BodyMode mode )

void

body_set_omit_force_integration ( RID body, bool enable )

void

body_set_param ( RID body, BodyParameter param, Variant value )

void

body_set_ray_pickable ( RID body, bool enable )

void

body_set_shape ( RID body, int shape_idx, RID shape )

void

body_set_shape_disabled ( RID body, int shape_idx, bool disabled )

void

body_set_shape_transform ( RID body, int shape_idx, Transform3D transform )

void

body_set_space ( RID body, RID space )

void

body_set_state ( RID body, BodyState state, Variant value )

bool

body_test_motion ( RID body, PhysicsTestMotionParameters3D parameters, PhysicsTestMotionResult3D result=null )

RID

box_shape_create ( )

RID

capsule_shape_create ( )

RID

concave_polygon_shape_create ( )

float

cone_twist_joint_get_param ( RID joint, ConeTwistJointParam param ) const

void

cone_twist_joint_set_param ( RID joint, ConeTwistJointParam param, float value )

RID

convex_polygon_shape_create ( )

RID

custom_shape_create ( )

RID

cylinder_shape_create ( )

void

free_rid ( RID rid )

bool

generic_6dof_joint_get_flag ( RID joint, Vector3.Axis axis, G6DOFJointAxisFlag flag ) const

float

generic_6dof_joint_get_param ( RID joint, Vector3.Axis axis, G6DOFJointAxisParam param ) const

void

generic_6dof_joint_set_flag ( RID joint, Vector3.Axis axis, G6DOFJointAxisFlag flag, bool enable )

void

generic_6dof_joint_set_param ( RID joint, Vector3.Axis axis, G6DOFJointAxisParam param, float value )

int

get_process_info ( ProcessInfo process_info )

RID

heightmap_shape_create ( )

bool

hinge_joint_get_flag ( RID joint, HingeJointFlag flag ) const

float

hinge_joint_get_param ( RID joint, HingeJointParam param ) const

void

hinge_joint_set_flag ( RID joint, HingeJointFlag flag, bool enabled )

void

hinge_joint_set_param ( RID joint, HingeJointParam param, float value )

void

joint_clear ( RID joint )

RID

joint_create ( )

void

joint_disable_collisions_between_bodies ( RID joint, bool disable )

int

joint_get_solver_priority ( RID joint ) const

JointType

joint_get_type ( RID joint ) const

bool

joint_is_disabled_collisions_between_bodies ( RID joint ) const

void

joint_make_cone_twist ( RID joint, RID body_A, Transform3D local_ref_A, RID body_B, Transform3D local_ref_B )

void

joint_make_generic_6dof ( RID joint, RID body_A, Transform3D local_ref_A, RID body_B, Transform3D local_ref_B )

void

joint_make_hinge ( RID joint, RID body_A, Transform3D hinge_A, RID body_B, Transform3D hinge_B )

void

joint_make_pin ( RID joint, RID body_A, Vector3 local_A, RID body_B, Vector3 local_B )

void

joint_make_slider ( RID joint, RID body_A, Transform3D local_ref_A, RID body_B, Transform3D local_ref_B )

void

joint_set_solver_priority ( RID joint, int priority )

Vector3

pin_joint_get_local_a ( RID joint ) const

Vector3

pin_joint_get_local_b ( RID joint ) const

float

pin_joint_get_param ( RID joint, PinJointParam param ) const

void

pin_joint_set_local_a ( RID joint, Vector3 local_A )

void

pin_joint_set_local_b ( RID joint, Vector3 local_B )

void

pin_joint_set_param ( RID joint, PinJointParam param, float value )

RID

separation_ray_shape_create ( )

void

set_active ( bool active )

Variant

shape_get_data ( RID shape ) const

ShapeType

shape_get_type ( RID shape ) const

void

shape_set_data ( RID shape, Variant data )

float

slider_joint_get_param ( RID joint, SliderJointParam param ) const

void

slider_joint_set_param ( RID joint, SliderJointParam param, float value )

AABB

soft_body_get_bounds ( RID body ) const

RID

space_create ( )

PhysicsDirectSpaceState3D

space_get_direct_state ( RID space )

float

space_get_param ( RID space, SpaceParameter param ) const

bool

space_is_active ( RID space ) const

void

space_set_active ( RID space, bool active )

void

space_set_param ( RID space, SpaceParameter param, float value )

RID

sphere_shape_create ( )

RID

world_boundary_shape_create ( )


EnumerationsΒΆ

enum JointType:

JointType JOINT_TYPE_PIN = 0

The Joint3D is a PinJoint3D.

JointType JOINT_TYPE_HINGE = 1

The Joint3D is a HingeJoint3D.

JointType JOINT_TYPE_SLIDER = 2

The Joint3D is a SliderJoint3D.

JointType JOINT_TYPE_CONE_TWIST = 3

The Joint3D is a ConeTwistJoint3D.

JointType JOINT_TYPE_6DOF = 4

The Joint3D is a Generic6DOFJoint3D.

JointType JOINT_TYPE_MAX = 5

Represents the size of the JointType enum.


enum PinJointParam:

PinJointParam PIN_JOINT_BIAS = 0

The strength with which the pinned objects try to stay in positional relation to each other.

The higher, the stronger.

PinJointParam PIN_JOINT_DAMPING = 1

The strength with which the pinned objects try to stay in velocity relation to each other.

The higher, the stronger.

PinJointParam PIN_JOINT_IMPULSE_CLAMP = 2

If above 0, this value is the maximum value for an impulse that this Joint3D puts on its ends.


enum HingeJointParam:

HingeJointParam HINGE_JOINT_BIAS = 0

The speed with which the two bodies get pulled together when they move in different directions.

HingeJointParam HINGE_JOINT_LIMIT_UPPER = 1

The maximum rotation across the Hinge.

HingeJointParam HINGE_JOINT_LIMIT_LOWER = 2

The minimum rotation across the Hinge.

HingeJointParam HINGE_JOINT_LIMIT_BIAS = 3

The speed with which the rotation across the axis perpendicular to the hinge gets corrected.

HingeJointParam HINGE_JOINT_LIMIT_SOFTNESS = 4

HingeJointParam HINGE_JOINT_LIMIT_RELAXATION = 5

The lower this value, the more the rotation gets slowed down.

HingeJointParam HINGE_JOINT_MOTOR_TARGET_VELOCITY = 6

Target speed for the motor.

HingeJointParam HINGE_JOINT_MOTOR_MAX_IMPULSE = 7

Maximum acceleration for the motor.


enum HingeJointFlag:

HingeJointFlag HINGE_JOINT_FLAG_USE_LIMIT = 0

If true, the Hinge has a maximum and a minimum rotation.

HingeJointFlag HINGE_JOINT_FLAG_ENABLE_MOTOR = 1

If true, a motor turns the Hinge.


enum SliderJointParam:

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_UPPER = 0

The maximum difference between the pivot points on their X axis before damping happens.

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_LOWER = 1

The minimum difference between the pivot points on their X axis before damping happens.

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS = 2

A factor applied to the movement across the slider axis once the limits get surpassed. The lower, the slower the movement.

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION = 3

The amount of restitution once the limits are surpassed. The lower, the more velocityenergy gets lost.

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_DAMPING = 4

The amount of damping once the slider limits are surpassed.

SliderJointParam SLIDER_JOINT_LINEAR_MOTION_SOFTNESS = 5

A factor applied to the movement across the slider axis as long as the slider is in the limits. The lower, the slower the movement.

SliderJointParam SLIDER_JOINT_LINEAR_MOTION_RESTITUTION = 6

The amount of restitution inside the slider limits.

SliderJointParam SLIDER_JOINT_LINEAR_MOTION_DAMPING = 7

The amount of damping inside the slider limits.

SliderJointParam SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS = 8

A factor applied to the movement across axes orthogonal to the slider.

SliderJointParam SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION = 9

The amount of restitution when movement is across axes orthogonal to the slider.

SliderJointParam SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING = 10

The amount of damping when movement is across axes orthogonal to the slider.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_UPPER = 11

The upper limit of rotation in the slider.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_LOWER = 12

The lower limit of rotation in the slider.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS = 13

A factor applied to the all rotation once the limit is surpassed.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION = 14

The amount of restitution of the rotation when the limit is surpassed.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_DAMPING = 15

The amount of damping of the rotation when the limit is surpassed.

SliderJointParam SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS = 16

A factor that gets applied to the all rotation in the limits.

SliderJointParam SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION = 17

The amount of restitution of the rotation in the limits.

SliderJointParam SLIDER_JOINT_ANGULAR_MOTION_DAMPING = 18

The amount of damping of the rotation in the limits.

SliderJointParam SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS = 19

A factor that gets applied to the all rotation across axes orthogonal to the slider.

SliderJointParam SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION = 20

The amount of restitution of the rotation across axes orthogonal to the slider.

SliderJointParam SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING = 21

The amount of damping of the rotation across axes orthogonal to the slider.

SliderJointParam SLIDER_JOINT_MAX = 22

Represents the size of the SliderJointParam enum.


enum ConeTwistJointParam:

ConeTwistJointParam CONE_TWIST_JOINT_SWING_SPAN = 0

Swing is rotation from side to side, around the axis perpendicular to the twist axis.

The swing span defines, how much rotation will not get corrected along the swing axis.

Could be defined as looseness in the ConeTwistJoint3D.

If below 0.05, this behavior is locked.

ConeTwistJointParam CONE_TWIST_JOINT_TWIST_SPAN = 1

Twist is the rotation around the twist axis, this value defined how far the joint can twist.

Twist is locked if below 0.05.

ConeTwistJointParam CONE_TWIST_JOINT_BIAS = 2

The speed with which the swing or twist will take place.

The higher, the faster.

ConeTwistJointParam CONE_TWIST_JOINT_SOFTNESS = 3

The ease with which the Joint3D twists, if it's too low, it takes more force to twist the joint.

ConeTwistJointParam CONE_TWIST_JOINT_RELAXATION = 4

Defines, how fast the swing- and twist-speed-difference on both sides gets synced.


enum G6DOFJointAxisParam:

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_LOWER_LIMIT = 0

The minimum difference between the pivot points' axes.