Board Game Stats can import plays directly from BoardGameGeek. If you have another source of your plays, you can try to import a file into Board Game Stats in the same format you can export from it.

Be warned: the import process is currently just made to import files created by the app itself, and it is not easy to create a valid file to import. Also, the app isn’t yet set-up to be friendly about its error messages when importing, and will provide no details why when an import fails.

There are two file types BG Stats can import: a .json file, as it is created when you create a backup via Settings > Export, import and backup. And a .bgsplay file, which is created when you share a play file from one or more plays via Share > Send play file from a play’s overview screen or multiple-select in the list of play. Use the latter one if you’re mainly importing plays for players and games that already exist in the app.

The file contains separate arrays of Games, Players, Locations and Plays. Each object should get an “id” which is a sequential number within the json file. All references to objects (like from the Play, the played game, the play-location and from the scores the players) use that id to link objects together. The PlayerScore e.g. uses the playerRefId to reference the player that the score is for.

The uuid fields are used by the app to recognise objects uniquely. If the object exists in the app with the same uuid, it will be overwritten during import, if the modificationDate in the import file is newer than the one in the app. If the uuid is not found, or you have not provided a uuid, a new object will be created (if using the .json format). Matched items are not overwritten in this import, but existing plays with the same UUID are.

When you import a .bgsplay file you’ll be able to match existing players, games and locations to ones in the file. For this to work, each object must have a unique UUID, that will be used to save matches for future imports. Use a UUID a code that uniquely identifies the object in your source data, so it will have the same UUID on each import.

Here is an example file to help you get started (option-click to download directly), note that this is a very basic example:

  • A .json file exported from a clean Board Game Stats with just 1 play, 1 location, 1 game, 4 players.