Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WE'RE BACK] New Replay Format #299

Closed
fraxiinus opened this issue Apr 14, 2024 · 22 comments
Closed

[WE'RE BACK] New Replay Format #299

fraxiinus opened this issue Apr 14, 2024 · 22 comments
Assignees
Labels
bug Something isn't working external Issue is caused by something outside of ReplayBook (i.e. Riot's own service) requireresearch Not enough information to act

Comments

@fraxiinus
Copy link
Owner

fraxiinus commented Apr 14, 2024

Initial Support for rofl2 is available for preview with the unstable builds.

Download the artifact from the most recent actions run: https://github.com/fraxiinus/ReplayBook/actions/workflows/main-branch-trigger.yml

A github account is required.

Original Post

Initially reported by "Melon" on discord

Hi guys, my partner and I cannot watch any replays, whenver we launch a replay in the lol client it says replay file corrupted
if we try it in replaybook it says replay load failure "RoflParser - Reading JSON Metadata: Arithmetic operation resulted in an overflow."

  • Affects all replays, downloaded directly from the client
  • Client cannot play these files
  • File format does not match known ROFL container format, file signature is "RIOT 0x02 0x00"
  • Are these related to replay failures occurring in NA? "Aulz" reports that spectate has been broken for about 50% of games in NA amateur scene. Additionally, 50% of those games have replays that cannot be downloaded or become broken. No example file yet.

Example file from Melon attached with file extension changed to "txt"
OC1-619631145.rofl.txt

@fraxiinus fraxiinus added bug Something isn't working external Issue is caused by something outside of ReplayBook (i.e. Riot's own service) requireresearch Not enough information to act labels Apr 14, 2024
@fraxiinus fraxiinus self-assigned this Apr 14, 2024
@fraxiinus
Copy link
Owner Author

Example file from "Aluz" from NA, showing the exact same strange file format.

Spectate will sometimes die, disconnecting all spectators as the game still continues. Trying to download a replay at this point returns a file in this format. Perhaps this is a truncated replay file that only contains the replay information up to the point of disconnection. The stats object cannot be populated before the game ends, so this is a possible explanation.

NA1-4976306960.rofl.txt

@fraxiinus fraxiinus changed the title Unsupported Replay Format in file from OCE [ITS OVER] New Replay Format May 2, 2024
@fraxiinus
Copy link
Owner Author

fraxiinus commented May 2, 2024

Riot has released a new ROFL format that is INCOMPATIBLE with ReplayBook and roflxd. This new format does NOT contain ANY METADATA for the game, only the unreadable replay data is left. This move means that going forward ReplayBook and other replay tools will no longer be able to extract game data, or provide a match preview without playing the replay.

Others have reported that the League of Legends executable no longer supports playing replays by dragging them onto the .exe. What most likely will be needed now is a webserver to host the replay packets for the client, much like how OP.GG batch files work.

If this is true, then I will likely stop development on ReplayBook and roflxd altogether. I'm tired. I understand that Riot never supported this avenue of data parsing; that was a risk I took. But I'm still just tired of working on this.

Riot has increasingly shown that they're not interested in keeping cool fan projects like this alive. However, the community has always been supportive and appreciative of my work. Thank you everyone who supported ReplayBook, roflxd, and even ROFLPlayer for the past seven years. What started as a project I made while I was bored at a summer internship, turned into something used all over the world, and translated to seven different languages! I would never have expected such an outcome, so I want to thank you all again.

The code and server will stay up, though I will archive the repositories and take down the website next week.

@fraxiinus fraxiinus pinned this issue May 2, 2024
@JerryLiew
Copy link
Contributor

I am very saddened to hear this news. As a heavy replay collector, ReplayBook and roflxd have been with me for three years. Thank you for your past work on this project.

@fraxiinus
Copy link
Owner Author

Thank you for your support with translation and code!

A Riot employee did respond to the situation, they will bring it up to the team to see how feasible it will be to add the data back in. Getting a response is already more than I expected, but I'm still not betting on metadata coming back.

In the meantime, I am considering putting together a "final" update to hopefully get some of my unfinished features out. No promises though, this situation definitely dampened my enthusiasm.

@NobbiHabogs
Copy link

Just as I was starting to get to grips with replaybook, Riot messes everything up again. It's a real shame to hear that the project will probably be cancelled and that there will probably be no convenient way to view replays in the future, some of which are only a day old because the game played was a day before the patch day.

@fraxiinus
Copy link
Owner Author

I guess I'm eating my words! Official response from Riot, we will be getting our metadata back!

Hiya! I'm Ridley and I've been taking on the work to re-add to the rofl files the metadata that your tool reads =D
We've added the metadata to the end of the file, the final 4 bytes of the file is the size of the JSON. We didn't keep the game version in that metadata but it can be gotten from near the start of the file. You should see the metadata added as of 14.11

