Body State
Kinematic Movement
Kinematic targets derive the velocity needed to reach a pose over a specified positive duration. This lets contacts transfer platform motion to Dynamic bodies. Repeated set_position() teleports do not express the same velocity-aware movement.
body.move_kinematic(x, y, z, qx, qy, qz, qw, seconds)
body.move_kinematic_euler(x, y, z, rx, ry, rz, seconds)Positions are world-space. Quaternion order is x,y,z,w; Euler angles are XYZ degrees. The duration is seconds, not microseconds. Submit a target consistent with the simulated interval and then update physics; do not multiply an absolute target position by delta_time.
// One controlled 1/60-second interval; platform is Kinematic.
if (!platform.move_kinematic_euler(2, 0, 1, 0, 0, 0, 1/60)) {
show_debug_message(jolt_get_error_message());
}
jolt_update(1/60);Verified operation contracts#
These contracts distinguish units, return values, errors and lifetime according to the current implementation. Check results: false, 0 and undefined can mean different things for different methods.
| Symbol / owner | Signature | Operation contract |
|---|---|---|
| JoltBody.move_kinematic | JoltBody.move_kinematic(x, y, z, qx, qy, qz, qw, seconds) | Boolean; Kinematic only. World target XYZ m, XYZW quaternion or Euler XYZ°, positive time in s. Computes velocity to reach the target; not a set_position teleport. |
| JoltBody.move_kinematic_euler | JoltBody.move_kinematic_euler(x, y, z, rx, ry, rz, seconds) | Boolean; Kinematic only. World target XYZ m, XYZW quaternion or Euler XYZ°, positive time in s. Computes velocity to reach the target; not a set_position teleport. |