The problem was a ghost. A single, non-deterministic variable that existed somewhere in the 50,000 lines of Ren'Py script. A variable that didn't obey the sync server's commands. Maybe a random seed that wasn't locked down. Maybe a timer dependent on a player's CPU clock. Maybe something worse.
[FATAL] RenPy Sync Server: Desynchronization threshold exceeded. Session Terminated. renpy sync server
Maya dove back into the logs. Lines of JSON state-diffs scrolled past. The problem was a ghost
She traced the packet. It left the master. It arrived at the relay. Then… nothing. Not a timeout, not a corrupt packet. Just a perfect, silent void. As if something had reached into the stream of data and plucked out a single, critical frame. Maybe a random seed that wasn't locked down
Frustrated, Maya patched in a direct log from Satellite 1's raw socket buffer. What she saw made her blood run cold.
She slammed her coffee mug down. "Not again."
And then, in the game's default Ren'Py text box, a new line appeared. Not written by any script.