I'm aware Steam stores shortcuts in shortcuts.vdf, and I'm aware that this has a section for tags. The actual tags are formatted like this:


When you edit the collections on Steam, this file gets updated and tags get appended as expected.

However if you manually insert your own tags into this file, such as by writing out your own entry into this file with Bash, or using the Python VDF library, Steam will not pick these up as collections. It does not overwrite anything in this file, and adding new collections will append as expected on top of the shortcuts you inserted yourself. Adding to the example above, if I were to add the Lutris collection to my Non-Steam Game via the Steam Client, the tags section of shortcuts.vdf would then look as follows:


But Steam would only display Lutris in the client, despite the shortcuts.vdf containing multiple. Steam will update shortcuts.vdf each time you add a new collection to a shortcut, but it appears as though Steam is not reading the collections to display from this file.

For regular Steam games, there is a leveldb file that contains information about which games are in which collections. However, it does not appear that Non-Steam Games are set here. Modifying the collections in Steam does not update any Local Storage files from what I have observed.

My question is: When you select a collection for a Non-Steam Game, where does Steam store that information?

  • I discovered that Steam stores information about Collections + other information previously stored in shortcuts.vdf, in localconfig.vdf, located in the same dir as shortcuts.vdf file. I don't have much to add yet because I'm still testing to find more info, but collections are stored under user-collections which is an escaped JSON string in this file. This string also stores whether a game is hidden.
    – Eamonn
    Commented Nov 2, 2023 at 0:32
  • Information about the Steam Overlay and a VR flag is stored under the "Apps" block in this file, with the signed AppID, controlled by OverlayAppEnable and DisableLaunchInVR. Unlike collections, this is not updated in shortcuts.vdf, and the value is ignored. Although if omitted, Steam deems the shortcuts.vdf file invalid, and will erase it, so it must still be included in the shortcut entry, though it can have \x00 or \x01. The AllowDesktopConfig and OpenVR fields in shortcuts.vdf are still updated by their corresponding Steam Properties settings.
    – Eamonn
    Commented Nov 2, 2023 at 0:36
  • The way tags are stored in localconfig.vdf are under the user-collections JSON escaped string, however some collections (very old tags, 5+ years old) will use an encoded format uc-<encoded>, whereas newer ones will use from-tag-tagname. I don't know how these strings are encoded, but if this was known. you could figure out which tag format you need to use for user-collections by encoding the string, and grepping a LevelDB log file ~/.local/share/Steam/userdata/<id>/7/remote/sharedconfig.vdf for both user-collections.<encoded> and user-collections.from-tag-<tagname>.
    – Eamonn
    Commented Nov 2, 2023 at 2:11


You must log in to answer this question.

Browse other questions tagged .