Talk:Event Handling
OnHit & OnHitWith
An OnHit event handler with no filter will trigger when any object is struck by an attack or projectile, assigning the first parameter to any physical object including statics, activators, misc items, doors, containers, etc. However, unless an actor was struck, the second parameter (the attacker) will always be null. This does unfortunately limit the usefulness somewhat. (I'm not sure if this is actually an NVSE bug or merely "the best we've got", since OnHit on objects in Oblivion only worked for arrows.)
OnHitWith is somewhat more useful in that it will always trigger for any object, and will always provide the second parameter for the weapon used by the attacker. However, it will still not yield which actor was the attacker, merely the weapon they are using.
There is thus no way to determine who caused an impact against an object, although it is entirely possible to determine who caused an impact against a person or creature.