Every ranked run on Snake League is replayed on our server, move for move, before it is allowed anywhere near a leaderboard. If the replay does not produce the number your game claimed, the score does not exist.
A browser game that sends your score to a server is sending a number, and a number is the easiest thing in the world to change. Open the developer tools, find the request, type a bigger one. No skill, no tooling and no understanding of the game required. It takes about a minute.
That is why the top of almost every free Snake leaderboard is nonsense — a wall of impossible scores posted by people who never finished a round. Once that happens the board stops meaning anything, and so does beating it.
It sends the moves.
When a run ends, your browser submits three things: the seed the board was built from, every direction change you made and the exact tick it happened on, and the totals it believes you finished with. The moves are the evidence. The score is only a claim attached to them.
The game logic lives in one place and ships to two: the copy running in your browser, and an identical copy deployed to the server. Not a reimplementation — the same source, copied at build time, because two hand-written versions of the same rules drift apart and eventually start disagreeing about honest runs.
It is deterministic by construction. The random number generator is a mulberry32 PRNG working only in integers, so there is no floating-point rounding to differ between a phone, a laptop and a server. Give it one seed and one list of inputs and there is exactly one possible outcome, computed identically on every machine.
It decodes your inputs, starts from your seed, and runs the match forward to your final tick. Then it compares five things against what you claimed:
All five must match exactly. Not approximately, not within a tolerance. One point of difference means the moves you sent do not produce the run you described, and the run is rejected.
Replaying a run costs real computation, so a set of cheap checks runs first and catches the clumsy attempts without simulating anything. A run is impossible if:
ticks × 2 + 10Every run ends up marked clean, suspicious or invalid.
A mismatch between the replay and the claim, arithmetic that cannot happen, or a replay that will not decode at all, are all invalid, and the score never reaches a board. Anything odd but not provably impossible is suspicious: it is held for a person to look at rather than thrown away, because a strange-looking run is sometimes just a very good one.
Determinism cuts both ways, and it would be dishonest to pretend otherwise. A bot that genuinely plays the game well submits a replay that verifies perfectly — because it really did play that game, move by move. Replay verification proves a run happened exactly as described. It does not prove a human was holding the phone. That is a different problem, solved by looking at the texture of the inputs rather than the outcome, and we would rather tell you where the line sits than imply there is not one.
Nothing at all, most of the time — which is rather the point. You play, you finish, the check happens in well under a second, and you never see it. What it buys you is the thing that is genuinely scarce in free games: a leaderboard where the score above yours was earned by somebody doing exactly what you just did.