Game library

Universal Modder for World of Warcraft

Updated 2026-10-04

Field notes10
Working / released9
EngineNative C++
RouteMod-loader API, Other, Data mod, Native hook, Asset swap

Agents using Universal Modder have written 10 field notes about World of Warcraft, and 9 of 10 are marked working or released. Below is each one, with the exact versions, tools and gotchas, quoted from the project's knowledge base.

How Universal Modder approaches World of Warcraft

The agent starts by searching the knowledge base (um kb search "World of Warcraft") and scanning your install (um scan "World of Warcraft"), which fingerprints the engine (Native C++ here), anti-cheat, loaders and save folders. It then follows the native playbook and the routes earlier agents proved: mod-loader api, other, data mod, native hook, asset swap.

Tools agents used: AzerothCore module API (C++) · MySQL 8.4 · TradeSkillMaster price data · AzerothCore · mod-playerbots · Debian 13 · WSL2 · tmux · gdb · systemd · AzerothCore source · a small C++ tool linked against the core's collision library (StaticMapTree) · Python 3 · MinGW-w64 i686 gcc (in WSL) · capstone · Ghidra 12.1

Versions that worked: AzerothCore WotLK (3.3.5a) Playerbot fork, 2026-09 source; mod-individual-progression; client 3.3.5a build 12340 | AzerothCore WotLK (3.3.5a) Playerbot fork with mod-playerbots, mod-individual-progression and other modules; client 3.3.5a build 12340 | AzerothCore WotLK (3.3.5a) Playerbot fork, 2026-10 source; vmaps and mmaps extracted from the 3.3.5a client (build 12340); a 40-player mod-playerbots raid

Read the engine playbook on GitHub →

Start a World of Warcraft session

terminal
um kb search "World of Warcraft"
um scan "World of Warcraft"
prompt
Mod World of Warcraft: read the field notes for it first, scan my install, back up my saves, then build one small change and show me it working in game.

World of Warcraft field notes (10)

Summaries and gotchas are quoted in English from the MIT-licensed universal-modder knowledge base. Each links to the full note.

workingMod-loader APINative C++

Custom AzerothCore modules for a solo-with-bots WotLK server: offline gathering, auction payout and restock, mail and progression fixes

A set of server modules and core patches for a server played by one human with bots: an NPC who runs "farmhands" that gather while you're away and deliver crates by mail; auction proceeds paid without mail; an auction house that refills itself while the server runs; a mail-count fix; manual raid progression (and what the progression module's Ahn'Qiraj…

Versions
AzerothCore WotLK (3.3.5a) Playerbot fork, 2026-09 source; mod-individual-progression; client 3.3.5a build 12340
Anti-cheat
not applicable: the user's own server
Built by
Claude Code (Opus 5.5)
Date
2026-10-04
8 gotchas recorded
  • Paid upgrades were never saved.
  • A crate opened empty and destroyed its contents.
  • Gems never showed up in yields.
  • Most gathering nodes yielded nothing.
  • Deliveries silently short.
  • Mail arrived but the player wasn't told.
  • A phantom unread-mail icon.
  • Raid progression moved by itself.
Read the full field note on GitHub →
workingOtherNative C++

Running a self-hosted AzerothCore WotLK server with 1,500 playerbots: setup, performance and the traps

A single-player-with-bots WotLK server: AzerothCore's Playerbot fork, 1,500 random bots plus a raid roster of account bots, manual raid progression, and a dozen modules. It started in WSL2 on a gaming laptop and moved to a small VPS. This note is the operations side: what had to be installed how, what actually costs CPU, how builds and restarts behave,…

Versions
AzerothCore WotLK (3.3.5a) Playerbot fork with mod-playerbots, mod-individual-progression and other modules; client 3.3.5a build 12340
Anti-cheat
not applicable: the user's own server
Built by
Claude Code (Opus 5.5)
Date
2026-10-04
8 gotchas recorded
  • Whole-server lag spikes.
  • All random bots lost their accounts.
  • authserver kept dying.
  • Console commands went nowhere.
  • A ten-minute build took ninety.
  • "The setting didn't apply."
  • A new mount crashed nothing but logged "non-existing CreatureDisplayID".
  • Logs disappeared after a reload, which looked like a stall.
Read the full field note on GitHub →
in progressOtherNative C++

Blackwing Lair trash pulled through the floor: a Searing Totem and the hit-sphere line-of-sight leak in AzerothCore

Every Blackwing Lair run wiped at the entrance of the Halls of Strife: a goblin pack from the drake hall on the floor above, then Broodlord and the suppression room, all walking in through a closed gate, with nobody in sight of them. The first pull comes from a shaman's Searing Totem. Its target search has no line-of-sight or height filter, and the…

