Skip to content

Physics 3D actions

19 actions in the Physics 3D category. Each block mirrors how the action appears in the editor's sidebar.

Accelerate

Physics
Accelerate Physics 3D
Node not set | Direction (0.0, 0.0, 0.0) | Amount 30.0

Pushes the body a little further in a direction every frame, adding to the speed it already carries instead of replacing it. With Amount = 30 toward a grapple point, the body builds up a swing and keeps it after the pull stops.

Input Type Default Description
Node Node - The body to push. Leave it empty to push this node.
Direction Vector3 (0.0, 0.0, 0.0) Which way to push. Only the direction is used, the length is ignored.
Amount float 30.0 How much speed to add per second.

Phases Every FramePhysics Works on CharacterBody3D

Apply Force

Physics
Apply Force Physics 3D
Node not set | Force (0.0, 0.0, 0.0) | Offset (0.0, 0.0, 0.0)

Pushes a physics body continuously every physics frame while the state runs, such as thrust or wind. For a one-shot push use Apply Impulse.

Input Type Default Description
Node Node - The body to push. Leave it empty to push this node.
Force Vector3 (0.0, 0.0, 0.0) The push to apply each frame, in units times mass per second squared.
Offset Vector3 (0.0, 0.0, 0.0) Where the push is applied, relative to the center. Zero pushes through the center.

Phases Every FramePhysics Works on RigidBody3D

Apply Gravity

Physics
Apply Gravity Physics 3D
Node not set | Gravity 24.0

Pulls the body downward by subtracting gravity from its velocity every physics frame, so it falls faster the longer it drops.

Input Type Default Description
Node Node - The body to pull down. Leave it empty to pull this node.
Gravity float 24.0 How strong the downward pull is, in units per second squared.

Phases Every FramePhysics Works on CharacterBody3D

Apply Impulse

Start
Apply Impulse Physics 3D
Node not set | Impulse (0.0, 0.0, 0.0) | Offset (0.0, 0.0, 0.0)

Gives a physics body a one-shot push, such as a jump or a boost. Best placed on enter so it fires once instead of every frame.

Input Type Default Description
Node Node - The body to kick. Leave it empty to kick this node.
Impulse Vector3 (0.0, 0.0, 0.0) The push to apply, in units times mass per second.
Offset Vector3 (0.0, 0.0, 0.0) Where the push is applied, relative to the center. Zero pushes through the center.

Phases StartEvery FramePhysics Works on RigidBody3D

Apply Torque Impulse

Start
Apply Torque Impulse Physics 3D
Node not set | Torque (0.0, 0.0, 0.0)

Gives a physics body a one-shot spin around each axis, such as a flip. Best placed on enter so it fires once instead of every frame.

Input Type Default Description
Node Node - The body to spin. Leave it empty to spin this node.
Torque Vector3 (0.0, 0.0, 0.0) The spin to apply around each axis.

Phases StartEvery FramePhysics Works on RigidBody3D

Cast Ray

Physics
Cast Ray Physics 3D
Node not set | From (0.0, 0.0, 0.0) | To (0.0, 0.0, 0.0) | Ignore Self true | → Hit | → Miss

Shoots an invisible line between two points and branches on whether it touched anything. On a hit it reports the node that was touched, the contact point and the surface normal.

Input Type Default Description
Node Node - The node the ray starts from. Leave it empty to start from this node.
From Vector3 (0.0, 0.0, 0.0) The global point the line starts at, usually the position of this node.
To Vector3 (0.0, 0.0, 0.0) The global point the line ends at.
Ignore Self bool true True to skip the body of this node, so a line starting inside it does not hit it.
Output Type Description
Collider Object The node the line touched.
Point Vector3 The global position where the line touched it.
Normal Vector3 The direction the touched surface faces.
Branch Goes to
Hit Where to go when the line touches something.
Miss Where to go when the line touches nothing.

Phases StartEvery FramePhysics Works on Node3D

Freeze Body

Start
Freeze Body Physics 3D
not set

Brings a physics body fully to rest by zeroing its linear and angular velocity at once. This is what a reset or respawn needs so the body neither drifts nor spins.

Input Type Default Description
Node Node - The body to stop. Leave it empty to stop this node.

Phases StartEvery FramePhysicsEnd Works on RigidBody3D

Get Velocity

Physics
Get Velocity Physics 3D
not set

Reads the current body velocity and stores it, in units per second. Useful to react to how fast the body is moving.

Input Type Default Description
Node Node - The body to read. Leave it empty to read this node.
Output Type Description
Velocity Vector3 Where to store the current velocity, in units per second.

Phases StartEvery FramePhysics Works on CharacterBody3D

Is On Ceiling

Physics
Is On Ceiling Physics 3D
not set | → True | → False

Answers whether the body hit a ceiling, from the contact of the last Move And Slide. It can branch on the answer or hand it to a field that takes a yes or no.

Input Type Default Description
Node Node - The body to check. Leave it empty to check this node.
Output Type Description
Yes bool Where to store whether the body hit a ceiling.
Branch Goes to
True Where to go when the body touches the ceiling.
False Where to go when the body touches no ceiling.

Phases StartEvery FramePhysics Works on CharacterBody3D

Is On Floor

