Bat to the Heavens

Bat to the Heavens

Not enough ratings
(Linux exclusive!!) Sync saves between PC and Steam Deck!!
By nikoposting
Game on Linux exclusively and want to sync your saves between multiple devices (including Steam Deck)? Here is how to do that via the sneakernet (i.e. over sharing an external drive between multiple devices).
   
Award
Favorite
Favorited
Unfavorite
Introduction!!!
Hello! Welcome to this guide (primarily aimed towards Linux users) that helps explain how to manually setup a solution to synchronize saves between multiple devices. After the setup is done you'll have an (admittedly retro) solution of moving your saves between devices by simply inserting (and mounting) a storage device containing the saves.

Though keep in mind to back up your saves! I don't want to deem myself responsible for any losses so please remember to make extra copies elsewhere of your progress before you make any changes you might regret!
How to find your save file(s)
First things first, we'll need to locate the save files to copy. The file path you'll be looking in is
/home/<user>/.local/share/godot/app_userdata/bat to the heavens/
where "<user>" is your account's username. If you're wondering what your username on the Steam Deck is, it's just "deck". If you already know how to navigate to this folder feel free to skip the rest of this section, as it'll go over the process of manually going through the folders in Dolphin (aimed primarily at Deck users where typing in a path may be more inconvenient):

Finding the folder

If you're not sure what your username is or if you want to navigate this by clicking through folders (particularly easier on Deck) you'll want to open Dolphin and go to your home directory. Then click on the hamburger menu in the top right of the window and then the "Show Hidden Files" option in the menu that follows.


After which you'll be able to see the hidden folders and files in the home directory, including the ".local" folder. Double click on that, then follow the rest of the folders in the provided path above.


Then feel free to stop when you've entered the game's folder and have reached here:


You should be able to find a "save" folder, which is what we're interested in copying/linking (will be explained in the next section). Please note you won't want to copy the whole game's internal folder since shader caching and settings are also stored, which likely won't translate well between devices.
How to synchronize those save(s) between Linux devices
(For Steam Deck users) Preparing your media

Before you start copying your saves to external storage, if you use a Steam Deck you'll want to first format your preferred storage device within game mode on the Deck itself. This configures the storage to contain what's needed to be recognized as a "library", which more importantly here will get the Deck to automatically mount the device within game mode, allowing for the synchronized save to be seen.

Side note: I personally recommend using a microSD card for this since it'll free up the USB-C port on the top of your Deck when used portably. But this still applies to any external media so feel free to use an external hard drive or flash drive with this as well.

Moving and symbolically linking your saves folder

Precaution!!!

First of all, before you start messing with your saves, I'll want to remind you again that you'll wanna back up your save folder. Feel free to copy the folder to the desktop or some other place that's safe in the event that something goes wrong.

Moving

After you've reached the save folder discussed in the last section, you'll want to plug in your storage device if you haven't already, and then move the save folder onto your external media. This can technically be wherever but I'd personally recommend organizing it by putting it in a labeled folder or such.

(Note that this screenshot shows dragging the folder into the drive, but keep in mind on the Deck's default configuration you'll have to select "Move Here" afterward to confirm you want to specifically move the folder.)


Linking

When this is done we can finally get to the fun part: linking your folder back to where it's needed. On Linux there exists the concept of a "linked" file or directory, which essentially acts as the file appearing in two or more places at the same time. This means that these links will reference the original file and automatically update it with the changes given to each link. We'll be taking advantage of this to be able to automatically update the actual save folder stored on the external storage despite the game pointing to the save folder on your main drive.

To do this on the Steam Deck or any other instance of Dolphin you'll want to drag the folder back to the game's internal folder, and then select "Link Here".


You'll be able to tell you've done this correctly because the new save folder found within the game's files should now have an italicized name, and feature a chain link icon at the bottom right to denote its status as a linked folder:






After this is done, congratulations! Launch the game again and see if the save is still detected. If so, you've done it correctly. For the rest of your devices you'll have to find the game's save folder again and replace it with their own link of the save folder located on your external media. Remember to make back ups!

Of course, to be able to access the save, you'll need the external media to be plugged in and mounted on the computer that you're deciding to play on. If the save isn't available to the game, it won't find it.
Extra clarifications
Thank you for reading my guide! It's the first one I've ever tried to make so feel free to give suggestions on how this could be improved. But for now I'll try to answer a few more questions related to this:

Can this be done on Windows?

As automatically? As far as I know, probably not. Windows does have the ability to make symbolic links using the "mklink" command within the command prompt. But if you're synchronizing between a PC and the Steam Deck, the Deck will need the external drive to be formatted to its standards, which results in the drive being only compatible with Linux systems. There are workarounds that allows Windows to read these kinds of drives, but as someone who doesn't use Windows I'm not confident enough to add that into this guide.

Can this be done over the internet (i.e. over the cloud)?

If you want to hedge your bets, maybe. But given the somewhat shaky stability of a file's state when synchronized to the cloud, I haven't tried it myself. I personally believe that using a microSD card or an external hard drive is fine enough when it comes to syncing saves.

Can this be applied to different kinds of games?

Sometimes! You'll have to tinker and find out, but I've found this also works when it comes to synchronizing Minecraft worlds (the third party Prism Launcher will even specifically tell you whether a world is symbolically linked or not within it's list of worlds on a given instance).