i imported the lazer zym to see how it was done and noticed it only had one bone in it, presumably to locate it on the "bip01 r hand" bone. i'm guessing this means the muzzle flash is located by having some co-ordinates in a config file somewhere. while this approach obviously works it doesn't strike me as the easiest way of doing things. for example, if someone made a new lazer model that had a shorter, higher barrel then they would not only have to alter the model, they would also have to figure out how far the muzzle flash would need to be moved, make a new config file to account for that difference and package it up in the pk3.
a far quicker and easier method would be to have a second bone in the weapon called muzzle, which the game would use to locate the muzzle flash. then if someone wanted to alter the weapon all they would have to do is move the muzzle bone to match their new weapon model.
how difficult would it be to change the code to implement this?