IntroductionRecently v453000 asked me about options to recover blueprints of a player that lost his blueprint library (viewtopic.php?p=530872#p530872). I looked at possible options and there were not many, however thinking a little more lead me to the simple conclusion: when blueprints from library are used in game, they are transferred so all the players have a copy of imported blueprint so it has to be part of a game state and be included inside of the save file. They are there and should be possible to be extracted. Only reason why they were not possible to be extracted was that when a player joins with an empty blueprint library, there is a blueprint library synchronization happening which removes all the blueprints that player does not have. From this a simple idea started to grow: if the synchronization would be bypassed (would not happen), it would be possible to get hands on the blueprints inside of a save file and take them out.
LimitationsThis approach has some limitations. When player joins the game, synchronization is able to delete blueprints but it does not transfer new ones: it only creates a preview of a blueprint because blueprints contain entity data which can take a lot of space. Blueprints that are in the preview state are not part of the game state yet so they cannot be recovered using this approach.
The wayIn the main menu, click "Settings" while holding both Ctrl and Alt. Modifiers are required to expose "The rest" part with all the hidden switches. In settings go to "The rest" Inside of the "Other settings" enable the "bypass-library-sync" option Go back to the main menu and open a save file from which you want to extract blueprints. While in game, open the blueprint library. There will be a warning "Blueprint library is not synchronized" to inform that the blueprint library here is not synchronized with player's own blueprint storage so none of the blueprints from player's blueprint storage are shown here. This also works in opposite direction: changes here will not get saved to the player's own blueprint storage. From this point you can take a look at the blueprints and transfer them out. Simplest way is to empty the inventory, Control+Left click on empty slot in the library to transfer all blueprints to the inventory, create an empty blueprint book inside of the Game Blueprints, open that book, transfer all the blueprints from inventory to the book (Control+Left click on empty inventory slot) and then export that book to the string.
Alternative approach is to transfer blueprints to the inventory or to the Game Blueprints and save the game at that state. After disabling "bypass-library-sync" hidden option you can then load that save file and transfer those blueprints back to the "My Blueprints" which at this point will be synchronized (there should be no "Blueprint library is not synchronized" warning)
Cleanup: do not forget to disable "bypass-library-sync" option (first 3 steps).