There are a number of cases where it's impossible to determine who to credit for a kill - or penalize for a teamkill.
Case 1: Scripted explosives
See jtac explosives to objects
These are spawned by script, so when they detonate we need to resort to black magic (including the sacrifice of performance goats) to figure out if the deaths in the area were caused by it.
Case 2: Fragmentation
See sys_frag, both in ace2, probably ace3 when it comes. When the grenade detonates, it sprays fragments all over the place, but these aren't registered as fired by anyone. The result is that if anyone is killed by it, we have no way of detecting who should get credit/punishment for it.
So my idea is as follows:
A new command, which I'll refer to as setShooter, used like
bullet setshooter shooter
will make it such that if a unit or vehicle is killed by it, that shooter will be credited with the kill as though it had left a muzzle on it. (
To the extent getshooter would be needed, set/getVariable can probably do the job, using a fired eventhandler for the non-scripted case, but it would be easier to have the command.
For player-spotted AI artillery, it might be useful to register the shells as fired by the spotter rather than the artillery; that way he could be properly penalized for calling in artillery on a bunch of civilians or friendlies.
While also useful for general server management scripts, our use case in particular is armalive stats keeping.