SOLDIER.DAT (TFTD)
General Notes
SOLDIER.DAT has a fixed structure of 250 entries of 70 bytes each. (Only a maximum of 250 soldiers can be had). Thus it is always 17,500 bytes long (250x70).
Values are presented according to byte count (0 to 69) followed by the equivalent hex offset (00 to 45) in bold, followed by the normal (non-hacked) range of values in italics. Most fields can be hacked up to FF, but sometimes it can make for weirdness!
Unfortunately, this file is not conveniently ordered like Enemy Unknown's file so everything is just jumbled together.
Structure
0 / 00: How much the MC Skill changed in the last month
1 / 01: Time Unit Improvement
2 / 02: In MC Implantation Flag
3 / 03: Promotion Flag
4 / 04: Health Improvement
5 / 05: Strength Improvement
6-7 / 06-07: Base Reference using values from LOC.DAT for where soldier is. First base is always 0 (first entry in LOC.DAT). Value of FF means the soldier is being transferred.
8-9 / 08-09: Craft Reference
10-11 / 0A-0B: Rank
12-13 / 0C-0D: Craft soldier was assigned to before being wounded and spending time in the infirmary. Half-implemented feature or not used.
14-15 / 0E-0F: Kills
16-17 / 10-11: Wound Recovery
18-19 / 12-13: Missions
20-21 / 14-15: Soldier Value
22 / 16: Always 0 except for existing soldiers being transferred, in which case it equals the LOC.DAT value for destination base.
23 / 17: Stamina Improvement
24 / 18: Reaction Improvement
25 / 19: Firing Accuracy Improvement
26 / 1A: Initial Time Units
27 / 1B: Initial Health
28 / 1C: Initial Stamina
29 / 1D: Initial Throwing Accuracy
30 / 1E: Armor
31 / 1F: Gender
32 / 20: Race
33 / 21: Initial Firing Accuracy
34 / 22: Initial Strength
35-61 / 23-3D: Name. 21 characters can be entered in-game, 27 via hex editing. Does not need to be null terminated.
62 / 3E: Bravery Improvement
63 / 3F: Throwing Accuracy Improvement
64 / 40: Initial Bravery
65 / 41: MC Skill
66 / 42: Melee Accuracy Improvement
67 / 43: MC Strength
68 / 44: Initial Melee Accuracy
69 / 45: Initial Reactions