--- generated_by: gdlink-build generated_at: 2026-06-23T12:34:28Z do_not_edit: true title: Path brick_type: executor tier: Basic generated: true --- # Path **Category:** Executor **Tier:** Basic ## Purpose Directs objects along curved paths using Godot's built-in Path3D or Path2D nodes. ## Visual Reference ```{raw} html
As added to your scene
Path brick as it appears in the GDLink editor
``` ## When To Use - Moving platforms patrolling back and forth (`Ping-Pong` or `Manual` loop mode). - Circular saw blades following a track (`Loop` mode). - Conveyor belt items. - Camera dollies and rail shooters (`Absolute` position mode with variable-driven progress). - Cinematic follow-sequences pointing strictly at a fixed global constraint. - Elevators or doors triggered to move A->B, then B->A on separate events (`Manual` loop mode with `Toggle Direction` trigger). - Banked racing vehicles on curves (using `tilt` for visual banking). - Cutscene camera positions (using `Absolute` mode with progress set via variables or triggers). - Random spawn points along a path (`Snap to Points` with `target_point` driven by Random brick). ```{raw} html
Generated UI Mockup — showing expanded properties
Path
-
x
Name:
Label this brick...
Path Node:
v
Action:
Always Run
Position:
Continuous
Progress:
0.0
v
Follow:
Smooth
Target Pt:
0
v
Ease:
Linear
Orient Spd:
10.0
v
Tilt:
0.0
v
Speed
5.0
v
Loop
Loop
Auto Orient
Axis
+Z (Forward)
Space
Local
Verbose
``` ## Properties | Property | Type | Default | Notes | |---|---|---|---| | Path Node | string | | Shared 2D/3D path node. Use Path2D or PathFollow2D on 2D hosts, Path3D or PathFollow3D on 3D hosts. | | Action | option | Always Run | Always Run: Execute continuously. Start: Begin/resume. Stop: Pause. Toggle Direction: Reverse | | Position | option | Continuous | Continuous: Move based on speed. Absolute: Set position directly via progress | | Progress | float | 0.0 | Normalized position on curve (0.0 = start, 1.0 = end) | | Speed | float | 5.0 | Movement speed (units/sec) | | Loop | option | Loop | Behavior when reaching the end of the path. Manual: No auto-reverse, use Toggle Direction action | | Follow | option | Smooth | Follow the smooth curve or snap directly to control points | | Target Pt | int | 0 | Target curve point index (0-based) | | Ease | option | Linear | Easing curve for point-to-point movement | | Auto Orient | bool | False | Rotate to face path direction | | Axis | option | +Z (Forward) | Forward axis to align to path | | Space | option | Local | Orientation coordinate space | | Orient Spd | float | 10.0 | Rotation interpolation speed (0 = instant) | | Tilt | float | 0.0 | Banking/rolling rotation around path tangent (degrees) | | Verbose | bool | False | Log path progress, mode, and position each tick (throttled) | ## Example Use Cases **Patrolling Enemy (Automatic Ping-Pong)**: ``` Always -> Path Executor (path_node="PatrolPath", speed=5.0, loop_mode="Ping-Pong", auto_orient=true, orient_axis="-Z (Forward)") // The enemy will march to the end of the line, turn around, and march back repeatedly. ``` **Elevator (Manual Bi-directional)**: ``` Keyboard (E) -> Gate (AND) -> Path Executor (path_node="ElevatorPath", trigger_action="Always Run", speed=2.0, loop_mode="Manual") Keyboard (Q) -> Path Executor (path_node="ElevatorPath", trigger_action="Toggle Direction") // E: moves elevator along path in current direction (stops at end in Manual mode) // Q: reverses direction for next E press ``` **Elevator (Start/Stop Control)**: ``` Always -> Path Executor (path_node="ElevatorPath", trigger_action="Always Run", speed=2.0) Keyboard (Space) -> Path Executor (path_node="ElevatorPath", trigger_action="Start") Keyboard (Space) -> Path Executor (path_node="ElevatorPath", trigger_action="Stop") // Space: toggles between running and paused states // Note: First Space triggers both Start and Stop, but Start sets running=true, then Stop sets running=false, so it stops. // Better pattern: use separate keys or a Variable to track state ``` **Camera Rail (Absolute Positioning)**: ``` Variable (camera_progress) -> Path Executor (path_node="CameraTrack", position_mode="Absolute", progress=V:camera_progress) // Camera position on rail is controlled by the 'camera_progress' variable (0.0 to 1.0). // Useful for cutscenes or manual camera control. ``` **Banked Racing Kart**: ``` ...