I've included some "secret notes" here, both to remind myself about a few of the more obscure things, and to help others understand my FX scripts and use the concepts a bit more.

1.  Precedence of Custom Explosion Generators (hereafter referred to as CEGs) in the z-buffer is determined by what order they are called in.  For all non-CSphereParticleSpawner CEGs, it is therefore extremely important to draw them FIRST.  If you're having trouble with something disappearing, but if it works on its own, then this may very well be the cause.

2.  If a CSimpleGroundFlash == size / position of another particle, it will not draw, despite order of z-buffer precedence.  Therefore, size it 1 unit greater than the relevant explosion (usually a CSphereParticleSpawner) to achieve proper drawing behavior.  This can be masked with the level of grayscale, of course.

3.  If you're going use a DelaySpawner, do NOT use it to generate multiple DelaySpawners, if you can help it at ALL.  This is the way of the Devil.  It is massively inefficient, because of the order in which things are parsed.  It cannot always be avoided, for certain types of simulation, but you should always think, "do I really, really REALLY need this?" before using.  Compared to CSphereParticleSpawner events, it is WORSE.

4.  CSphereParticleSpawner is not cheap, and will not work on older computers.  Use it wisely!  I use it constantly, but I also try to keep total counts of particles down.  Careful!