I literally found this on accident in one of my folders, it was for Xon's racing server that never took off. It has a lot of stuff you wont need in it and you probably won't understand it so you may want to talk to another modder, and have him look at, and remove the code you don't need.
Not even sure if this works 100% (as in if it's called if the vehicle is moving really slow) but figure I'd drop it anyway.
package vehicleCollisionSupport
{
function WheeledVehicleData::OnImpact(%a,%b,%c,%d,%e,%f,%g,%h,%i)
{
%p = parent::OnImpact(%a,%b,%c,%d,%e,%f,%g,%h,%i);
%vehiclePos = %b.position;
initContainerRadiusSearch(%vehiclePos, 4, $Typemasks::fxBrickAlwaysObjectType); //Initialize container search
while(isObject(%obj = containerSearchNext()))
{
if (%obj.getName() $= "_finishline")
{
%clientDriver = %b.getMountedObject(0).client;
%score = %clientDriver.score;
%b.spawnbrick.respawnVehicle();
%c = getFileLineCount("config/server/Drifting/Stats.txt");
if(%c < 20)
{
%hasUser = isUserInDriftFile(%clientDriver.bl_id);
if(%hasUser > 0)
{
driftFileReplaceLine(%hasUser,%score SPC %clientDriver.bl_id SPC %clientDriver.name);
}
else
{
%f = new fileObject();
%f.openForAppend("config/server/Drifting/stats.txt");
%f.writeLine(%score SPC %clientDriver.bl_id SPC %clientDriver.name);
%f.close();
%f.delete();
}
}
else
{
%hasUser = isUserInDriftFile(%clientDriver.bl_id);
if(%hasUser > 0)
{
%f = new fileObject();
%f.openForRead("config/server/Drifting/stats.txt");
%l=0;
while(!%f.isEOF())
{
%l++;
%line = %f.readLine();
if(%l == %hasUser)
{
%storedScore = getWord(%line,0);
if(%score > %storedScore)
{
driftFileReplaceLine(%hasUser,%score SPC %clientDriver.bl_id SPC %clientDriver.name);
}
}
}
%f.close();
%f.delete();
}
else
{
%lowestScore = getLowestHighestScore();
if(%score > %lowestScore)
{
driftFileReplaceLine($lowestHighestScoreLine,%score SPC %clientDriver.bl_id SPC %clientDriver.name);
deleteVariables($lowestHighestScoreLine);
}
}
}
}
}
return %p;
}
};
activatePackage(vehicleCollisionSupport);