Skip to content

veafCombatLog — Combat log for the debrief

Module ID: COMBATLOG | File: veafCombatLog.lua


Purpose

Writes every shot, hit and kill of the mission to a file, one JSON line per event, for a debrief that knows who fired what at whom. A Tacview recording does not say it: it names no shooter, records no destruction, and does not show the helicopters' gun (evening of 2026-10-29 on Marteau du Golan).


Activation

In mission.yaml, on by default in the shipped mission folder:

modules:
  COMBATLOG: true

The file is written only when DCS's scripting environment keeps io and lfs, as VEAF servers do (they remove os). Otherwise the module says so once in dcs.log and writes nothing: the mission runs as usual.


The file

veaf-combat-log-<date>-<time>.jsonl, in VEAF_EXPORT_DIR when it is set, else in the DCS write folder (Saved Games\DCS…). Where the scripting environment removes os, as on the VEAF servers, the real date is unknown: the file is veaf-combat-log-<mission date>-<n>.jsonl in the DCS write folder, <n> being the first free number (-1, -2 after a restart…). One file per mission start, never deleted by the tools: on a server that restarts often, clean up from time to time. The file is flushed to disk every 10 seconds (a crash loses at most those 10 seconds), not at every line: a gun run raises one event per shell.

event DCS event What the line gives
start start theatre, date, start time, real time
shot S_EVENT_SHOT shooter, weapon, the target aimed at (guided weapon)
hit S_EVENT_HIT shooter, weapon, the target hit
kill S_EVENT_KILL shooter, weapon, the target destroyed
shooting_start / shooting_end gun burst shooter, gun; at the end, rounds, the rounds fired

The shooter and the target carry their unit name, type, coalition, group and player name. t is the mission time in seconds. weapon_object and weapon_name say what DCS handed over: a gun's shell sometimes comes with no weapon object, which the file itself measures.


The recap per pilot

.\veaf-tools.exe mission combat-log veaf-combat-log-20261029-211814.jsonl

One row per pilot: weapons fired, gun rounds, hits, kills with their time (⚠ on friendly fire). --ai adds the AI shooters, --json prints the recap as JSON. See the command reference.


See also