Why not just look at the datablocks of the base weapons/items? For instance, say I want to get the emitter data for the printer. First, I start my own singleplayer game or server. When I spawn, I have a printer in my 3rd inventory slot. To find the ItemData, I open the console and type
==> echo(findclientbyname(<name>).player.tool[2]);
383
This is the ID of the printer object. To verify that this is in fact the printer, I run
==> echo(383.getName());
PrintGun
To get the image file where the emitter data is listed, I run
==> echo(PrintGun.image);
PrintGunImage
Now I want to look through the array of states until I find the firing state.
==> echo(PrintGunImage.stateName[0]);
Activate
That's not it. I increment the array index until...
==> echo(PrintGunImage.stateName[2]);
Fire
I've found the state index I want. Now to get the corresponding emitter,
==> echo(PrintGunImage.stateEmitter[2]);
printGunEmitter
And there's the emitter I want. This whole process can be summarized as
==> echo(findclientbyname(<name>).player.tool[2].image.stateEmitter[2]);
printGunEmitter
Just equip the item you want to find the emitter for, and run through the same process. The only potential difference will be the index of the tool and state arrays.