--- generated_by: gdlink-build generated_at: 2026-06-23T12:34:28Z do_not_edit: true title: Motion3D brick_type: executor tier: Plus generated: true --- # Motion3D **Category:** Executor **Tier:** Plus ## Purpose The Motion3D executor provides 3D-specific motion and physics for Node3D-based objects. ## Visual Reference ```{raw} html
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 ... ```{raw} html
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) |