tfausak / rattletrap

:car: Parse and generate Rocket League replays.
https://hackage.haskell.org/package/rattletrap
MIT License
147 stars 21 forks source link

New Rocket League Update #236

Closed holland11 closed 3 years ago

holland11 commented 3 years ago

(Great program. I play a lot of inhouse matches with a group of ~10 people and I wrote a discord bot that accepts replays as input then keeps track of everyone's career inhouse stats. Rattletrap does the majority of the heavy lifting for me so I really appreciate it.)

Rocket League had a new season update about 10 days ago and Rattletrap hasn't been working ever since. I've been tempted to try to fix it myself, but I've never worked with Haskel and I suspect it will be a pretty quick fix for you (once you have the time).

Again, thank you for making this.

tfausak commented 3 years ago

Thanks for reporting this!

I hadn't launched Rocket League in a few weeks. I fired it up and recorded a quick match. Rattletrap didn't have any trouble parsing that.

Can you paste the error that you're getting from Rattletrap and upload the replay file?

tfausak commented 3 years ago

Ah, looks like this might be related to rumble?

Yup. Recording a short rumble replay and attempting to parse it gets me this error:

ERROR: MissingClassName "TAGame.Default__PickupTimer_TA"
# Context: Replay -> content -> Content -> frames -> element (0) -> Frame -> replications -> element (6) -> Replication -> value -> ReplicationValue -> Spawned
# You are using Rattletrap version 11.0.1
# Please report this problem at https://github.com/tfausak/rattletrap/issues/new

9D72E6904175B4D8947C51A703A39429.zip

holland11 commented 3 years ago

Okay so it was a bug on my end. It just happened to show up when I attempted to process my first replay since the update so I made the misguided assumption that it was due to rattletrap needing to be updated as well.

My mistake and I'm sorry about that, but I'm glad that you ended up finding a different issue in the process.

Sorry for any of your time that I've wasted and thank you again for this amazing program <3.

If you're curious, the issue that I was having was that in my game DB, I store the name of the uploader. However, one of my friends was attempting to upload replays that were automatically saved by Ballchaser.gg. When these replays are parsed (I use the -f option for rattletrap), they do not include the name of the uploader.

So I just needed to make this change in my bot:


if ('PlayerName' in summary['header']['body']['properties']['value']):
            game['uploader'] = summary['header']['body']['properties']['value']['PlayerName']['value']['str']
        else:
            game['uploader'] = "Ballchaser.gg"
tfausak commented 3 years ago

No problem at all! I'm glad you were able to fix your problem. And this uncovered a change I need to make to Rattletrap anyway :)