Suspension in GTA 3 & Vice City Handling

All seem a bit too complicated just to get your car working? I agree - which is why I have made my CFG Studio 2 to do the calculations for you.

Relevant Settings

The parameters used for this are in handling.cfg and given these column letters:

Official Name Description
v fSuspensionForceLevel Explained in this tutorial.
w fSuspensionDampingLevel Explained in this tutorial.
aa suspension upper limit Explained in this tutorial.
ab suspension lower limit Explained in this tutorial.

Experiment Results

I used the same Spring Force and Damper Force values. I only changed the amount of travel in the suspension by changing the Lower Limit by 0.10 each time. The total travel is Upper Limit minus the Lower Limit.

Travel versus effect

As the suspension travel increases, the in-game effect decreases despite the handling.cfg strengths for springs and dampers being the same. This is because it seems that GTA applies the forces you set for springs and dampers across whatever the distance between your upper and lower limits are. If the limits are close together then the suspension travel is small. This makes the effect higher because the same amount of force is applied to a shorter distance.

If you change the ride height of your car by altering the Lower Limit of the suspension, you have to re-calculate the suspension forces. If you move the Upper Limit by the same amount that you moved the Lower Limit, the travel will be the same and so the effect will be the same. Suspension is one of the hardest parts of handling to get right.

Solving the System

After some mental gymnastics and algebraic scribblings I figured out that the suspension effect works basically like this:

Spring Effect = (10 × Force) ÷ (Upper Limit - Lower Limit)
 Spring Force = (Spring Effect × (Upper - Lower Limit)) ÷ 10

Damper Effect = (80 × Force) ÷ (Upper Limit - Lower Limit)
 Damper Force = (Damper Effect × (Upper - Lower Limit)) ÷ 80

The constant values of 10 and 80 are just what my experiments with GTA spat out.