FAForever Forums
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Login

    FAF/SCFA Replay Parser Library

    Scheduled Pinned Locked Moved Blogs
    12 Posts 9 Posters 2.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • MazorNoobM Offline
      MazorNoob
      last edited by

      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 Reply Last reply Reply Quote 3
      • H Offline
        HideLord
        last edited by

        Really clean. Great work

        1 Reply Last reply Reply Quote 2
        • AskaholicA Offline
          Askaholic
          last edited by Askaholic

          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.

          N 1 Reply Last reply Reply Quote 1
          • N Offline
            Nooby @Askaholic
            last edited by Nooby

            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

            1 Reply Last reply Reply Quote 6
            • K Offline
              Katharsas
              last edited by

              Mavor most iconic unit confirmed.

              1 Reply Last reply Reply Quote 2
              • ZeldafanboyZ Offline
                Zeldafanboy
                last edited by

                Lol "air".

                put the xbox units in the game pls u_u

                1 Reply Last reply Reply Quote 0
                • GiebmasseG Offline
                  Giebmasse Team Lead
                  last edited by Giebmasse

                  im need mass pls

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

                  1 Reply Last reply Reply Quote 0
                  • M Offline
                    meatontable
                    last edited by

                    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 ?

                    N 1 Reply Last reply Reply Quote 0
                    • N Offline
                      Nooby @meatontable
                      last edited by

                      @meatontable What information can you extract here?

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

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        meatontable
                        last edited by

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

                        1 Reply Last reply Reply Quote 0
                        • AskaholicA Askaholic referenced this topic on
                        • D Offline
                          dragonite
                          last edited by

                          Found this thread after ages to be here. Unbelievable. Guys, you're great! 🙂

                          1 Reply Last reply Reply Quote 1
                          • First post
                            Last post