BadShot Instead of calling debris when the vehicle explodes, why not just call a GrenadeProjectile with almost no muzzle velocity and give it the dts of the normal debris? Then you can do all the normal projectile stuff to it, and still call all the emiiters from it. Tested and working (I've only done it for the Shrike so far). first in vehicle_spec_fx.cs, make a second copy of: datablock ExplosionData(VehicleExplosion) and rename it ShrikeVehicleExplosion. Now get rid of all these lines in it. debris = VehicleFireballDebris; debrisThetaMin = 10; debrisThetaMax = 80; debrisNum = 3; debrisNumVariance = 1; debrisVelocity = 20.0; debrisVelocityVariance = 5.0; Next in Vehicle_Shrike.cs, in the actual vehicle datablock, change this line: explosion = VehicleExplosion; to explosion = ShrikeVehicleExplosion; Now, at the bottom of the vehicle_Shrike file, add this code: datablock GrenadeProjectileData(ShrikeFireball) { projectileShapeName = "weapon_chaingun_ammocasing.dts"; //Really small and hard to see emitterDelay = -1; directDamage = 0.0; hasDamageRadius = true; indirectDamage = 0.40; damageRadius = 30.0; radiusDamageType = $DamageType::Grenade; kickBackStrength = 3000; bubbleEmitTime = 1.0; explosion = GrenadeExplosion; explodeOnMaxBounce = true; velInheritFactor = 0.5; baseEmitter[0] = DebrisFireEmitter; baseEmitter[1] = DebrisSmokeEmitter; grenadeElasticity = 0.4; grenadeFriction = 0.2; armingDelayMS = 400; muzzleVelocity = 20.00; drag = 0.1; }; function ScoutFlyer::onDamage(%this,%obj) { %damage = %obj.getDamageLevel(); if (%damage >= %this.destroyedLevel) { if(%obj.getDamageState() !$= "Destroyed") { for (%i=0;%i<3;%i++) { %x = (getRandom() * 2) - 1; %y = (getRandom() * 2) - 1; %z = getRandom() / 2; %vec = %x SPC %y SPC %z; %pos = VectorAdd(posFromTransform(%obj.getTransform()), VectorScale(%vec, 3)); %p = new (GrenadeProjectile)() { dataBlock = ShrikeFireball; initialDirection = %vec; initialPosition = %pos; sourceObject = %obj; sourceSlot = 1; vehicleObject = %obj.getObjectMount(); }; MissionCleanup.add(%p); } } } Parent::onDamage(%this, %obj); } You may want to create a custom DamageType for Debris so you can output 'such and such has been killed by falling Debris'.