---
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
```
## 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
Cooldown0.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) |