WDB: Difference between revisions

From wowdev
Jump to navigation Jump to search
 
(22 intermediate revisions by 4 users not shown)
Line 1: Line 1:
The WDB files are found inside the WDB folder. The client caches data it receives from the server. This is mainly done to reduce network traffic.
The WDB files are found inside the WDB folder. The client caches data it receives from the server. This is mainly done to reduce network traffic.
Not all WDB caches are saved to disk. This is defined in the client by the <tt>DBCache</tt>'s constructor which contains a persistent parameter.


== Header ==
== Header ==
Line 5: Line 7:
*WDB files < 1.6: Header length is 16 bytes
*WDB files < 1.6: Header length is 16 bytes
*WDB files >=1.6: Header length is 20 bytes (Verified till 1.9.4)
*WDB files >=1.6: Header length is 20 bytes (Verified till 1.9.4)
*WDB files >=3.0.8-9506: Header length is 24 bytes  
*WDB files >=3.0.8-9506: Header length is 24 bytes


  '''Offset Type Description'''
  '''Offset Type Description'''
  0x00 char[4] Identifier, depends on the WDB file, will be explained later
  0x00 char[4] Identifier - depends on the WDB file, will be explained later (reversed!)
  0x04 uint32 Client Version - Version of the client (lo -> hi encoding)
  0x04 uint32 Client Version - Version of the client (lo -> hi encoding)
  0x08 char[4] Client Local - The Locale of the client
  0x08 char[4] Client Locale - The Locale of the client (reversed!) {{Template:Sandbox/VersionRange|min_expansionlevel=1|min_build=1.6.0}}
0x0C ???? 4 bytes unknown
  0x0C uint32 Record Size - Size of the internal structure not of the file contents
0x10 ???? 4 bytes unknown
  0x10 uint32 Record Version - A manually updated versioning field - except for WoWCache.wdb which is read from <code>WardenCachedModule::Version</code>
0x15 ???? 4 bytes unknown (Beginning with version 1.6 and later)
  0x14 uint32 Cache Version - A packet based versioning field set via SMSG_CLIENTCACHE_VERSION {{Template:Sandbox/VersionRange|min_expansionlevel=3|min_build=3.0.8}}
0x18 ???? 4 bytes unknown (Beginning with version 3.0.8-9506 )
 
  '''Column Field Type Notes'''
1 Signature String 4-byte string identifying the file (reversed!)
  2 Version Integer 4-byte integer identifying the client version
  3 Language String 4-byte string identifying the language (reversed!)
4 Row Length Integer Something to do with row length, there is no consistent way of retrieving it as of yet.  
5 Unknown Integer 4-bytes
6 Unknown2 Integer 4-bytes


== WDB files ==
== WDB files ==


  '''File Signature'''  
  '''File Signature'''  
  [[CreatureCache.wdb]] WMOB  
[[ArenaTeamCache.wdb]]        WATM      {{Template:Sandbox/VersionRange|min_expansionlevel=3|max_expansionlevel=4}}
  [[GameObjectCache.wdb]] WGOB  
[[BattlePetNameCache.wdb]]    WBPN      {{Template:Unverified|{{Template:Sandbox/VersionRange|min_expansionlevel=5|max_expansionlevel=6}} Not seen > 6.2.4}}
  [[QuestCache.wdb]] WQST
  [[CreatureCache.wdb]]         WMOB  
  [[ItemCache.wdb]] WIDB  
[[DanceCache.wdb]]            WDAN      {{Template:Sandbox/VersionRange|min_expansionlevel=3|max_expansionlevel=4}}
  [[ItemNameCache.wdb]] WNDB  
  [[GameObjectCache.wdb]]       WGOB  
  [[ItemTextCache.wdb]] WITX  
  [[GuildStatsCache.wdb]]       WGLD
  [[NPCCache.wdb]] WNPC  
  [[ItemCache.wdb]]             WIDB       {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
  [[PageTextCache.wdb]] WPTX  
  [[ItemNameCache.wdb]]         WNDB       {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
  [[WOWCache.wdb]] WRDN
  [[ItemTextCache.wdb]]         WITX  
  [[ArenaTeamCache.wdb]]
[[NameCache.wdb]]              WNAM
  [[NPCCache.wdb]]               WNPC  
  [[PageTextCache.wdb]]         WPTX  
  [[PetitionCache.wdb]]          WPTN
[[PetNameCache.wdb]]          WPNM
[[QuestCache.wdb]]            WQST
[[RealmCache.wdb]]             WRLM      {{Template:Unverified|{{Template:Sandbox/VersionRange|min_expansionlevel=5|max_expansionlevel=6|max_build=6.0.1.18179}} Not seen ≥ 6.2.3}}
  [[WOWCache.wdb]]              WRDN
[[Category:Format]]

Latest revision as of 13:42, 23 November 2020

The WDB files are found inside the WDB folder. The client caches data it receives from the server. This is mainly done to reduce network traffic.

Not all WDB caches are saved to disk. This is defined in the client by the DBCache's constructor which contains a persistent parameter.

Header

  • WDB files < 1.6: Header length is 16 bytes
  • WDB files >=1.6: Header length is 20 bytes (Verified till 1.9.4)
  • WDB files >=3.0.8-9506: Header length is 24 bytes
Offset 	Type 		Description
0x00 	char[4] 	Identifier - depends on the WDB file, will be explained later (reversed!)
0x04 	uint32 		Client Version - Version of the client (lo -> hi encoding)
0x08 	char[4] 	Client Locale - The Locale of the client (reversed!) ≥ Vanilla (1.6.0)
0x0C 	uint32 		Record Size - Size of the internal structure not of the file contents
0x10 	uint32 		Record Version - A manually updated versioning field - except for WoWCache.wdb which is read from WardenCachedModule::Version
0x14 	uint32 		Cache Version - A packet based versioning field set via SMSG_CLIENTCACHE_VERSION ≥ Wrath (3.0.8)

WDB files

File 			Signature 
ArenaTeamCache.wdb         WATM       Wrath … Cata
BattlePetNameCache.wdb     WBPN       Mists … WoD Not seen > 6.2.4
CreatureCache.wdb          WMOB 
DanceCache.wdb             WDAN       Wrath … Cata
GameObjectCache.wdb        WGOB 
GuildStatsCache.wdb        WGLD
ItemCache.wdb              WIDB       ≤ Wrath
ItemNameCache.wdb          WNDB       ≤ Wrath
ItemTextCache.wdb          WITX 
NameCache.wdb              WNAM
NPCCache.wdb               WNPC 
PageTextCache.wdb          WPTX 
PetitionCache.wdb          WPTN
PetNameCache.wdb           WPNM
QuestCache.wdb             WQST 
RealmCache.wdb             WRLM       Mists … WoD (6.0.1.18179) Not seen ≥ 6.2.3
WOWCache.wdb               WRDN