An enhanced All Races All Classes (ARAC) system for AzerothCore (WotLK 3.3.5a) featuring granular combination control, lore-friendly default expansions, complete starter data seeding, and included client MPQ patch.
The biggest limitation of the original / legacy ARAC module is that it is strictly all-or-nothing: installing it forces all 100 race/class combinations onto your realm simultaneously, with zero control to disable combinations that break your server's lore or vision (such as Gnome Druids or Tauren Rogues).
mod-arac-enhanced completely fixes this:
- Granular Enable / Disable Control: You have full control in
arac_enhanced.confto toggle any individual combination on (1) or off (0) without needing to edit DBC files or recompile code. - Curated Lore Defaults: Comes pre-configured out of the box with natural, lore-aligned combinations enabled (like Human Hunters, Tauren Paladins/Priests, Dwarf Shamans, Undead Paladins, and Night Elf Mages), while keeping unconventional combinations disabled by default.
- Server-Side Validation: The server actively validates character creation requests against your active configuration matrix, instantly blocking any disabled combination.
- Ready-to-Use Client Patch: Includes pre-packaged
client-patch/Patch-A.MPQthat unmasks class buttons and provides 3D preview models on the character creation screen.
| Feature | Legacy ARAC | mod-arac-enhanced |
|---|---|---|
| Combination Control | β All-or-nothing (forced 100 combos) | β Granular per-combination toggles (enable/disable any combo) |
| Default Balance | β Curated lore-friendly combinations enabled by default | |
| Configuration Customization | β No config file (hardcoded) | β
Clean arac_enhanced.conf with 1/0 switches for every combo |
| Starter Data Integration | β Complete starter gear, spells, stats, and action bars | |
| Server-Side Security | β None (vulnerable to packet injection) | β Strict server validation prevents creating disabled combos |
| Client Patch Included | β
Included pre-compiled Patch-A.MPQ and raw DBC files |
The module synchronizes both server validation and client display seamlessly:
- Configure Your Realm: In
arac_enhanced.conf, toggle any combination on (1) or off (0), or setARAC.AllowAll = 1for everything. - Build the Client Patch: Run
tools/build_patch.bat(ornode tools/build_dbc.js). It reads your configuration, compilesCharBaseInfo.dbc, and generatesPatch-A.MPQmatching your exact settings. - Distribute to Players: Place
Patch-A.MPQin the clientData/folder. The client character creation screen dynamically activates buttons and 3D preview models only for allowed combinations. - Server Enforces Rules: When a player clicks "Create Character", the server hook (
AccountScript::CanAccountCreateCharacter) checks your configuration matrix. If a player attempts to create a disabled combination (using an old patch or packet injection), the server immediately blocks it and returnsCHAR_CREATE_DISABLED. - Clean Database: SQL files run in order (
00_arac_cleanup_rogue_races.sql->01_arac_starter_data.sql->02_arac_totems_and_spells.sql), ensuring zero console errors on server startup.
These combinations are enabled by default (= 1) because they naturally align with Warcraft lore and expansion class progressions:
- Humano: Cazador (Human Hunter)
- Enano: ChamΓ‘n, Mago, Brujo (Dwarf Shaman, Mage, Warlock)
- Elfo de la Noche: Mago, Brujo (Night Elf Mage, Warlock)
- Gnomo: Sacerdote, Cazador (Gnome Priest, Hunter)
- Draenei: Brujo (Draenei Warlock)
- Orco: Mago (Orc Mage)
- No-muerto: Cazador, PaladΓn (Undead Hunter, Paladin)
- Tauren: PaladΓn (Caminasol / Sunwalker), Sacerdote (Vidente / Seer)
- Troll: Brujo, Druida (Troll Warlock, Druid)
- Elfo de Sangre: Guerrero (Blood Elf Warrior)
(Any combination can be individually enabled or disabled in arac_enhanced.conf).
For newly created characters to enter the world with their starter clothes, shirts, pants, boots, and starter weapons:
- Copy the DBC files from
client-patch/patch-contents/DBFilesClient/into your server'sdata/dbc/folder:CharStartOutfit.dbcCharBaseInfo.dbcSkillRaceClassInfo.dbc(Note: runningnode tools/build_dbc.jswill automatically sync these files into your server'sdata/dbc/folder if detected).
To see all race/class buttons and 3D preview models on the character creation screen:
-
Copy the generated patch into your World of Warcraft 3.3.5a client directory:
- For standard or custom/HD clients, place it inside your locale folder at highest priority:
WoW-Directory/Data/enUS/patch-enUS-Z.MPQ(Or your respective locale, e.g.
Data/esES/patch-esES-Z.MPQ).- Or place in base
Data/:
WoW-Directory/Data/Patch-A.MPQ -
Why
patch-enUS-Z.MPQ? In WoW 3.3.5a, files inData/<locale>/take precedence over baseData/, and patches load alphabetically. If you use HD repacks that contain patches likepatch-enUS-M.MPQorpatch-Z.MPQ, naming your patchpatch-enUS-Z.MPQin the locale directory guarantees your custom combinations take highest priority. -
Clear your client
Cache/WDBfolder if you previously opened character creation. -
Start the game client. When creating characters, all enabled combinations will show proper 3D models and spawn with their full starter gear and weapons.
Whenever you modify arac_enhanced.conf to enable or disable specific combinations, you can sync the client patch:
- Run the build tool from the module directory:
- On Windows: double-click
tools/build_patch.bator run:node tools/build_dbc.js
- With custom patch name or output directory:
node tools/build_dbc.js --patch-name=patch-enUS-Z.MPQ --output="C:/Games/WoW 3.3.5a/Data/enUS"
- On Windows: double-click
- The tool reads your active
arac_enhanced.conf, compiles a clean binaryCharBaseInfo.dbc, automatically syncs the serverdata/dbc/files, and generates a valid MPQ archive using StormLib.
| Setting | Default | Description |
|---|---|---|
ARAC.Enable |
1 |
Master switch for the ARAC Enhanced module. |
ARAC.AllowAll |
0 |
Master toggle to force-unlock all 100 combinations if desired. |
ARAC.Human.Hunter |
1 |
Enable or disable Human Hunter. |
ARAC.Human.Druid |
0 |
Enable or disable Human Druid. |
ARAC.Dwarf.Shaman |
1 |
Enable or disable Dwarf Shaman. |
ARAC.Dwarf.Mage |
1 |
Enable or disable Dwarf Mage. |
ARAC.Dwarf.Warlock |
1 |
Enable or disable Dwarf Warlock. |
ARAC.NightElf.Mage |
1 |
Enable or disable Night Elf Mage. |
ARAC.NightElf.Warlock |
1 |
Enable or disable Night Elf Warlock. |
ARAC.Gnome.Priest |
1 |
Enable or disable Gnome Priest. |
ARAC.Gnome.Hunter |
1 |
Enable or disable Gnome Hunter. |
ARAC.Draenei.Warlock |
1 |
Enable or disable Draenei Warlock. |
ARAC.Orc.Mage |
1 |
Enable or disable Orc Mage. |
ARAC.Undead.Hunter |
1 |
Enable or disable Undead Hunter. |
ARAC.Undead.Paladin |
1 |
Enable or disable Undead Paladin. |
ARAC.Tauren.Paladin |
1 |
Enable or disable Tauren Paladin. |
ARAC.Tauren.Priest |
1 |
Enable or disable Tauren Priest. |
ARAC.Troll.Warlock |
1 |
Enable or disable Troll Warlock. |
ARAC.Troll.Druid |
1 |
Enable or disable Troll Druid. |
ARAC.BloodElf.Warrior |
1 |
Enable or disable Blood Elf Warrior. |
- Place the module in
azerothcore-wotlk/modules/:cd azerothcore-wotlk/modules git clone https://github.com/AlsoNotMehh/mod-arac-enhanced.git - Re-run CMake and compile your server:
cmake -B build cmake --build build --config Release
- Import the SQL files from
data/sql/db-world/into youracore_worlddatabase (executed automatically by AzerothCore database updater). - Copy
conf/arac_enhanced.conf.distto yourworldserverconfigs directory asarac_enhanced.confand customize which combinations you want active.
Yes. If your client already has a large patch-a.mpq, simply rename this module's file to Patch-B.MPQ or patch-5.mpq. WoW 3.3.5a automatically loads patches alphabetically and numerically. Higher letters/numbers take precedence, so Patch-B.MPQ will apply on top of patch-a.mpq without needing to merge files.
If you see console warnings about race 13 or raceMask 4096 on startup, run data/sql/db-world/00_arac_cleanup_rogue_races.sql on your acore_world database. This cleans any leftover custom race data from previous imports.
If you find this module helpful for your server, please consider giving it a star on GitHub! It helps more developers in the AzerothCore community discover the project.
- Author & Enhancements: AlsoNotMehh (Discord / Email)
- Base ARAC Inspiration: heyitsbench
- Framework: AzerothCore
This project is licensed under the MIT License.
