Thanks
Please note that there are lots of options in physics_car.wdl allowing you to customize the vehicle's behavior and control. Some more info on these:

var maxTorque= 1200;
var maxTorqueBrake=1000;

These variables determine how powerful the engine / brakepads of your vehicle are. If you find going uphill is too slow you can increase maxTorque. If you prefer a car with airplane brakes up maxTorqueBrake. Note, however, that this will lead to side-effects such as tires spinning without generating tractions, or the car doing 180s when braking.
--------------------------
var maxAngSpeed= 70;

Top angular speed for wheels. Vehicle speed depends on wheel radius. The faster you go the harder it gets to control the vehicle as even slight bumps will make it veer to the side.
--------------------------
var massWheel= 30;
var massChassis= 10;

Cars in GameStudio have a tendency to easily flip over when going over rough terrain or cornering. To limit this tendency the wheels are made heavier than the chassis. For a car with better acceleration reduce the total mass. For a car with spongy shocks that should lean into curves increase the chassis weight.
--------------------------
var fricWheel= 100;
var fricChassis= 20;

Lowering the wheel friction will reduce flipping over the car while doing high-speed turns. It will be harder to control though.
If you have very bumpy terrain the car chassis might get stuck on obstacles easily, therefore chassis friction is low.
--------------------------
var dampChassis= 5; // damping lin/ang for chassis
var dampWheel= 15; // damping ang for wheels

These are mostly for stability and to dampen the up-down movement of the wheels.
--------------------------
var suspensionERP= 90000; // how quickly shocks are reduced to correct
position (100,000 max, 0: never)
var suspensionCFM= 500; // how far shocks can overshoot (0: never, 100,000 max)

Altering these values affects the car's suspension and whether it acts like a racing car or a bouncy quad bike.
--------------------------
var jumpRechargeDelay=1.5; // time before user is allowed to jump again in secs
var jumpForce= 9000; // force multiplier for jumps

Every decent car should be able to jump ! Don't make the multiplier to high or you will run into problems with low-speed PCs and cars hanging in the clouds. The recharge delay is merely for gameplay- set it to anything you like.
--------------------------
var accelKeyboard=2; // acceleration multiplier for key control
var accelSteering=3; // acceleration multiplier for steering key control
var joyNullzone[2]= 20,20; // 0..255 x and y direction center range for joystick

Ideally these control variables should be exposed in your game's GUI, allowing players to adjust how sensitive controls are.
--------------------------
var vecUp[3]= 0,0,1; // up axis, usually +Z
var vecRight[3]= 0,-1,0; // chassis right axis
var vecHookOffset[3]= 3,0,40; // this is offset from chassis center where lifter hook will be installed
var vecDriverOffset[3]= -50,-15,30; // where camera will be located relative to chassis center (cockpit)
var vecChaseOffset[3]= -300,0,100; // where camera will be located relative to chassis center (chase)
var vecChaseAngOff[3] = 0,0,0; // angle tweak of the chase camera

You might have to change these values depending on the car model you are using. vecHookOffset specifies at which spot the car will be pulled upwards when the player hits L. Most of these values are trial-and-error.
--------------------------
DEFINE CRASH_SPEED = 150;

There's a neat little effect in the code that will unhinge the wheels and cause engine smoke upon impact. If you want this to happen more easily reduce the impact speed, or set it to a higher value if you don't like it.
--------------------------
DEFINE NUM_TRACKS = 1;//400; // number of tire tracks

When braking or turning the car will leave tire tracks - provided it is being driven on level geometry. Since the demo uses terrain tracks are disabled (1). Set it to a large number such as 400 in other levels. After a while tracks get recycled- the higher number the more tracks remain visible.
--------------------------
var USE_GAMEPAD= 0; // Treat joystick as absolute
device

The control code supports analog joysticks or keyboard input. If you have a digital joystick, i.e. gamepad be sure to set this flag for better handling !
--------------------------

When you use your own models put the chassis and four wheels in the proper positions and assign the following actions: CarInit (to chassis), FLinit, FRinit, RLinit, RRinit for front-left, front-right, rear-left, rear-right wheel.


@OrangeBrat:
Quote:

This is great stuff, though I kept getting stuck on the terrain. I guess I should learn how to drive better.


That should not happen. Screenshots of the problems would be appreciated.