Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wxl-extended-dbc

Add custom DBC rows to WoW without replacing the original .dbc files.

You ship small add-on files named like CreatureDisplayInfo.dbc1-yourmod. The game loads the normal table first, then layers your changes on top. Same idea on the client (WXL) and on an AzerothCore server (optional module in this repo).

Folder What it is
Root (src/, wxl.json) Client extension (install with wxl-core)
server-files/ Server module + small AzerothCore patch

If the server needs your new rows too, use the same files and the same IDs on both sides.


Do I need the server part?

Maybe not. Many mod changes are client-only.

Client only

Install the extension and put your add-on DBC files in the client patch. No server work.

Good for things players see or hear but the server does not look up in DBC:

  • Custom creature models (display info) for an NPC that already exists on the server
  • Spell animations, icons, visuals (the spell ID already works server-side)
  • Item icons and models in bags (the item ID already exists)
  • Sounds, cinematics

Example: NPC 90001 is already in your database. You add a new look on the client only. Players see the new model; the server keeps running as before.

Client + server

You need the server module when you add or change data the server actually reads from DBC:

  • New spells (not just how they look)
  • New items with stats the server checks
  • New creatures (the template itself, not just the model)
  • Achievements, zones, maps the server validates

Example: You invent spell ID 81234. The client needs it to show the spell. Without the server module, worldserver will not know that spell and things break.

What to install on the server: see server-files/README.md (one-time core patch, mod-wxl-dbc, copy files to data/dbc-continuations/, rebuild).

Quick check: Is this only cosmetics for something that already exists? Client only. Did you invent a new ID the server must understand? Client + server.


How the files are named

Put files under DBFilesClient/ like any other patch.

CreatureModelData.dbc                  ← vanilla table (unchanged)
CreatureModelData.dbc1-battlemon       ← your add-on rows
CreatureDisplayInfo.dbc3-tmog         ← tier 3, another project

The part after .dbc is a tier (19) and a project name (letters, numbers, -, _).

If two add-ons touch the same row ID, later tiers win, then manifest order, then project name A–Z. Backup files (.bak, .old, etc.) are ignored.

Your add-on files live next to the base .dbc, not inside it. Replacing Foo.dbc in patch-z does not remove someone else's Foo.dbc1-othermod unless you ship a file with that exact name too.


Folder patch vs real MPQ

WoW reads everything from Data/. Higher patch letters win when two files claim the same path (patch-z beats patch-enUS).

You can lay out that data two ways:

Folder patch (good for development)

patch-z.mpq is a folder, not a zip-like archive:

Data/
  patch-z.mpq/
    DBFilesClient/
      CreatureDisplayInfo.dbc1-battlemon
      CreatureModelData.dbc1-battlemon

Drop files in, relaunch, test. The extension finds add-on DBC files automatically. You do not need a manifest unless you care about exact load order between mods.

Real MPQ file (good for releasing to players)

patch-z.mpq is a single archive file players drop in Data/:

patch-z.mpq  (archive)
  wxl-dbc.manifest
  DBFilesClient/
    CreatureDisplayInfo.dbc1-battlemon
    ...

The extension cannot peek inside a closed archive to discover file names. For a real MPQ you must include wxl-dbc.manifest (see below). Models and textures go in the same MPQ with the usual paths.

The manifest (wxl-dbc.manifest)

A plain text file: one add-on DBC path per line. Lines starting with # are comments.

When you need it

Patch type Manifest
Folder (Data/patch-z.mpq/) Optional — files are found automatically
Real MPQ archive Required — lists every *.dbc1-**.dbc9-* file

Where to put it (any of these; earlier locations win for ordering):

  • wxl-dbc.manifest
  • Data/wxl-dbc.manifest
  • Data/<your-patch-folder>/wxl-dbc.manifest

Example (copy examples/wxl-dbc.manifest into your MPQ or patch folder):

# My mod — add-on DBC paths only (not base Something.dbc)
# Data/ prefix is optional

DBFilesClient/CreatureModelData.dbc1-battlemon
DBFilesClient/CreatureDisplayInfo.dbc1-battlemon
DBFilesClient/SpellVisual.dbc1-battlemon

# Tier 2 loads after tier 1 for the same table
DBFilesClient/SpellVisual.dbc2-battlemon-hotfix

Lines are merged in list order within the same tier. Across mods at the same tier, manifest order beats project name A–Z.

Server: AzerothCore does not use MPQs. Copy the same add-on DBC files into data/dbc-continuations/. Folder vs MPQ is a client-only question.


Shipping a mod to others

Release (MPQ): Build one patch MPQ with the manifest, your *.dbc1-yourproject files, and assets. Users put it in Data/. No CSV tools on their end.

Development (folder): Keep a Data/patch-z.mpq/ folder in your client tree. Edit files, relaunch, repeat. Pack to MPQ when you are ready to ship.

Pick ID ranges per project so two mods do not reuse the same row IDs.


Build the client extension

This repo builds as part of wxl-core, not by itself.

  1. Put it at wxl-core/extensions/wxl-extended-dbc/
  2. Build wxl-core (Release)
  3. Copy wxl-extended-dbc.dll to <WoW>/Extensions/wxl-extended-dbc/

Cloned this repo alone? Copy or symlink it into your wxl-core tree first.


Server (AzerothCore)

See server-files/README.md.

Copy the module into modules/mod-wxl-dbc/, apply the small core patch, add your continuation files under data/dbc-continuations/, rebuild worldserver.

About

No description or website provided.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages