35

Out of idle curiosity I'm interested to know what files the Steam Cloud contains for my games.

Is there anyway of seeing this information, either via a Valve website or an application that maybe uses Steam API's to interrogate the cloud?

  • This depends on which game you are talking about. – Ramhound Dec 17 '13 at 16:13
  • 4
    I'm not asking in the context of a specific game, I'm curious to know what data is in the steam cloud for me in it's entirety. – Rob Dec 17 '13 at 16:19
  • what data is stored depends on the game. You asking which games you have stored? Thats something Valve can answer. – Ramhound Dec 17 '13 at 16:38
  • 1
    I think he's looking for a method to find out which games store which data. – Zibbobz Dec 17 '13 at 20:31
21

There is a simple way to do this. All it requires is that you download the games through Steam.

After a game is downloaded, Steam will by default sync data from the Steam cloud to your computer. It also maintains an index file over the files being synced. It is easy to understand by opening it in a text editor.

Finding the Steam cloud index files

<Steam install folder>\userdata\<Steam ID>\<Application ID>\remotecache.vdf

Steam install folder: Defaults to "C:\Program Files\Steam" on Windows. You might have placed it elsewhere when you installed Steam.

Steam ID: If you only ever logged into one Steam account, you will only have one folder in the userdata folder which corresponds to your Steam ID. If not, you can find it in various ways. One way is using http://steamidfinder.com/.

Application ID: You can find this by looking at the URL of the game's page on the Steam store, or use a service like http://steamdb.info/apps/ (you could also do reverse lookups by searching for the appid there).

Understanding the Steam Cloud index files

Here is an example of the save file sync settings for my Torchlight game:

"41500"
{
    "saves.cmp"
    {
        "root"      "0"
        "size"      "41558"
        "localtime"     "1327594410"
        "time"      "1327594409"
        "remotetime"        "1327594409"
        "sha"       "eae12f0e95dc5d5c65c18cd2991eb04d54714f30"
        "syncstate"     "1"
        "persiststate"      "0"
        "platformstosync2"      "-1"
    }
}

As you can see, the file in question is named "saves.cmp". It will be located in a folder specified by the "root" setting. I haven't researched on all possible locations, but "0" indicates that the file is located in a folder named "remote" in the same folder as the index file and "2" indicates your documents folder in Windows.

All you then need to do is go find the files specified by the index files :). This method is all manual, but I believe it answers your question.

  • 1
    While tedious, this definately answers the problem. – Yablargo Jan 10 '14 at 0:06
  • Not directly relevant to the answer but may be of interest - this looks like JSON – Alex Aug 20 '15 at 9:30
  • 1
    @Alex Similar, yeah, but not JSON: Note the missing colons and commas, for example. In many programming languages and data formats, strings are commonly surrounded by quotes, and curly brackets often used to indicate scope, so I think this is just an improvised format. – Zero3 Aug 20 '15 at 12:30
  • 1
    @Zero3 yeah, you're right. Glad I said "this looks like JSON" rather than "I'm so smart, look at me, this is definitely JSON" :) – Alex Aug 20 '15 at 17:23
5

Yes. Someone had the same thought as you and created Steam Cloud File Manager Lite

3

The steam cloud stores a few things

  • Any save or configuration file(s) for games (depends on the game)
  • Screenshots
  • Workshop items that you created

Other then screenshots and workshop items, there is no other way to obtain this data.

  • 3
    This answer is inaccurate in several ways: 1) The Steam cloud can store many different things besides those you list. For example, it is common for games to sync profile data and config files too. 2) AFAIK the Steam Cloud doesn't store the workshop items you created, only the workshop items you subscribed. 3) There is a way, see my answer. – Zero3 Jan 10 '14 at 17:30
1

I suppose that if you really wanted to know what data is being stored, you could expose the Steam API's yourself, programmatically, and write a service that listens for when the API is invoked. I am not certain those API's are available publicly though. But, boiled down, all they really are is a collection of web services.

How is your C#/C++/Java? :)

  • 1
    Probably about the same as your Swahili...;) – Rob Dec 18 '13 at 20:56
  • 3
    I am a master at saying one thing in Swahili, 'Kuwa na Krismasi njema'. – Brian Dec 18 '13 at 21:00
  • 1
    I suppose I should respond with "na furaha ya mwaka mpya" – Rob Dec 19 '13 at 9:20
  • 1
    "But, boiled down, all they really are is a collection of web services" - Do you have evidence of this? While plausible, is also seems likely plausible that they are part of a proprietary API/protocol which depends on a valid Steam client session. This means you would have to reverse engineer the complete communications process between the Steam client and the Steam servers(!). – Zero3 Jan 10 '14 at 17:33
  • 2
    @Brian: Sorry, perhaps I was a little unclear in my comment. What I intended to say is: You seem to give the impression that the data probably is readily available through a (non-)public "web service". My point is that it might as well be that the "service" is part of a larger proprietary Steam protocol whose third-party usage would require significant reverse-engineering and probably impersonation of a Steam client. If this is the case, I'd say that we are moving quite far away from the common definition of the term "web service". – Zero3 Jan 10 '14 at 20:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.