This is my code:
function Player::startSkiJumping(%obj)
{
	//make a new ski vehicle and mount the player on it
	%vector = %obj.getEyeVector();
	%rotation = %obj.getEulerRotation();
	%client = %obj.client;
	%position = %obj.getTransform();
	%posX = getword(%position, 0);
	%posY = getword(%position, 1);
	%posZ = getword(%position, 2);
	%rot = getWords(%position, 3, 12);
	%obj.schedule(250,Tuck);
	%posZ += 0.3;
	%vel = %obj.getVelocity();
	%newcar = new WheeledVehicle() 
	{
		dataBlock = skijumpvehicle;
		client = %client;
		initialPosition = %posX @ " " @ %posY @ " " @ %posZ;
	};
//	%newcar.setTransform(%posX @ " " @ %posY @ " " @ %posZ @ " " @ %rot);
	%newcar.setTransform(%position SPC %vector SPC %rotation);
//	%newcar.settransform(%obj.gettransform());
	%newcar.addVelocity("0 0 10");
	%newcar.schedule(150, mountObject, %obj, 0);
	%newcar.addVelocity(%vel);
}datablock WheeledVehicleData(skijumpVehicle)
{
	//tagged fields
	doSimpleDismount = false;		//just unmount the player, dont look for a free space
	maxDismountDist = 0;
   numMountPoints = 1;
   category = "Vehicles";
   shapeFile = "add-ons/Item_skis/skiVehicle.dts";
//   shapeFile = "Add-ons/vehicle_jeep/jeep.dts";
   emap = true;
   maxDamage = 1.0;
   destroyedLevel = 0.5;
   maxSteeringAngle = 1.800;  // Maximum steering angle, should match animation
   tireEmitter = ParkourPhysicsEmitter; // All the tires use the same dust emitter
   // 3rd person camera settings
   cameraRoll = false;         // Roll the camera with the vehicle?
   cameraMaxDist = 7.5;         // Far distance from vehicle
   cameraOffset = 4.4;        // Vertical offset from camera mount point
   cameraLag = 0.0;           // Velocity lag of camera
   cameraDecay = 1.75;  //0.75;      // Decay per sec. rate of velocity lag
   cameraTilt = 0.3201; //tilt adjustment for camera: ~20 degrees down
   // Rigid Body
   mass = 50;		//was 90
   density = 0.5;
   massCenter = "0 0 0";    // Center of mass for rigid body
   massBox = "1.5 1.5 1.5";         // Size of box used for moment of inertia,
                              // if zero it defaults to object bounding box
   drag = 0.8; //was 0.8                // Drag coefficient
   bodyFriction = 0.21; //was 0.21
   bodyRestitution = 0.2; //was 0.2
   minImpactSpeed = 0;        // Impacts over this invoke the script callback
   softImpactSpeed = 3;       // Play SoftImpact Sound
   hardImpactSpeed = 10;      // Play HardImpact Sound
   integration = 10;           // Physics integration: TickSec/Rate
   collisionTol = 0.1;        // Collision distance tolerance
//   contactTol = 0.000000000000000000000001;          // Contact velocity tolerance
   contactTol = 0.1;
isSled = false;	//if its a sled, the wing surfaces dont work unless its on the ground
	
   // Engine
   engineTorque = 3500;       // Engine power
   engineBrake = 25;         // Braking when throttle is 0
   brakeTorque = 80000;        // When brakes are applied
   maxWheelSpeed = 30;        // Engine scale by current speed / max speed
	forwardThrust		= 00; //500
	reverseThrust		= 00;
	lift			= 10;
	maxForwardVel		= 80;
	maxReverseVel		= 20;
	horizontalSurfaceForce	= 50; //50
	verticalSurfaceForce	= 50;
	rollForce		= 4000; //was 1600
	yawForce		= 6000; //was 1600
	pitchForce		= 12000; //was 12000
	rotationalDrag		= 1; //1
	stallSpeed		= 0;
	steeringAutoReturn = true;
	steeringAutoReturnRate = 5.0;
	steeringAutoReturnMaxSpeed = 20;
	steeringUseStrafeSteering = false; //this vehicle has pitch control, so we can't use strafe steering
	
   // Energy
   maxEnergy = 0;
   jetForce = 0;
   minJetEnergy = 30;
   jetEnergyDrain = 2;
   hardImpactSound = Impact1BSound;
	speedDamageScale = 1.04;
	collDamageThresholdVel = 2.0;
	collDamageMultiplier   = 0.02;
	minRunOverSpeed    = 1;   //how fast you need to be going to run someone over (do damage)
      	runOverDamageScale = 3;   //when you run over someone, speed * runoverdamagescale = damage amt
      	runOverPushScale   = 3; //how hard a person you're running over gets pushed
};package ParkourPhysics
{
   function Armor::onTrigger(%this,%obj,%slot,%val)
   {
      %r = Parent::onTrigger(%this,%obj,%slot,%val);
      if(%obj.isTap)
     		    {
                        if(%slot == 2 && !%val && %this.canParkour && $parkourphysics::enabled)
                            {
                                if(%obj.getMountedImage(2) $= ParkourJumpCheckImage.getID())
                                   return %r;
                                %tapped = 0;
				%obj.schedule(150,"startSkiJumping");
			        %obj.mountImage(ParkourJumpCheckImage,2);
				%obj.playthread(3,fall);
                            }
                    }
                else
                    {
                        if(%slot == 2 && !%val)
                            {
                                %tapped = 1;
                            }
                    }
                cancel(%obj.tapsche);
                if(%slot == 2)
                    {
                        %obj.isTap=0;
                        %obj.tapsche = schedule(200,0,eval,%obj@".isTap=1;");
                    }
   }
};activatePackage(ParkourPhysics);