WDB files (Warcraft DataBase files, or .wdb) are files created by World of Warcraft to cache data retrieved from its game servers.
WDB files regroup data downloaded in chunks. The data inside is ordered from first to last downloaded.
The header is of 16 bytes for pre-1.6 files, and 20 bytes for post-BC files:
- Signature : 4-bytes char signature
- Build: 4 bytes int identifying the build
- Locale: 4 bytes char identifying the locale, inversed (i.e.: SUne)
- Unknown: Unknown 4 bytes int, added in 1.6 (maybe first compatible client build for this db version. to be veryfied)
- Unknown: Unknown 4 bytes int, added in 1.6 (region code, to be veryfied)
- Unknown: Unknown 4 bytes, added in 18.104.22.16864, always null
Signatures, just like locales, are reversed in the header.
|BDIW||Itemcache.wdb||Warcraft Item Database|
|BDNW||Itemnamecache.wdb||Warcraft Item Name Database|
|BOGW||Gameobjectcache.wdb||Warcraft Game Object Database|
|BOMW||Creaturecache.wdb||Warcraft MOB Database|
|CPNW||Npccache.wdb||Warcraft NPC Database|
|TSQW||Questcache.wdb||Warcraft Quest Database|
|XTIW||Itemtextcache.wdb||Warcraft Item Text Database|
|XTPW||Pagetextcache.wdb||Warcraft Page Text Database|
The EntryLength is the length in bytes of the cached row. It is always found in the second column and helps the game determinate corrupted cache entries as well as optimizing the reading process. Rows with an incorrect EntryLength are cleared on log in.
All WDB files end with 8 times \x00.