Skip to content

ClientGameState ServerGameState state dumps

lhog edited this page Dec 18, 2023 · 6 revisions

In case a server instance of Recoil has a springsetting DumpGameStateOnDesync = 1 (see https://github.com/beyond-all-reason/spring/wiki/Engine-Settings-Config-File) this will force creation of local state dump files for a desync frame (when the first desync in a particular game is detected).

The files will be named ServerGameState or ClientGameState followed by a random negative or positive number (will be unique for all game participants), followed by two numbers representing a desync frame number.

Example filenames for the same desynced game from different players: ClientGameState-216428739-4589-4589.txt ClientGameState--398141872-4589-4589.txt.

Example of a game state dump file

Upon a desync event or request deliver the following files to the engine devs (via an engine Github issue or through Discord):

  1. One (Server|Client)GameState file from a player or the server representing a majority "version" of the simulation (not reporting as desynced).
  2. One or more files from a desynced player/players (as reported by the majority).

Examining the differences in these files helps trace the possible desync sources in the engine or game code.