FAF/SCFA Replay Parser Library

2

This thing is good, it parses tick count real fast, it's thanks to this thing that we get to preview in-game time for replays, you should adore it

1

Really clean. Great work

0

I updated the development version to clean up the command output a bit.

Old:

├── VerifyChecksum { digest: [168, 55, 122, 87, 70, 60, 17, 145, 224, 174, 52, 71, 2, 143, 109, 2], tick: 0 }
├── IssueCommand(GameCommand { entity_ids: [0], id: 0, coordinated_attack_cmd_id: 4294967295, type_: 8, arg2: -1, target: Position(Position { x: 667.5, y: 18.679688, z: 357.5 }), arg3: 0, formation: None, blueprint: "urb1103", arg4: 0, arg5: 1, arg6: 1, upgrades: Nil, clear_queue: None })
├── LuaSimCallback { func: "SyncValueFromUi", args: Table({Unicode("id"): String("0"), Unicode("Specialization"): String("ALL"), Unicode("AffectName"): String("PowerDamage")}), selection: [] }

New:

├── VerifyChecksum { digest: a8377a57463c1191e0ae3447028f6d02, tick: 0 }
├── IssueCommand(GameCommand { entity_ids: [0], id: 0, coordinated_attack_cmd_id: -1, type: BuildMobile, arg2: -1, target: Position { x: 667.5, y: 18.679688, z: 357.5 }, arg3: 0, formation: None, blueprint: "urb1103", arg4: 0, arg5: 1, arg6: 1, upgrades: Nil, clear_queue: None })
├── LuaSimCallback { func: "SyncValueFromUi", args: {"id": "0", "Specialization": "ALL", "AffectName": "PowerDamage"}, selection: [] }

The commands should be a lot easier to read now. New versions of the pre-compiled binaries are also pushed, link in the OP.

4

I have downloaded a few thousand replays and used your python libary to parse all chat in them. 12MB of text was parsed for this.

I have quite a big text file for each FAF username. I know it would be better to use userID and I will in future things. Does anyone want this data?

The chat has been filtered to remove "notify" events and also "Units / Mass / Power sent"

I do plan to do some kind of node analysis on who plays with who next
who is associated with which map
association of maps with ratings

20211020_12MB_wordcloud_thousands_recent_games.png

2

Mavor most iconic unit confirmed.

0

Lol "air".

put the xbox units in the game pls u_u

0

im need mass pls

Could be interesting seeing more replays parsed and data analyzed/presented.

0

I have tested a python binding and it is OK. What kind of the data analyze do you want ?
Winning fraction? most killed fraction ? popular (unpopular) units ?

0

@meatontable What information can you extract here?

Relationship of unit experemental built to winning in next 10 mins would be good

0

Sorry for delay. I'm doing this for fun when I'm free. Of course, a detecting winning conditions is a good goal.