Windows: SteamCMD overwrites the desktop Steam client's library list (libraryfolders.vdf) — Windows counterpart of #2419
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Read the Windows SteamCMD launch path and compare it with the Linux isolation changes in #2421. Reproduce the report with the desktop Steam client running, then trace why the logged-in SteamCMD session writes to the client’s library configuration. Done means a Windows SteamCMD run no longer changes either desktop libraryfolders.vdf file, with regression coverage for the reported scenario.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Release Type
Compiled (Windows x86-64)
Version
1.17.3
Operating System
Windows 11
Relevant logs
No response
Describe the bug
Summary
On Windows, a SteamCMD download started from RimSort while the Steam client is running makes Steam forget every library folder except its default one. After Steam restarts, every game on other drives shows as not installed until each drive is re-added under Steam → Settings → Storage.
No game files are deleted, but it looks exactly like your games were wiped. Games on the forgotten drives stop updating, and clicking Install on one starts a second full download into the default folder.
This is the same failure as #2419, but on Windows. The fix in #2421 isolated SteamCMD's HOME/XDG_* directories on Linux only, so Windows is still affected in 1.17.3.
Environment
- RimSort 1.17.3 (Windows build), instance
Default - Windows 11 Pro (build 26300)
- Steam client running at the time (client version 1792618285), with 7 library folders across several drives
- RimSort-managed SteamCMD at
%LOCALAPPDATA%\RimSort\instances\Default\steamcmd(SteamCMD client version 1792617903) - Steam client integration enabled
Steps to reproduce
- Have the Steam client running with two or more library folders.
- In RimSort, download a mod with SteamCMD. Here it was a single mod,
2102143149. - Restart Steam.
- Steam → Settings → Storage now lists only the default library, and games on other drives show as not installed.
What the logs show (local time)
RimSort's log for the SteamCMD run:
[2026-10-24 01:22:31] [wrapper][clear_depot_cache] Attempting steamCMD depot cache clear
[SteamCMD] force_install_dir "C:\Users\<user>\AppData\Local\RimSort\instances\Default\steam"
[SteamCMD] Connecting anonymously to Steam Public...
[SteamCMD] workshop_download_item 294100 2102143149 validate
[SteamCMD] Success. Downloaded item 2102143149 ... (22510011 bytes)
[SteamCMD] quit
The desktop Steam client's own log, C:\Program Files (x86)\Steam\logs\content_log.txt, during that same run:
[2026-10-24 01:22:41] Loaded 0 apps from install folder "c:\users\<user>\appdata\local\rimsort\instances\default\steam\steamapps\appmanifest_*.acf".
[2026-10-24 01:22:41] Triggered async write of Steam library folders configuration (1 libraries).
On the next Steam start:
[2026-10-24 01:29:51] Loaded Steam library folders configuration: C:\Program Files (x86)\Steam\steamapps\libraryfolders.vdf
[2026-10-24 01:29:51] Loaded 1 apps from install folder "C:\Program Files (x86)\Steam\steamapps\appmanifest_*.acf".
[2026-10-24 01:29:51] Triggered async write of Steam library folders configuration (1 libraries).
Before the SteamCMD run, the same log shows 6 libraries.
Other traces of that SteamCMD session landed in the desktop client's logs folder too:
connection_log.txt: SteamCMD's anonymous logon ([a:1:…]), from 01:22:41 to 01:22:51.configstore_log.txt: reads and writes of the desktop client'sconfig\config.vdf, plususerdata\anonymous\config\localconfig.vdf.- A new
compat_log.txt, created at 01:22:41.
SteamCMD's own logs folder (instances\Default\steamcmd\logs) has console_log, bootstrap_log, appinfo_log and configstore_log for the run, but no content_log. Its library and content activity went into the desktop client's folder.
Earlier SteamCMD launches during setup, which only self-updated and never logged in, did not cause this. Only the logged-in download session did.
Possible cause (my reading of the logs, not confirmed)
compat_log.txt in the desktop Steam folder reports Client version: 1792618285, which is the desktop client's version, not SteamCMD's (1792617903). That suggests that on Windows, SteamCMD attached to or loaded the installed Steam client while it was running. It then used the desktop client's install folder as its base, mounted force_install_dir as the only library, and saved a one-library libraryfolders.vdf over the desktop file.
If that's right, the Linux HOME isolation from #2421 has no Windows equivalent, because SteamCMD on Windows doesn't use HOME.
Expected behaviour
A RimSort SteamCMD run never changes the desktop Steam client's files or its library list.
Suggested fixes
- Off switch (simplest). Add a per-instance download method: Steam client only (Steamworks) / SteamCMD / Ask. With Steam client only, hide the "Download with SteamCMD" / "Re-download with SteamCMD" actions and route downloads through Steamworks subscriptions, which RimSort already supports through Steam client integration.
- Prefer Steamworks while Steam is running. If
steam.exeis running and client integration is enabled, default to subscribing via Steamworks. Use SteamCMD only when Steam isn't running, or when the user explicitly confirms, with a warning that Steam may lose its library list. - Safety net on every platform. Before launching SteamCMD, copy both desktop library files (
Steam\config\libraryfolders.vdfandSteam\steamapps\libraryfolders.vdf) and record their hashes. After SteamCMD exits, compare them. If they changed, warn the user and offer to restore the saved copies, with Steam closed so it can't rewrite them. This would also catch any future regression of #2419, and pairs with the regression tests added in #2421. - Root cause (Windows). Find out why SteamCMD binds to the running desktop client on Windows, and launch it isolated from that client.
Workaround for anyone else hitting this
Quit Steam before using any SteamCMD download in RimSort. If it already happened, open Steam → Settings → Storage and add each drive back. Steam picks up the existing games immediately.
Additional context
No response
Code of Conduct
I agree to follow this project's Code of Conduct
Duplicate Issue Check
I've checked for similar issues and didn't find anything
Wiki/FAQ Check
I've checked the Wiki for a solution and didn't find a solution
- Vorherrschende Sprache
- Python
- Sterne
- 1.2k
- Forks
- 155
- Ø Merge
- 17 Std. 30 Min.
- Gemergte PRs (30 T.)
- 68
Entwicklungsumgebung
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus RimSort/RimSort
-
feature/improvement 🆕
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
Nix Flake Check: nixpkgs unidiff 1.0.1 makes pkgs.checkov unbuildable (checkov hook temporarily disabled)Evtl. vergeben @twstagg hat das vor 4 Tagen übernommen. Offen
RimSort/RimSort#2609 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
bugs 🪲
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
Maintainer antworten meist innerhalb von 1 Tag
-
GitHub API:401Evtl. vergeben @twstagg hat das vor 4 Tagen übernommen. Offenbugs 🪲
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
RimSort/RimSort#2577 · 5 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
bugs 🪲
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 52/100
RimSort/RimSort#2562 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in RimSort/RimSort
Ähnliche Issues
-
ChatBedrockConverse changes the keys of JSON tool results to camelCase (`order_id` becomes `orderId`)Evtl. vergeben @geyazheng hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
langchain-ai/langchain-aws#1469 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
EESSI/docs#949 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
b4b usability
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
fix(schedule): align list_tasks since cursor filter boundary from strict > to >=Evtl. vergeben @bfs2021 hat das heute übernommen. Offenagent-ready bug p2 schedule
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
allenporter/supernote#540 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
frazane/scoringrules#164 ·
Maintainer antworten meist innerhalb von 1 Tag