canonical / steam-snap

Steam as a snap
73 stars 10 forks source link

Issue with Steam cloud sync #29

Closed thatLeaflet closed 2 years ago

thatLeaflet commented 2 years ago

Describe the bug When I played Stardew Valley on my Ubuntu install with the Steam snap, none of my previous saves were available. I created a new save and played that for a bit. But when I switched over from Ubuntu to Fedora and the Steam flatpak, all of my previous saves were available but the new one was not.

The thing is, I manually backed up Stardew's save folder before reinstalling Linux. I think it was located in ~/snap/steam/common/.config/Stardew Valley. But this file actually contained the previous saves from Steam cloud sync, but not my new save file. So I think the Steam Snap may be saving some files in a different location than Steam expects, causing previous saves to not show up in game and for new saves not to be synced.

To Reproduce I think the issue might be reproducible with these steps, but I can't check since Fedora only packages snapd 2.54.3 but Steam Snap demands 2.55.4 :

  1. Install Steam .deb or Steam Flatpak
  2. Install Stardew Valley, create a save
  3. Let saves get backed up
  4. Install Steam Snap
  5. Install Stardew valley, check for available saves, create a new save
  6. Let saves get backed up
  7. Switch back to Steam .deb or Steam Flatpak, see if new save is available

Expected behavior Steams would be correctly uploading to Steam cloud and would correctly downloaded

edurojasr commented 2 years ago

I can confirm this, cloud saves do not work with Steam snap, you can verify this looking at the cloud storage of the game.

I play WH40K Mechanicus which have the cloud saves feature, and non of may saves are sync in the cloud, Steam report 0 MB of cloud storage used for this.

thatLeaflet commented 2 years ago

I am now able to confirm the issue. When Steam downloads cloud saves for Stardew Valley, it places them into ~/snap/steam/common/.config/Stardew Valley. However, Stardew Valley checks for its saves in ~/snap/steam/current/.config/StardewValley.

I think edurojasr and I are experiencing different issues because Steam correctly displays that I have used 7MB of cloud storage for the game.

edurojasr commented 2 years ago

Yes its look look like we are experiencing different issues, since my problem is that the saves are not uploaded to the cloud even if I have cloud sync enable.

ashuntu commented 2 years ago

I can confirm, all my saves seem to be in ~/snap/steam/common/.config/ as well, Cloud also displays I'm using storage but the game isn't in-line with my real progress.

kenvandine commented 2 years ago

This sounds like SNAP_USER_COMMON vs SNAP_USER_DATA somewhere

ashuntu commented 2 years ago

This sounds like SNAP_USER_COMMON vs SNAP_USER_DATA somewhere

Changing XDG_CONFIG_HOME to $SNAP_USER_COMMON/.config instead of $SNAP_USER_DATA/.config was enough to fix saves for me.

@thatLeaflet @edurojasr, If you want, there's a built snap of that change at https://github.com/canonical/steam-snap/actions/runs/2665910588. You can test it by unzipping and installing with snap install <.snap file> --dangerous. Make sure you install the official version again afterwards with snap refresh steam --amend.

I tried with Enter the Gungeon and it seems to use my correct save.

thatLeaflet commented 2 years ago

I tested the change and now the cloud saves appear, thank you!

jhenstridge commented 2 years ago

I suspect what's happening is that Steam is writing to $HOME/.config without checking what $XDG_CONFIG_HOME is set to. Since the Steam snap sets HOME=$SNAP_USER_COMMON, that would explain why the discrepancy.