Tutorial Synchronize savegames between Windows, Mac and Linux

Discussion in 'Starbound Modding' started by Cyb3rfr3ak, Dec 15, 2013.

?

Was this helpful?

Poll closed Dec 15, 2018.
  1. Yes master, thank you so much

    88.9%
  2. No, you suck

    11.1%
  1. Cyb3rfr3ak

    Cyb3rfr3ak Scruffy Nerf-Herder


    Most of you would use Dropbox for this I think, but it should work with any other cloud storages (I prefer my own Owncloud server) that has multiplatform support.

    Why should anyone do this? - For me, I like to play on my computer when I'm at home, but I have to drive 4h per train every day, where I only have my Laptop with me, so syncing savegames of games that do not sync via Steam (e.g. Terraria....) did a good job for me.

    Step 0 - BACKUPS!
    I will not be responsible for any data loss or damaged/corrupted files when you follow this guide.
    Make a backup of your files when you're not sure about what we are doing here!

    Step 1 - Prepare your computers
    Launch the your cloud storage application on every computer, if they have not been launched on boot anyway.​

    Step 2 - Prepare the cloud storage
    I have a folder in owncloud which I named "Savegames" where all games have a subfolder in it.
    Now it's up to you, create a folder in your cloud storage folder for your savegames!
    It can look like this:
    [​IMG]
    Step 3a - Move savegames to cloud storage folder
    Find your Starbound installation folder, as the relevant folders (player and universe) will be located there.
    ###

    Windows Vista and above: X:\Program Files (x86)\Steam\SteamApps\common\Starbound
    Linux:
    32-bit systems
    /home/USER/.steam/steam/SteamApps/common/Starbound/linux 32/ (without the space character)
    64-bit systems
    /home/USER/.steam/steam/SteamApps/common/Starbound/linux64/
    Mac OS X: /Users/youruser/Library/Application Support/Steam/steamapps/common/Starbound

    ###
    Now MOVE the folders 'player' and 'universe' from the installation folder into your savegame folder inside your cloud storage.
    [​IMG]
    Step 3b - Symlink!
    Now you will create a symbolic link inside your Starbound installation folder, which will point to the folders inside your cloud storage.​

    Windows Vista and above:
    1. Start 'cmd' as Administrator.
    Easiest way (which will work for Windows 8 without start menu - I installed Start8, so I don't know about any Metro/ModernUI tricks) to manage this, is to create a new shortcut on your desktop, pointing to 'cmd' and then right click on it, choosing "Run as administrator"
    [​IMG]
    [​IMG]
    [​IMG]

    2. Check if "Administrator" is in the title of the command prompt window.
    Now move in to your Starbound installation folder. Use quotes to prevent getting in trouble with space-characters.
    [​IMG]

    3. Use mklink to create symbolic links
    /J is needed for directories - following up is the filename which will be created inside the current folder - last option is the directory to which this link will point to.

    4. You finished setting up your first computer. Now repeat from step 3a if you have more computers to sync.

    Unix:
    1. Fire up your terminal
    2. cd into your Starbound installation folder
    3. Use ln to create symbolic links
    -s is saying ln to make a symbolic link (instead of hard links as default) - following up is the target folder of our link - last parameter is the name of the created link
    4. Repeat from step 3a if you have more computers to sync
     
    Last edited: Jan 20, 2014
  2. Eppy

    Eppy Scruffy Nerf-Herder

    Huh. I'm somewhat surprised this hasn't gotten any more love. I linked you from my own post on the same subject (probably the one referred to in your quote.)

    Good guide, though I'd make an argument for using /J instead of /D for mklink in Windows. :)
     
  3. simplex

    simplex Astral Cartographer

    Nice guide. My only remark is that under Unix you shouldn't be using sudo to create the symlink, just do it under default priviledges.

    Though I'd personally avoid just symlinking it since that can introduce security vulnerabilities, allowing the game (and possibly mods in the future, if an API is created) to access remote parts of the filesystem through "..", which points to the symlink's target parent directory. So I'd rather use Unison to synchronize two proper folders. And I'd also encrypt the cloud version, but that's just my paranoid me (EncFS wouldn't work under Windows, though, just Linux and Mac).
     
  4. Eppy

    Eppy Scruffy Nerf-Herder

    Encryption is probably overkill for game saves. ;)

    As for the symlink in linux, a quick test (in Debian, mind you) shows that targeting ".." from the symlinked directory takes you back to the parent of the link, not the parent of the link target. Not sure where you're getting that behavior...
     
  5. Doh004

    Doh004 Space Hobo

    I'm running into an issue here with Starbound crashing when launching on my Mac. I have this working on my windows machine (symlink to a dropbox folder) and I've set up the alias on my OSX machine correctly, but when launching from Steam I get a crash report. Anyone else run into this issue?
     
  6. krageon

    krageon Void-Bound Voyager

    If you're paranoid about things escaping, you could run starbound in a chroot jail, but that really does seem like overkill.
     
  7. Cyb3rfr3ak

    Cyb3rfr3ak Scruffy Nerf-Herder

    Okay this is weird. It stopped working for me too. It even crashes when I create the "player" and "universe" folder manually. It only works when I delete them both and let the game create them itself..
     
  8. Adlez Ecrofirt

    Adlez Ecrofirt Orbital Explorer

    Thanks for your work!
    It should also be noted that under Linux the default paths for the player and universe folders are different:

    32-bit systems
    /home/USER/.steam/steam/SteamApps/common/Starbound/linux 32/player (without the space character)
    /home/USER/.steam/steam/SteamApps/common/Starbound/linux 32/universe (without the space character)

    64-bit systems
    /home/USER/.steam/steam/SteamApps/common/Starbound/linux64/player
    /home/USER/.steam/steam/SteamApps/common/Starbound/linux64/universe
     
    Cyb3rfr3ak likes this.
  9. Cyb3rfr3ak

    Cyb3rfr3ak Scruffy Nerf-Herder

    I added that. Thank you!
     
  10. fusioniz

    fusioniz Aquatic Astronaut

    my mac keep saying no such file or directory. are u sure this works? i did the windows first and then the mac
     
  11. Adlez Ecrofirt

    Adlez Ecrofirt Orbital Explorer

    Since the last patch the paths changed under Linux 64-bit. Maybe they changed under Mac too.
     
  12. Cyb3rfr3ak

    Cyb3rfr3ak Scruffy Nerf-Herder

    Just checked it on Mac OS X 10.9.1
    Everything works again.

    Can you post/screenshot your terminal inputs/outputs?
     
  13. fusioniz

    fusioniz Aquatic Astronaut

    /J is needed for directories - following up is the filename which will be created inside the current folder - last option is the directory to which this link will point to. <---- what does this even mean? /J is needed for what directories?

    and now my windows say cannot create a file when it already exist.


    [​IMG]

    http://imgur.com/Gk86sja

    [​IMG]
     
    Last edited: Jan 31, 2014
  14. Cyb3rfr3ak

    Cyb3rfr3ak Scruffy Nerf-Herder

    For mac:
    This is how it should look like: http://prntscr.com/2o786o
    It is LN -S not IN -S ;)

    For Win:
    You have to MOVE your savegames away from the game folder. If you did only copy them, delete "player" and "universe" in Starbound game folder. Same on mac btw.

    EDIT:
    Oh, between CD and PATH there must be a space character.
    "cd /path/to/folder/"
     
    Last edited: Jan 31, 2014
    izzymaxwell likes this.
  15. SwiftySnivy

    SwiftySnivy Void-Bound Voyager

    Hey im trying to sync the player, universe and mod folders on onedrive so i can constantly have them connected through starbound and syncing each time i play to make my steam cloud but each time i do it, it makes another player/universe/mod folder and i cant create another directory sync for mklink, help!
     
  16. ChronicEel93

    ChronicEel93 Void-Bound Voyager

    You know another thing you can do? Listen to this.
    1. Starbound does not write any data to the windows registry!
    2. Starbound saves files IN the starbound folder!
    3. Starbound versions have IDENTICAL assets across all platforms; the only difference being the executable files, which are self-contained!
    So, using all of this information,
    STEP 1: install starbound on a windows pc, and a linux pc
    STEP 2: Copy the installed folder from the windows pc onto a flash drive
    STEP 3: Plug that flash drive into the linux pc
    STEP 4: Copy the linux folder onto the flash drive
    Basically, the executable files are all in their own folders, labeled win32, win64 and linux, and all of the other folders, the ones that hold the assets, are IDENTICAL! This means that all versions of the games can use each others assets! They use the same save files! They load files from, and save files to, the same locations!!! If you put the linux executables in their own folder in the starbound folder, and run them, they will use the same file directories as the windows version!!! You don't have to mess with symlinks and cloud-saving, you can just have one copy of the game you can run from a flash drive without any issue! The only issue is that I don't know quite how well it would work with steam, I got this game from GOG, and I don't know how exactly that would work out! I just have to say, running it from a flash drive, and playing frankenstien with the game files seems to have worked well with me. There are no issues with saving, mods, or the server, so I think that my method is stable enough, just make sure that they are the same versions of the game, I do not want to know what would happen if you tried to run an old version of the starbound executable, with the newer assets... Actually, I am going to try that now :p
     

Share This Page