Vehicle Physics

You may want to customize the vehicle physics commands beyond the default in the ACS scripts to more precisely control things like steering and bounce.

Every vehicle in SL uses a SL standard set of physics commands.

Physics statements can be moved from one vehicle script to another, similar to a particle routine. Adjusting your physics means you may need to adjust your other values such as steering power. For example; If you adjust physics values to make the vehicle more resistant to turning, you would need to increase the applied steering power force to compensate.

Always make backup copies as you adjust physics, just in case! There is a lot to physics and the best thing is to experiment. Also, as with most things in SL, physics will not always behave logically, and it can take a bit of trial and error to find the "sweet spot". Keep in mind settings for one vehicle will need adjustment to behave the same in another vehicle, as the vehicle size (mass), shape, root prim placement etc all will affect how the physics force values interact with the vehicle. A very tiny vehicle takes very little force to turn or move, a very large vehicle needs a lot more force applied.

This article cannot cover everything to do with SL vehicle physics but will address a couple specific values.
See the SL Linden vehicle Tutorial for more physics information.


If you cannot get steering adjusted by using the regular steering adjustments, you may want to edit at the physics level.
Steering is mainly affected by ANGULAR commands, but also banking.

Adjust the third value of VEHICLE_ANGULAR_FRICTION_TIMESCALE vector to adjust the left/right steering axis:

llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <4.00,  1.5, 0.5> );

By making the third example value 0.5 smaller say to 0.25, friction will be applied faster making the steering less responsive. By setting this 3rd value to 1.0, friction takes longer to apply and the vehicle will steer easier.
The larger the friction value, the longer it takes resistance to be applied to that axis.


You can add/increase gravity from your > Controls menu to make the vehicle somewhat more stable, though this can make motorcycles more likely to lean over if imbalanced even slightly.

Decreasing the third value for LINEAR_FRICTION_TIMESCALE , in this example the 2.0, will make the vehicle more resistant to altitude change and less bouncier.

llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <3.5, 0.5, 2.0> );

Decreasing the first value for ANGULAR_FRICTION_TIMESCALE will make the vehicle more resistant to tilting forward and back, in this example the 4.00, and can help stabilize it to be less bouncy, though you may need to increase your [[[wiki:customizing|wheelie power]] to compensate.

llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <4.00,  1.5, 0.5> );