You can extend the event to provide more data, not sure if there won't be any compatibility issues, but there shouldn't be. This may look bad but it's also a set of simple copy & paste one-liners In CvEventReporter.cpp/.h and CvDllPythonEvents.cpp/.h find combatResult method and add another argument there (int iAttacker). In CvDllPytonEvents.cpp you'll need to add line like this: eventData.add(iAttacker); Same with CvDLLEventReporterIFaceBase.h (that's where the compat issues may come up). In CvUnit find all lines with CvEventReporter::getInstance().combatResult ... and add another the attacker's ID ( basically getID() ). You'll also need to override the onCombatResults of the default CvEventManager.py so that it reads the third argument. --- Depends on what you are doing, but you may also consider just doing it in C++ instead.