datablock ProjectileData(SgrenadeProjectile)
{
...
armingDelay = 2500; //Here's your problem
lifetime = 2500;
fadeDelay = 3000;
bounceElasticity = 0.4;
bounceFriction = 0.3;
isBallistic = true;
gravityMod = 1.0;
hasLight = false;
lightRadius = 3.0;
lightColor = "0 0 0.5";
uiName = "Smoke_grenade";
};
Arming delay = lifetime, this means you projectile "dies" out before it ever becomes able to explode. One way to fix this is to make armingDelay shorter. You could also simply add the line "explodeOnDeath = true;" in the datablock, which will cause the projectile to explode once it's lifetime runs out without needing to hit something to trigger it's explosion. You could also combine both of these together.