Physics
Is On Floor Physics 3D
not set | → True | → False

Answers whether the body is standing on the floor, from the contact of the last Move And Slide. It can branch on the answer or hand it to a field that takes a yes or no.

Input Type Default Description
Node Node - The body to check. Leave it empty to check this node.
Output Type Description
Yes bool Where to store whether the body is on the floor.
Branch Goes to
True Where to go when the body is on the floor.
False Where to go when the body is in the air.

Phases StartEvery FramePhysics Works on CharacterBody3D

Is On Wall

Physics
Is On Wall Physics 3D
not set | → True | → False

Answers whether the body is pressed against a wall, from the contact of the last Move And Slide. It can branch on the answer or hand it to a field that takes a yes or no.

Input Type Default Description
Node Node - The body to check. Leave it empty to check this node.
Output Type Description
Yes bool Where to store whether the body is against a wall.
Branch Goes to
True Where to go when the body touches a wall.
False Where to go when the body touches no wall.

Phases StartEvery FramePhysics Works on CharacterBody3D

Jump

Start
Jump Physics 3D
Node not set | Force 8.0

Pushes the body upward, but only when it is standing on the floor. Sets the upward velocity to the given force.

Input Type Default Description
Node Node - The body to jump. Leave it empty to jump this node.
Force float 8.0 How hard the jump is, in units per second.

Phases StartEvery FramePhysics Works on CharacterBody3D

Move And Slide

Physics
Move And Slide Physics 3D
not set | → Hit Something | → Clear

Moves the body with its current velocity, resolving collisions. Place it after the actions that set the velocity.

Input Type Default Description
Node Node - The body to move. Leave it empty to move this node.
Branch Goes to
Hit Something Where to go when the move ran into a wall, a floor or another body.
Clear Where to go when the move touched nothing.

Phases StartEvery FramePhysics Works on CharacterBody3D

Move Relative

Physics
Move Relative Physics 3D
Node not set | Direction (0.0, 0.0) | Speed 6.0

Moves the body across the ground in a direction relative to where it is facing, leaving vertical velocity to gravity.

Input Type Default Description
Node Node - The body to move. Leave it empty to move this node.
Direction Vector2 (0.0, 0.0) Movement direction relative to the body, with x sideways and y forward.
Speed float 6.0 How fast to move, in units per second.

Phases Every FramePhysics Works on CharacterBody3D

Push

Physics
Push Physics 3D
Node not set | Direction (0.0, 0.0, 0.0) | Amount 12.0

Shoves the body once, adding the whole Amount to its speed in one shot, while Accelerate adds Amount per second for as long as it runs. With Amount = 12 pointing away from an attacker it reads as knockback, and the same shove drives a jump pad or an explosion.

Input Type Default Description
Node Node - The body to push. Leave it empty to push this node.
Direction Vector3 (0.0, 0.0, 0.0) Which way to shove. Only the direction is used, the length is ignored.
Amount float 12.0 How much speed the shove adds, all at once.

Phases StartEvery FramePhysics Works on CharacterBody3D

Raycast Check

Every Frame
Raycast Check Physics 3D
not set | → Hit | → Miss

Checks what a RayCast node is touching right now and branches on the result. It works with RayCast3D and RayCast2D. It reports what is there on every run, so When It Changes is the one that fires only on the frame the contact starts.

Input Type Default Description
Ray Node - The RayCast node to read, such as a RayCast3D or RayCast2D.
Output Type Description
Collider Object The node the ray hit.
Point Vector3 The world position where the ray hit.
Normal Vector3 The direction the hit surface faces.
Branch Goes to
Hit Where to go when the ray touches something.
Miss Where to go when the ray touches nothing.

Phases StartEvery FramePhysics

Set Angular Velocity

Physics
Set Angular Velocity Physics 3D
Node not set | Velocity (0.0, 0.0, 0.0)

Sets the angular velocity (spin) of a physics body directly, in degrees per second around each axis. Zero stops the spin.

Input Type Default Description
Node Node - The body to spin. Leave it empty to spin this node.
Velocity Vector3 (0.0, 0.0, 0.0) The spin to set, in degrees per second around each axis. Zero stops the spin.

Phases StartEvery FramePhysicsEnd Works on RigidBody3D

Set Linear Velocity

Physics
Set Linear Velocity Physics 3D
Node not set | Velocity (0.0, 0.0, 0.0)

Sets the linear velocity of a physics body directly, in units per second. Setting it to zero stops the body, which is how a reset brings it to rest.

Input Type Default Description
Node Node - The body to change. Leave it empty to change this node.
Velocity Vector3 (0.0, 0.0, 0.0) The velocity to set, in units per second. Zero stops the body.

Phases StartEvery FramePhysicsEnd Works on RigidBody3D

Set Velocity

Physics
Set Velocity Physics 3D
Node not set | Velocity (0.0, 0.0, 0.0)

Sets the body velocity directly, in units per second. It only moves the body once Move And Slide runs.

Input Type Default Description
Node Node - The body to change. Leave it empty to change this node.
Velocity Vector3 (0.0, 0.0, 0.0) The velocity to apply, in units per second.

Phases StartEvery FramePhysicsEnd Works on CharacterBody3D