Too bad Badspot failed this, now no one will ever try to fix it.
EDIT: nvm it still crashes, and i have no idea why :| i give up
//datablock WheeledVehicleTire(RocketTire){ // Tires act as springs and generate lateral and longitudinal // forces to move the vehicle. These distortion/spring forces // are what convert wheel angular velocity into forces that // act on the rigid body. shapeFile = "./shapes/limotire.dts"; mass = 10; radius = 1; staticFriction = 5; kineticFriction = 5; restitution = 0.5; // Spring that generates lateral tire forces lateralForce = 18000; lateralDamping = 4000; lateralRelaxation = 0.01; // Spring that generates longitudinal tire forces longitudinalForce = 14000; longitudinalDamping = 2000; longitudinalRelaxation = 0.01;};datablock WheeledVehicleSpring(RocketSpring){ // Wheel suspension properties length = 0.6; // Suspension travel force = 1000; //not much; // Spring force damping = 200; //600; // Spring damping antiSwayForce = 6; //3; // Lateral anti-sway force};datablock WheeledVehicleData(MissileVehicle){ category = "Vehicles"; displayName = " "; shapeFile = "./shapes/Rocketcar.dts"; //"~/data/shapes/skivehicle.dts"; // emap = true; minMountDist = 3; numMountPoints = 1; mountThread[0] = "sit"; maxDamage = 200.00; destroyedLevel = 200.00; energyPerDamagePoint = 160; speedDamageScale = 1.04; collDamageThresholdVel = 20.0; collDamageMultiplier = 0.02; massCenter = "0 0 0"; //massBox = "2 5 1"; maxSteeringAngle = 0.9785; // Maximum steering angle, should match animation integration = 4; // Force integration time: TickSec/Rate tireEmitter = TireEmitter; // All the tires use the same dust emitter // 3rd person camera settings cameraRoll = false; // Roll the camera with the vehicle cameraMaxDist = 13; // Far distance from vehicle cameraOffset = 7.5; // Vertical offset from camera mount point cameraLag = 0.0; // Velocity lag of camera cameraDecay = 0.75; // Decay per sec. rate of velocity lag cameraTilt = 0.4; collisionTol = 0.1; // Collision distance tolerance contactTol = 0.1; useEyePoint = false; defaultTire = RocketTire; defaultSpring = RocketSpring; flatTire = jeepFlatTire; flatSpring = jeepFlatSpring; numWheels = 6; // Rigid Body mass = 300; density = 5.0; drag = 1.6; bodyFriction = 0.6; bodyRestitution = 0.6; minImpactSpeed = 10; // Impacts over this invoke the script callback softImpactSpeed = 10; // Play SoftImpact Sound hardImpactSpeed = 15; // Play HardImpact Sound groundImpactMinSpeed = 10.0; // Engine engineTorque = 40000; //4000; // Engine power engineBrake = 10000; // Braking when throttle is 0 brakeTorque = 100000; // When brakes are applied maxWheelSpeed = 100; // Engine scale by current speed / max speed rollForce = 900; yawForce = 600; pitchForce = 1000; rotationalDrag = 0.2; // Energy maxEnergy = 100; jetForce = 3000; minJetEnergy = 30; jetEnergyDrain = 2; splash = jeepSplash; splashVelocity = 4.0; splashAngle = 67.0; splashFreqMod = 300.0; splashVelEpsilon = 0.60; bubbleEmitTime = 1.4; splashEmitter[0] = jeepFoamDropletsEmitter; splashEmitter[1] = jeepFoamEmitter; splashEmitter[2] = jeepBubbleEmitter; mediumSplashSoundVelocity = 10.0; hardSplashSoundVelocity = 20.0; exitSplashSoundVelocity = 5.0; //mediumSplashSound = ""; //hardSplashSound = ""; //exitSplashSound = ""; // Sounds // jetSound = ScoutThrustSound; //engineSound = idleSound; //squealSound = skidSound; softImpactSound = slowImpactSound; hardImpactSound = fastImpactSound; //wheelImpactSound = slowImpactSound; // explosion = VehicleExplosion; justcollided = 0; uiName = "Rocket"; rideable = true; lookUpLimit = 0.65; lookDownLimit = 0.45; paintable = false; damageEmitter[0] = JeepBurnEmitter; damageEmitterOffset[0] = "0.0 0.0 0.0 "; damageLevelTolerance[0] = 0.99; damageEmitter[1] = JeepBurnEmitter; damageEmitterOffset[1] = "0.0 0.0 0.0 "; damageLevelTolerance[1] = 1.0; numDmgEmitterAreas = 1; initialExplosionProjectile = jeepExplosionProjectile; initialExplosionOffset = 0; //offset only uses a z value for now burnTime = 5000; finalExplosionProjectile = jeepFinalExplosionProjectile; finalExplosionOffset = 0.5; //offset only uses a z value for now minRunOverSpeed = 2; //how fast you need to be going to run someone over (do damage) runOverDamageScale = 5; //when you run over someone, speed * runoverdamagescale = damage amt runOverPushScale = 1.2; //how hard a person you're running over gets pushed};//datablock ShapeBaseImageData(FireImage)//{// shapeFile = "base/data/shapes/empty.dts";// emap = false;//// mountPoint = 1;// rotation = "0 0 0 -90";//// stateName[0] = "Ready";// stateTransitionOnTimeout[0] = "FireA";// stateTimeoutValue[0] = 0.01;//// stateName[1] = "FireA";// stateTransitionOnTimeout[1] = "Done";// stateWaitForTimeout[1] = True;// stateTimeoutValue[1] = 10000;// stateEmitter[1] = JeepBurnEmitter;// stateEmitterTime[1] = 10000;//// stateName[2] = "Done";// stateScript[2] = "onDone";//};//function FireImage::onDone(%this,%obj,%slot)//{// %obj.unMountImage(%slot);//}