Motion3D

Category: Executor Tier: Plus

Purpose

The Motion3D executor provides 3D-specific motion and physics for Node3D-based objects.

Visual Reference

As added to your scene
Motion3D brick as it appears in the GDLink editor

Runtime Behavior

Inputs

  • Activate (Boolean): When true, applies motion/physics; when false, stops motion

Outputs None

Properties

Core Properties

  • Physics Mode (Enum, “Simple”): Physics system to use

    • Simple: Direct transform manipulation (no physics engine)

    • Force: Apply forces to RigidBody3D

    • Velocity: Set velocity on RigidBody3D

    • Character: CharacterBody3D with move_and_slide()

  • Type (Enum, “move”): Motion type

    • move: Translate position using X, Y, and Z axes

    • rotate: Rotate around specified axis (degrees/sec)

  • Vector (Dir/Axis) (Vector3, Vector3.ZERO): Direction for movement or rotation axis

    • move mode: X = right, Y = up, Z = forward/back

    • rotate mode: Axis to rotate around (normalized)

  • Speed (Float, 1.0): Movement speed (units/sec) or rotation speed (deg/sec)

    • Range: -10000.0 to 10000.0

  • Local Space (Boolean, true): Apply motion relative to object’s rotation (true) or world space (false)

  • Clamp Input (Boolean, true): Clamp vector X/Y/Z to -1 to 1 range

    • true: Input treated as direction only, speed controls magnitude

    • false: Allow values outside -1 to 1 range

    • Matches industry-standard input conventions (gamepad axes are -1 to 1)

    • Recommended: Keep enabled for consistent behavior

  • Add Movement (Boolean, false): Add to existing velocity (true) or replace it (false)

    • Only applies to CharacterBody3D mode

RigidBody3D Properties (Force/Velocity Modes)

  • Force (Vector3, Vector3.ZERO): Force to apply to RigidBody3D

Generated UI Mockup — showing expanded properties
Motion3D
-
x
Name:
Label this brick...
Physics Mode:
Simple
Axis:X
0
v
Y
0
v
Z
0
v
Speed:
1.0
v
Diagonal Factor:
1.0
v
Force:X
0
v
Y
0
v
Z
0
v
Torque:X
0
v
Y
0
v
Z
0
v
Damping:
0.0
v
Type
move
Local
Clamp
Add Movement
Jump Frc
6.0
v
Max Jumps
1
v
Cooldown
0.05
v
Jump Input
Normalize Diagonals

Properties

Property

Type

Default

Notes

Physics Mode

option

Simple

Simple: Direct movement. Force/Velocity: RigidBody3D. Character: CharacterBody3D

Type

option

move

Move: Translate position. Rotate: Spin around axis

Local

bool

True

True: Move relative to object’s rotation. False: Move in world space

Axis

vector3

[0, 0, 0]

X=right, Y=up, Z=forward/back

Speed

float

1.0

Movement speed (units/sec) or rotation speed (deg/sec)

Clamp

bool

True

Clamp vector X/Y/Z to -1 to 1 range (direction only, speed controls magnitude)

Add Movement

bool

False

Add to existing velocity instead of replacing (CharacterBody3D)

Normalize Diagonals

bool

True

Keep the same speed when moving diagonally (prevents √2 boost)

Diagonal Factor

float

1.0

Scale diagonal speed (1.0 = same as single direction, 0.7 = slower)

Force

vector3

[0, 0, 0]

Force to apply (RigidBody3D only)

Torque

vector3

[0, 0, 0]

Torque to apply (RigidBody3D only)

Damping

float

0.0

Linear damping (RigidBody3D only) — not yet implemented

Jump Frc

float

6.0

Jump velocity (units/sec) for Character mode

Max Jumps

int

1

Maximum jump count (1=single, 2=double…)

Cooldown

float

0.05

Time (seconds) before jumping again

Jump Input

bool

False

Make character jump (CharacterBody3D)