An AzerothCore (WotLK 3.3.5a) module that lets any race play any class, including the combinations Blizzard never shipped: Tauren Paladin, Human Shaman, Blood Elf Warrior, and more.
Stock AzerothCore allows 62 race/class pairs. mod-uac adds 38 more, for all 100 playable tiles on the character creation screen.
Everything the module does is revertable, and every file it ships is either human-readable SQL or generated from known sources. No mystery binaries on your server.
- AzerothCore WotLK 3.3.5a, with the ability to rebuild the server (standard module workflow)
- Access to the client
Data/folder of anyone connecting to your server (one small patch file)
cd /path/to/azerothcore-wotlk/modules
git clone https://github.com/berubejd/mod-uac.gitRe-run CMake and rebuild, then restart as usual. The default module build (MODULES=static)
picks up all modules/mod-* directories automatically.
On the next worldserver start, AzerothCore's database updater automatically applies the module's SQL. No manual database steps are needed.
In worldserver.conf:
PlayerStart.CustomSpells = 1Stock AzerothCore defaults this to 0. Without it, Night Elf and Draenei Warlocks are created
without Summon Imp, and the optional level-1 hunter pet feature won't work.
Pick one of the three checked-in patch files based on your client:
| Your client | Use this file |
|---|---|
| Official HD 3.3.5a client | client-patch/enhanced/patch-z.mpq |
| Stock / reference 3.3.5a client | client-patch/standard/patch-z.mpq |
| Heavily customized client (custom outfit or DBC patches) | client-patch/unlock-only/patch-z.mpq |
Copy it into the client's Data/ folder, keeping the name:
client-patch/enhanced/patch-z.mpq -> <WoW>/Data/patch-z.mpq
Two gotchas:
- If
patch-z.mpqis already taken, rename the mod-uac file to any freepatch-<letter>.mpqslot (e.g.patch-y.mpq). Names likepatch-uac.mpqare not loaded by a stock 3.3.5a client. It must be a single letter. - Windows is case-insensitive:
patch-A.mpqandpatch-a.mpqare the same file. Don't reuse a letter an existing HD or third-party patch already occupies.
Not sure which patch to pick, or want to know exactly what each one changes? See the Operator Guide.
- Start the worldserver and watch the log. The DB updater should list the
mod_uac_*.sqlfiles on first boot. - Log in with the patched client and open character creation. All race/class tiles should be selectable.
- Create an off-race character (e.g. Tauren Paladin). It should have starter gear, a starter-zone class trainer, and (for shamans) faction-appropriate totem models.
- New combos don't appear on the creation screen. The client patch isn't loading. Check
that the filename is
patch-<single letter>.mpqand that it's in the rightData/folder. - Tiles appear but creation is rejected. The server SQL didn't apply. Check the worldserver log for mod-uac updates.
- Night Elf / Draenei Warlock has no imp.
PlayerStart.CustomSpells = 1wasn't set before the character was created. - Shaman totems are invisible.
mod_uac_player_totem_model.sqldidn't apply; see the server SQL check above.
- Run the paired revert files in
data/sql/db-uninstall/against the world database (any order; the files are independent). - Remove the mod-uac
patch-*.mpqfrom the clientData/folder.
Existing off-race characters are not deleted; the combos simply stop being creatable.
- New combinations are community expansions, not Blizzard-shipped pairs. Once created they play like normal characters.
- Starter class trainers are added to each race's starting zone for the new combos, but some class quest chains still require travel to their reference zones. Details in the Operator Guide.
- An optional extra lets all hunters tame pets at level 1 (later-expansion quality of life). If you would like to remove that functionality, please eee the Operator Guide.
| Doc | For |
|---|---|
| Operator Guide | Running mod-uac on customized servers: SQL reference, patch internals, quest policy, custom DBC baselines, trainer overrides |
| Development Guide | Regenerating artifacts, generator tooling, snapshots, QA checklist |
| Engineering Implementation | Full architecture, combo matrix, design rationale, and phasing |
