Sync Non Steam Game Saves With Syncthing

2022-03-11

The Steam Deck is a full on PC: a beautiful garden, but no walls to speak of. This means you’re not locked into playing games from Steam.

There’s just one small problem: you don’t get cloud saves for non-Steam games.

Well, turns out there are alternatives to cloud saves, and today we’ll look into one solution in particular that I like: Syncthing.

Syncthing is a powerful sync program that allows you to keep a select number of folders synced between two or more computers. It even works on Android!

The best part is that it doesn’t need any account, as syncing is done through your local network.

Installing Syncthing

Syncthing has a number of different clients you can download depending on the operating system that you use.

On Linux, and of course on the Steam Deck, you can download a client called Syncthing-GTK. You can install it using Flatpak.

If you’re using the Steam Deck or a Linux PC with the Plasma desktop, you can open up the Discover app center (you’ll need to switch to desktop mode on the Steam Deck), search for Syncthing GTK and install it.

If you prefer to use the terminal you can just run:

flatpak install me.kozec.syncthingtk

On Windows, you can download a client called SyncTrayzor. To install it, you can follow the instructions provided in SyncTrayzor’s GitHub page. Basically it all boils down to downloading an installer and running it, so it should be pretty straight forward.

Setting it up

Once you have your Syncthing client open on both of your systems, you’ll have to set it up.

Syncthing-GTK walks you through the initial setup process with a first run wizard, so let’s go through it together.

In this first screen, you can press Next.

Now it will search for the Syncthing daemon. A daemon is basically a program that runs in the background. In case of Syncthing the daemon is actually the main program, the brains responsible for the app functionality. Since we installed Syncthing-GTK as a Flatpak, it will most certainly find the daemon without any problem, and we can just go ahead and click Next.

The wizard should have now automatically skipped through the Generate Keys section, and will land on the Setup WebUI section. Syncthing can be used directly in its daemon form, by controlling it from a Web UI accessible from your browser. We won’t need to worry about this since we’re using proper clients, so we’ll just select the option saying Listen on localhost and once again press Next

That’s it! The wizard should have skipped through Saving Settings, and you should see the Finish section. Just go ahead and press Close.

The first thing it’s gonna ask is to allow usage reporting. You can decide to press either Yes or No depending on your preference. This allows the developers to gather data on how you use Syncthing, but it won’t affect your experience, so it’s really just your preference.

This is the main window you’ll need to familiarize with.

On the left side of the window you can see a list of synced folders (at first you should only see one folder called Default Folder). Each item in this list can be expanded by clicking on it, but we’ll get to this later.

On the right side of the window you can see a list of devices connected to your Syncthing network. Initially you’ll only see your current device, with some statistics that you can keep an eye on.

On the top right corner you can see a button with a cog icon. This will open the main application menu.

The first thing we’re going to do is open the menu by clicking the button with the cog icon, then select the Daemon Settings option.

Since we’re going to use Syncthing on the local network only, go ahead and disable the option saying Enable Global Discovery.

You can also disable Open browser with WebUI when daemon is starting, since we’re not going to use the Web UI.

Click on Save.

Now you’ll need to repeat this initial configuration process on your other computer, and you can use the same options I described here.

Since the following process can easily get confusing, I’ll name the two devices you want to sync device A and device B. It doesn’t matter which is which: your Deck can be A and your PC can be B, or vice-versa, the process will be the same.

In device A open the cog menu and click Show ID. This will open a window showing the ID as a string you can copy and as a QR code. You’ll need to copy this ID to device B. You can either copy it by hand, or send it to yourself via e-mail or using a chat of your preference.

In device B open the cog menu, then select the Add Device option.

Still in device B, insert device A’s ID in the Device ID text box.

You can optionally insert a name of your preference in the Device Name text box. This isn’t required, but will make your devices easier to recognize.

Enable the only folder you’ll see in the Share Folders section. This will enable sharing the default folder between the two devices.

Finally click Save.

Wait a little bit and on device A you should see a notification show up, telling you that device B wants to connect. Click on the Add button.

This will show a window you should already be familiar with: it’s the same we’ve seen on device B a while ago. Keep everything as is and enable the only folder in the Share Folder section. Click Save.