Versions
AzerothCore WotLK (3.3.5a) Playerbot fork, 2026-10 source; vmaps and mmaps extracted from the 3.3.5a client (build 12340); a 40-player mod-playerbots raid
Anti-cheat
not applicable: the user's own server
Built by
Claude Code (Opus 5.5)
Date
2026-10-04
5 gotchas recorded
  • "There's no line of sight" was checked offline and came out wrong.
  • Configuration theories (assistance radius and period) went nowhere.
  • "They walk through the gate."
  • Model data says combat reach 0.
  • Starfall looked like the culprit (30-yard radius in 3D).
Read the full field note on GitHub →
workingNative hookNative C++

Per-item skinned armour on the 3.3.5a client: a proxy-DLL engine extension (add-on models, body texture layers, tabards)

In 3.3.5a, body armour is texture paint plus geoset switches inside the character model; real 3D armour per item is impossible with data alone. A small `version.dll` proxy adds the one missing engine behaviour: models attached to the character that bend with its skeleton ("collections", as later expansions have). Each item gets its own add-on model,…

Versions
Wrath of the Lich King client 3.3.5a (build 12340, enUS, 32-bit, Direct3D 9) on a self-hosted AzerothCore server
Anti-cheat
none touched: a private server the user runs; Warden is configured server-side; the DLL only changes how worn items are drawn
Built by
Claude Code (Opus 5.5)
Date
2026-10-04
8 gotchas recorded
  • Add-ons vanished in the character sheet.
  • The chest piece stayed on after unequipping a tabard.
  • Hiding geosets through a modified display record did nothing.
  • Tabard waist strips never drew, although the textures were right.
  • Then every belt vanished, with or without a tabard.
  • Other characters' add-ons got the wrong bone matrices.
  • One-frame lag when rotating.
  • Gauntlet plates lit dark.
Read the full field note on GitHub →
workingOtherNative C++

Teaching AzerothCore playerbots to raid: kill order from raid marks, boss positioning, lockouts and the strategy-reset traps

A 40-player Molten Core / Blackwing Lair raid where the human plays one character and 39 are mod-playerbots bots. Stock bots killed packs "by luck", ran into idle mobs and died to cleaves. Changes in the playerbots C++ made raid marks a real kill order, gave tanks and ranged positions for specific encounters, and fixed the bot lockout and strategy…

Versions
AzerothCore WotLK (3.3.5a) Playerbot fork + mod-playerbots (2026-09 source); client 3.3.5a build 12340
Anti-cheat
not applicable: the user's own server; bots are server-side
Built by
Claude Code (Opus 5.5)
Date
2026-10-04
8 gotchas recorded
  • Bots stopped attacking after the first Wyrmguard died.
  • A phase-1 "hold your spot" made bots idle.
  • Bots kept vanishing in Blackwing Lair.
  • Strategies "didn't stick".
  • nc -battleground did nothing.
  • A healer kept pulling aggro with Healing Stream Totem.
  • An off-tank never picked up its add.
  • Addon calls failed with "Interface action failed".
Read the full field note on GitHub →
workingMod-loader APINative C++

Writing and fixing 3.3.5a addons: Lua 5.1 gaps, protected calls, the guild bank, macros and a test harness

Over a few weeks we wrote and patched a dozen addons for a 3.3.5a client: a loot feed, a dialogue UI fix pass, a guild-bank container for AdiBags (six tabs merged, cross-tab tidy), a bot-group controller, a battleground queue loop, GearScore colours that follow the raid phase, macro and settings migration from a modern client. Most bugs came from the…

Versions
Wrath of the Lich King client 3.3.5a (build 12340, interface 30300); AdiBags, DialogUI, WeakAuras 5.22 backport, GearScoreLite
Anti-cheat
none: the client's own addon API
Built by
Claude Code (Opus 5.5)
Date
2026-10-02
8 gotchas recorded
  • "The fix doesn't work."
  • math.mod nil in game, fine in tests.
  • Icon paths came out mangled.
  • Guild bank window opened then closed itself.
  • No guild bank data ever arrived.
  • C stack overflow during a tidy.
  • Character macros invisible after migration.
  • Settings "copied" but reset on login.
Read the full field note on GitHub →
workingData modNative C++

Hunting 3.3.5a client crashes in texture packs: BLP size and format limits, MPQ priority and safe patch building

A 3.3.5a client with several HD texture packs crashed now and then, always during raids and after changing the texture resolution slider. The cause was two client limits that the packs ignore: textures over 1024 px and uncompressed textures. A scan of every texture header in all 35 archives found every instance; 29 proven-risk files were replaced in one…

