Skip to content
erri120 edited this page Jan 17, 2023 · 4 revisions

Steam uses Manifest files to store information, however these files are localized to each Library folder. A list of all library folders is stored in the steamapps\libraryfolders.vdf file which can be found inside the Steam installation folder.

Steam has the following default installation folders:

  • (Windows) inside the x86 Program Files folder: C:\Program Files (x86)\Steam
  • (Linux) inside the XDG_DATA_HOME folder: ~/.local/share/steam
  • (Linux) inside the home folder: ~/.steam
  • (Linux) inside the .local folder: ~/.local/.steam

On Windows the path to the installation folder is also saved inside the registry key HKEY_CURRENT_USER\Software\Valve\Steam and the value SteamPath. On Linux you need to check these "common" install locations. They might change from user to user, so make sure to look at all of them or provide an option to set the path.

Inside the Steam installation folder is the file steamapps\libraryfolders.vdf:

"libraryfolders"
{
	"0"
	{
		"path"		"C:\\Program Files (x86)\\Steam"
		"label"		""
		"contentid"		"1616900521946793171"
		"totalsize"		"0"
		"update_clean_bytes_tally"		"1166255681"
		"time_last_update_corruption"		"0"
		"apps"
		{
			"228980"		"404262992"
			"431960"		"551802448"
		}
	}
	"1"
	{
		"path"		"M:\\SteamLibrary"
		"label"		""
		"contentid"		"5393764431939341339"
		"totalsize"		"3000590397440"
		"update_clean_bytes_tally"		"218462908174"
		"time_last_update_corruption"		"1635177298"
		"apps"
		{
			"8930"		"9235434479"
			"11020"		"776953234"
			"235460"		"26431508134"
			"310560"		"41683047578"
			"460790"		"13841643176"
			"527230"		"2481581267"
			"601150"		"36376736231"
			"633060"		"758943020"
			"646570"		"541513970"
			"791330"		"693717502"
			"1061910"		"13250298903"
			"1085660"		"107550504047"
			"1145360"		"11899621797"
			"1222680"		"36749019616"
			"1292690"		"586845250"
			"1619750"		"1638728245"
			"1942280"		"134015296"
			"2083070"		"1832920793"
		}
	}
	"2"
	{
		"path"		"E:\\SteamLibrary"
		"label"		""
		"contentid"		"6734528685854492248"
		"totalsize"		"500090007552"
		"update_clean_bytes_tally"		"58803665297"
		"time_last_update_corruption"		"0"
		"apps"
		{
			"363890"		"3026015338"
			"374320"		"26649084250"
			"524220"		"43318634773"
			"570940"		"7366427395"
			"782330"		"95565268921"
			"814380"		"14960771294"
			"1096900"		"1360241073"
			"1113560"		"25589933446"
			"1237970"		"68365267981"
			"1245620"		"52481220760"
		}
	}
	"3"
	{
		"path"		"F:\\SteamLibrary"
		"label"		""
		"contentid"		"3100313048779644811"
		"totalsize"		"500104687616"
		"update_clean_bytes_tally"		"37490365800"
		"time_last_update_corruption"		"0"
		"apps"
		{
			"22380"		"9907238641"
			"230410"		"26546191365"
			"262060"		"3984039082"
			"281990"		"16426889871"
			"292030"		"61513260285"
			"365670"		"946648920"
			"489830"		"15345519558"
			"502500"		"65663762225"
			"1110910"		"14940657110"
			"1946160"		"209647143"
			"1946180"		"73469528"
			"2007530"		"209495616"
		}
	}
	"4"
	{
		"path"		"G:\\SteamLibrary"
		"label"		""
		"contentid"		"5934689261387036801"
		"totalsize"		"240055742464"
		"update_clean_bytes_tally"		"0"
		"time_last_update_corruption"		"0"
		"apps"
		{
		}
	}
}

This file uses Valve's custom Key-Value format and contains a list of all library folders. Note: the libraries listed in the file might not exist anymore. Also make sure that you include the default library, if it's not listed in the file.

Each library folder contains a steamapps folder, which holds all the manifest files. These App-Manifests use the .acf extension and are stored in another custom Key-Value format:

"AppState"
{
	"appid"		"782330"
	"Universe"		"1"
	"LauncherPath"		"C:\\Program Files (x86)\\Steam\\steam.exe"
	"name"		"DOOM Eternal"
	"StateFlags"		"4"
	"installdir"		"DOOMEternal"
	"LastUpdated"		"1669051495"
	"SizeOnDisk"		"95565268921"
	"StagingSize"		"0"
	"buildid"		"8551212"
	"LastOwner"		"76561198110222274"
	"AutoUpdateBehavior"		"0"
	"AllowOtherDownloadsWhileRunning"		"0"
	"ScheduledAutoUpdate"		"0"
	"InstalledDepots"
	{
		"782332"
		{
			"manifest"		"6157149951972263437"
			"size"		"492528532"
		}
		"782333"
		{
			"manifest"		"5064054091503730941"
			"size"		"1054"
		}
		"782334"
		{
			"manifest"		"2305285962735833965"
			"size"		"3179376417"
		}
		"782335"
		{
			"manifest"		"8036687920936023470"
			"size"		"1867318500"
		}
		"782338"
		{
			"manifest"		"4899404039317730890"
			"size"		"249"
		}
		"782336"
		{
			"manifest"		"6996738289805123505"
			"size"		"80804133251"
		}
		"782337"
		{
			"manifest"		"7595167059955801744"
			"size"		"9196824688"
		}
		"782339"
		{
			"manifest"		"283869667042213685"
			"size"		"25087533"
		}
	}
	"InstallScripts"
	{
		"782332"		"installscript.vdf"
	}
	"SharedDepots"
	{
		"228988"		"228980"
		"228990"		"228980"
	}
	"UserConfig"
	{
		"language"		"english"
	}
	"MountedConfig"
	{
		"language"		"english"
	}
}

Note: the installdir value is the folder name of the game installation folder inside common. The manifest above is from the library E:\SteamLibrary and the installdir value is DOOMEternal, meaning the final installation path for the game is E:\SteamLibrary\steamapps\common\DOOMEternal.

Other Implementations

Clone this wiki locally