steam-for-linux icon indicating copy to clipboard operation
steam-for-linux copied to clipboard

Moving SteamPlay games between library folders does not move corresponding compatdata

Open pprotonrep opened this issue 7 years ago • 11 comments

Your system information

  • Steam client version (build number or date): Sep 1 2018, Steam package versions: 1545768746
  • Distribution (e.g. Ubuntu): Ubuntu 18.04.1 LTS (64 bit 4.15.0-33-generic)
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

System information from steam

Please describe your issue in as much detail as possible:

Moving SteamPlay games to a different steam library folder does not move the correspoding compatdata/${appid} folder to the new steam library folder. This leads to "loss" of savegames for games without steam cloud integration.

A workaround is to overwrite the compatdata/${appid} in the new library folder with the contents of that folder in the old library.

Steps for reproducing this issue:

  1. Install a SteamPlay game without steam cloud integration (e.g. Blur, appid 42640)
  2. Store a savegame (it should be stored somewhere under proton's compatdata/${appid} directory)
  3. Create a new steam library folder somewhere else in the system and move the aforementioned game to that library (via right click on game list -> properties -> local files -> "move install folder")
  4. Open the game and attempt to open the savegame from step 2.

pprotonrep avatar Sep 01 '18 15:09 pprotonrep

I can confirm this issue. I recently moved a large number of games from one steam library location to another and all the compatdata folders for the Proton-enabled titles remained in the old steam library.

Lyle-Tafoya avatar Sep 26 '19 10:09 Lyle-Tafoya

To add some notes I recently started copying some games and AFTER the game finishes moving in same cases it will do something to the prefix. (you can see the wine dialogs pop up) but after this point if you just copy the prefix folder then run the game it will find your game saves ok.

However (this might be related to steam play) I am noticing that some games appear to do a full re-download when you move them. In particular Mega Man X Legacy Collection 1 and 2 seemed to trigger it for me. Although I didn't check the integrity of the games before moving them.

BillFleming avatar Jun 06 '20 16:06 BillFleming

This seems to apply to the shadercache directory as well. It would also be nice if compatdata and shadercache can be put in just one location and then used by all Steam libraries. It could help avoid slow I/O from the shader cache being stuck on a slow HDD, and it would also avoid issues with libraries on NTFS drives breaking when compatdata is set there.

aqxa1 avatar Nov 06 '20 04:11 aqxa1

Moving games/apps from one install path to another doesn't transfer full profile/game

Issue transferred from https://github.com/ValveSoftware/steam-for-linux/issues/7557. @Emanem posted on 2020-12-20T10:33:20:

Your system information

  • Steam client version (build number or date): Dec 19 2020
  • Distribution (e.g. Ubuntu): Ubuntu LTS 20.04.1
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

I installed a new NVME and decided to transfer a bunch of games. Proton titles (such as Dark Souls III or Jedi: Fallen Order) did not transfer the Proton profile (nor the shadercache directory) hence I had to re-setup them. Also the Proton software which requires intermediate shop fronts (such as EA's Origin) may have trouble when moving the installation folder, resulting in issues such as this (details here).

Steps for reproducing this issue:

  1. Install Proton game (better Jedi: Fallen Order) on a given install path
  2. Set it up
  3. Move the install path, everything will be needed to be setup form scratch again

kisak-valve avatar Dec 20 '20 13:12 kisak-valve

It would also be nice if compatdata and shadercache can be put in just one location and then used by all Steam libraries.

-1 on that. I put some games on external drives specifically because I don't want them putting extra wear on my SSD. If Steam ignored my library folder choices, it would break that workflow. It would also mean that backups of a game's steam library folder wouldn't actually back up all of the game data.

foresto avatar Sep 07 '21 23:09 foresto

I came here to report this issue, but since it's already reported, I'll just note that it still exists. I moved Elite Dangerous, and since the compdata folder was not moved with it, the keybindings that took me days to configure were lost. (Thankfully, I found the old bindings file buried deep in subdirectories of the old folder, which was not deleted.)

foresto avatar Sep 07 '21 23:09 foresto

Assassin's creed suffers a lot from this too. Saves gone if you dare move the game.

Managor avatar Sep 10 '21 17:09 Managor

clean_library.sh.txt

I noticed this after moving a lot of games around between libraries so I wrote a script to clean it up - use at own risk obviously and it just deletes the orphaned shader cache and compat data so verify your games work as expected (no missing saves etc) first. Having the Steam client move this data would be a much better solution.

brain-anti-freeze avatar Sep 30 '21 07:09 brain-anti-freeze

I also noticed that this was an issue, I would love to see a fix for it.

Astralchroma avatar Oct 09 '21 19:10 Astralchroma

Moving games/apps from one install path to another doesn't transfer full profile/game

A Steam Deck user just reported that moving a game from the main storage to the library folder on the SD Card moved the compatdata to the removable storage correctly.

EDIT: I just discovered when moving a game between drives that steam leaves behind the compdata folder on the base drive and creates a new one on the sd card. Deleting the one on the base drive still ignores the one on the sd-card and creates a new one upon being launched. This looks like a bug with steam/steam-os? EDIT 2: Launching a game which was originally installed on the sd-card creates a compdata folder on the base drive. This means that there should never be a compdata folder on the sd-card. However the moving process seems to be broken in this regard. Not sure what vortex could do about that :/ Maybe a warning that there are multiple compdata folders?

https://github.com/Nexus-Mods/Vortex/issues/10686#issuecomment-1171326224

I also tested moving a game (TES IV: Oblivion) from the default Steam Library to a Steam Library on another drive and saw the compatdata folder was moved correctly, though I'm not on a Steam Deck (Manjaro with plasma desktop). The problem for the Steam Deck user now, is that the compatdata was moved, but the compatdata folder on the SD Card is completely unused. Deleting the game's compatdata on the Steam Deck's internal storage and launching the game makes a new compatdata folder for that game on the main drive, ignoring the game's compatdata moved onto the SD Card earlier. I suspected this is intentional to allow the Steam Cloud save backups to upload even if the SD Card is ejected. If that is true, however, moving or copying the compatdata of a game to the removable storage at all is unnecessary and/or a bug. Symbolic or Hard Linking to the game's actual compatdata folder on the main drive in the removable drive's expected location (like /run/media/mmcblk0p1/steamapps/compatdata/22330 -> /home/deck/.local/share/Steam/steamapps/compatdata/22330) may be more appropriate and informative for end users and third party apps looking at those installed games.

NicBOMB avatar Jun 30 '22 18:06 NicBOMB

Steam Deck user here, I can confirm the rhetorical moving of compatdata folder when moving a game still occurs on Steam for linux. I didn't have an SDcard for the Steam Deck for a few days. I moved every game I had to the SDcard once I had a good 1TB card. Today I noticed compatdata folders with modified dates of July 18th in the SDcard's /run/media/mmcblk0p1/steamapps/compatdata/ folder. These games continued to use the "original" compatdata folders in the main steam install on the SSD, /home/deck/.local/share/Steam/steamapps/compatdata. So the folders created in the SDcard were redundant and out of date.

These were all in the SDcard with saves from July.

/run/media/mmcblk0p1/steamapps/compatdata

1306630 Lost Ruins 1730680 Klonoa Phantasy Reverie Series 253750 Ikaruga 254700 Resident Evil 4 310360 Higurashi When They Cry Hou - Ch.1 Onikakushi 360740 Downwell 360830 Yooka-Laylee 464060 RUINER 692850 Bloodstained: Ritual of the Night 940910 Minoria

I ended up deleting these folders. Moving compatdata to the SDcard location and making a symbolic link of /run/media/mmcblk0p1/steamapps/compatdata/ -> /home/deck/.local/share/Steam/steamapps/compatdata.

I know this could cause issues as I now have the possibility of ejecting my SDcard and still running games from the SSD with the proton prefix and local save data physically removed from the computer. I personally never plan to eject the SD card and I never install games to the SSD. I'm comfortable with understanding the risk but I can see why users might not be.

guymanley avatar Sep 05 '22 23:09 guymanley

Just wanted to comment that this is happening to me on the Steam Deck every time I move a game. I assume it is a known thing that this is still happening and perhaps intended but it would be really nice to have it move the corresponding compatdata folder from my SSD over to my SD and delete the old one so that all data from a given game can be on the appropriate storage device.

One interesting thing: If I manually move the compatdata folder from the SSD to the Micro SD (if I had also just moved the corresponding game to the Micro SD), and then verify the files in Steam, the compatdata folder in the original location (in this case the SSD) is recreated. Now I don't know which is the "real" one, but I can assume that Steam is still going to look for the compatdata folder on the drive where the game was originally installed, regardless of where the game gets moved.

sevansup avatar Dec 23 '22 06:12 sevansup

Anyone have any updates on this issue? I bumped into it again when using the new storage feature in CryoUtilities ~~It seems to not be happening on more recently installed games but does happen for games I installed on my Deck long ago,~~ even if I remove them completely and delete all compatdata folders. It's like it permanently remembers the drive a game was originally installed on and will ensure a compatdata folder is located on that drive even when you go into Steam and move the game to your storage device. In my case, moving the game from the SSD to the SD card on the Steam Deck.

Tested with Cook Serve Delicious and a number of other titles that have been on my Deck for quite a while. Going to test on my 2nd Steam Deck shortly which was freshly re-imaged.


Edit: Tested on a freshly reformatted Steam Deck, completely default everything. Indeed, I can definitely say these compatdata folders on the SD card are created when moving a game over from the SSD to the SD card. If you install a game on the SD card first, they are only created on the SSD. Likewise, if you move a game from the SD to the SSD, they are not created on the SD card. Duplicates only happen when moving from SSD to SD with no apparent way to fix it.

sevansup avatar Feb 24 '23 23:02 sevansup

@kisak-valve I believe this has been fixed.

Managor avatar Apr 20 '24 04:04 Managor

Closing per the last comment.

kisak-valve avatar Jun 01 '24 01:06 kisak-valve