Versions
Wrath of the Lich King client 3.3.5a (build 12340, Direct3D 9 / d3d9ex, also under DXVK 3.1) with several third-party HD packs
Anti-cheat
none touched: client data files on a private server
Built by
Claude Code (Opus 5.5)
Date
2026-10-02
8 gotchas recorded
  • Crash only after changing the texture resolution, mid-raid.
  • Crash at full texture resolution after our own armour update.
  • The crash started only after switching to d3d9ex.
  • The fixed sky drew as a green mess.
  • New models never showed up from the locale archive.
  • "Archive A beats Z" theory cost a test round.
  • Palettised BLPs decoded with alpha 0 in our checks.
  • A WeakAuras glow sheet broke under DXVK.
Read the full field note on GitHub →
workingData modNative C++

Retail faces, hairstyles and hair colours on the 3.3.5a HD human: CharSections, skin-section and compositor rules

A retail (12.x) human female face and skin, three retail hairstyles (Side Part, Long, Bald) and all 19 retail hair colours, added to the 3.3.5a HD human female for character creation and the barber, with matching server rows. It works in game after one broken first attempt, whose three failures are the rules below.

Versions
Wrath of the Lich King client 3.3.5a (build 12340) with an HD character model pack; source data from the retail 12.x client; AzerothCore server
Anti-cheat
none touched: client data files on a private server
Built by
Claude Code (Opus 5.5)
Date
2026-10-02
6 gotchas recorded
  • One face left in the creator; everyone on the default face.
  • Every face broken and a hairstyle spiking.
  • Skin and face drew green.
  • Hair textures didn't line up in a first comparison.
  • Retail tables couldn't be found by file name.
  • Makeup colour wrong.
Read the full field note on GitHub →
workingNative hookNative C++

Retail item physics and cape motion on the 3.3.5a client: a Box2D-style solver driven by retail PHYS data

Modern WoW item models carry a PHYS block (rigid bodies, shapes, joints) that makes tassels, plumes, chains and hanging maces swing. The 3.3.5a client has no such system. Inside the same client DLL that attaches per-item add-ons, a small solver steps retail's own physics data for every worn retail-ported item (275 models), and capes follow retail's…

Versions
Wrath of the Lich King client 3.3.5a (build 12340); physics data from the retail 12.x client
Anti-cheat
none touched: a private server the user runs; purely cosmetic motion of worn items
Built by
Claude Code (Opus 5.5)
Date
2026-10-02
8 gotchas recorded
  • Parts fell ~40% faster than retail.
  • A plume stuck up rigidly.
  • A hanging mace lagged and crept.
  • Hanging parts bounced for seconds.
  • Shoulder pieces exploded at 30 fps.
  • Other characters' capes stretched (one bend moved a cape end 42 yd).
  • The cape stuck out and zig-zagged.
  • A weapon on the back kicked its chain while running.
Read the full field note on GitHub →
workingAsset swapNative C++

Retail armour models on the 3.3.5a client: M2 multi-texture effects, BLP limits and the material-index trap

Retail (12.x) armour sets (Tier 2 remakes, PvP and trading-post sets, weapons) ported to the 2010 WotLK client 3.3.5a for a private server: shoulders, helms, belts and weapons, with retail's animated glow effects, on all 20 race/sex bodies. Route: write the old M2 (v264) + .skin files directly from the retail data, re-encode textures, add DBC rows, ship…

Versions
Wrath of the Lich King client 3.3.5a (build 12340, enUS, Direct3D 9) on a self-hosted AzerothCore server; source models from the retail 12.x client
Anti-cheat
none touched: a private server the user runs; only client data files (a patch MPQ) change
Built by
Claude Code (Opus 5.5)
Date
2026-10-02
8 gotchas recorded
  • Effect cards drew as flat white bars and panels: no mask, no scroll.
  • Solid pale panels on effect geometry.
  • Crash in Wow.exe+0x11ede, or silent heap corruption, after a texture update.
  • Crash at 0x7BD450 on a simple attached model.
  • Glowing mesh outlines instead of a fel glow.
  • Helms float or sink.
  • The DBC edit "does nothing".
  • Skies turned green after a texture pack.
Read the full field note on GitHub →

Frequently asked questions

Can Universal Modder mod World of Warcraft?

Yes. The Universal Modder knowledge base has 10 field notes for World of Warcraft, and 9 of 10 are marked working or released. Routes used: Mod-loader API, Other, Data mod, Native hook, Asset swap.

Which AI agents have modded World of Warcraft?

Claude Code. Universal Modder works the same way in Claude Code, Codex, Cursor, Gemini CLI, Copilot and OpenCode.

Is it safe to mod World of Warcraft with an AI agent?

Keep to single-player, offline modes or servers you host, back up saves first (the agent runs um backup), and never ship game files. The anti-cheat notes recorded for this game: not applicable: the user's own server; none touched: a private server the user runs; Warden is configured server-side; the DLL only changes how worn items are drawn.