@fraxiinus fraxiinus changed the title [ITS OVER] New Replay Format [WE'RE BACK] New Replay Format May 20, 2024
@ain-soph
Copy link

ain-soph commented May 28, 2024

@fraxiinus
Thanks for the great tool! Is it still working now? I see there's still the warning notice at the readme.md. I tried download the most-recent released version at Jan 2024, but it doesn't work for replay files after 14.9 (14.7 still works). Would you consider a new release sometime, since you've got good news from Riot?

I'm now suffering with the official replay download files corruption issue. It downloads rofl files with only 1-3MB, which is corrupted. I have to delete them and retry around 20-30 times and it will download the correct replay file, which is a torment to do it manually.
I'm tired of this and desperately desired to looking for some good tools to watch replay.

Others have reported that the League of Legends executable no longer supports playing replays by dragging them onto the .exe. What most likely will be needed now is a webserver to host the replay packets for the client, much like how OP.GG batch files work.

To correct, it still works for me to drag rofl file into the .exe shortcut. It cannot be the original exe file; I have to make a shortcut of it.

@fraxiinus
Copy link
Owner Author

fraxiinus commented Jun 3, 2024

I'm working on updating roflxd.cs first, which is the replay parsing library used by ReplayBook. There will be additional work required, including updating the database and search systems in order to handle a new format for replay ID as match ID is no longer included. After that I need to figure out what I can do to get replays to play without having to disable/enable vanguard.

It will hopefully be out before 14.12 but no promises!

@fraxiinus
Copy link
Owner Author

roflxd.cs has been updated to support both rofl (pre 14.9) and rofl2 (14.11+) files. Work is now starting on updating ReplayBook to support the new file model.

@1056599884
Copy link

roflxd.cs怎么使用呢

@ain-soph
Copy link

ain-soph commented Jun 5, 2024

roflxd.cs怎么使用呢

End Users do not need to care about it. It's the backend used in this tool to parse replay files. Just need to wait for the maintainer to update ReplayBook
终端用户(使用者)不需要关心这个。那是软件用来读取解析回放文件用的。我们等作者更新ReplayBook就行

@fraxiinus
Copy link
Owner Author

Initial support for rofl2 has been pushed to main #304, a unstable build is available here: https://github.com/fraxiinus/ReplayBook/actions/runs/9411353907

@RyuPandax
Copy link

It works fine for me now, thanks! Problem now is that I need to close Vanguard to start the replay. If I want to start League afterwards, I have to reboot my PC :(

@fraxiinus
Copy link
Owner Author

Vanguard does not allow programs to start League of Legends.exe, it must be exited before ReplayBook can play files. I think the LCU api is able to start replays, but I have no experience in the matter so for now the workaround is to just close Vanguard.

New unstable builds can be downloaded from the main branch trigger actions page: https://github.com/fraxiinus/ReplayBook/actions/workflows/main-branch-trigger.yml

@ain-soph
Copy link

@fraxiinus It might be a little off-topic, but is there any possibility to download replays in ReplayBook instead of LOL client? The official replay files are always corrupted for me. I have to delete and re-download 20 times to make it work for each replay.

Reference: https://www.reddit.com/r/leagueoflegends/comments/1c8wcxu/league_replays_corrupted/

@fraxiinus
Copy link
Owner Author

Not something I'm able to look into. Seems the issue is affecting the replays themselves at Riot.

@xiagujuguangd
Copy link

Hello, I am a heavy user of ReplayBook from China, and there is a large group of people in China who are also using ReplayBook. We are eagerly anticipating the release of your latest version. May I ask when approximately the new version will be available? We are very excited about it.

@ain-soph
Copy link

Hello, I am a heavy user of ReplayBook from China, and there is a large group of people in China who are also using ReplayBook. We are eagerly anticipating the release of your latest version. May I ask when approximately the new version will be available? We are very excited about it.

I'm not the maintainer, but I want to tell you that you can always use the latest codes to build the project by yourself using the guidance from homepage.
Besides, you can download the unstable binary builds from github action workflows (e.g., at the bottom of workflow summary page, you can see a 15MB zip artifact file.)

我不是这个项目的维护者,但我想告诉你你可以自己使用github的代码来编译这个项目。另外,你可以从github action工作流下载不稳定的版本(例如,在workflow summary page页面底部,你可以看到一个15MB大小的zip压缩artifact文件)

@xiagujuguangd
Copy link

xiagujuguangd commented Jun 16, 2024 via email

@jake1dsas
Copy link

Currently using latest version and can't open replays (file signature does not match rofl format)
I'm confused. I thought the metadata issue was solved? :(

@fraxiinus
Copy link
Owner Author

Either use current unstable build, or wait for the next release coming later today (5 PM EST)

@fraxiinus
Copy link
Owner Author

Fixed in #310

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working external Issue is caused by something outside of ReplayBook (i.e. Riot's own service) requireresearch Not enough information to act
Projects
None yet
Development

No branches or pull requests

8 participants