I have created the "Unit Logger" mod. It is in the mod vault. It is a UI mod.
It logs information on every unit in the game log of the focus army every 10 game ticks, configureable in main.lua
Information logged:
"UL02","GameTick","EntityId","Army","UnitId","FractionComplete","Position.x","Position.y","Position.z","MaxHealth","Health","ShieldRatio","IsIdle","MassKilled"
Log size for long games is normally a few MegaBytes
It works in replays if you select the army of the player you require logging.
It requires UMT / UI Mod Tools / ui-mod-tools-4z0t-v12
Thanks for @Ctrl-K / 4z0t for some of the code that makes this work
This data is not in an compact format. It will compress at around ~ 8>1 ratio
Build order can be extracted from this data - and not just the time units / buildings are started or commands given but when units are finished and where they actually are on the map.
using an external tool unit icons could be plotted onto a map with this data for a kind of "replay prieview" function that can be scrolled fowards and back in time, without having to launch the FAF executable.
Does anyone know about selecting all units while in observer? I would like to convert replay files to this unit position format, and currently I can only run one army at a time.
Example data:
info: UL02 GameTick EntityId Army UnitId FractionComplete Position.x Position.y Position.z MaxHealth Health ShieldRatio IsIdle MassKilled
info: UL02 1350 321 1 uea0303 1 171.915 35.555 717.439 2300 1550 0 0 180
info: UL02 1350 421 1 uea0303 1 231.838 34.695 652.384 2300 300 0 0 482
info: UL02 1350 344 1 uea0303 1 109.883 35.376 720.888 2300 2050 0 0 45
info: UL02 1350 369 1 uea0303 1 142.596 38.140 688.592 2300 1300 0 0 45
info: UL02 1360 736 1 uea0303 1 111.701 36.286 717.892 2300 1550 0 0 270
info: UL02 1360 0 1 ual0001 1 108.207 25.830 920.259 11000 11000 0 1 0
info: UL02 1360 262 1 uea0303 1 98.083 37.232 730.919 2300 1550 0 0 450
info: UL02 1360 280 1 uea0303 1 97.939 36.571 708.237 2300 1050 0 0 90
info: UL02 1360 364 1 uea0303 1 145.077 37.485 686.651 2300 1800 0 0 225
info: UL02 1360 318 1 uea0303 1 142.312 37.525 684.928 2300 1550 0 0 360
info: UL02 1360 438 1 uea0303 1 196.809 37.850 668.522 2300 1550 0 0 433
An example log from a high ranked setons game
replay ID 22654992
from the south air player from 0 mins to 20 mins in
20 mins of a setons game is now only 1.6MB log size with the floating point decimal trimming
test.log