Original Post — Direct link

Since Chronobreaks are common in these last weeks, I'm gonna copy my simplified comment on how it works (with added TL:DR). All I know about this procedure, I know from reading the article provided by Riot for an article I wrote.

I want to reply to this in great detail because I wrote an article about Chronobreak literally two days ago - hopefully this answers your question(s).

To understand what Chronobreak is, you must know that all game inputs, settings and etc in professional games are recorded on the server. This is called SNR (Server Network Recording) and it is vital in this procedure.

When a bug happens on stage (or online esports matches) and the game is frozen, the authorative official (head referee in most cases) asks the teams if they want to do a Chronobreak. If they agree, a new game is started on a server that is not played by the actual players but by the recorded inputs in the SNR. Thats why the SNR are such a vital part of this process - it can replicate an entire 40 minute game in around 3 minutes.

When the new game is brought to the time players will return (decided by referees iirc), the official commits to the Chronobreak by killing the original bugged server IF the Chronobreak is successful in preventing the bug. At that point everyone on the old server disconnects and reconnects like returning to a solo queue game.

Streams don't get affected by Chronobreak (other than the pause while its happening) because they are played with a delay to ensure competitive integrity, just like how normal streamers have delays on their games.

TL;DR: When a bug happens on a professional game, that game can be replayed on a different server to a moment before the bug happens for players to reconnect and "go back in time"

External link →
2 months ago - /u/spawndog - Direct link

Originally posted by danielloking

Considering the XL vs. FNC match, what could've gone wrong so you couldn't chronobreak the game? Or what factors decide whether Chronobreak is successful or not?

OP's description is accurate but one of the additional fragilities of chronobreak is that when the game plays back everything must be identical to how the original game played otherwise you get a butterfly effect. Without investigation we don't know if this was the case in the game today.

2 months ago - /u/spawndog - Direct link

Originally posted by SuperMrBlob

when the game plays back everything must be identical to how the original game played

What is the thing that happens to be not-identical? If the server version is the same and the inputs are the same (because they are saved), I thought the work was already put in to make the server deterministic. Where does it go wrong?

Please update us on the details when you find out!

There are a lot of ways things can still go wrong but an example of one the most common causes is if a variable is not initialized which means its value is whatever was in the memory location before.

about 2 months ago - /u/spawndog - Direct link

Originally posted by SuperMrBlob

when the game plays back everything must be identical to how the original game played

What is the thing that happens to be not-identical? If the server version is the same and the inputs are the same (because they are saved), I thought the work was already put in to make the server deterministic. Where does it go wrong?

Please update us on the details when you find out!

If you're still curious : it was an uninitialized variable. It had a small chance for a buff to self identify as being a charm without applying the effect. We managed to get the fix out the next day for eSports.

about 2 months ago - /u/spawndog - Direct link

Originally posted by patmax17

was this in the game with the samira bug? If so, how was a charm the reason for her ult to not be interrupted when samira was killed with GA?

I'm a programmer myself and I'm highly interested in how league works technically (and I think the idea of chronobreak is incredibly cool!) but I don't remember a charm being anywhere in that moment (it was samira vs azir and gp)

No, that was unrelated. I believe the issue was in Azirs scripts (very complex as you'd imagine) that only manifested on Samira.






devtrackers.gg