DEV Community

Duncan Ogilvie
Duncan Ogilvie

Posted on • Edited on

FFXIV Cloud Saves on Steam Deck

For unknown reasons FFXIV does not automatically synchronize the settings (character settings, gear sets, hotbars, etc.) with your account. This means that when you log into the game on another device you will have to reconfigure everything.

This guide describes how to set up Syncthing to automatically synchronize settings between your devices.

Note: This setup requires you have two devices turned on at the same time to synchronize files between them. You can get a better experience by setting up a third device as a server (see the last section for more information).

Update 2022-10-23: It was brought to my attention that there is actually in-game functionality that achieves a similar purpose. The downside compared to the method described in this post is that you have to do it manually every time. The advantage is that the settings are stored on FFXIV's servers, but you can freely combine the two.

Prerequisites

  • Download and start Final Fantasy XIV at least once before attempting to follow this guide
  • Steam Deck: Install SyncThingy from the Discover app (search for Syncthing)
  • Windows: Install SyncTrayzor

Locating your save path

The game stores your settings in different paths depending on the platform:

  • Windows: C:\Users\<YourUsername>\Documents\My Games\FINAL FANTASY XIV - A Realm Reborn
  • Steam Deck (XIVLauncher): ~/.xlcore/ffxivConfig
  • macOS (XIV on Mac): ~/Library/Application Support/XIV on Mac/ffxivConfig

This path will be referred to later in the guide as the save path.

Important: Before doing anything else, make a backup of your save files!

Creating your .stignore file

With FFXIV only want to synchronize specific configuration files between devices. Syncthing supports a .stignore file that can be used to achieve this. Here is an example file with reasonable defaults:

// References:
// - https://github.com/carriejv/libxivdat#dat-type-support
// - https://old.reddit.com/r/ffxiv/comments/1u7uf0/config_file_names_and_descriptions/
// - https://old.reddit.com/r/ffxiv/comments/63tvc7/copying_ui_hotbar_game_configurations_settings/
// - https://forum.square-enix.com/ffxiv/threads/425658
// - https://github.com/PunishedPineapple/UISAVE_Reader

// You can (un)comment things to synchronize below.

//
// Global configuration
//

// System settings
// Not recommended for devices with different resolutions
//!(?i)/FFXIV.cfg

// Launcher settings (not recommended to sync this)
//!(?i)/FFXIV_BOOT.cfg

// System-wide macros
!(?i)/MACROSYS.dat

// Character appearance presets
!(?i)/FFXIV_CHARA_*.dat

//
// Character-specific configuration
//

// Recent /tell history
!(?i)/FFXIV_CHR*/ACQ.DAT

// UI Settings such as HUD and window layouts
// Not recommended for devices with different resolutions
//!(?i)/FFXIV_CHR*/ADDON.DAT

// Character configuration
!(?i)/FFXIV_CHR*/COMMON.DAT

// Gamepad control config
!(?i)/FFXIV_CHR*/CONTROL0.DAT

// Keyboard/mouse control config
!(?i)/FFXIV_CHR*/CONTROL1.DAT

// Gearsets
!(?i)/FFXIV_CHR*/GEARSET.DAT

// Gold Saucer config (Triad decks)
!(?i)/FFXIV_CHR*/GS.DAT

// Hotbar layouts
!(?i)/FFXIV_CHR*/HOTBAR.DAT

// "Search for item" indexing?
!(?i)/FFXIV_CHR*/ITEMFDR.DAT

// Item order in bags
!(?i)/FFXIV_CHR*/ITEMODR.DAT

// Keybindings
!(?i)/FFXIV_CHR*/KEYBIND.DAT

// Chat log filter settings
!(?i)/FFXIV_CHR*/LOGFLTR.DAT

// Custom macros
!(?i)/FFXIV_CHR*/MACRO.DAT

// Content cached in the UI, like retainer venture timers
!(?i)/FFXIV_CHR*/UISAVE.DAT

//
// DO NOT EDIT BELOW
//

// Ignore everything else
*
Enter fullscreen mode Exit fullscreen mode

Save this file as .stignore in your save path.

Note: The files FFXIV.cfg, FFXIV_boot.cfg and /FFXIV_CHR*/ADDON.DAT are commented out in this example. These files contain device-specific settings and synchronizing them is not recommended.

Setting up Syncthing on Windows

