LostDragonist/steam-library-setup-tool

Creating new libraries doesn't work with Steam Beta

Closed this issue · 0 comments

Steam changed the format and files used in the Steam Beta (again) so everything is broken.

There are two libraryfolders.vdf, one in \config and one in \steamapps. The one in \config appears to be the master though it's probably better to just write the same things to both of them.

The minimum content of libraryfolders.vdf for the Beta is

"libraryfolders"
{
    "contentstatsid"		"6865684600185564987"
    "1"
    {
        "path"		"D:\\Games\\Steam"
        "label"		""
        "contentid"		"4387599227550003888"
        "totalsize"		"6001173458944"
        "apps"
        {
        }
    }
}

The minimum content of libraryfolders.vdf for the non-Beta is

"libraryfolders"
{
    "contentstatsid"		"6865684600185564987"
    "1"
    {
        "path"		"D:\\Games\\Steam"
        "label"		""
        "mounted"		"1"
        "contentid"		"4387599227550003888"
    }
}

Note that it appears that contentid and size must be filled out on the Beta. On the non-beta, mounted must be filled out and 1 for the library to be seen. Adding mounted to the Beta appears to be safe and the item is just removed. Therefore, it's probably best to fill out all items and let Steam remove what it considers invalid.

For the contentid, the tool should go check for the presence of a libraryfolder.vdf in the Steam library folder. If this file is present, the contentid in the two files must match or Steam will consider the library invalid. If the file is not present, generating a random number for the contentid is probably sufficient though (1) I have no clue what the valid range is and (2) care must be taken to not collide with other contentid values (I assume).

Additional testing shows that the contentid in the libraryfolder.vdf overwrites the contentid in the libraryfolders.vdf files. However if the libraryfolder.vdf is missing, the contentid in the libraryfolders.vdf is written to the new libraryfolder.vdf. Without a valid contentid in the libraryfolders.vdf, the Steam library will be considered invalid. A value of 1 is sufficient.