The Explosion SFX should play on impact, but instead it plays randomly (I really have no clue what triggers it)
SFX_Explosion is played whenever ship:dohit() is called, which is only in collision code.
Should NPC collisions play SFX_Explosion as well? Maybe at a lower volume if possible.
I wouldn't know. The player ship should sound more frequently (on each impact) if you do that for NPC too, it will be one noisy game. You can try to lower volume, yes. But still I think somehow it's random in the sense that when the player hits a wall, sometimes you do hear the sound, but most of the times you don't.
Just thought I'd mention; There is a lib.soundmanager