]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
effectinfo: Add comments
authorTimePath <andrew.hardaker1995@gmail.com>
Sat, 26 Sep 2015 09:36:57 +0000 (19:36 +1000)
committerTimePath <andrew.hardaker1995@gmail.com>
Sat, 26 Sep 2015 09:36:57 +0000 (19:36 +1000)
qcsrc/common/effects/effectinfo.inc

index 21be302585f9c0436318ff4945bc587d87cc3f1d..1316197169a9017483c5d51a56f739e738b963aa 100644 (file)
@@ -1,4 +1,6 @@
+// item respawn effect
 DEF(TE_WIZSPIKE);
+// flare particle and light
 SUB(TE_WIZSPIKE) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -13,6 +15,7 @@ SUB(TE_WIZSPIKE) {
        MY(size_max) = 20;
        MY(type) = "static";
 }
+// cloud of particles which expand rapidly and then slow to form a ball
 SUB(TE_WIZSPIKE) {
        MY(airfriction) = 2;
        MY(alpha_min) = 64;
@@ -29,7 +32,9 @@ SUB(TE_WIZSPIKE) {
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
 
+// laser impact
 DEF(TE_KNIGHTSPIKE);
+// decal
 SUB(TE_KNIGHTSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -44,6 +49,7 @@ SUB(TE_KNIGHTSPIKE) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_KNIGHTSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -57,6 +63,7 @@ SUB(TE_KNIGHTSPIKE) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
 SUB(TE_KNIGHTSPIKE) {
        MY(airfriction) = 6;
        MY(alpha_min) = 256;
@@ -72,7 +79,9 @@ SUB(TE_KNIGHTSPIKE) {
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
 
+// machinegun bullet impact
 DEF(TE_SPIKE);
+// bullet impact decal
 SUB(TE_SPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -84,6 +93,7 @@ SUB(TE_SPIKE) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(TE_SPIKE) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -98,6 +108,7 @@ SUB(TE_SPIKE) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// dust/smoke staying at the impact
 SUB(TE_SPIKE) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -111,6 +122,7 @@ SUB(TE_SPIKE) {
        MY(tex_max) = 8;
        MY(type) = "smoke";
 }
+// bouncing sparks
 SUB(TE_SPIKE) {
        MY(alpha_max) = 256;
        MY(alpha_fade) = 256;
@@ -126,7 +138,9 @@ SUB(TE_SPIKE) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// electro combo explosion
 DEF(TE_SPIKEQUAD);
+// decal
 SUB(TE_SPIKEQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -141,6 +155,7 @@ SUB(TE_SPIKEQUAD) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_SPIKEQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -154,6 +169,7 @@ SUB(TE_SPIKEQUAD) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// large sparks
 SUB(TE_SPIKEQUAD) {
        MY(airfriction) = 4;
        MY(alpha_min) = 256;
@@ -170,7 +186,9 @@ SUB(TE_SPIKEQUAD) {
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
 
+// quake effect
 DEF(TE_SUPERSPIKE);
+// decal
 SUB(TE_SUPERSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -182,6 +200,7 @@ SUB(TE_SUPERSPIKE) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(TE_SUPERSPIKE) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -196,6 +215,7 @@ SUB(TE_SUPERSPIKE) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// dust/smoke staying at the impact
 SUB(TE_SUPERSPIKE) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -209,6 +229,7 @@ SUB(TE_SUPERSPIKE) {
        MY(tex_max) = 8;
        MY(type) = "smoke";
 }
+// sparks that disappear on impact
 SUB(TE_SUPERSPIKE) {
        MY(alpha_max) = 256;
        MY(alpha_fade) = 768;
@@ -224,7 +245,9 @@ SUB(TE_SUPERSPIKE) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// quake effect
 DEF(TE_SUPERSPIKEQUAD);
+// decal
 SUB(TE_SUPERSPIKEQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -239,6 +262,7 @@ SUB(TE_SUPERSPIKEQUAD) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(TE_SUPERSPIKEQUAD) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -253,6 +277,7 @@ SUB(TE_SUPERSPIKEQUAD) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// dust/smoke staying at the impact
 SUB(TE_SUPERSPIKEQUAD) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -266,6 +291,7 @@ SUB(TE_SUPERSPIKEQUAD) {
        MY(tex_max) = 8;
        MY(type) = "smoke";
 }
+// sparks that disappear on impact
 SUB(TE_SUPERSPIKEQUAD) {
        MY(alpha_max) = 256;
        MY(alpha_fade) = 768;
@@ -281,7 +307,9 @@ SUB(TE_SUPERSPIKEQUAD) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// shotgun pellet impact
 DEF(TE_GUNSHOT);
+// decal
 SUB(TE_GUNSHOT) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -293,6 +321,7 @@ SUB(TE_GUNSHOT) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(TE_GUNSHOT) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -307,6 +336,7 @@ SUB(TE_GUNSHOT) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// dust/smoke staying at the impact
 SUB(TE_GUNSHOT) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -320,6 +350,7 @@ SUB(TE_GUNSHOT) {
        MY(tex_max) = 8;
        MY(type) = "smoke";
 }
+// bouncing sparks
 SUB(TE_GUNSHOT) {
        MY(alpha_max) = 64;
        MY(alpha_fade) = 64;
@@ -335,7 +366,9 @@ SUB(TE_GUNSHOT) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// crylink impact effect
 DEF(TE_GUNSHOTQUAD);
+// decal
 SUB(TE_GUNSHOTQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -347,6 +380,7 @@ SUB(TE_GUNSHOTQUAD) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// purple flare effect
 SUB(TE_GUNSHOTQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -360,6 +394,7 @@ SUB(TE_GUNSHOTQUAD) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// purple sparks
 SUB(TE_GUNSHOTQUAD) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -376,7 +411,9 @@ SUB(TE_GUNSHOTQUAD) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// mortar/hagar explosion (smaller than rocket)
 DEF(TE_EXPLOSION);
+// decal
 SUB(TE_EXPLOSION) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -391,6 +428,7 @@ SUB(TE_EXPLOSION) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_EXPLOSION) {
        MY(alpha_min) = 192;
        MY(alpha_max) = 192;
@@ -404,6 +442,7 @@ SUB(TE_EXPLOSION) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// fire effect which expands then slows
 SUB(TE_EXPLOSION) {
        MY(airfriction) = 4;
        MY(alpha_min) = 128;
@@ -423,6 +462,7 @@ SUB(TE_EXPLOSION) {
        MY(type) = "static";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// underwater bubbles
 SUB(TE_EXPLOSION) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -442,6 +482,7 @@ SUB(TE_EXPLOSION) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// bouncing sparks
 SUB(TE_EXPLOSION) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
@@ -461,7 +502,9 @@ SUB(TE_EXPLOSION) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// quake effect
 DEF(TE_EXPLOSIONQUAD);
+// decal
 SUB(TE_EXPLOSIONQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -476,6 +519,7 @@ SUB(TE_EXPLOSIONQUAD) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// smoke cloud
 SUB(TE_EXPLOSIONQUAD) {
        MY(alpha_min) = 32;
        MY(alpha_max) = 32;
@@ -490,6 +534,7 @@ SUB(TE_EXPLOSIONQUAD) {
        MY(type) = "smoke";
        MY(velocityjitter) = '48.0 48.0 48.0';
 }
+// underwater bubbles
 SUB(TE_EXPLOSIONQUAD) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -509,6 +554,7 @@ SUB(TE_EXPLOSIONQUAD) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// sparks which go through walls
 SUB(TE_EXPLOSIONQUAD) {
        MY(airfriction) = 0.200000;
        MY(alpha_max) = 256;
@@ -526,7 +572,9 @@ SUB(TE_EXPLOSIONQUAD) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// quake effect
 DEF(TE_TAREXPLOSION);
+// decal
 SUB(TE_TAREXPLOSION) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -541,6 +589,7 @@ SUB(TE_TAREXPLOSION) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// smoke cloud
 SUB(TE_TAREXPLOSION) {
        MY(alpha_min) = 32;
        MY(alpha_max) = 32;
@@ -555,6 +604,7 @@ SUB(TE_TAREXPLOSION) {
        MY(type) = "smoke";
        MY(velocityjitter) = '48.0 48.0 48.0';
 }
+// underwater bubbles
 SUB(TE_TAREXPLOSION) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -574,6 +624,7 @@ SUB(TE_TAREXPLOSION) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// sparks which go through walls
 SUB(TE_TAREXPLOSION) {
        MY(airfriction) = 0.200000;
        MY(alpha_max) = 256;
@@ -591,6 +642,7 @@ SUB(TE_TAREXPLOSION) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// bloody impact effect indicating damage
 DEF(TE_BLOOD);
 SUB(TE_BLOOD) {
        MY(airfriction) = 1;
@@ -613,6 +665,7 @@ SUB(TE_BLOOD) {
        MY(velocitymultiplier) = 1;
 }
 
+// sparks (quake effect)
 DEF(TE_SPARK);
 SUB(TE_SPARK) {
        MY(alpha_min) = 64;
@@ -633,7 +686,9 @@ SUB(TE_SPARK) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// vortex impact
 DEF(TE_PLASMABURN);
+// decal
 SUB(TE_PLASMABURN) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -648,6 +703,7 @@ SUB(TE_PLASMABURN) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_PLASMABURN) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -661,6 +717,7 @@ SUB(TE_PLASMABURN) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// small sparks which form a sphere as they slow down
 SUB(TE_PLASMABURN) {
        MY(airfriction) = 8;
        MY(alpha_min) = 256;
@@ -677,6 +734,7 @@ SUB(TE_PLASMABURN) {
        MY(velocityjitter) = '128.0 128.0 128.0';
 }
 
+// quake effect
 DEF(TE_SMALLFLASH);
 SUB(TE_SMALLFLASH) {
        MY(lightcolor) = '2.0 2.0 2.0';
@@ -684,6 +742,7 @@ SUB(TE_SMALLFLASH) {
        MY(lightradius) = 200;
 }
 
+// quake effect
 DEF(TE_FLAMEJET);
 SUB(TE_FLAMEJET) {
        MY(airfriction) = 1;
@@ -703,6 +762,7 @@ SUB(TE_FLAMEJET) {
        MY(velocitymultiplier) = 1;
 }
 
+// quake effect
 DEF(TE_LAVASPLASH);
 SUB(TE_LAVASPLASH) {
        MY(alpha_min) = 256;
@@ -721,6 +781,7 @@ SUB(TE_LAVASPLASH) {
        MY(velocityoffset) = '0.0 0.0 256.0';
 }
 
+// player teleport effect
 DEF(TE_TELEPORT);
 SUB(TE_TELEPORT) {
        MY(airfriction) = 1;
@@ -739,6 +800,7 @@ SUB(TE_TELEPORT) {
        MY(velocityjitter) = '0.0 0.0 256.0';
 }
 
+// vortex beam
 DEF(TE_TEI_G3);
 SUB(TE_TEI_G3) {
        MY(alpha_min) = 128;
@@ -767,6 +829,7 @@ SUB(TE_TEI_G3) {
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
 
+// smoke effect
 DEF(TE_TEI_SMOKE);
 SUB(TE_TEI_SMOKE) {
        MY(alpha_min) = 256;
@@ -784,7 +847,9 @@ SUB(TE_TEI_SMOKE) {
        MY(velocitymultiplier) = 1;
 }
 
+// rocket explosion (bigger than mortar and hagar)
 DEF(TE_TEI_BIGEXPLOSION);
+// decal
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -799,6 +864,7 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(alpha_min) = 192;
        MY(alpha_max) = 192;
@@ -812,6 +878,7 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// fire effect
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(airfriction) = 4;
        MY(alpha_min) = 128;
@@ -831,6 +898,7 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(type) = "static";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// underwater bubbles
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -850,6 +918,7 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(underwater) = true;
        MY(velocityjitter) = '144.0 144.0 144.0';
 }
+// bouncing sparks
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
@@ -869,7 +938,9 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// electro explosion
 DEF(TE_TEI_PLASMAHIT);
+// decal
 SUB(TE_TEI_PLASMAHIT) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -884,6 +955,7 @@ SUB(TE_TEI_PLASMAHIT) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_TEI_PLASMAHIT) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -897,6 +969,7 @@ SUB(TE_TEI_PLASMAHIT) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// cloud of bouncing sparks
 SUB(TE_TEI_PLASMAHIT) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -911,6 +984,7 @@ SUB(TE_TEI_PLASMAHIT) {
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
 
+// bloody impact effect indicating damage
 DEF(blood);
 SUB(blood) {
        MY(airfriction) = 0.400000;
@@ -937,6 +1011,7 @@ SUB(blood) {
        MY(type) = "spark";
        MY(velocityjitter) = '99.0 99.0 55.0';
 }
+//blood mist
 SUB(blood) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -954,6 +1029,7 @@ SUB(blood) {
        MY(type) = "alphastatic";
 }
 
+// player teleport effect
 DEF(teleport);
 SUB(teleport) {
        MY(airfriction) = 2;
@@ -988,6 +1064,7 @@ SUB(teleport) {
        MY(type) = "smoke";
 }
 
+// normal super gory blood trail (used by gibs)
 DEF(TR_BLOOD);
 SUB(TR_BLOOD) {
        MY(airfriction) = -2;
@@ -1017,6 +1094,7 @@ SUB(TR_BLOOD) {
        MY(velocityjitter) = '64.0 64.0 64.0';
        MY(velocitymultiplier) = -0.100000;
 }
+// splash around gib
 SUB(TR_BLOOD) {
        MY(alpha_min) = 684;
        MY(alpha_max) = 684;
@@ -1032,6 +1110,7 @@ SUB(TR_BLOOD) {
        MY(type) = "blood";
 }
 
+// thinner blood trail (used by quake zombies)
 DEF(TR_SLIGHTBLOOD);
 SUB(TR_SLIGHTBLOOD) {
        MY(airfriction) = 1;
@@ -1056,6 +1135,7 @@ SUB(TR_SLIGHTBLOOD) {
        MY(velocitymultiplier) = 0.500000;
 }
 
+// func_stardust effect, used in some maps to indicate teleporters
 DEF(EF_STARDUST);
 SUB(EF_STARDUST) {
        MY(airfriction) = 0.200000;
@@ -1074,6 +1154,7 @@ SUB(EF_STARDUST) {
        MY(velocityjitter) = '32.0 32.0 0.0';
 }
 
+// flare particle and light
 DEF(item_respawn);
 SUB(item_respawn) {
        MY(alpha_min) = 128;
@@ -1086,6 +1167,7 @@ SUB(item_respawn) {
        MY(size_max) = 32;
        MY(type) = "static";
 }
+// cloud of particles which expand rapidly and then slow to form a ball
 SUB(item_respawn) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1109,6 +1191,7 @@ SUB(jumppad_activate) {
 }
 
 DEF(laser_muzzleflash);
+// glow and light
 SUB(laser_muzzleflash) {
        MY(airfriction) = 10;
        MY(alpha_min) = 256;
@@ -1128,6 +1211,7 @@ SUB(laser_muzzleflash) {
        MY(tex_max) = 65;
        MY(type) = "smoke";
 }
+// electricity
 SUB(laser_muzzleflash) {
        MY(airfriction) = 10;
        MY(alpha_min) = 256;
@@ -1151,6 +1235,7 @@ SUB(laser_muzzleflash) {
        MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// fire
 SUB(laser_muzzleflash) {
        MY(airfriction) = 12;
        MY(alpha_min) = 256;
@@ -1172,6 +1257,7 @@ SUB(laser_muzzleflash) {
 }
 
 DEF(laser_impact);
+// decal
 SUB(laser_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1186,6 +1272,7 @@ SUB(laser_impact) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// flare effect
 SUB(laser_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1199,6 +1286,7 @@ SUB(laser_impact) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
 SUB(laser_impact) {
        MY(airfriction) = 6;
        MY(alpha_min) = 256;
@@ -1269,7 +1357,9 @@ SUB(shotgun_muzzleflash) {
        MY(velocitymultiplier) = 0.500000;
 }
 
+// shotgun pellet impact
 DEF(shotgun_impact);
+// decal
 SUB(shotgun_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1281,6 +1371,7 @@ SUB(shotgun_impact) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(shotgun_impact) {
        MY(airfriction) = 5;
        MY(alpha_min) = 300;
@@ -1301,6 +1392,7 @@ SUB(shotgun_impact) {
        MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// dust/smoke staying at the impact
 SUB(shotgun_impact) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -1323,6 +1415,7 @@ SUB(shotgun_impact) {
        MY(velocityjitter) = '11.0 11.0 11.0';
        MY(velocitymultiplier) = 0.030000;
 }
+// sparks
 SUB(shotgun_impact) {
        MY(airfriction) = 1.100000;
        MY(alpha_max) = 356;
@@ -1382,6 +1475,7 @@ SUB(uzi_muzzleflash) {
 }
 
 DEF(machinegun_impact);
+// decal
 SUB(machinegun_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1396,6 +1490,7 @@ SUB(machinegun_impact) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(machinegun_impact) {
        MY(airfriction) = 5;
        MY(alpha_min) = 300;
@@ -1416,6 +1511,7 @@ SUB(machinegun_impact) {
        MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.100000;
 }
+// dust/smoke staying at the impact
 SUB(machinegun_impact) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -1438,6 +1534,7 @@ SUB(machinegun_impact) {
        MY(velocityjitter) = '11.0 11.0 11.0';
        MY(velocitymultiplier) = 0.030000;
 }
+// debris
 SUB(machinegun_impact) {
        MY(airfriction) = 1;
        MY(alpha_min) = 300;
@@ -1460,6 +1557,7 @@ SUB(machinegun_impact) {
        MY(velocityjitter) = '350.0 350.0 350.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// sparks
 SUB(machinegun_impact) {
        MY(airfriction) = 2;
        MY(alpha_min) = 256;
@@ -1519,7 +1617,9 @@ SUB(grenadelauncher_muzzleflash) {
        MY(velocitymultiplier) = 0.500000;
 }
 
+// mortar trail
 DEF(TR_GRENADE);
+// smoke
 SUB(TR_GRENADE) {
        MY(alpha_min) = 300;
        MY(alpha_max) = 400;
@@ -1537,6 +1637,7 @@ SUB(TR_GRENADE) {
        MY(velocityjitter) = '1.0 1.0 1.0';
        MY(velocitymultiplier) = -0.020000;
 }
+// fire
 SUB(TR_GRENADE) {
        MY(airfriction) = 8;
        MY(alpha_min) = 100;
@@ -1555,6 +1656,7 @@ SUB(TR_GRENADE) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = -1;
 }
+// bubbles
 SUB(TR_GRENADE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1574,7 +1676,9 @@ SUB(TR_GRENADE) {
        MY(velocityjitter) = '16.0 16.0 16.0';
 }
 
+// hookbomb trail
 DEF(TR_KNIGHTSPIKE);
+// smoke
 SUB(TR_KNIGHTSPIKE) {
        MY(alpha_min) = 300;
        MY(alpha_max) = 400;
@@ -1594,6 +1698,7 @@ SUB(TR_KNIGHTSPIKE) {
        MY(velocityjitter) = '3.0 3.0 3.0';
        MY(velocitymultiplier) = -0.020000;
 }
+// marker
 SUB(TR_KNIGHTSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1608,6 +1713,7 @@ SUB(TR_KNIGHTSPIKE) {
        MY(trailspacing) = 2;
        MY(type) = "alphastatic";
 }
+// bubbles
 SUB(TR_KNIGHTSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1628,6 +1734,7 @@ SUB(TR_KNIGHTSPIKE) {
 }
 
 DEF(grenade_explode);
+// decal
 SUB(grenade_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1642,6 +1749,7 @@ SUB(grenade_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// fire effect which expands then slows
 SUB(grenade_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 128;
@@ -1662,6 +1770,7 @@ SUB(grenade_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// fire effect which make bright dot inside
 SUB(grenade_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 228;
@@ -1682,6 +1791,7 @@ SUB(grenade_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// smoke
 SUB(grenade_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 300;
@@ -1699,6 +1809,7 @@ SUB(grenade_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// underwater bubbles
 SUB(grenade_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -1718,6 +1829,7 @@ SUB(grenade_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '196.0 196.0 196.0';
 }
+// underwatershockwave
 SUB(grenade_explode) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -1732,6 +1844,7 @@ SUB(grenade_explode) {
        MY(underwater) = true;
        MY(velocitymultiplier) = 0.300000;
 }
+// bouncing sparks
 SUB(grenade_explode) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -1753,6 +1866,7 @@ SUB(grenade_explode) {
        MY(velocityjitter) = '424.0 424.0 624.0';
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
+// debris
 SUB(grenade_explode) {
        MY(airfriction) = 0.500000;
        MY(alpha_min) = 644;
@@ -1835,7 +1949,9 @@ SUB(electro_muzzleflash) {
        MY(velocitymultiplier) = 2.500000;
 }
 
+// electro trail
 DEF(TR_NEXUIZPLASMA);
+// glowing vapor trail
 SUB(TR_NEXUIZPLASMA) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1852,6 +1968,7 @@ SUB(TR_NEXUIZPLASMA) {
        MY(type) = "static";
        MY(velocitymultiplier) = -0.100000;
 }
+// bright sparks
 SUB(TR_NEXUIZPLASMA) {
        MY(airfriction) = 12;
        MY(alpha_min) = 444;
@@ -1874,6 +1991,7 @@ SUB(TR_NEXUIZPLASMA) {
 }
 
 DEF(electro_impact);
+// decal
 SUB(electro_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1888,6 +2006,7 @@ SUB(electro_impact) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// shockwave
 SUB(electro_impact) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -1903,6 +2022,7 @@ SUB(electro_impact) {
        MY(type) = "smoke";
        MY(velocitymultiplier) = 44;
 }
+// flare effect
 SUB(electro_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1916,6 +2036,7 @@ SUB(electro_impact) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// cloud of bouncing sparks
 SUB(electro_impact) {
        MY(airfriction) = 6;
        MY(alpha_min) = 256;
@@ -1939,6 +2060,7 @@ SUB(electro_impact) {
        MY(type) = "smoke";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// inner cloud of smoke
 SUB(electro_impact) {
        MY(airfriction) = 30;
        MY(alpha_min) = 200;
@@ -1957,6 +2079,7 @@ SUB(electro_impact) {
 }
 
 DEF(electro_ballexplode);
+// decal
 SUB(electro_ballexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1971,6 +2094,7 @@ SUB(electro_ballexplode) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// flare effect
 SUB(electro_ballexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1984,6 +2108,7 @@ SUB(electro_ballexplode) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// cloud of bouncing sparks
 SUB(electro_ballexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2001,6 +2126,7 @@ SUB(electro_ballexplode) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// inner cloud of smoke
 SUB(electro_ballexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2017,6 +2143,7 @@ SUB(electro_ballexplode) {
 }
 
 DEF(electro_combo);
+// decal
 SUB(electro_combo) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2031,6 +2158,7 @@ SUB(electro_combo) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// flare effect
 SUB(electro_combo) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -2044,6 +2172,7 @@ SUB(electro_combo) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// large sparks
 SUB(electro_combo) {
        MY(airfriction) = 6;
        MY(alpha_min) = 156;
@@ -2080,6 +2209,7 @@ SUB(electro_combo) {
        MY(velocityjitter) = '312.0 312.0 312.0';
        MY(velocitymultiplier) = 3;
 }
+// inner cloud of smoke
 SUB(electro_combo) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2094,6 +2224,7 @@ SUB(electro_combo) {
        MY(type) = "smoke";
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
+// shockwave
 SUB(electro_combo) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -2147,6 +2278,7 @@ SUB(crylink_muzzleflash) {
 }
 
 DEF(crylink_impact);
+// decal
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2158,6 +2290,7 @@ SUB(crylink_impact) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// purple flare effect
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2171,6 +2304,7 @@ SUB(crylink_impact) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// purple sparks
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2186,6 +2320,7 @@ SUB(crylink_impact) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// purple splash
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2198,6 +2333,7 @@ SUB(crylink_impact) {
        MY(type) = "static";
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
+// purple splash
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2251,6 +2387,7 @@ SUB(nex_muzzleflash) {
        MY(velocitymultiplier) = 1.500000;
 }
 
+// vortex beam
 DEF(nex_beam);
 SUB(nex_beam) {
        MY(airfriction) = 5;
@@ -2267,6 +2404,7 @@ SUB(nex_beam) {
        MY(trailspacing) = 64;
        MY(type) = "static";
 }
+// drifting smoke
 SUB(nex_beam) {
        MY(airfriction) = 9;
        MY(alpha_min) = 32;
@@ -2282,6 +2420,7 @@ SUB(nex_beam) {
        MY(type) = "static";
        MY(velocityjitter) = '64.0 64.0 64.0';
 }
+// bright core
 SUB(nex_beam) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2293,6 +2432,7 @@ SUB(nex_beam) {
        MY(trailspacing) = 12;
        MY(type) = "static";
 }
+// sparks
 SUB(nex_beam) {
        MY(airfriction) = 5;
        MY(alpha_min) = 64;
@@ -2310,6 +2450,7 @@ SUB(nex_beam) {
 }
 
 DEF(nex_impact);
+// decal
 SUB(nex_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2326,6 +2467,7 @@ SUB(nex_impact) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// rotating something
 SUB(nex_impact) {
        MY(alpha_min) = 55;
        MY(alpha_max) = 55;
@@ -2344,6 +2486,7 @@ SUB(nex_impact) {
        MY(tex_max) = 46;
        MY(type) = "smoke";
 }
+// shockwave
 SUB(nex_impact) {
        MY(alpha_min) = 50;
        MY(alpha_max) = 50;
@@ -2358,6 +2501,7 @@ SUB(nex_impact) {
        MY(tex_max) = 33;
        MY(type) = "static";
 }
+// shockwave2
 SUB(nex_impact) {
        MY(alpha_min) = 50;
        MY(alpha_max) = 50;
@@ -2372,6 +2516,7 @@ SUB(nex_impact) {
        MY(tex_max) = 65;
        MY(type) = "static";
 }
+// flare effect
 SUB(nex_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2385,6 +2530,7 @@ SUB(nex_impact) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// small sparks which glow brightly but live briefly
 SUB(nex_impact) {
        MY(airfriction) = 9;
        MY(alpha_max) = 128;
@@ -2402,6 +2548,7 @@ SUB(nex_impact) {
        MY(velocityjitter) = '600.0 600.0 600.0';
        MY(velocitymultiplier) = 0.500000;
 }
+// small sparks that live longer
 SUB(nex_impact) {
        MY(airfriction) = 2;
        MY(alpha_min) = 255;
@@ -2502,6 +2649,7 @@ SUB(hagar_bounce) {
 }
 
 DEF(hagar_explode);
+// decal
 SUB(hagar_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2516,6 +2664,7 @@ SUB(hagar_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// fire effect which make bright dot inside
 SUB(hagar_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 80;
@@ -2536,6 +2685,7 @@ SUB(hagar_explode) {
        MY(type) = "smoke";
        MY(velocityjitter) = '156.0 156.0 156.0';
 }
+// fire effect which expands then slows
 SUB(hagar_explode) {
        MY(airfriction) = 12;
        MY(alpha_min) = 128;
@@ -2556,6 +2706,7 @@ SUB(hagar_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '286.0 286.0 286.0';
 }
+// smoke
 SUB(hagar_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -2573,6 +2724,7 @@ SUB(hagar_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '244.0 244.0 244.0';
 }
+// underwater bubbles
 SUB(hagar_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -2592,6 +2744,7 @@ SUB(hagar_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// bouncing sparks
 SUB(hagar_explode) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -2655,7 +2808,9 @@ SUB(rocketlauncher_muzzleflash) {
        MY(velocitymultiplier) = 0.300000;
 }
 
+// rocket trail
 DEF(TR_ROCKET);
+// smoke
 SUB(TR_ROCKET) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 300;
@@ -2680,6 +2835,7 @@ SUB(TR_ROCKET) {
        MY(velocityjitter) = '3.0 3.0 3.0';
        MY(velocitymultiplier) = -0.020000;
 }
+// fire
 SUB(TR_ROCKET) {
        MY(airfriction) = 8;
        MY(alpha_min) = 100;
@@ -2697,6 +2853,7 @@ SUB(TR_ROCKET) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = -1.500000;
 }
+// bubbles
 SUB(TR_ROCKET) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2714,6 +2871,7 @@ SUB(TR_ROCKET) {
        MY(velocityjitter) = '16.0 16.0 16.0';
        MY(velocitymultiplier) = -0.310000;
 }
+// sparks
 SUB(TR_ROCKET) {
        MY(airfriction) = 5;
        MY(alpha_min) = 444;
@@ -2735,6 +2893,7 @@ SUB(TR_ROCKET) {
        MY(velocitymultiplier) = -0.310000;
 }
 
+// rocket explosion (bigger than mortar and hagar)
 DEF(rocket_explode);
 SUB(rocket_explode) {
        MY(alpha_min) = 256;
@@ -2750,6 +2909,7 @@ SUB(rocket_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// fire effect
 SUB(rocket_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 200;
@@ -2770,6 +2930,7 @@ SUB(rocket_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// fire effect 2
 SUB(rocket_explode) {
        MY(airfriction) = 19;
        MY(alpha_min) = 200;
@@ -2790,6 +2951,7 @@ SUB(rocket_explode) {
        MY(type) = "smoke";
        MY(velocityjitter) = '912.0 912.0 912.0';
 }
+// smoke
 SUB(rocket_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -2807,6 +2969,7 @@ SUB(rocket_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '444.0 444.0 444.0';
 }
+// underwater bubbles
 SUB(rocket_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -2826,6 +2989,7 @@ SUB(rocket_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '144.0 144.0 144.0';
 }
+// underwatershockwave
 SUB(rocket_explode) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -2840,6 +3004,7 @@ SUB(rocket_explode) {
        MY(underwater) = true;
        MY(velocitymultiplier) = 0.300000;
 }
+// bouncing sparks
 SUB(rocket_explode) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -2861,6 +3026,7 @@ SUB(rocket_explode) {
        MY(velocityjitter) = '424.0 424.0 624.0';
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
+// debris
 SUB(rocket_explode) {
        MY(airfriction) = 0.500000;
        MY(alpha_min) = 644;
@@ -3228,7 +3394,9 @@ SUB(nex242_misc_laser_orange_beam_end) {
        MY(velocitymultiplier) = 100;
 }
 
+// bigger crylink impact effect
 DEF(crylink_impactbig);
+// decal
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3240,6 +3408,7 @@ SUB(crylink_impactbig) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// purple flare effect
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3253,6 +3422,7 @@ SUB(crylink_impactbig) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// purple sparks
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3268,6 +3438,7 @@ SUB(crylink_impactbig) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// purple splash
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3280,6 +3451,7 @@ SUB(crylink_impactbig) {
        MY(type) = "static";
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
+// purple splash
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3293,6 +3465,10 @@ SUB(crylink_impactbig) {
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
 
+// Zero-violence effects
+
+// cl_gentle impact effect indicating damage
+// NOTE: maintained by div0, make your own new effect instead of changing this one without asking!
 DEF(damage_hit);
 SUB(damage_hit) {
        MY(airfriction) = 5;
@@ -3352,7 +3528,9 @@ SUB(damage_hit) {
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
 
+// effect for removing player model
 DEF(damage_dissolve);
+// large sparks
 SUB(damage_dissolve) {
        MY(airfriction) = 3;
        MY(alpha_min) = 256;
@@ -3412,6 +3590,7 @@ SUB(damage_dissolve) {
 }
 
 DEF(laser_deadly);
+// decal
 SUB(laser_deadly) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3423,6 +3602,7 @@ SUB(laser_deadly) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(laser_deadly) {
        MY(airfriction) = 7;
        MY(alpha_max) = 64;
@@ -3441,6 +3621,7 @@ SUB(laser_deadly) {
        MY(velocityjitter) = '15.0 15.0 15.0';
        MY(velocitymultiplier) = 20;
 }
+// sparks
 SUB(laser_deadly) {
        MY(airfriction) = 5;
        MY(alpha_min) = 256;
@@ -3463,6 +3644,7 @@ SUB(laser_deadly) {
 }
 
 DEF(torch_small);
+// fire
 SUB(torch_small) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -3480,6 +3662,7 @@ SUB(torch_small) {
        MY(type) = "smoke";
        MY(velocityjitter) = '1.0 1.0 50.0';
 }
+// smoke
 SUB(torch_small) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -3517,6 +3700,7 @@ SUB(fountain01) {
 }
 
 DEF(hookbomb_explode);
+// decal
 SUB(hookbomb_explode) {
        MY(airfriction) = 10;
        MY(alpha_max) = 256;
@@ -3534,6 +3718,7 @@ SUB(hookbomb_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '550.0 550.0 550.0';
 }
+// decal in the air
 SUB(hookbomb_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 265;
@@ -3549,6 +3734,7 @@ SUB(hookbomb_explode) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// decal on the ground
 SUB(hookbomb_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3560,6 +3746,7 @@ SUB(hookbomb_explode) {
        MY(tex_max) = 39;
        MY(type) = "decal";
 }
+// some sparks
 SUB(hookbomb_explode) {
        MY(airfriction) = 2;
        MY(alpha_min) = 256;
@@ -3582,6 +3769,7 @@ SUB(hookbomb_explode) {
 }
 
 DEF(EF_MGTURRETTRAIL);
+// smoke
 SUB(EF_MGTURRETTRAIL) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 196;
@@ -3597,6 +3785,7 @@ SUB(EF_MGTURRETTRAIL) {
        MY(trailspacing) = 10;
        MY(type) = "smoke";
 }
+// bubbles
 SUB(EF_MGTURRETTRAIL) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3617,6 +3806,7 @@ SUB(EF_MGTURRETTRAIL) {
 }
 
 DEF(fire_big);
+// fire
 SUB(fire_big) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 356;
@@ -3635,6 +3825,7 @@ SUB(fire_big) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
+// smoke
 SUB(fire_big) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -3655,7 +3846,7 @@ SUB(fire_big) {
 
 #define flare(name, colormin, colormax) \
        DEF(name##_flare); \
-       SUB(name##_flare) { \
+       SUB(name##_flare) /* smoke */ { \
                MY(alpha_min) = 200; \
                MY(alpha_max) = 256; \
                MY(alpha_fade) = 160; \
@@ -3678,6 +3869,7 @@ flare(blue, "0x0000ff", "0x7194dc")
 #undef flare
 
 DEF(smoke_ring);
+// smoke
 SUB(smoke_ring) {
        MY(airfriction) = 3;
        MY(alpha_min) = 100;
@@ -3698,6 +3890,7 @@ SUB(smoke_ring) {
 }
 
 DEF(smoke_large);
+// smoke
 SUB(smoke_large) {
        MY(airfriction) = 7;
        MY(alpha_min) = 140;
@@ -3798,6 +3991,7 @@ SUB(smoking) {
        MY(velocityjitter) = '5.0 5.0 20.0';
 }
 
+// golden dust (create it once per second to cover large area in small yellow particles)
 DEF(goldendust);
 SUB(goldendust) {
        MY(alpha_min) = 256;
@@ -3880,6 +4074,7 @@ SUB(ammoregen_fx) {
        MY(velocityjitter) = '50.0 50.0 0.0';
 }
 
+// red-yellow flame like fx
 DEF(rage);
 SUB(rage) {
        MY(airfriction) = 2;
@@ -3900,6 +4095,7 @@ SUB(rage) {
        MY(velocityjitter) = '25.0 25.0 25.0';
 }
 
+// pieces of glass or ice falling on the floor
 DEF(iceorglass);
 SUB(iceorglass) {
        MY(airfriction) = 3;
@@ -3921,6 +4117,7 @@ SUB(iceorglass) {
        MY(velocityjitter) = '100.0 100.0 100.0';
 }
 
+// cover small area in poison gas, spawn it once per second
 DEF(poisonfield);
 SUB(poisonfield) {
        MY(airfriction) = 1;
@@ -3941,6 +4138,7 @@ SUB(poisonfield) {
        MY(velocityjitter) = '5.0 5.0 5.0';
 }
 
+// cover small area in icy mist, spawn it once per second
 DEF(icefield);
 SUB(icefield) {
        MY(airfriction) = 1;
@@ -3977,7 +4175,9 @@ SUB(icefield) {
        MY(type) = "smoke";
 }
 
+// cover very small area in flames, spawn it 3 times per second (or more often to get better looking fire at cost of fps hit )
 DEF(firefield);
+// flames that go up
 SUB(firefield) {
        MY(airfriction) = 1;
        MY(alpha_min) = 50;
@@ -3997,6 +4197,7 @@ SUB(firefield) {
        MY(type) = "smoke";
        MY(velocityjitter) = '5.0 5.0 30.0';
 }
+// flames that stay on the ground
 SUB(firefield) {
        MY(alpha_min) = 50;
        MY(alpha_max) = 256;
@@ -4012,6 +4213,7 @@ SUB(firefield) {
        MY(tex_max) = 55;
        MY(type) = "smoke";
 }
+// smoke
 SUB(firefield) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4028,7 +4230,9 @@ SUB(firefield) {
        MY(type) = "alphastatic";
 }
 
+// flamethrower, spawn it as fast as you can  20 times per second or more, it needs direction
 DEF(flamethrower);
+// fast fire
 SUB(flamethrower) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -4048,6 +4252,7 @@ SUB(flamethrower) {
        MY(velocityjitter) = '40.0 40.0 11.0';
        MY(velocitymultiplier) = 30;
 }
+// slow fire
 SUB(flamethrower) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -4067,6 +4272,7 @@ SUB(flamethrower) {
        MY(velocityjitter) = '40.0 40.0 40.0';
        MY(velocitymultiplier) = 20;
 }
+// very slow and small fire
 SUB(flamethrower) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -4086,6 +4292,7 @@ SUB(flamethrower) {
        MY(velocityjitter) = '30.0 30.0 30.0';
        MY(velocitymultiplier) = 10;
 }
+// decreasing fire
 SUB(flamethrower) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -4105,6 +4312,7 @@ SUB(flamethrower) {
        MY(velocityjitter) = '10.0 10.0 10.0';
        MY(velocitymultiplier) = 15;
 }
+// smoke
 SUB(flamethrower) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -4123,7 +4331,9 @@ SUB(flamethrower) {
        MY(velocityoffset) = '0.0 0.0 10.0';
 }
 
+// port-o-launch trail
 DEF(TR_WIZSPIKE);
+// glowing vapor trail
 SUB(TR_WIZSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4140,6 +4350,7 @@ SUB(TR_WIZSPIKE) {
        MY(type) = "static";
        MY(velocitymultiplier) = -0.100000;
 }
+// bright sparks
 SUB(TR_WIZSPIKE) {
        MY(airfriction) = 12;
        MY(alpha_min) = 444;
@@ -4161,7 +4372,9 @@ SUB(TR_WIZSPIKE) {
        MY(velocityoffset) = '0.0 0.0 15.0';
 }
 
+// TAG trail
 DEF(TR_VORESPIKE);
+// glowing vapor trail
 SUB(TR_VORESPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4178,6 +4391,7 @@ SUB(TR_VORESPIKE) {
        MY(type) = "static";
        MY(velocitymultiplier) = -0.100000;
 }
+// bright sparks
 SUB(TR_VORESPIKE) {
        MY(airfriction) = 12;
        MY(alpha_min) = 444;
@@ -4214,6 +4428,7 @@ SUB(flac_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// fire effect which make bright dot inside
 SUB(flac_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 128;
@@ -4234,6 +4449,7 @@ SUB(flac_explode) {
        MY(type) = "smoke";
        MY(velocityjitter) = '156.0 156.0 156.0';
 }
+// fire effect which expands then slows
 SUB(flac_explode) {
        MY(airfriction) = 12;
        MY(alpha_min) = 128;
@@ -4254,6 +4470,7 @@ SUB(flac_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// smoke
 SUB(flac_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 500;
@@ -4271,6 +4488,7 @@ SUB(flac_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '244.0 244.0 244.0';
 }
+// underwater bubbles
 SUB(flac_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -4290,6 +4508,7 @@ SUB(flac_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// bouncing sparks
 SUB(flac_explode) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
@@ -4311,6 +4530,7 @@ SUB(flac_explode) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// bullet trail (somewhat like a tracer)
 DEF(tr_bullet);
 SUB(tr_bullet) {
        MY(alpha_min) = 256;
@@ -4328,6 +4548,7 @@ SUB(tr_bullet) {
        MY(velocitymultiplier) = 3;
 }
 
+// smoke emitter for small pipes
 DEF(smoking_smallemitter);
 SUB(smoking_smallemitter) {
        MY(airfriction) = -1;
@@ -4347,7 +4568,9 @@ SUB(smoking_smallemitter) {
        MY(velocityjitter) = '5.0 5.0 20.0';
 }
 
+// crylink trail
 DEF(TR_CRYLINKPLASMA);
+// plasma smoke
 SUB(TR_CRYLINKPLASMA) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4364,6 +4587,7 @@ SUB(TR_CRYLINKPLASMA) {
        MY(velocityjitter) = '8.0 8.0 8.0';
        MY(velocitymultiplier) = -0.010000;
 }
+// crylink main trail
 SUB(TR_CRYLINKPLASMA) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4428,6 +4652,7 @@ SUB(alien_blood) {
        MY(type) = "spark";
        MY(velocityjitter) = '99.0 99.0 55.0';
 }
+// blood mist
 SUB(alien_blood) {
        MY(alpha_min) = 3000;
        MY(alpha_max) = 5560;
@@ -4465,6 +4690,7 @@ SUB(robot_blood) {
        MY(velocityjitter) = '264.0 264.0 264.0';
        MY(velocityoffset) = '0.0 0.0 100.0';
 }
+// shockwave
 SUB(robot_blood) {
        MY(alpha_max) = 90;
        MY(alpha_fade) = 1000;
@@ -4479,6 +4705,7 @@ SUB(robot_blood) {
        MY(tex_max) = 74;
        MY(type) = "smoke";
 }
+// electo sparks
 SUB(robot_blood) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4528,7 +4755,8 @@ SUB(alien_TR_BLOOD) {
        MY(velocitymultiplier) = -0.100000;
 }
 
-SUB(TR_BLOOD) {
+// splash around gib
+SUB(alien_TR_BLOOD) {
        MY(alpha_min) = 684;
        MY(alpha_max) = 684;
        MY(alpha_fade) = 7492;
@@ -4572,6 +4800,7 @@ SUB(robot_TR_BLOOD) {
        MY(velocityjitter) = '64.0 64.0 64.0';
        MY(velocitymultiplier) = -0.300000;
 }
+// fire
 SUB(robot_TR_BLOOD) {
        MY(airfriction) = 4;
        MY(alpha_min) = 128;
@@ -4592,6 +4821,7 @@ SUB(robot_TR_BLOOD) {
        MY(type) = "spark";
        MY(velocityjitter) = '44.0 44.0 44.0';
 }
+// arcs
 SUB(robot_TR_BLOOD) {
        MY(alpha_min) = 1128;
        MY(alpha_max) = 1256;
@@ -4660,6 +4890,7 @@ SUB(robot_TR_SLIGHTBLOOD) {
 }
 
 DEF(item_pickup);
+// flare particle and light
 SUB(item_pickup) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 64;
@@ -4671,6 +4902,7 @@ SUB(item_pickup) {
        MY(size_max) = 16;
        MY(type) = "static";
 }
+// cloud of particles which expand rapidly and then slow to form a ball
 SUB(item_pickup) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4712,6 +4944,7 @@ SUB(bloodshower) {
        MY(type) = "spark";
        MY(velocityjitter) = '764.0 764.0 764.0';
 }
+// center blood
 SUB(bloodshower) {
        MY(alpha_min) = 156;
        MY(alpha_max) = 656;
@@ -4755,8 +4988,8 @@ SUB(alien_bloodshower) {
        MY(type) = "spark";
        MY(velocityjitter) = '764.0 764.0 764.0';
 }
-
-SUB(bloodshower) {
+// center blood
+SUB(alien_bloodshower) {
        MY(alpha_min) = 156;
        MY(alpha_max) = 656;
        MY(alpha_fade) = 1664;
@@ -4799,7 +5032,7 @@ SUB(robot_bloodshower) {
        MY(type) = "spark";
        MY(velocityjitter) = '764.0 764.0 764.0';
 }
-
+// arc
 SUB(robot_bloodshower) {
        MY(alpha_min) = 1128;
        MY(alpha_max) = 1256;
@@ -4819,6 +5052,7 @@ SUB(robot_bloodshower) {
        MY(type) = "smoke";
        MY(velocityjitter) = '44.0 44.0 44.0';
 }
+// shockwave
 SUB(robot_bloodshower) {
        MY(alpha_min) = 11;
        MY(alpha_max) = 125;
@@ -4836,7 +5070,7 @@ SUB(robot_bloodshower) {
 
 #define ground_quake(name, colormin, colormax) \
        DEF(name##_ground_quake); \
-       SUB(name##_ground_quake) { \
+       SUB(name##_ground_quake) /* smoke */ { \
                MY(airfriction) = 3; \
                MY(alpha_min) = 100; \
                MY(alpha_max) = 126; \
@@ -4896,7 +5130,7 @@ SUB(robot_bloodshower) {
                MY(type) = "smoke"; \
                MY(velocityjitter) = '22.0 22.0 50.0'; \
        } \
-       SUB(name##_ground_quake) { \
+       SUB(name##_ground_quake) /* smoke */ { \
                MY(alpha_min) = 200; \
                MY(alpha_max) = 256; \
                MY(alpha_fade) = 200; \
@@ -4921,6 +5155,7 @@ ground_quake(red,         "0x9E6A64", "0x91302D")
 ground_quake(blue,     "0x64679E", "0x2D4C91")
 #undef ground_quake
 
+// cl_gentle impact effect indicating damage
 DEF(morphed_damage_hit);
 SUB(morphed_damage_hit) {
        MY(airfriction) = 5;
@@ -4957,6 +5192,7 @@ SUB(morphed_damage_hit) {
        MY(type) = "smoke";
 }
 
+// effect for removing player model
 DEF(morphed_damage_dissolve);
 SUB(morphed_damage_dissolve) {
        MY(airfriction) = 8;
@@ -5041,6 +5277,7 @@ SUB(morphed_damage_dissolve) {
        MY(velocityjitter) = '400.0 400.0 0.0';
 }
 
+// Team / hit vaporizer effects
 #define TE_TEI_G3(name, colormin1, colormax1, colormin2, colormax2) \
        DEF(TE_TEI_G3##name); \
        SUB(TE_TEI_G3##name) { \
@@ -5086,7 +5323,7 @@ SUB(morphed_damage_dissolve) {
                MY(tex_max) = 200; \
                MY(type) = "beam"; \
        } \
-       SUB(TE_TEI_G3##name##_HIT) { \
+       SUB(TE_TEI_G3##name##_HIT) /* rings */ { \
                MY(airfriction) = -4; \
                MY(alpha_min) = 256; \
                MY(alpha_max) = 256; \
@@ -5120,7 +5357,9 @@ TE_TEI_G3(YELLOW, "0xffff00", "0xffff11", "0x202000", "0x404000")
 TE_TEI_G3(PINK, "0xFF00FF", "0xFF11FF", "0x200020", "0x400040")
 #undef TE_TEI_G3
 
+// cl_gentle impact effect indicating damage
 DEF(particlegibs_damage_hit);
+// core decal
 SUB(particlegibs_damage_hit) {
        MY(airfriction) = 3;
        MY(alpha_min) = 256;
@@ -5142,6 +5381,7 @@ SUB(particlegibs_damage_hit) {
        MY(type) = "blood";
        MY(velocityjitter) = '156.0 156.0 212.0';
 }
+// front blood
 SUB(particlegibs_damage_hit) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -5166,6 +5406,7 @@ SUB(particlegibs_damage_hit) {
        MY(velocityjitter) = '6.0 6.0 30.0';
        MY(velocitymultiplier) = -1;
 }
+// back blood
 SUB(particlegibs_damage_hit) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -5192,7 +5433,9 @@ SUB(particlegibs_damage_hit) {
        MY(velocitymultiplier) = 2;
 }
 
+// effect for removing player model
 DEF(particlegibs_damage_dissolve);
+// small core blood no decals
 SUB(particlegibs_damage_dissolve) {
        MY(airfriction) = 3;
        MY(alpha_min) = 256;
@@ -5214,6 +5457,7 @@ SUB(particlegibs_damage_dissolve) {
        MY(type) = "blood";
        MY(velocityjitter) = '256.0 256.0 312.0';
 }
+// core decal
 SUB(particlegibs_damage_dissolve) {
        MY(airfriction) = 2;
        MY(alpha_min) = 256;
@@ -5236,6 +5480,7 @@ SUB(particlegibs_damage_dissolve) {
        MY(type) = "blood";
        MY(velocityjitter) = '356.0 356.0 412.0';
 }
+// front blood
 SUB(particlegibs_damage_dissolve) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -5261,6 +5506,7 @@ SUB(particlegibs_damage_dissolve) {
        MY(velocityjitter) = '56.0 56.0 212.0';
        MY(velocitymultiplier) = -0.300000;
 }
+// back blood
 SUB(particlegibs_damage_dissolve) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -5286,6 +5532,7 @@ SUB(particlegibs_damage_dissolve) {
        MY(velocityjitter) = '56.0 56.0 212.0';
        MY(velocitymultiplier) = 0.500000;
 }
+// small bits
 SUB(particlegibs_damage_dissolve) {
        MY(airfriction) = 1.500000;
        MY(alpha_min) = 256;
@@ -5311,6 +5558,7 @@ SUB(particlegibs_damage_dissolve) {
 }
 
 DEF(onslaught_generator_gib_explode);
+// fire effect which expands then slows
 SUB(onslaught_generator_gib_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 128;
@@ -5331,6 +5579,7 @@ SUB(onslaught_generator_gib_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '286.0 286.0 286.0';
 }
+// smoke
 SUB(onslaught_generator_gib_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -5349,6 +5598,7 @@ SUB(onslaught_generator_gib_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '244.0 244.0 244.0';
 }
+// underwater bubbles
 SUB(onslaught_generator_gib_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -5370,6 +5620,7 @@ SUB(onslaught_generator_gib_explode) {
 }
 
 DEF(onslaught_generator_gib_flame);
+// fire effect which expands then slows
 SUB(onslaught_generator_gib_flame) {
        MY(airfriction) = 5;
        MY(alpha_min) = 128;
@@ -5390,6 +5641,7 @@ SUB(onslaught_generator_gib_flame) {
        MY(type) = "static";
        MY(velocityjitter) = '86.0 86.0 86.0';
 }
+// smoke
 SUB(onslaught_generator_gib_flame) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -5408,6 +5660,7 @@ SUB(onslaught_generator_gib_flame) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '44.0 44.0 44.0';
 }
+// underwater bubbles
 SUB(onslaught_generator_gib_flame) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -5448,6 +5701,7 @@ SUB(firemine) {
        MY(type) = "smoke";
        MY(velocityjitter) = '10.0 10.0 2.0';
 }
+// slowfire
 SUB(firemine) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -5467,6 +5721,7 @@ SUB(firemine) {
        MY(type) = "smoke";
        MY(velocityjitter) = '10.0 10.0 10.0';
 }
+// very slow and small fire
 SUB(firemine) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -5486,6 +5741,7 @@ SUB(firemine) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// decreasing fire
 SUB(firemine) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -5505,6 +5761,7 @@ SUB(firemine) {
        MY(type) = "smoke";
        MY(velocityjitter) = '3.0 3.0 3.0';
 }
+// smoke
 SUB(firemine) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -5522,6 +5779,7 @@ SUB(firemine) {
        MY(type) = "alphastatic";
        MY(velocityoffset) = '0.0 0.0 3.0';
 }
+// fastfire
 SUB(firemine) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -5538,6 +5796,7 @@ SUB(firemine) {
        MY(trailspacing) = 1;
        MY(type) = "smoke";
 }
+// light only
 SUB(firemine) {
        MY(lightcolor) = '2.7 2.7 0.6';
        MY(lightradiusfade) = 50000;
@@ -5565,6 +5824,7 @@ SUB(fireball) {
        MY(type) = "smoke";
        MY(velocityjitter) = '40.0 40.0 11.0';
 }
+// slow fire
 SUB(fireball) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -5584,6 +5844,7 @@ SUB(fireball) {
        MY(type) = "smoke";
        MY(velocityjitter) = '40.0 40.0 40.0';
 }
+// very slow and small fire
 SUB(fireball) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -5603,6 +5864,7 @@ SUB(fireball) {
        MY(type) = "smoke";
        MY(velocityjitter) = '30.0 30.0 30.0';
 }
+// decreasing fire
 SUB(fireball) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -5622,6 +5884,7 @@ SUB(fireball) {
        MY(type) = "smoke";
        MY(velocityjitter) = '10.0 10.0 10.0';
 }
+// smoke
 SUB(fireball) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -5639,6 +5902,7 @@ SUB(fireball) {
        MY(type) = "alphastatic";
        MY(velocityoffset) = '0.0 0.0 10.0';
 }
+// fast fire
 SUB(fireball) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -5655,6 +5919,7 @@ SUB(fireball) {
        MY(trailspacing) = 1;
        MY(type) = "smoke";
 }
+// light only
 SUB(fireball) {
        MY(lightcolor) = '2.7 2.7 0.6';
        MY(lightradiusfade) = 3000;
@@ -5678,7 +5943,9 @@ SUB(fireball_laser) {
        MY(velocitymultiplier) = 10;
 }
 
+// rocket explosion (bigger than mortar and hagar)
 DEF(fireball_explode);
+// decal
 SUB(fireball_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -5693,6 +5960,7 @@ SUB(fireball_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// flare effect
 SUB(fireball_explode) {
        MY(alpha_min) = 192;
        MY(alpha_max) = 192;
@@ -5706,6 +5974,7 @@ SUB(fireball_explode) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// fire effect
 SUB(fireball_explode) {
        MY(airfriction) = 4;
        MY(alpha_min) = 128;
@@ -5725,6 +5994,7 @@ SUB(fireball_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// underwater bubbles
 SUB(fireball_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -5744,6 +6014,7 @@ SUB(fireball_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '144.0 144.0 144.0';
 }
+// bouncing sparks
 SUB(fireball_explode) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
@@ -5872,6 +6143,7 @@ SUB(fireball_bfgdamage) {
 }
 
 DEF(EF_FLAME);
+// fire
 SUB(EF_FLAME) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 356;
@@ -5891,6 +6163,7 @@ SUB(EF_FLAME) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
+// smoke
 SUB(EF_FLAME) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -5916,6 +6189,7 @@ SUB(EF_FLAME) {
        MY(lightradius) = 200;
 }
 
+// rifle bullet trail (somewhat like a tracer)
 DEF(tr_rifle);
 SUB(tr_rifle) {
        MY(alpha_min) = 256;
@@ -5965,7 +6239,9 @@ SUB(tr_rifle) {
        MY(velocityjitter) = '16.0 16.0 16.0';
 }
 
+// rocket guiding start
 DEF(rocket_guide);
+// underwater bubbles
 SUB(rocket_guide) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -5986,6 +6262,7 @@ SUB(rocket_guide) {
        MY(velocityjitter) = '48.0 48.0 48.0';
        MY(velocitymultiplier) = -0.100000;
 }
+// bouncing sparks
 SUB(rocket_guide) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
@@ -6023,6 +6300,7 @@ SUB(rocket_guide) {
        MY(type) = "smoke";
 }
 
+// gauntlet laser
 DEF(laser_gauntlet);
 SUB(laser_gauntlet) {
        MY(airfriction) = 10;
@@ -6068,6 +6346,7 @@ SUB(laser_gauntlet) {
 }
 
 DEF(laser_gauntletmuzzleflash);
+// glow and light
 SUB(laser_gauntletmuzzleflash) {
        MY(airfriction) = 10;
        MY(alpha_min) = 256;
@@ -6087,6 +6366,7 @@ SUB(laser_gauntletmuzzleflash) {
        MY(tex_max) = 65;
        MY(type) = "smoke";
 }
+// electricity
 SUB(laser_gauntletmuzzleflash) {
        MY(airfriction) = 10;
        MY(alpha_min) = 128;
@@ -6110,6 +6390,7 @@ SUB(laser_gauntletmuzzleflash) {
        MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// fire
 SUB(laser_gauntletmuzzleflash) {
        MY(airfriction) = 12;
        MY(alpha_min) = 256;
@@ -6130,7 +6411,9 @@ SUB(laser_gauntletmuzzleflash) {
        MY(velocitymultiplier) = 0.200000;
 }
 
+// torch flame, spawn it as fast as you can  20 times per second or more, supports direction but not required
 DEF(torchflame);
+// fast fire
 SUB(torchflame) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -6149,6 +6432,7 @@ SUB(torchflame) {
        MY(velocityjitter) = '40.0 40.0 11.0';
        MY(velocitymultiplier) = 30;
 }
+// slow fire
 SUB(torchflame) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -6167,6 +6451,7 @@ SUB(torchflame) {
        MY(velocityjitter) = '40.0 40.0 40.0';
        MY(velocitymultiplier) = 20;
 }
+// very slow and small fire
 SUB(torchflame) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -6185,6 +6470,7 @@ SUB(torchflame) {
        MY(velocityjitter) = '30.0 30.0 30.0';
        MY(velocitymultiplier) = 10;
 }
+// decreasing fire
 SUB(torchflame) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -6203,6 +6489,7 @@ SUB(torchflame) {
        MY(velocityjitter) = '10.0 10.0 10.0';
        MY(velocitymultiplier) = 15;
 }
+// smoke
 SUB(torchflame) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -6221,6 +6508,7 @@ SUB(torchflame) {
        MY(velocityoffset) = '0.0 0.0 10.0';
 }
 
+// happy death fx for cl_gentle
 DEF(happy_damage_dissolve);
 SUB(happy_damage_dissolve) {
        MY(airfriction) = 3;
@@ -6280,6 +6568,7 @@ SUB(happy_damage_dissolve) {
        MY(velocityjitter) = '312.0 312.0 312.0';
 }
 
+// happy damage fx for cl_gentle
 DEF(happy_damage_hit);
 SUB(happy_damage_hit) {
        MY(airfriction) = 5;
@@ -6466,6 +6755,7 @@ SUB(gauntlet_lightning) {
 }
 
 DEF(crylink_joinexplode);
+// decal
 SUB(crylink_joinexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -6477,6 +6767,7 @@ SUB(crylink_joinexplode) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// purple flare effect
 SUB(crylink_joinexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -6490,6 +6781,7 @@ SUB(crylink_joinexplode) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// purple sparks
 SUB(crylink_joinexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -6505,6 +6797,7 @@ SUB(crylink_joinexplode) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// purple splash
 SUB(crylink_joinexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -6517,6 +6810,7 @@ SUB(crylink_joinexplode) {
        MY(type) = "static";
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
+// purple splash
 SUB(crylink_joinexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -6530,6 +6824,7 @@ SUB(crylink_joinexplode) {
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
 
+// sparks for keepaway ball touch
 DEF(kaball_sparks);
 SUB(kaball_sparks) {
        MY(airfriction) = 3;
@@ -6550,6 +6845,7 @@ SUB(kaball_sparks) {
        MY(velocitymultiplier) = 0.500000;
 }
 
+// weak rifle bullet trail (somewhat like a tracer)
 DEF(tr_rifle_weak);
 SUB(tr_rifle_weak) {
        MY(alpha_min) = 256;
@@ -6599,6 +6895,7 @@ SUB(tr_rifle_weak) {
        MY(velocityjitter) = '16.0 16.0 16.0';
 }
 
+// red smoke emiter
 DEF(red_smoke);
 SUB(red_smoke) {
        MY(airfriction) = -1;
@@ -6619,6 +6916,7 @@ SUB(red_smoke) {
        MY(velocitymultiplier) = 5;
 }
 
+// pipe smoke emiter
 DEF(pipe_smoke);
 SUB(pipe_smoke) {
        MY(airfriction) = -1;
@@ -6641,6 +6939,7 @@ SUB(pipe_smoke) {
        MY(velocitymultiplier) = 15;
 }
 
+// seeker missile trail
 DEF(TR_SEEKER);
 SUB(TR_SEEKER) {
        MY(alpha_min) = 200;
@@ -6666,6 +6965,7 @@ SUB(TR_SEEKER) {
        MY(velocityjitter) = '3.0 3.0 3.0';
        MY(velocitymultiplier) = -0.020000;
 }
+// fire
 SUB(TR_SEEKER) {
        MY(airfriction) = 8;
        MY(alpha_min) = 100;
@@ -6683,6 +6983,7 @@ SUB(TR_SEEKER) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = -1.500000;
 }
+// bubbles
 SUB(TR_SEEKER) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -6700,6 +7001,7 @@ SUB(TR_SEEKER) {
        MY(velocityjitter) = '16.0 16.0 16.0';
        MY(velocitymultiplier) = -0.310000;
 }
+// sparks
 SUB(TR_SEEKER) {
        MY(airfriction) = 5;
        MY(alpha_min) = 444;
@@ -6764,6 +7066,7 @@ SUB(spiderbot_minigun_muzzleflash) {
        MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.350000;
 }
+// fire
 SUB(spiderbot_minigun_muzzleflash) {
        MY(airfriction) = 12;
        MY(alpha_min) = 256;
@@ -6826,6 +7129,7 @@ SUB(spiderbot_minigun_impact) {
        MY(tex_max) = 65;
        MY(type) = "static";
 }
+// fire
 SUB(spiderbot_minigun_impact) {
        MY(airfriction) = 6;
        MY(alpha_min) = 256;
@@ -6849,6 +7153,7 @@ SUB(spiderbot_minigun_impact) {
        MY(velocityjitter) = '250.0 250.0 150.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// smoke
 SUB(spiderbot_minigun_impact) {
        MY(airfriction) = 10;
        MY(alpha_min) = 50;
@@ -6868,6 +7173,7 @@ SUB(spiderbot_minigun_impact) {
        MY(velocityjitter) = '100.0 100.0 250.0';
        MY(velocitymultiplier) = 0.490000;
 }
+// smoke 2
 SUB(spiderbot_minigun_impact) {
        MY(airfriction) = 6;
        MY(alpha_min) = 25;
@@ -6886,6 +7192,7 @@ SUB(spiderbot_minigun_impact) {
        MY(velocityjitter) = '250.0 250.0 150.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// debris
 SUB(spiderbot_minigun_impact) {
        MY(airfriction) = 0.400000;
        MY(alpha_min) = 644;
@@ -6910,6 +7217,7 @@ SUB(spiderbot_minigun_impact) {
        MY(velocityjitter) = '124.0 124.0 224.0';
        MY(velocitymultiplier) = 0.150000;
 }
+// decal
 SUB(spiderbot_minigun_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -6939,6 +7247,7 @@ SUB(spiderbot_rocket_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// shockwave
 SUB(spiderbot_rocket_explode) {
        MY(alpha_min) = 56;
        MY(alpha_max) = 56;
@@ -6953,6 +7262,7 @@ SUB(spiderbot_rocket_explode) {
        MY(tex_max) = 33;
        MY(type) = "static";
 }
+// glow
 SUB(spiderbot_rocket_explode) {
        MY(alpha_min) = 156;
        MY(alpha_max) = 156;
@@ -6967,6 +7277,7 @@ SUB(spiderbot_rocket_explode) {
        MY(tex_max) = 64;
        MY(type) = "static";
 }
+// fire effect
 SUB(spiderbot_rocket_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 200;
@@ -6990,6 +7301,7 @@ SUB(spiderbot_rocket_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// fire effect 2
 SUB(spiderbot_rocket_explode) {
        MY(airfriction) = -2;
        MY(alpha_min) = 200;
@@ -7013,6 +7325,7 @@ SUB(spiderbot_rocket_explode) {
        MY(type) = "spark";
        MY(velocityjitter) = '412.0 412.0 412.0';
 }
+// fire rays
 SUB(spiderbot_rocket_explode) {
        MY(airfriction) = -3;
        MY(alpha_min) = 200;
@@ -7033,6 +7346,7 @@ SUB(spiderbot_rocket_explode) {
        MY(type) = "spark";
        MY(velocityjitter) = '712.0 712.0 712.0';
 }
+// smoke
 SUB(spiderbot_rocket_explode) {
        MY(airfriction) = 3;
        MY(alpha_min) = 300;
@@ -7054,6 +7368,7 @@ SUB(spiderbot_rocket_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '200.0 200.0 200.0';
 }
+// smoke2
 SUB(spiderbot_rocket_explode) {
        MY(airfriction) = 2;
        MY(alpha_min) = 300;
@@ -7076,6 +7391,7 @@ SUB(spiderbot_rocket_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '200.0 200.0 200.0';
 }
+// underwater bubbles
 SUB(spiderbot_rocket_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -7095,6 +7411,7 @@ SUB(spiderbot_rocket_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '144.0 144.0 144.0';
 }
+// underwatershockwave
 SUB(spiderbot_rocket_explode) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -7152,6 +7469,7 @@ SUB(spiderbot_rocket_thrust) {
 }
 
 DEF(spiderbot_rocket_launch);
+// long lasting smoke
 SUB(spiderbot_rocket_launch) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 100;
@@ -7170,6 +7488,7 @@ SUB(spiderbot_rocket_launch) {
        MY(velocityjitter) = '60.0 60.0 60.0';
        MY(velocitymultiplier) = -0.100000;
 }
+// fast smoke
 SUB(spiderbot_rocket_launch) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 100;
@@ -7187,6 +7506,7 @@ SUB(spiderbot_rocket_launch) {
        MY(type) = "smoke";
        MY(velocityjitter) = '160.0 160.0 60.0';
 }
+// fire
 SUB(spiderbot_rocket_launch) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 200;
@@ -7206,6 +7526,7 @@ SUB(spiderbot_rocket_launch) {
        MY(velocityjitter) = '60.0 60.0 60.0';
        MY(velocitymultiplier) = 0.500000;
 }
+// sparks
 SUB(spiderbot_rocket_launch) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -7344,6 +7665,7 @@ SUB(wakizashi_rocket_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// shockwave
 SUB(wakizashi_rocket_explode) {
        MY(alpha_min) = 56;
        MY(alpha_max) = 56;
@@ -7358,6 +7680,7 @@ SUB(wakizashi_rocket_explode) {
        MY(tex_max) = 33;
        MY(type) = "static";
 }
+// glow
 SUB(wakizashi_rocket_explode) {
        MY(alpha_min) = 156;
        MY(alpha_max) = 156;
@@ -7372,6 +7695,7 @@ SUB(wakizashi_rocket_explode) {
        MY(tex_max) = 64;
        MY(type) = "static";
 }
+// fire effect
 SUB(wakizashi_rocket_explode) {
        MY(airfriction) = 2;
        MY(alpha_min) = 200;
@@ -7395,6 +7719,7 @@ SUB(wakizashi_rocket_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// fire rays
 SUB(wakizashi_rocket_explode) {
        MY(airfriction) = -3;
        MY(alpha_min) = 200;
@@ -7415,6 +7740,7 @@ SUB(wakizashi_rocket_explode) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// smoke
 SUB(wakizashi_rocket_explode) {
        MY(airfriction) = 3;
        MY(alpha_min) = 300;
@@ -7436,6 +7762,7 @@ SUB(wakizashi_rocket_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '200.0 200.0 200.0';
 }
+// bouncing sparks
 SUB(wakizashi_rocket_explode) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -7456,6 +7783,7 @@ SUB(wakizashi_rocket_explode) {
        MY(velocityjitter) = '524.0 524.0 524.0';
        MY(velocityoffset) = '0.0 0.0 170.0';
 }
+// underwater bubbles
 SUB(wakizashi_rocket_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -7475,6 +7803,7 @@ SUB(wakizashi_rocket_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '144.0 144.0 144.0';
 }
+// underwatershockwave
 SUB(wakizashi_rocket_explode) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -7528,6 +7857,7 @@ SUB(wakizashi_rocket_thrust) {
 }
 
 DEF(wakizashi_rocket_launch);
+// long lasting smoke
 SUB(wakizashi_rocket_launch) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 100;
@@ -7545,6 +7875,7 @@ SUB(wakizashi_rocket_launch) {
        MY(velocityjitter) = '160.0 160.0 60.0';
        MY(velocitymultiplier) = -0.100000;
 }
+// fast smoke
 SUB(wakizashi_rocket_launch) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 100;
@@ -7562,6 +7893,7 @@ SUB(wakizashi_rocket_launch) {
        MY(velocityjitter) = '160.0 160.0 60.0';
        MY(velocitymultiplier) = 0.400000;
 }
+//sparks
 SUB(wakizashi_rocket_launch) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -7604,6 +7936,7 @@ SUB(wakizashi_booster_smoke) {
 }
 
 DEF(raptor_cannon_impact);
+// decal
 SUB(raptor_cannon_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -7617,6 +7950,7 @@ SUB(raptor_cannon_impact) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// spark
 SUB(raptor_cannon_impact) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 644;
@@ -7636,6 +7970,7 @@ SUB(raptor_cannon_impact) {
        MY(velocityjitter) = '124.0 124.0 524.0';
        MY(velocityoffset) = '0.0 0.0 150.0';
 }
+// smoke
 SUB(raptor_cannon_impact) {
        MY(airfriction) = 2;
        MY(alpha_min) = 428;
@@ -7654,6 +7989,7 @@ SUB(raptor_cannon_impact) {
        MY(velocityjitter) = '200.0 200.0 300.0';
        MY(velocityoffset) = '0.0 0.0 340.0';
 }
+// fire
 SUB(raptor_cannon_impact) {
        MY(airfriction) = 8;
        MY(alpha_min) = 200;
@@ -7719,6 +8055,7 @@ SUB(raptor_cannon_muzzleflash) {
 }
 
 DEF(raptor_bomb_impact);
+// decal
 SUB(raptor_bomb_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -7732,6 +8069,7 @@ SUB(raptor_bomb_impact) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// spark vertical
 SUB(raptor_bomb_impact) {
        MY(alpha_min) = 300;
        MY(alpha_max) = 300;
@@ -7749,6 +8087,7 @@ SUB(raptor_bomb_impact) {
        MY(type) = "spark";
        MY(velocityjitter) = '40.0 40.0 120.0';
 }
+// fire
 SUB(raptor_bomb_impact) {
        MY(airfriction) = 2;
        MY(alpha_min) = 300;
@@ -7766,6 +8105,7 @@ SUB(raptor_bomb_impact) {
        MY(type) = "static";
        MY(velocityjitter) = '950.0 950.0 0.0';
 }
+// smoke
 SUB(raptor_bomb_impact) {
        MY(alpha_min) = 428;
        MY(alpha_max) = 428;
@@ -7785,6 +8125,7 @@ SUB(raptor_bomb_impact) {
        MY(velocityjitter) = '200.0 200.0 280.0';
        MY(velocityoffset) = '0.0 0.0 280.0';
 }
+// smoke 2
 SUB(raptor_bomb_impact) {
        MY(airfriction) = 0.600000;
        MY(alpha_min) = 328;
@@ -7806,6 +8147,7 @@ SUB(raptor_bomb_impact) {
        MY(velocityjitter) = '200.0 200.0 300.0';
        MY(velocityoffset) = '0.0 0.0 580.0';
 }
+// sparks
 SUB(raptor_bomb_impact) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 644;
@@ -7848,7 +8190,9 @@ SUB(raptor_bomb_spread) {
        MY(velocityjitter) = '324.0 324.0 324.0';
 }
 
+// generic explosion size:big (biggest explosion ever)
 DEF(explosion_big);
+// decal
 SUB(explosion_big) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -7863,6 +8207,7 @@ SUB(explosion_big) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// shockwave
 SUB(explosion_big) {
        MY(alpha_min) = 56;
        MY(alpha_max) = 56;
@@ -7877,6 +8222,7 @@ SUB(explosion_big) {
        MY(tex_max) = 33;
        MY(type) = "static";
 }
+// fire effect
 SUB(explosion_big) {
        MY(airfriction) = 8;
        MY(alpha_min) = 200;
@@ -7896,6 +8242,7 @@ SUB(explosion_big) {
        MY(type) = "static";
        MY(velocityjitter) = '2512.0 2512.0 2512.0';
 }
+// fire rays
 SUB(explosion_big) {
        MY(airfriction) = -5;
        MY(alpha_min) = 200;
@@ -7916,6 +8263,7 @@ SUB(explosion_big) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// smoke
 SUB(explosion_big) {
        MY(airfriction) = 8;
        MY(alpha_min) = 300;
@@ -7932,6 +8280,7 @@ SUB(explosion_big) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '3444.0 3444.0 3444.0';
 }
+// bouncing sparks
 SUB(explosion_big) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -7953,6 +8302,7 @@ SUB(explosion_big) {
        MY(velocityjitter) = '924.0 924.0 924.0';
        MY(velocityoffset) = '0.0 0.0 370.0';
 }
+// debris
 SUB(explosion_big) {
        MY(airfriction) = 0.500000;
        MY(alpha_min) = 444;
@@ -7976,6 +8326,7 @@ SUB(explosion_big) {
        MY(velocityjitter) = '1800.0 1800.0 1800.0';
        MY(velocityoffset) = '0.0 0.0 970.0';
 }
+// underwater bubbles
 SUB(explosion_big) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -7995,6 +8346,7 @@ SUB(explosion_big) {
        MY(underwater) = true;
        MY(velocityjitter) = '444.0 444.0 444.0';
 }
+// underwatershockwave
 SUB(explosion_big) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -8010,7 +8362,9 @@ SUB(explosion_big) {
        MY(velocitymultiplier) = 0.300000;
 }
 
+// generic explosion size:medium (it leaves rising smoke for a longer time)
 DEF(explosion_medium);
+// shockwave
 SUB(explosion_medium) {
        MY(alpha_min) = 56;
        MY(alpha_max) = 56;
@@ -8025,6 +8379,7 @@ SUB(explosion_medium) {
        MY(tex_max) = 33;
        MY(type) = "static";
 }
+// fire effect
 SUB(explosion_medium) {
        MY(airfriction) = 8;
        MY(alpha_min) = 200;
@@ -8048,6 +8403,7 @@ SUB(explosion_medium) {
        MY(type) = "static";
        MY(velocityjitter) = '1512.0 1512.0 1512.0';
 }
+// fire effect 2
 SUB(explosion_medium) {
        MY(airfriction) = 8;
        MY(alpha_min) = 200;
@@ -8072,6 +8428,7 @@ SUB(explosion_medium) {
        MY(type) = "static";
        MY(velocityjitter) = '1512.0 1512.0 1512.0';
 }
+// fire rays
 SUB(explosion_medium) {
        MY(airfriction) = -3;
        MY(alpha_min) = 200;
@@ -8092,6 +8449,7 @@ SUB(explosion_medium) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// smoke
 SUB(explosion_medium) {
        MY(airfriction) = 3;
        MY(alpha_min) = 300;
@@ -8113,6 +8471,7 @@ SUB(explosion_medium) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '200.0 200.0 200.0';
 }
+// smoke 2
 SUB(explosion_medium) {
        MY(airfriction) = 3;
        MY(alpha_min) = 300;
@@ -8136,6 +8495,7 @@ SUB(explosion_medium) {
        MY(velocityjitter) = '500.0 500.0 500.0';
        MY(velocityoffset) = '0.0 0.0 200.0';
 }
+// smoke rays
 SUB(explosion_medium) {
        MY(alpha_min) = 140;
        MY(alpha_max) = 255;
@@ -8153,6 +8513,7 @@ SUB(explosion_medium) {
        MY(type) = "spark";
        MY(velocityjitter) = '250.0 250.0 250.0';
 }
+// bouncing sparks
 SUB(explosion_medium) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -8174,6 +8535,7 @@ SUB(explosion_medium) {
        MY(velocityjitter) = '624.0 624.0 624.0';
        MY(velocityoffset) = '0.0 0.0 370.0';
 }
+// underwater bubbles
 SUB(explosion_medium) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -8193,6 +8555,7 @@ SUB(explosion_medium) {
        MY(underwater) = true;
        MY(velocityjitter) = '444.0 444.0 444.0';
 }
+// underwatershockwave
 SUB(explosion_medium) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -8208,7 +8571,9 @@ SUB(explosion_medium) {
        MY(velocitymultiplier) = 0.300000;
 }
 
+// generic explosion size:small (its fire only, made to support other explosions)
 DEF(explosion_small);
+// shockwave
 SUB(explosion_small) {
        MY(alpha_min) = 56;
        MY(alpha_max) = 56;
@@ -8223,6 +8588,7 @@ SUB(explosion_small) {
        MY(tex_max) = 33;
        MY(type) = "static";
 }
+// fire effect
 SUB(explosion_small) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -8245,6 +8611,7 @@ SUB(explosion_small) {
        MY(type) = "static";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// fire effect 2
 SUB(explosion_small) {
        MY(airfriction) = 8;
        MY(alpha_min) = 200;
@@ -8267,6 +8634,7 @@ SUB(explosion_small) {
        MY(type) = "static";
        MY(velocityjitter) = '912.0 912.0 912.0';
 }
+// fire rays
 SUB(explosion_small) {
        MY(airfriction) = -3;
        MY(alpha_min) = 200;
@@ -8287,6 +8655,7 @@ SUB(explosion_small) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// underwater bubbles
 SUB(explosion_small) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -8306,6 +8675,7 @@ SUB(explosion_small) {
        MY(underwater) = true;
        MY(velocityjitter) = '144.0 144.0 144.0';
 }
+// underwatershockwave
 SUB(explosion_small) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -8320,6 +8690,7 @@ SUB(explosion_small) {
        MY(underwater) = true;
 }
 
+// big smoke ( for spamming on damaged stuff )
 DEF(smoke_big);
 SUB(smoke_big) {
        MY(airfriction) = 4;
@@ -8345,6 +8716,7 @@ SUB(smoke_big) {
        MY(velocityoffset) = '0.0 0.0 200.0';
 }
 
+// small smoke ( more precise than big one, for spamming on damaged parts like raptors spinner )
 DEF(smoke_small);
 SUB(smoke_small) {
        MY(airfriction) = 4;
@@ -8369,6 +8741,7 @@ SUB(smoke_small) {
        MY(velocityoffset) = '0.0 0.0 200.0';
 }
 
+// metal impact effect
 DEF(impact_metal);
 SUB(impact_metal) {
        MY(alpha_min) = 25;
@@ -8385,6 +8758,7 @@ SUB(impact_metal) {
        MY(tex_max) = 8;
        MY(type) = "alphastatic";
 }
+// sparks
 SUB(impact_metal) {
        MY(airfriction) = 2;
        MY(alpha_min) = 255;
@@ -8405,6 +8779,7 @@ SUB(impact_metal) {
        MY(velocitymultiplier) = 2;
 }
 
+// stone impact effect
 DEF(impact_stone);
 SUB(impact_stone) {
        MY(alpha_min) = 50;
@@ -8421,6 +8796,7 @@ SUB(impact_stone) {
        MY(tex_max) = 8;
        MY(type) = "alphastatic";
 }
+// debris
 SUB(impact_stone) {
        MY(airfriction) = 0.500000;
        MY(alpha_min) = 450;
@@ -8444,6 +8820,7 @@ SUB(impact_stone) {
        MY(velocityjitter) = '124.0 124.0 324.0';
 }
 
+// wood impact effect
 DEF(impact_wood);
 SUB(impact_wood) {
        MY(alpha_min) = 50;
@@ -8460,6 +8837,7 @@ SUB(impact_wood) {
        MY(tex_max) = 8;
        MY(type) = "alphastatic";
 }
+// sparks
 SUB(impact_wood) {
        MY(airfriction) = 2;
        MY(alpha_min) = 255;
@@ -8479,6 +8857,7 @@ SUB(impact_wood) {
        MY(velocitymultiplier) = 2;
 }
 
+// flesh impact effect
 DEF(impact_flesh);
 SUB(impact_flesh) {
        MY(alpha_min) = 100;
@@ -8493,6 +8872,7 @@ SUB(impact_flesh) {
        MY(tex_max) = 8;
        MY(type) = "alphastatic";
 }
+// blood splash
 SUB(impact_flesh) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -8516,7 +8896,9 @@ SUB(impact_flesh) {
        MY(velocitymultiplier) = 5;
 }
 
+// hagar trail
 DEF(tr_hagar);
+// smoke
 SUB(tr_hagar) {
        MY(alpha_min) = 300;
        MY(alpha_max) = 400;
@@ -8534,6 +8916,7 @@ SUB(tr_hagar) {
        MY(velocityjitter) = '1.0 1.0 1.0';
        MY(velocitymultiplier) = -0.020000;
 }
+// fire
 SUB(tr_hagar) {
        MY(airfriction) = 8;
        MY(alpha_min) = 100;
@@ -8552,6 +8935,7 @@ SUB(tr_hagar) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = -1;
 }
+// bubbles
 SUB(tr_hagar) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -8571,6 +8955,7 @@ SUB(tr_hagar) {
        MY(velocityjitter) = '16.0 16.0 16.0';
 }
 
+// laser damage effect
 DEF(damage_laser);
 SUB(damage_laser) {
        MY(airfriction) = -0.350000;
@@ -8593,6 +8978,7 @@ SUB(damage_laser) {
        MY(velocityjitter) = '0.4 0.4 0.6';
 }
 
+// shotgun damage effect, normal blood
 DEF(damage_shotgun);
 SUB(damage_shotgun) {
        MY(airfriction) = 1;
@@ -8616,6 +9002,7 @@ SUB(damage_shotgun) {
        MY(velocityjitter) = '64.0 64.0 64.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_shotgun) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -8630,6 +9017,7 @@ SUB(damage_shotgun) {
        MY(type) = "alphastatic";
 }
 
+// shotgun damage effect, alien blood
 DEF(damage_shotgun_alien);
 SUB(damage_shotgun_alien) {
        MY(airfriction) = 1;
@@ -8653,6 +9041,7 @@ SUB(damage_shotgun_alien) {
        MY(velocityjitter) = '64.0 64.0 64.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_shotgun_alien) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -8667,6 +9056,7 @@ SUB(damage_shotgun_alien) {
        MY(type) = "alphastatic";
 }
 
+// shotgun damage effect, robot blood
 DEF(damage_shotgun_robot);
 SUB(damage_shotgun_robot) {
        MY(airfriction) = 1;
@@ -8690,6 +9080,7 @@ SUB(damage_shotgun_robot) {
        MY(velocityjitter) = '64.0 64.0 64.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_shotgun_robot) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -8704,6 +9095,7 @@ SUB(damage_shotgun_robot) {
        MY(type) = "alphastatic";
 }
 
+// machinegun damage effect, normal blood
 DEF(damage_uzi);
 SUB(damage_uzi) {
        MY(airfriction) = 1;
@@ -8727,6 +9119,7 @@ SUB(damage_uzi) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_uzi) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -8740,6 +9133,7 @@ SUB(damage_uzi) {
        MY(type) = "alphastatic";
 }
 
+// machinegun damage effect, alien blood
 DEF(damage_uzi_alien);
 SUB(damage_uzi_alien) {
        MY(airfriction) = 1;
@@ -8763,6 +9157,7 @@ SUB(damage_uzi_alien) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_uzi_alien) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -8776,6 +9171,7 @@ SUB(damage_uzi_alien) {
        MY(type) = "alphastatic";
 }
 
+// machinegun damage effect, robot blood
 DEF(damage_uzi_robot);
 SUB(damage_uzi_robot) {
        MY(airfriction) = 1;
@@ -8799,6 +9195,7 @@ SUB(damage_uzi_robot) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_uzi_robot) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -8812,6 +9209,7 @@ SUB(damage_uzi_robot) {
        MY(type) = "alphastatic";
 }
 
+// minelayer damage effect
 DEF(damage_minelayer);
 SUB(damage_minelayer) {
        MY(alpha_min) = 512;
@@ -8831,6 +9229,7 @@ SUB(damage_minelayer) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
+// smoke
 SUB(damage_minelayer) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 32;
@@ -8849,6 +9248,7 @@ SUB(damage_minelayer) {
        MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
+// mortar damage effect
 DEF(damage_grenadelauncher);
 SUB(damage_grenadelauncher) {
        MY(alpha_min) = 512;
@@ -8868,6 +9268,7 @@ SUB(damage_grenadelauncher) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
+// smoke
 SUB(damage_grenadelauncher) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 32;
@@ -8886,6 +9287,7 @@ SUB(damage_grenadelauncher) {
        MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
+// electro damage effect
 DEF(damage_electro);
 SUB(damage_electro) {
        MY(airfriction) = -0.500000;
@@ -8911,6 +9313,7 @@ SUB(damage_electro) {
        MY(type) = "static";
        MY(velocityjitter) = '8.0 8.0 16.0';
 }
+// plasma smoke
 SUB(damage_electro) {
        MY(airfriction) = -0.350000;
        MY(alpha_min) = 64;
@@ -8931,6 +9334,7 @@ SUB(damage_electro) {
        MY(type) = "smoke";
        MY(velocityjitter) = '0.4 0.4 0.6';
 }
+// bouncing sparks
 SUB(damage_electro) {
        MY(airfriction) = 1;
        MY(alpha_min) = 768;
@@ -8950,6 +9354,7 @@ SUB(damage_electro) {
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
 
+// crylink damage effect
 DEF(damage_crylink);
 SUB(damage_crylink) {
        MY(airfriction) = -0.500000;
@@ -8975,6 +9380,7 @@ SUB(damage_crylink) {
        MY(type) = "static";
        MY(velocityjitter) = '10.0 10.0 20.0';
 }
+// plasma smoke
 SUB(damage_crylink) {
        MY(airfriction) = -0.350000;
        MY(alpha_min) = 64;
@@ -8996,6 +9402,7 @@ SUB(damage_crylink) {
        MY(type) = "smoke";
        MY(velocityjitter) = '0.4 0.4 0.6';
 }
+// floating sparks
 SUB(damage_crylink) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 192;
@@ -9012,6 +9419,7 @@ SUB(damage_crylink) {
        MY(velocityjitter) = '12.0 12.0 12.0';
 }
 
+// hlac damage effect
 DEF(damage_hlac);
 SUB(damage_hlac) {
        MY(airfriction) = -0.350000;
@@ -9034,6 +9442,7 @@ SUB(damage_hlac) {
        MY(velocityjitter) = '0.4 0.4 0.6';
 }
 
+// vortex damage effect
 DEF(damage_nex);
 SUB(damage_nex) {
        MY(airfriction) = -0.500000;
@@ -9058,6 +9467,7 @@ SUB(damage_nex) {
        MY(type) = "static";
        MY(velocityjitter) = '8.0 8.0 16.0';
 }
+// plasma smoke
 SUB(damage_nex) {
        MY(airfriction) = -0.350000;
        MY(alpha_min) = 64;
@@ -9077,6 +9487,7 @@ SUB(damage_nex) {
        MY(type) = "smoke";
        MY(velocityjitter) = '0.5 0.5 0.8';
 }
+// bouncing sparks
 SUB(damage_nex) {
        MY(airfriction) = 2;
        MY(alpha_min) = 255;
@@ -9097,6 +9508,7 @@ SUB(damage_nex) {
        MY(velocitymultiplier) = 3;
 }
 
+// vaporizer damage effect
 DEF(damage_minstanex);
 SUB(damage_minstanex) {
        MY(airfriction) = -0.500000;
@@ -9121,6 +9533,7 @@ SUB(damage_minstanex) {
        MY(type) = "static";
        MY(velocityjitter) = '8.0 8.0 16.0';
 }
+// plasma smoke
 SUB(damage_minstanex) {
        MY(airfriction) = -0.350000;
        MY(alpha_min) = 64;
@@ -9140,6 +9553,7 @@ SUB(damage_minstanex) {
        MY(type) = "smoke";
        MY(velocityjitter) = '0.5 0.5 0.8';
 }
+// bouncing sparks
 SUB(damage_minstanex) {
        MY(airfriction) = 2;
        MY(alpha_min) = 255;
@@ -9160,6 +9574,7 @@ SUB(damage_minstanex) {
        MY(velocitymultiplier) = 3;
 }
 
+// rifle damage effect, normal blood
 DEF(damage_rifle);
 SUB(damage_rifle) {
        MY(airfriction) = 1;
@@ -9183,6 +9598,7 @@ SUB(damage_rifle) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_rifle) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -9196,6 +9612,7 @@ SUB(damage_rifle) {
        MY(type) = "alphastatic";
 }
 
+// rifle damage effect, alien blood
 DEF(damage_rifle_alien);
 SUB(damage_rifle_alien) {
        MY(airfriction) = 1;
@@ -9219,6 +9636,7 @@ SUB(damage_rifle_alien) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_rifle_alien) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -9232,6 +9650,7 @@ SUB(damage_rifle_alien) {
        MY(type) = "alphastatic";
 }
 
+// rifle damage effect, robot blood
 DEF(damage_rifle_robot);
 SUB(damage_rifle_robot) {
        MY(airfriction) = 1;
@@ -9255,6 +9674,7 @@ SUB(damage_rifle_robot) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = 5;
 }
+// blood mist
 SUB(damage_rifle_robot) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -9268,6 +9688,7 @@ SUB(damage_rifle_robot) {
        MY(type) = "alphastatic";
 }
 
+// seeker damage effect
 DEF(damage_seeker);
 SUB(damage_seeker) {
        MY(alpha_min) = 512;
@@ -9287,6 +9708,7 @@ SUB(damage_seeker) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
+// smoke
 SUB(damage_seeker) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 32;
@@ -9305,6 +9727,7 @@ SUB(damage_seeker) {
        MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
+// hagar damage effect
 DEF(damage_hagar);
 SUB(damage_hagar) {
        MY(alpha_min) = 512;
@@ -9324,6 +9747,7 @@ SUB(damage_hagar) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
+// smoke
 SUB(damage_hagar) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 32;
@@ -9342,6 +9766,7 @@ SUB(damage_hagar) {
        MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
+// fireball damage effect
 DEF(damage_fireball);
 SUB(damage_fireball) {
        MY(alpha_min) = 256;
@@ -9361,6 +9786,7 @@ SUB(damage_fireball) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
+// smoke
 SUB(damage_fireball) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 32;
@@ -9379,6 +9805,7 @@ SUB(damage_fireball) {
        MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
+// rocketlauncher damage effect
 DEF(damage_rocketlauncher);
 SUB(damage_rocketlauncher) {
        MY(alpha_min) = 512;
@@ -9398,6 +9825,7 @@ SUB(damage_rocketlauncher) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 30.0';
 }
+// smoke
 SUB(damage_rocketlauncher) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 32;
@@ -9416,6 +9844,7 @@ SUB(damage_rocketlauncher) {
        MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
+// fireflies
 DEF(fireflies);
 SUB(fireflies) {
        MY(airfriction) = 5;
@@ -9515,6 +9944,7 @@ SUB(healray_impact) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// shockwave
 SUB(healray_impact) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -9530,6 +9960,7 @@ SUB(healray_impact) {
        MY(type) = "smoke";
        MY(velocitymultiplier) = 44;
 }
+// cloud of bouncing sparks
 SUB(healray_impact) {
        MY(airfriction) = 6;
        MY(alpha_min) = 156;
@@ -9547,6 +9978,7 @@ SUB(healray_impact) {
        MY(type) = "spark";
        MY(velocityjitter) = '1112.0 1112.0 1112.0';
 }
+// inner cloud of smoke
 SUB(healray_impact) {
        MY(airfriction) = 3;
        MY(alpha_min) = 200;
@@ -9655,6 +10087,7 @@ SUB(bigplasma_impact) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// shockwave
 SUB(bigplasma_impact) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -9670,6 +10103,7 @@ SUB(bigplasma_impact) {
        MY(type) = "smoke";
        MY(velocitymultiplier) = 44;
 }
+// cloud of bouncing sparks
 SUB(bigplasma_impact) {
        MY(airfriction) = 6;
        MY(alpha_min) = 156;
@@ -9687,6 +10121,7 @@ SUB(bigplasma_impact) {
        MY(type) = "spark";
        MY(velocityjitter) = '1512.0 1512.0 1512.0';
 }
+// inner cloud of smoke
 SUB(bigplasma_impact) {
        MY(airfriction) = 30;
        MY(alpha_min) = 200;
@@ -9708,6 +10143,7 @@ SUB(bigplasma_impact) {
        MY(type) = "smoke";
        MY(velocityjitter) = '320.0 320.0 320.0';
 }
+// smoke
 SUB(bigplasma_impact) {
        MY(airfriction) = 0.040000;
        MY(alpha_min) = 128;
@@ -9731,6 +10167,7 @@ SUB(bigplasma_impact) {
        MY(velocityjitter) = '100.0 100.0 200.0';
        MY(velocityoffset) = '0.0 0.0 180.0';
 }
+// smoke in the middle
 SUB(bigplasma_impact) {
        MY(airfriction) = 0.040000;
        MY(alpha_min) = 128;
@@ -9753,6 +10190,7 @@ SUB(bigplasma_impact) {
        MY(velocityjitter) = '10.0 10.0 10.0';
 }
 
+// flag_touch -- effects for touching the flag
 #define flag_touch(name, colormin, colormax) \
        DEF(name##flag_touch); \
        SUB(name##flag_touch) { \
@@ -9827,6 +10265,7 @@ pass(red,        "0xFF0000", "0x970000")
 pass(blue,     "0x0000FF", "0x000097")
 #undef pass
 
+// cap -- team capture effect
 #define cap(name, colormin, colormax) \
        DEF(name##_cap); \
        SUB(name##_cap) { \
@@ -9867,6 +10306,7 @@ cap(red,         "0xFF0000", "0x970000")
 cap(blue,      "0x0000FF", "0x000097")
 #undef cap
 
+// spawn_point -- team idle spawn point effect
 #define spawn_point(name, color) \
        DEF(spawn_point_##name); \
        SUB(spawn_point_##name) { \
@@ -9893,6 +10333,7 @@ spawn_point(pink,                "0xFF0FFF")
 spawn_point(neutral,   "0xFFFFFF")
 #undef spawn_point
 
+// spawn_event -- team spawning effect
 #define spawn_event(name, color) \
        DEF(spawn_event_##name); \
        SUB(spawn_event_##name) { \
@@ -9952,7 +10393,7 @@ spawn_event(neutral,     "0xFFFFFF")
                MY(trailspacing) = 1; \
                MY(type) = "smoke"; \
        } \
-       SUB(nade_##name) { \
+       SUB(nade_##name) /* fire */ { \
                MY(alpha_min) = 30; \
                MY(alpha_max) = 30; \
                MY(alpha_fade) = 150; \
@@ -9967,7 +10408,7 @@ spawn_event(neutral,     "0xFFFFFF")
                MY(trailspacing) = 8; \
                MY(type) = "smoke"; \
        } \
-       SUB(nade_##name) { \
+       SUB(nade_##name) /* bubbles */ { \
                MY(alpha_min) = 256; \
                MY(alpha_max) = 256; \
                MY(alpha_fade) = 256; \
@@ -10010,7 +10451,7 @@ nade(neutral,   "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(trailspacing) = 1; \
                MY(type) = "smoke"; \
        } \
-       SUB(nade_##name##_burn) { \
+       SUB(nade_##name##_burn) /* fire */ { \
                MY(alpha_min) = 200; \
                MY(alpha_max) = 200; \
                MY(alpha_fade) = 1000; \
@@ -10025,7 +10466,7 @@ nade(neutral,   "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(trailspacing) = 64; \
                MY(type) = "smoke"; \
        } \
-       SUB(nade_##name##_burn) { \
+       SUB(nade_##name##_burn) /* bubbles */ { \
                MY(alpha_min) = 256; \
                MY(alpha_max) = 256; \
                MY(alpha_fade) = 256; \
@@ -10088,7 +10529,7 @@ nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(tex_max) = 16; \
                MY(type) = "decal"; \
        } \
-       SUB(nade_##name##_explode) { \
+       SUB(nade_##name##_explode) /* shockwave */ { \
                MY(alpha_min) = 80; \
                MY(alpha_max) = 80; \
                MY(alpha_fade) = 650; \
@@ -10103,7 +10544,7 @@ nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(type) = "smoke"; \
                MY(velocitymultiplier) = 44; \
        } \
-       SUB(nade_##name##_explode) { \
+       SUB(nade_##name##_explode) /* fire */ { \
                MY(airfriction) = 30; \
                MY(alpha_min) = 400; \
                MY(alpha_max) = 656; \
@@ -10125,7 +10566,7 @@ nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(type) = "smoke"; \
                MY(velocityjitter) = '320.0 320.0 320.0'; \
        } \
-       SUB(nade_##name##_explode) { \
+       SUB(nade_##name##_explode) /* fire stretched */ { \
                MY(airfriction) = -9; \
                MY(alpha_min) = 1500; \
                MY(alpha_max) = 3000; \
@@ -10142,7 +10583,7 @@ nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(type) = "spark"; \
                MY(velocityjitter) = '30.0 30.0 30.0'; \
        } \
-       SUB(nade_##name##_explode) { \
+       SUB(nade_##name##_explode) /* smoke */ { \
                MY(airfriction) = 0.040000; \
                MY(alpha_min) = 128; \
                MY(alpha_max) = 328; \
@@ -10165,7 +10606,7 @@ nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(velocityjitter) = '200.0 200.0 200.0'; \
                MY(velocityoffset) = '0.0 0.0 180.0'; \
        } \
-       SUB(nade_##name##_explode) { \
+       SUB(nade_##name##_explode) /* underwater bubbles */ { \
                MY(alpha_min) = 128; \
                MY(alpha_max) = 256; \
                MY(alpha_fade) = 64; \
@@ -10184,7 +10625,7 @@ nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(underwater) = true; \
                MY(velocityjitter) = '196.0 196.0 196.0'; \
        } \
-       SUB(nade_##name##_explode) { \
+       SUB(nade_##name##_explode) /* bouncing sparks */ { \
                MY(airfriction) = 1; \
                MY(alpha_min) = 644; \
                MY(alpha_max) = 956; \
@@ -10205,7 +10646,7 @@ nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(velocityjitter) = '424.0 424.0 624.0'; \
                MY(velocityoffset) = '0.0 0.0 80.0'; \
        } \
-       SUB(nade_##name##_explode) { \
+       SUB(nade_##name##_explode) /* notbouncing sparks */ { \
                MY(airfriction) = 0.700000; \
                MY(alpha_min) = 644; \
                MY(alpha_max) = 956; \
@@ -10224,7 +10665,7 @@ nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
                MY(velocityjitter) = '424.0 424.0 624.0'; \
                MY(velocityoffset) = '0.0 0.0 80.0'; \
        } \
-       SUB(nade_##name##_explode) { \
+       SUB(nade_##name##_explode) /* debris */ { \
        MY(alpha_min) = 644; \
        MY(alpha_max) = 956; \
        MY(alpha_fade) = 2500; \
@@ -10254,6 +10695,7 @@ nade_explode(neutral, '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xFFFFFF", "0x
 #undef nade_explode
 
 DEF(shockwave_attack);
+// electricity
 SUB(shockwave_attack) {
        MY(airfriction) = 1;
        MY(alpha_min) = 4096;
@@ -10277,6 +10719,7 @@ SUB(shockwave_attack) {
        MY(velocityjitter) = '10.0 10.0 10.0';
        MY(velocitymultiplier) = 10;
 }
+// fire
 SUB(shockwave_attack) {
        MY(airfriction) = 1;
        MY(alpha_min) = 4096;
@@ -10298,6 +10741,7 @@ SUB(shockwave_attack) {
 }
 
 DEF(arc_lightning);
+// impact decal
 SUB(arc_lightning) {
        MY(alpha_min) = 32;
        MY(alpha_max) = 32;
@@ -10312,6 +10756,7 @@ SUB(arc_lightning) {
        MY(tex_max) = 32;
        MY(type) = "decal";
 }
+// impact sparks
 SUB(arc_lightning) {
        MY(airfriction) = 110;
        MY(alpha_min) = 256;
@@ -10333,6 +10778,7 @@ SUB(arc_lightning) {
        MY(velocityjitter) = '250.0 250.0 250.0';
        MY(velocitymultiplier) = 100;
 }
+// impact sparks (underwater)
 SUB(arc_lightning) {
        MY(airfriction) = 5;
        MY(alpha_min) = 256;
@@ -10359,6 +10805,7 @@ SUB(arc_lightning) {
 }
 
 DEF(arc_beam);
+// sparks on beam
 SUB(arc_beam) {
        MY(airfriction) = -10;
        MY(alpha_min) = 256;
@@ -10381,6 +10828,7 @@ SUB(arc_beam) {
        MY(velocityjitter) = '100.0 100.0 100.0';
        MY(velocitymultiplier) = 200;
 }
+// sparks on beam (underwater)
 SUB(arc_beam) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -10406,6 +10854,7 @@ SUB(arc_beam) {
 }
 
 DEF(arc_beam_heal);
+// bubble this...
 SUB(arc_beam_heal) {
        MY(airfriction) = -20;
        MY(alpha_min) = 2048;
@@ -10427,6 +10876,7 @@ SUB(arc_beam_heal) {
 }
 
 DEF(arc_beam_healimpact);
+// healing "aura"
 SUB(arc_beam_healimpact) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -10445,6 +10895,7 @@ SUB(arc_beam_healimpact) {
        MY(type) = "smoke";
        MY(velocitymultiplier) = 44;
 }
+// rising "smoke"
 SUB(arc_beam_healimpact) {
        MY(airfriction) = 3;
        MY(alpha_min) = 200;
@@ -10467,6 +10918,7 @@ SUB(arc_beam_healimpact) {
 }
 
 DEF(arc_smoke);
+// arc heat smoke  (notunderwater)
 SUB(arc_smoke) {
        MY(airfriction) = 1;
        MY(alpha_min) = 32;
@@ -10487,6 +10939,7 @@ SUB(arc_smoke) {
        MY(type) = "smoke";
        MY(velocityjitter) = '0.0 0.0 16.0';
 }
+// arc heat bubbles  (underwater)
 SUB(arc_smoke) {
        MY(alpha_min) = 170;
        MY(alpha_max) = 256;
@@ -10508,6 +10961,7 @@ SUB(arc_smoke) {
 }
 
 DEF(arc_overheat);
+// arc overheat electric bolts
 SUB(arc_overheat) {
        MY(airfriction) = 5;
        MY(alpha_min) = 128;
@@ -10529,6 +10983,7 @@ SUB(arc_overheat) {
 }
 
 DEF(arc_overheat_fire);
+// arc overheat bouncing sparks
 SUB(arc_overheat_fire) {
        MY(alpha_max) = 256;
        MY(alpha_fade) = 640;
@@ -11128,7 +11583,7 @@ SUB(relic_vengeance) {
                MY(type) = "static"; \
                MY(velocitymultiplier) = -0.100000; \
        } \
-       SUB(rocketminsta_laser_##name) { \
+       SUB(rocketminsta_laser_##name) /* bright sparks */ { \
                MY(airfriction) = 12; \
                MY(alpha_min) = 444; \
                MY(alpha_max) = 512; \