Skip to content
/ DBCD Public

C# library for reading DBC/DB2 database files from World of Warcraft

License

Notifications You must be signed in to change notification settings

wowdev/DBCD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

12feeb9 · Apr 8, 2025
Nov 12, 2024
Nov 12, 2024
Jan 6, 2025
Apr 8, 2025
Apr 8, 2025
Apr 27, 2019
Aug 8, 2024
Apr 8, 2025
Aug 12, 2024
Jan 24, 2020
Aug 12, 2024
Aug 12, 2024

Repository files navigation

DBCD

C# library for reading and writing DBC/DB2 database files from World of Warcraft with built-in support for WoWDBDefs definitions.

Features

  • Reading of WDBC (.dbc) and WDB2-WDB6, WDC1-WDC5 (.db2).
  • Experimental writing (WDC3 works, the others likely will too but are largely untested with actual WoW clients).
  • Applying of hotfixes (DBCache.bin).

Projects

DBCD

Contains the glue between DBCD.IO, DBDefsLib and the providers.

DBCD.IO

Contains the actual reading and writing of DBC/DB2 files.

Limitations

  • (Reading/Writing) Relies on WoWDBDefs (DBDs) for table structures, can not load tables without DBDs (yet).
  • (Writing) Does not support writing out DB2s with multiple sections.

Example Usage

// A FilesystemDBCProvider to load DBCs/DB2s from a directory on disk. 
var localDBCProvider = new FilesystemDBCProvider("D:/DBC");

// A FilesystemDBDProvider to load DBDs from a folder, you can also use GithubDBDProvider to download them directly from GitHub.
var localDBDProvider = new FilesystemDBDProvider("D:/WoWDBDefs/definitions");

// A new DBCD instance with the specified DBC/DBD provider.
var dbcd = new DBCD(localDBCProvider, localDBDProvider);

// Loads Map.db2 (note the table name without extension) for build 11.0.2.56044 (build might be needed to load correct definition).
var storage = dbcd.Load("Map", "11.0.2.56044");

// Get the row with ID 2552.
var row = storage[2552];

// Outputs "Khaz Algar (Surface)".
Console.WriteLine((string)row["MapName_lang"]);