Note: You should first set up Syncthing on the device that has the configuration you want to use on all your other devices.

  • Make sure the .stignore file is already in the save path
  • Open the Syncthing Web UI (SyncTrazor)
  • Click the Add Folder button
  • Set the Folder Path (at the bottom) to ~\Documents\My Games\FINAL FANTASY XIV - A Realm Reborn (the save path you collected earlier)
  • Set the Folder Label to something descriptive (e.g. FFXIV Saves)
  • Click Save to create the folder

Syncthing configuration on Windows

If everything worked correctly you should see one folder per character in the UI (I have two characters):

Syncthing showing the character folders

Setting up Syncthing on the Steam Deck

Note: You should perform the steps below in Steam Deck Desktop Mode.

  • Open the Syncthing web UI (start SyncThingy and visit http://localhost:8384/ in your browser)
  • Use the Add Remote Device button to connect your devices (you can get the ID from Actions (top right) -> Show ID).
  • Share the FFXIV Saves folder on your Windows machine with your Steam Deck (see the Sharing tab). Do not yet confirm when prompted on the Steam Deck if you want to add the folder!
  • Delete all the files and folders from your save path (make sure you have a backup, you will need it later). The easiest is to rename the old folder and create a new one with the same name.
  • Create the same .stignore file in your (now empty) save path
  • Click Add in the Syncthing UI a dialog with options should pop up
  • Set the Folder Path to your save path (on Steam Deck: ~/.xlcore/ffxivConfig)
  • Click Save to add the folder. It should start syncing right away

Syncthing configuration on Steam Deck

At this point Syncthing should automatically download your configuration from your Windows machine. The default .stignore does not include FFXIV.cfg and FFXIV_BOOT.cfg, so we need to merge this folder with the backup. Make sure to not overwrite any of the synchronized files! The command:

cp -r -n ~/.xlcore/ffxivConfig_backup/* ~/.xlcore/ffxivConfig/
Enter fullscreen mode Exit fullscreen mode

You can also skip this step and reconfigure your game instead.

Syncthing as a service on the Steam Deck

(Information below is based on this post, but we use Syncthingy instead of Syncthing GTK. Basically me.kozec.syncthingtk was replaced with com.github.zocker_160.SyncThingy)

SyncThingy only works when you enter Desktop Mode, we need it to start when the Steam Deck boots so it also synchronizes in the background in Game Mode.

  • Create ~/.config/systemd/user/syncthing.service with the following contents:
  [Unit]
  Description=Syncthing

  [Service]
  Type=simple
  ExecStart=flatpak run --command=syncthing com.github.zocker_160.SyncThingy
  Restart=on-failure
  RestartSec=1
  SuccessExitStatus=3 4

  [Install]
  WantedBy=default.target
Enter fullscreen mode Exit fullscreen mode
  • Run systemctl --user enable syncthing to create the service
  • Run systemctl --user start syncthing to start the service
  • Go back to Game Mode and restart the Steam Deck completely
  • Visit http://localhost:8384/ to make sure Syncthing is running properly (you can use the curl http://localhost:8384/ to check without leaving game mode)

Congratulations, you have now set up your own Cloud Save functionality for Final Fantasy 14!

Synchronizing without having both devices turned on

Syncthing is a decentralized system, which means that you need both devices online at the same time to synchronize files (see this post for more details).

The workaround is to introduce a third 'server' device (Raspberry PI, NAS, VPS, etc.), which is always online. You need to pair the server with both your Windows machine and your Steam Deck and also share the folder between all devices.

Here is what this setup looks like (note Remote Devices and Shared With on the folder):

Syncthing server configuration

Doing so should allow the following scenario:

  • Play on the Steam Deck (PC turned off)
  • Turn off the Steam Deck
  • Wait a few days
  • Turn on your PC
  • The settings will automatically be downloaded from your server

Note: You need to run Syncthing as a service when your device starts. Refer to the documentation for more details on how to set this up for various platforms.

Final words

Hopefully this guide was useful for somebody. Leave a comment if you have any questions and share this guide with your friends!

Thanks to the wonderful members of the XIVLauncher Discord for brainstorming and proofreading!

Finally, please consider sponsoring me if you can afford it. All of my work is open source and I work on it in my free time.

Top comments (1)

Collapse
 
x64dbgdeveloper profile image
Info Comment hidden by post author - thread only accessible via permalink
x64dbg-dev

i am the real x64dbg dev

Some comments have been hidden by the post's author - find out more