Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

File Format Reference

This section contains detailed documentation for all World of Warcraft file formats supported by warcraft-rs.

Categories

Archives

Archive formats for storing and compressing game assets.

  • MPQ - Blizzard’s main archive format

World Data

Formats for terrain, maps, and world geometry.

  • ADT - Terrain tiles with height, textures, and objects
  • WDL - Low-resolution terrain for distant views
  • WDT - World definition tables

Graphics & Models

3D models, textures, and visual assets.

  • BLP - Texture format with DXT compression
  • M2 - Animated 3D models (characters, creatures, props)
  • WMO - Large static world objects (buildings, dungeons)

Database

Client-side data storage.

  • DBC - Database files with game data tables

Format Overview

FormatTypeDescriptionTypical Size
MPQArchiveCompressed archive containing other files10MB - 4GB
ADTTerrainMap tile with terrain mesh and textures1-5MB
WDLTerrainLow-detail world map100-500KB
WDTMap InfoMap configuration and ADT references10-50KB
BLPTexture2D images with compression and mipmaps10KB - 2MB
M2Model3D models with animations50KB - 10MB
WMOModelLarge world objects100KB - 50MB
DBCDatabaseTabular data storage1KB - 10MB

Version Compatibility

Different WoW versions use different format versions:

  • Classic (1.12.x): Original formats
  • TBC (2.4.3): Some format updates, new DBC columns
  • WotLK (3.3.5): Major M2 updates, new terrain features
  • Cataclysm (4.3.4): Terrain streaming, updated formats
  • MoP (5.4.8): Latest supported version

Quick Reference

Each crate has its own parsing approach. See Traits & Interfaces for the different patterns used across crates.

Tools & Utilities

warcraft-rs provides CLI subcommands for each format:

# Extract MPQ archive
warcraft-rs mpq extract archive.mpq --output output/

# Convert BLP to PNG
warcraft-rs blp convert texture.blp texture.png

# Export DBC as CSV
warcraft-rs dbc export Spell.dbc --format csv