Regarding the faction on kill of another client - that would need a code change in attack.cpp Client:

eath with parse->Event(EVENT_DEATH, 0, 0, (NPC*)NULL, this);.
Some additional changes would be required if you wanted to know who killed the client as well. The perl scripting for client was only designed to send the originator and an npc. When we send the npc as NULL we assume we want to look at the /zone/player.pl (client file).