The alternative format uses 0x0b as END instead of 0x08, otherwise it exactly the same. I have no idea why that is. Is it a programming typo, 0x0B looks like 0x08? Maybe it's supposed to be different. Say a format for on disk, rather than just data interchange over the steam network. Explains the CRC32, but why change the format?
Samples files:
0x08 - [steamdir]/appcache/appinfo.vdf
0x0B - [steamdir]/userdata/[account id]/570/remote/cfg/chat.cfg
File starts with VBKV, followed by 4 bytes CRC32 of the rest, then binary vdf
I think 0x0B might refer be used for object instances, and 0x08 for keyvalue. Essentially for (de)serialization of an object, like a protobuf message, to binary kv
The alternative format uses
0x0b
as END instead of0x08
, otherwise it exactly the same. I have no idea why that is. Is it a programming typo,0x0B
looks like0x08
? Maybe it's supposed to be different. Say a format for on disk, rather than just data interchange over the steam network. Explains the CRC32, but why change the format?Samples files:
0x08
-[steamdir]/appcache/appinfo.vdf
0x0B
-[steamdir]/userdata/[account id]/570/remote/cfg/chat.cfg
File starts withVBKV
, followed by 4 bytes CRC32 of the rest, then binary vdf