Transmission and Gears
Configures automatic or manual transmission timing, shift thresholds, clutch strength and gear ratios before build().
Automatic is the default. Manual transmission accepts set_gear() at runtime; calling it for an automatic transmission fails.
Transmission options#
| Field | Rule / meaning |
|---|---|
| automatic | true by default; false selects manual mode. |
| mode | JOLT_VEHICLE_TRANSMISSION_AUTOMATIC or JOLT_VEHICLE_TRANSMISSION_MANUAL; overrides automatic when supplied. |
| switch_time | Non-negative gear change duration. |
| clutch_release_time | Non-negative clutch release duration. |
| switch_latency | Non-negative delay between automatic shifts. |
| shift_up_rpm / shift_down_rpm | Positive automatic shift thresholds. |
| clutch_strength | Positive clutch strength. |
| forward_gears | Up to 16 positive forward ratios. |
| reverse_gears | Up to 16 positive magnitudes; native ratios become negative. |
var car = jolt_vehicle(chassis, {
transmission: {
mode: JOLT_VEHICLE_TRANSMISSION_MANUAL,
forward_gears: [3.2, 2.1, 1.4, 1.0, 0.82],
reverse_gears: [3.0],
clutch_strength: 10
}
});Manual shifting#
car.set_gear(1, 1); // first forward gear, fully engaged clutch
car.set_gear(0, 0); // neutral
car.set_gear(-1, 1); // reverse| Argument | Range |
|---|---|
| gear | -16..16; negative reverse, zero neutral, positive forward. |
| clutch | 0..1; default 1. |
Configuration object and setters#
var transmission = jolt_vehicle_transmission();
transmission.set_automatic(true);
transmission.set_forward_gears([3.0, 2.0, 1.2]);
transmission.set_reverse_gears([3.0]);
var settings = jolt_vehicle_settings();
settings.set_transmission(transmission);
var car = jolt_vehicle(chassis, settings);Configuration factories return a GML settings object and create no physics. Their setters return self, the settings object, and do not confirm that a value is valid. Fields are consumed and validated by jolt_vehicle, add_wheel or add_differential. An omitted field preserves the corresponding options default described above. Editing settings after consumption does not change an existing vehicle, wheel or differential. Settings need no destroy.
Vehicle creation returns undefined on failure. add_differential returns Boolean; add_wheel returns a numeric zero-based index or Boolean false on failure. Index 0 is success: do not use only if (!wheel_index). Complete wheel/differential configuration before build().
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 |
|---|---|---|
| jolt_vehicle_transmission | jolt_vehicle_transmission() | Creates an empty settings object. No world required, no physics created; setters return self. Omitted properties retain defaults at jolt_vehicle. |
| JoltVehicle.set_gear | JoltVehicle.set_gear(gear,clutch=1) | Gear index (0 neutral, negative reverse), clutch default 1; Boolean, native validates gear availability. Use for manual shifting. |
| JoltVehicleTransmissionSettings.set_automatic | JoltVehicleTransmissionSettings.set_automatic(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Automatic Boolean or JOLT_VEHICLE_TRANSMISSION_AUTOMATIC/MANUAL. Both methods synchronize mode/automatic. |
| JoltVehicleTransmissionSettings.set_clutch_release_time | JoltVehicleTransmissionSettings.set_clutch_release_time(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Finite time >= 0 s. |
| JoltVehicleTransmissionSettings.set_clutch_strength | JoltVehicleTransmissionSettings.set_clutch_strength(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Finite clutch strength > 0; torque-transfer parameter, not vehicle speed. |
| JoltVehicleTransmissionSettings.set_forward_gears | JoltVehicleTransmissionSettings.set_forward_gears(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Array of 1–16 positive finite ratios. Reverse ratios are also supplied positive; native adds the sign. Replaces the entire list. |
| JoltVehicleTransmissionSettings.set_mode | JoltVehicleTransmissionSettings.set_mode(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Automatic Boolean or JOLT_VEHICLE_TRANSMISSION_AUTOMATIC/MANUAL. Both methods synchronize mode/automatic. |
| JoltVehicleTransmissionSettings.set_reverse_gears | JoltVehicleTransmissionSettings.set_reverse_gears(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Array of 1–16 positive finite ratios. Reverse ratios are also supplied positive; native adds the sign. Replaces the entire list. |
| JoltVehicleTransmissionSettings.set_shift_down_rpm | JoltVehicleTransmissionSettings.set_shift_down_rpm(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Finite threshold > 0 RPM. |
| JoltVehicleTransmissionSettings.set_shift_up_rpm | JoltVehicleTransmissionSettings.set_shift_up_rpm(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Finite threshold > 0 RPM. |
| JoltVehicleTransmissionSettings.set_switch_latency | JoltVehicleTransmissionSettings.set_switch_latency(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Finite time >= 0 s. |
| JoltVehicleTransmissionSettings.set_switch_time | JoltVehicleTransmissionSettings.set_switch_time(value) | Pre-creation configuration; returns self, validation deferred to jolt_vehicle/add_wheel/add_differential. Finite time >= 0 s. |