At this point you’ll have one folder synced between the two devices. We’ll keep this folder, as it’s useful for syncing miscellaneous files between the two devices.

But the objective of this tutorial is syncing game files for non-Steam games, so let’s see how to do that.

The first thing you want to make sure of is that you’ve run the game at least once on both deviecs. This will make sure you’ve generated the save folders in both devices.

The next step is figuring out where the saves for your particular game are stored. This varies depending on the game and the operating system, so you’ll need to do your research before continuing with this tutorial.

Once you find your save folder, you can add it to Syncthing, but before doing that:

  • Make sure the game is closed on both devices.
  • Make a backup! Seriously, if you do something wrong you could lose your saves! That’s no fun, so copy your save folder to another location so that if anything goes wrong, you can just restore this backup.
  • Delete the contents of the save folder on the receiving device. This means, if you want to sync your emulator saves from your PC to your Deck, remove the contents of the emulator save folder on the Deck. This will be necessary to avoid having your old save files overwritten by brand new ones with no progress.

Now, to add your save folder to Syncthing, on device B open up the cog menu and click on Add Shared Folder.

  • In Folder Label you can insert a name of your preference, like the name of the game.
  • Folder ID is the unique identifier for the folder you want to sync. It needs to be the same on both devices. You can keep the randomly generated ID Syncthing automatically generates, or you can put in the name of the game to make it easier.
  • Click on the Browse… button and select the save folder you’ve found earlier
  • You can set a rescan interval of your preference. This is the time interval that Syncthing will wait before checking if there are any changes that need to be synced. Alternatively you can enable the Monitor filesystem for changes option to let Syncthing do some filesystem magic and be more responsive with change detection. This might not work as expected depending on your system, so if you’re not sure, keep it disabled.
  • Disable both Send Only Folder (should be already disabled) and Receive Only Folder.
  • Click on the Share With Devices tab

  • Enable the only device you see here (should be device A)
  • Click Save

After a little bit, on device A you’ll see a notification saying that device B wants to share a new folder.

Go ahead and click Add.

This will be the same window we’ve seen before on device B, so go ahead and configure it the same way. Again, select the path to your save folder and make sure to disable both Send Only Folder and Receive Only Folder.

Then go ahead and click Save.

And that should be it! If you did everything right, your saves should be syncing automatically between the two devices.

A couple of finishing notes:

  • Syncthing can be a bit fickle sometimes, so if you think something is taking a bit too long, you can open up the cog menu and click on Restart Daemon. This should be enough to let it catch up on changes.
  • It might be a good idea to just open Syncthing when you need to sync your saves, and close it when you’re done. If you simply close the window, Syncthing will remain active in the background. To avoid that, instead of just closing the window, open the cog menu and select Shutdown Daemon. This will show a dialog window saying Syncthing has been shut down. Go ahead and press Quit.

Hey there!

I run this website without any ads and without tracking, because I love to share these little bits of knowledge and help people that are just starting out.

If you'd like to thank me, or you'd like this work to be sustainable and continue on in the future, consider sending a donation via Liberapay. Thank you!

Hide this message

Enter your instance's address


More posts like this

Allow Flatpaks to Access Your SD Card With Flatseal

2022-03-31 | #app #flatpak #sandbox #tutorial

Flatpak is the main way to install apps on your Steam Deck. It’s an awesome system and there are tons of apps for you to install! The problem is that Flatpak sandboxes your apps, using a fine-grained permission system, similar but much more advanced than what you might see on your smartphone OS. Because of this, Flatpak apps might not have access to some resources on your Steam Deck. The most obvious example is an emulator like RetroArch or a game launcher like Heroic not being able to access your SD card.

Continue reading 


RPCS3: PS3 Games on Your Deck

2022-03-19 | #app #emulator #flatpak #playstation #ps3 #rpcs3 #sony #tutorial

Continuing the trend of emulator tutorials, today we’ll look at RPCS3, an emulator for the PlayStation 3. Let’s get started with the installation. Install RPCS3 Installing RPCS3 is really easy by using Flatpak. Go to desktop mode, open up the Discover app center, search for RPCS3 and install it. Alternatively, you can run this command in the terminal: flatpak install net.rpcs3.RPCS3 Configuring RPCS3 Opening up RPCS3, we’ll be greeted by this window:

Continue reading 