Preface
This post will be incredibly text-dense and should really be its own thread. 
I do have some neato screenshots, tho! Maybe peruse those instead. I’ve included some in-game and in-editor screenies / .GIFs. Pretty exciting stuff, IMO! 
Again, this tutorial / guide / compendium of my WoW knowledge is mostly for my future reference. A sorely needed reference – I’ve forgotten a hella lot (…It’s been 84 years…) and am spending literal hours relearning things. I keep running into issues and am getting mad déjà vu, because I’ve run into these same issues before. 
Honestly, if past 'Chew had the foresight to pen all this down, in painstakingly meticulous step-by-literal-step process, I wouldn’t be spending my entire Sunday defining which configurations to use and what variables mean in a written guide. 
TrinityCore Basics - Content Creation and Database Editing
Compared to alternative choices (AFAIK), TrinityCore – and specifically WoW 3.3.5a – has the most support / compatibility with community-made toolpacks, custom content, and additional resources. For other frameworks (e.g. AzerothCore, MaNGOS, ArcEmu), I have extremely limited experience with and can’t comment on their ease of use or compatibility with tools.
Unless otherwise specified, assume that all executables under Content Creation Tools and Database Tools (including the Database Managers) are running on Windows.
Most Content Creation Tools and Database Tools seem to rely on Windows, but – rather conveniently! – are able to connect to remote databases. If the server and the tools are not running on the same system, the MySQL database will need to be open to remote connections prior to any content creation / database editing. Otherwise, if both the server and the tools are running on localhost
, the MySQL section is completely optional.
Wine on Linux could be an alternative to using Windows, but at this point, I haven’t gotten around to experimenting with it yet.
Content Creation Tools
Database Tools
Many tools have been developed and released for .DBC editing and .MPQ patching, but some of them are specialized and only perform one function, or handle only specific file formats. Below is a non-comprehensive list of tools that I recall using or reading about.
-
WDBX Editor (Recommended): Useful all-in-one tool that edits and converts between .DBC, .CSV, and .MPQ files. Able to work on multiple files at the same time, and is compatible with other file formats as well (DB2, WDB, ADB, etc.).
-
Ladik’s MPQ Editor (Recommended): Edits .MPQ files in archive file format (think, .ZIP files). If WDBX Editor runs into issues with .MPQ files, use MPQ Editor.
-
MyDbcEditor: Edits and converts betwen .DBC and .CSV files.
-
CSVed (Deprecated): Edits .CSV files. The original host site appears to be broken, but the Internet Archive site and archived download links seem to still work.
-
DBCutil (Deprecated): Converts between .DBC and .CSV files. Some users have reported file corruption using this tool.
-
Taliis (Deprecated): Edits .DBC files and appears to have world editing functionality.
Other Tools
-
BLPNG Converter: Converts between
.BLP
and .png
. files. Launch the executable to start the conversion.
-
BLP Converter: Converts between
.BLP
and .png
files via the cmd
interface. Drag and drop files on the executable to start the conversion.
-
GIMP: Versatile image editor that is free and open-source.
-
Photoshop: Versatile image editor, but is subscription-based.
Please note that I am not vetting for any of the links above – double-check these sources! Some of these tools are extremely old (but still functional) and are forked / distributed by third-parties, since the original host is no longer available.
Useful Resources and Sites
-
AC-Web (Releases): Forum with repacks and discussions for WoW emulation. Underwent a dramatic change in management, hence the visible number of banned members with legitimate contributions.
-
EmuCoach (Releases): Forum with repacks, tutorials, discussions for WoW emulation. Keep in mind that they monetize their content.
-
Model Changing Network (Tutorials, Downloads): Forum with tutorials, downloads, and discussions on various custom content for WoW private servers. The entire site does not appear to be indexed by Google for some reason.
-
OwnedCore: Forum with repacks, tutorials, and discussions for WoW emulation. Extremely old, still carrying threads from 2007 – and therefore, extremely useful for troubleshooting and finding fixes with outdated tools!
-
TrinityCore Wiki: Mostly useful for server-side instructions and documentation.
-
Database/World: Lists and describes the variables used in the
world
database tables. Currently, the 3.3.5a Database is lacking in documentation, but missing info may be supplemented with info from the Master Database, or the old TrinityCore site’s Database/World.
-
WoWDev Wiki: Lists and describes variables used in
.DBC
tables. Especialy useful for describing flags, and for identifying variables that use IDs defined by other .DBC
files.
-
Wowhead - WotLK Classic: Extremely excellent and comprehensive database of WoW items, NPCs, skills, spells, and much, much more. Most entries are helpfully identified by their ID in the URL, and 3D models may be interacted with in the browser.
-
Dressing Room: A configurable 3D model used to view and plan character outfits.
-
Item Appearance Sets: A gallery of item sets that displays and lists items with matching designs, and alternative color schemes (if available).
There’s a lot of file formats and tools thrown around, but it’s a lot simpler than it looks. Trust me, if 15-year old 'Chew could pick it up, so could you! 
Not counting the Linux stuff, which I only learned very recently.
…Holy shit it’s been 10+ years that I’ve been doing this for.
MySQL Database - Allowing Remote Connections
When the database switches its Bind IP from 127.0.0.1
to its network IP address (e.g. 192.168.xxx.xxx
), any profile with @localhost
seems unable to connect to the database. I’m uncertain whether there’s a fix for this issue, or if this is simply how databases work (i.e. I am Linoobx).
A workaround is to create a new profile with the system’s network IP address @192.168.xxx.xxx
(Step 2), which should allow the local machine to connect to / edit the database through the Database Manager.
- From the
localhost
system, run a Database Manager and connect to the database with an administrative profile (e.g. root
, debian-sys-maint
).
- Create a new profile for the local system to connect with.
- In the Users folder, copy and paste the profile for
trinity@localhost
.
- In the Host field, replace
localhost
with the local system’s network IP address (192.168.xxx.xxx
).
- In the Schema Privileges tab, allow all access privileges to the
auth
, characters
, and world
databases.
- Create a new profile for the remote system to connect with.
- In the Users folder, copy and paste the profile for
trinity@localhost
.
- In the Host field, replace
localhost
with the remote system’s network IP address (192.168.xxx.xxx
).
- In the Schema Privileges tab, allow all access privileges to the
auth
, characters
, and world
databases.
- Change the Bind IP of the MySQL database.
- In the Terminal, navigate to the
mysqld.cnf
directory with: cd /etc/mysql/mysql.conf.d/
- Create a backup of the
mysqld.cnf
file with: sudo cp mysqld.cnf mysqld.cnf.bak
- Edit the
mysqld.cnf
file with: sudo nano mysql.cnf
- Find
bind-address = 127.0.0.1
, and replace with: bind-address = 192.168.xxx.xxx
- Save the edits, then restart the MySQL service with:
sudo systemctl restart mysql
- In the Firewall, allow access in to Port 3306.
- Connect to the MySQL database with the Database Manager to test whether the profiles and the Bind IP have been properly configured.
-
Server Host: Local Network IP Address (
192.168.xxx.xxx
).
-
Port:
3306
-
Username:
trinity
-
Password:
<password>
- Edit
worldserver.conf
and authserver.conf
to point to the system’s network IP address.
- Navigate to the directory with:
cd /TrinityCore/.../etc/
- Edit the
worldserver.conf
file with: nano worldserver.conf
- Replace
127.0.0.1
with the system’s network IP address (192.168.xxx.xxx
).
- Edit the
authserver.conf
file with: nano authserver.conf
- Replace
127.0.0.1
with the system’s network IP address (192.168.xxx.xxx
).
- Start
worldserver
and authserver
to test whether the .conf
files have been properly configured.
- Navigate to the directory with:
cd /TrinityCore/.../bin/
- Start the server with:
./worldserver
and ./authserver
WDBX Editor - .DBC Edits and .MPQ Patches
To make custom additions or changes to WoW, and to have the custom content reflect on both the server-side and on the game client’s side, edits must be made to the server’s .DBC files, and patches must be added to the game client’s files.
-
Server .DBC Directory:
/TrinityCore/.../bin/dbc/
-
Game Client .MPQ Directory:
/WoW/Data/
Adding Custom Player Titles
A simple exercise to introduce newbies to .DBC editing and .MPQ patching.
- From the TrinityCore server files, locate the
CharTitles.dbc
file in: /TrinityCore/.../bin/dbc/
- Copy the
CharTitles.dbc
file to the Windows system for editing.
-
Recommended: Keep a backup folder of unedited
.dbc
files, to revert any unwanted changes.
- Download and extract WDBX Editor.zip.
- Launch WDBX Editor.
- Open
CharTitles.dbc
, and load WotLK 3.3.5 (12340)
when prompted.
- At the bottom of the page, copy and paste the latest / last entry to the table.
-
ID: A unique TitleID for each title, used to define and identify the title in-game.
-
Condition_ID: Presumably tied to in-game events that will grant the title when triggered or fulfilled.
-
Name_Lang_enUS: Title text string for male characters, which will appear above an in-game character.
-
Name1_Lang_enUS: Title text string for female characters, which will appear above an in-game character.
-
Mask_ID: I’m uncertain what this value pertains to, but it seems to (need to?) be unique to each entry. Increase in increments of
+1
, relative to the previous row’s value.
- Save the edited
CharTitles.dbc
file.
- WIth the same edited
CharTitles.dbc
file, select Export > To MPQ, and export as patch-x.MPQ
.
-
Naming: Follow the convention of
patch-x.MPQ
, with x
as any integer or letter character.
- Transfer the edited
CharTitles.dbc
and patch-x.MPQ
files to their respective directories.
- Copy
CharTitles.dbc
to the TrinityCore server in: /TrinityCore/.../bin/dbc/
- Copy
patch-x.MPQ
to the WoW client in: /WoW/Data/
- Start the TrinityCore server and launch the game client.
- To add the newly added custom title to your character, use:
.titles add <ID>
Trinity Creator - Adding Custom Items and Other Content
- Download TrinityCreatorInstaller.msi and install Trinity Creator.
- Launch Trinity Creator.
- Select
TrinityCore 3.3.5a (2020-01)
for the Emulation Profile.
- Navigate to Config > Configure MySQL.
-
MySQL Host:
192.168.xxx.xxx
-
MySQL Port:
3306
-
User:
trinity
-
Password:
<password>
-
World Database:
world
- If the MySQL info has been manually defined / edited from defaults, refer to
WorldDatabase.Info
within worldserver.conf
to fill in the fields.
- Navigate to Config > Configure DBC Path.
- Select
Select
, and navigate to the World of Warcraft 3.3.5a client directory.
- If no DBC folder exists in the client directory, Trinity Creator will automatically create a DBC folder and extract the necessary files.
- Trinity Creator should now be ready to use for custom content creation!
-
Export to Database: Automatically exports created content to the MySQL database.
-
Items: Exported to
item_template
table.
-
NPCs: Exported to
creature_template
table.
-
Quests: Export to
quest_template
table.
-
Export to SQL: Exports created content to a portable
.SQL
script.
Fixing Icon Display on Custom Items
Once the custom item has been imported into the item_template
table in the world
database, the item will exist in-game and should be interactable. However, at this point, it will likely appear with a
icon in the inventory, and certain functionality may be slightly broken (e.g. equipable items will not equip on a right-click).

Custom Item - Slightly Bugged
Displayed icon is not the intended item icon.
Right-clicking functionality is currently broken.
Item can only be equipped by clicking and dragging over to the Character menu.
To fix this, additional edits need to be made on both the server side and client side.
- Run a Database Manager and navigate to Database >
world
> item_template
.
- Locate the new
item_template
addition(s) and export it in .CSV
format.
-
DBeaver Query:
SELECT entry, class, subclass, SoundOverrideSubclass, Material, displayid, InventoryType, sheath FROM world.item_template WHERE entry BETWEEN 500000 AND 600000;
-
SELECT: Selectively includes the defined column categories in the search results, and excludes all others.
-
FROM: Defines which table(s) the results should be selected from (
world.item_template
).
-
WHERE: Defines additional filters to narrow the results down with.
- In the Results window, right-click on the records, select Export Data, and export as
Item.csv
.
- From the TrinityCore server files, locate the
Item.dbc
file in: /TrinityCore/.../bin/dbc/
- Copy the
Item.dbc
file to the Windows system for editing.
- Launch WDBX Editor, and import
Item.csv
into Item.dbc
.
- Open
Item.dbc
, and load WotLK 3.3.5 (12340)
when prompted.
- Navigate to Import > From CSV, and select
Item.csv
.
-
Import New: Only adds new records to the
.dbc
file.
-
Update Existing: Adds new records and updates mismatching records in the
.dbc
file.
-
Override All: Replaces all records in the
dbc
file with all records from the .csv
file.
-
Has Header Row?: Enabled.
- Save the edited
Item.dbc
file.
- WIth the same edited
Item.dbc
file, select Export > To MPQ, and export as patch-x.MPQ
.
-
Naming: Follow the convention of
patch-x.MPQ
, with x
as any integer or letter character.
- Transfer the edited
Item.dbc
and patch-x.MPQ
files to their respective directories.
- Copy
Item.dbc
to the TrinityCore server in: /TrinityCore/.../bin/dbc/
- Copy
patch-x.MPQ
to the WoW client in: /WoW/Data/
- Start the TrinityCore server and launch the game client to test whether the icon issue is fixed.

Custom Item - Successful Patch!
Custom created item displays its icon, as intended.
Right-clicking on the item properly equips the item to the character.
WoW Model Viewer - Custom NPC Models
WoW Model Viewer (WMV) has progressed significantly past WoW 3.3.5a (WotLK), with older versions officially unavailable, so the archived repository is one of the few remaining sources for a WMV that’s compatible with WoW 3.3.5a (WotLK).
For World of Warcraft 3.3.5a (WotLK), WMV v.7.0.1 (r485) - WMV v7.0.1 (r252) seem compatible. Anything above r485 will prompt a warning on the WoW client being outdated, and anything below r252 may have buggy results displaying, importing, and / or exporting models.
- Download and extract WMV.zip.
- Launch WMV.
- From the left panel, select a model to display it in the main window.
- If a “Character” model is selected, additional customization options will be made available in the right panel.
- Use an online database like Wowhead to search for items based on name, stats, visuals, or other filter categories.
- Export the custom character model with File > Export Model > 3DS… .
- Keep WMV open in the background to track the customized facial features (e.g. Skin Color, Face Type, Hair Color, etc.) in the right panel. WMV does not save these customizations on export.
- The exported file will produce (at least) two files: a
.3ds
3D model file (for Autodesk), and a .tga
texture file. Keep the .tga
file, and ignore or delete the .3ds
file.
-
Optional: Feel free to further edit the
.tga
texture file with an Image Editor (e.g. Photoshop, GIMP). When finished, export as .png
. Example:
- Download either BLPNG Converter or BLP Converter (or use a BLP Format Plugin for Photoshop) to convert the
.tga
or .png
file to Blizzard’s proprietary.BLP
file format.
-
BLPNG Converter: Launch the executable to convert the file format.
-
BLP Converter: Drag and drop the
.tga
or .png
file on the executable to start a cmd
conversion.
- From the TrinityCore server files, locate the
CreatureDisplayInfo.dbc
and CreatureDisplayInfoExtra.dbc
in: /TrinityCore/.../bin/dbc/
- Copy both
CreatureDisplayInfo.dbc
and CreatureDisplayInfoExtra.dbc
files to the Windows system for editing.
- Launch WDBX Editor and open
CreatureDisplayInfo.dbc
and CreatureDisplayInfoExtra.dbc
.
- Start with
CreatureDisplayInfoExtra.dbc
, and create a new row.
- Since
CreatureDisplayInfo.dbc
relies on the unique ID defined in CreatureDisplayInfoExtra.dbc
, I would recommend this order of operations.
-
ID: A unique ID for the character creature’s ExtraDisplayInfo entry, used to define and identify the entry in
CreatureDisplayInfo.dbc
.
-
DisplayRaceID: The character creature’s race, defined by
ChrRaces.dbc
.
-
1
= Human | 2
= Orc | 3
= Dwarf | 4
= Night Elf | 5
= Scourge | 6
= Tauren
-
7
= Gnome | 8
= Troll | 9
= Goblin | 10
= Blood Elf | 11
= Draenei | 12
= Fel Orc
-
13
= Naga | 14
= Broken | 15
= Skeleton | 16
= Vrykul | 17
= Tuskarr
-
18
= Forest Troll | 19
= Taunka | 20
= Northrend Skeleton | 21
= Ice Troll
-
DisplaySexID: The character creature’s sex.
-
0
= Male | 1
= Female | 2
= None
-
SkinID: The character creature’s skin color. Copy the value from WMV.
-
FaceID: The character creature’s face type. Copy the value from WMV.
-
HairstyleID: The character creature’s hair style. Copy the value from WMV.
-
HairColorID: The character creature’s hair color. Copy the value from WMV.
-
FacialHairID: The character creature’s facial feature. Copy the value from WMV.
-
NPCItemDisplay: The character creature’s equipment, defined by
ItemDisplayInfo.dbc
. WMV provides the DisplayIDs of items in their equipment tab and lookup menus, in the form of: [ItemID] [DisplayID]
.
-
NPCItemDisplay_1: DisplayID for head equipment. Leave as
0
for none.
-
NPCItemDisplay_2: DisplayID for shoulder equipment. Leave as
0
for none.
-
NPCItemDisplay_3: DisplayID for shirt equipment. Leave as
0
for none.
-
NPCItemDisplay_4: DisplayID for chest equipment. Leave as
0
for none.
-
NPCItemDisplay_5: DisplayID for belt equipment. Leave as
0
for none.
-
NPCItemDisplay_6: DisplayID for leg equipment. Leave as
0
for none.
-
NPCItemDisplay_7: DisplayID for feet equipment. Leave as
0
for none.
-
NPCItemDisplay_8: DisplayID for wrist equipment. Leave as
0
for none.
-
NPCItemDisplay_9: DisplayID for hand equipment. Leave as
0
for none.
-
NPCItemDisplay_10: DisplayID for tabards. Leave as
0
for none.
-
NPCItemDisplay_11: DisplayID for cape equipment. Leave as
0
for none.
-
Flags: Leave as
0
.
-
BakeName: Text string for the custom
.BLP
texture file. Include the .BLP
file extension.
- In
CreatureDisplayInfo.dbc
, create a new row.
-
ID: A unique DisplayID for each creature, used to define and identify the creature’s in-game display model.
-
ModelID: The creature model template associated with the creature, defined by
CreatureModelData.dbc
.
-
49
= HumanMale.m2 | 50
= HumanFemale.m2
-
51
= OrcMale.m2 | 52
= OrcFemale.m2
-
53
= DwarfMale.m2 | 54
= DwarfFemale.m2
-
55
= NightElfMale.m2 | 56
= NightElfFemale.m2
-
57
= ScourgeMale.m2 | 58
= ScourgeFemale.m2
-
59
= TaurenMale.m2 | 60
= TaurenFemale.m2
-
182
= GnomeMale.m2 | 183
= GnomeFemale.m2
-
185
= TrollMale.m2 | 186
= TrollFemale.m2
-
2208
= BloodElfMale.m2 | 2209
= BloodElfFemale.m2
-
2248
= DraeneiMale.m2 | 2249
= DraeneiFemale.m2
-
SoundID: Sound override for the creature. Leave as
0
to use the default sounds from CreatureModelData.dbc
.
-
ExtraDisplayInfo: A unique ID that uses data from
CreatureDisplayInfoExtra.dbc
to generate unique facial features for character creatures.
- Copy the ID from
CreatureDisplayInfoExtra.dbc
for your custom model in this field.
-
CreatureModelScale: A multiplier applied to the size of the creature’s in-game model. Set as
1
for default model size.
-
CreatureModelAlpha: A value applied to the transparency of the creature’s in-game model. Set as
255
for default model opacity.
-
TextureVariation: Alternative textures applied to the creature, often used for non-character creatures.
-
NPCSoundID: Applies sound packs used for NPC interaction, defined by
NPCSounds.dbc
, which itself is defined by SoundEntries.dbc
.
- Save the edited
CreatureDisplayInfo.dbc
and CreatureDisplayInfoExtra
files.
- WIth the same edited
CreatureDisplayInfo.dbc
and CreatureDisplayInfoExtra.dbc
files, select Export > To MPQ, and export as patch-x.MPQ
.
-
Naming: Follow the convention of
patch-x.MPQ
, with x
as any integer or letter character.
- Launch MPQ Editor and open both
.MPQ
patches.
- Group multiple related patches into a single
patch-x.MPQ
by adding the contents of one .MPQ
to the other.
- In the root directory, create a new directory:
/Textures/BakedNpcTextures/
- Copy the custom
.BLP
texture file to: /Textures/BakedNpcTextures/
- Transfer the edited
CreatureDisplayInfo.dbc
, CreatureDisplayInfoExtra.dbc
, and patch-x.MPQ
files to their respective directories.
- Copy
CreatureDisplayInfo.dbc
and CreatureDisplayInfoExtra.dbc
to the TrinityCore server in: /TrinityCore/.../bin/dbc/
- Copy
patch-x.MPQ
to the WoW client in: /WoW/Data/
- Run a Database Manager and navigate to Database >
world
> creature_model_info
.
- Add a new entry to the
creature_model_info
table.
-
Entry ID: A unique ID for each NPC creature, used to define and identify the NPC in-game.
-
DisplayID: The creature’s unique DisplayID, defined by
CreatureDisplayInfo.dbc
.
- Copy the ID from
CreatureDisplayInfo.dbc
for your custom model in this field.
-
BoundingRadius: Leave as
0
.
-
CombatReach: The creature’s combat reach radius. Set as
1.5
for a humanoid creature’s default reach radius.
-
Gender: The creature’s sex.
-
0
= Male | 1
= Female | 2
= None
-
DisplayID_Other_Gender: If the creature has both male and female models, this value uses the defined alternate DisplayID when the creature is generated with the other sex.
- Launch Trinity Creator and navigate to the Creature tab to start creating an in-game NPC!
-
DisplayIDs: An NPC may use up to four different DisplayIDs when spawned in-game (e.g. facial variations, male and female variations, clothing variations).
-
Equipment: Use the item’s ItemID rather than the item’s DisplayID.
-
Weapon 1: Weapon or item is held in the NPC’s main hand.
-
Weapon 2: Weapon, shield, or other item is held in the NPC’s off hand.
- Select Export to Database to automatically export the created NPC to the MySQL database.
- Alternatively, select Export to SQL File to examine the
.SQL
script before importing it into the database.
- Start the TrinityCore server and launch the game client to test whether the custom NPC model spawns, looks, and acts as intended.
- Spawn the newly added NPC with:
.npc add <Entry ID>
Noggit - World Editing
Noggit is the reason I call WoW a sandbox RPG. 
- Download and extract Noggit.zip.
- Launch Noggit.
- When prompted to find a directory, select the World of Warcraft 3.3.5a directory.
- Navigate to Noggit > Settings.
-
Game Path:
/WoW/
, or the World of Warcraft 3.3.5a directory.
-
Project Path: Directory for the Noggit project, or where Noggit will save its files to.
-
Import Path: Safe to leave blank. Not entirely sure what it’s meant to point to.
-
WMV Log Path:
/WMV/userSettings/log.txt
, located in the Wow Model Viewer folder.
- Select a Continent from the left panel, and select a square from the right panel.
- When prompted, select Get Max UID.
- Assuming the TrinityCore server is a fresh compile (not a repack), its map should be unedited.
- If the TrinityCore server has custom or edited map, select Fix All UIDs instead.
- Once Noggit has loaded a map, you’re all set to start terraforming and worldbuilding WoW to your liking!

- Save any edits with Editor > Save Changed Tiles.
- Noggit will save to the Project path defined in Settings.
- Launch MPQ Editor and create a new .MPQ file, or open an existing .MPQ patch.
- I would advise leaving the WoW client’s default .MPQ patches alone, and only editing custom-made .MPQ files.
- From the Noggit Project directory, add (drag and drop) the
world
folder to the .MPQ file.
- Save
patch-x.MPQ
to the WoW client in: /WoW/Data/
and in: /WoW/Data/enUS/
- In
/WoW/Data/enUS/
, rename patch-x.MPQ
to: patch-enUS-x.MPQ
- Close MPQ Editor and launch the game client to test whether world edits made in Noggit are reflected in-game.
Notice that Noggit only makes changes to the world on the game client’s side. I think there’s some way Noggit integrates with the TrinityCore server (there’s a reference to MySQL in the Settings), but for single-player or low-population private servers, it seems entirely unnecessary to Noggit’s world editing functionality.
Basic Controls
A full list of controls may be viewed from Help > Keybindings (Ctrl
+ F1
).
-
Left-Click: Apply Terrain Editing Tool
-
Right-Click: Hold to Tilt / Pan Camera.
-
WASD: Camera Movement.
-
M: Toggles Minimap.
Terraforming Tools

Raise Terrain / Lower Terrain

Flatten Terrain / Blur Terrain Edges

3D / Terrain Paint

Create Hole in Terrain
Cuts away terrain, used to build basements or caves.

AreaID Paint
Assigns an AreaID to a chunk, which will affect the in-game map (e.g. location name, background music, etc.). AreaIDs are found in AreaTable.dbc.

Impassible Flag
Treats selected chunks like invisible walls for in-game characters.

Water Edit
Adds, removes, and edits liquids (e.g. water, slime, lava) on the terrain.

Shader Editor
Adds, removes, and edits shaders to the terrain.

Object Editor
Has functions to add, delete, scale, and rotate objects.
Script Editor
I’m uncertain how to utilize this function. 
Creating a Custom AreaID / Location
- From the TrinityCore server files, locate the
AreaTable.dbc
and Map.dbc
files in: /TrinityCore/.../bin/dbc/
- Copy the
AreaTable.dbc
file to the Windows system for editing.
- Copy the
Map.dbc
file to the Windows system for viewing.
- Launch WDBX Editor, and open
AreaTable.dbc
.
- If the custom area is to be located within an existing zone, I would recommend studying neighboring areas / landmarks in
AreaTable.dbc
as a reference for the correct IDs and values.
-
ID: A unique AreaID for each area, used to define and identify the area in-game.
-
ContinentID: The continent map (e.g.
571
for Northrend) associated with the area, defined in Map.dbc
.
-
ParentAreaID: The zone map (e.g.
495
for Howling Fjord) associated with the area, defined in AreaTable.dbc
.
-
AreaBit: I’m uncertain what this value pertains to, but it seems to (need to?) be unique to each entry. Increase in increments of
+1
, relative to the previous row’s value.
-
Flags (Hex Value): Flags for the area. Refer to DB/AreaTable for more info.
-
AmbienceID: The ambient sound that will play in the area.
-
ZoneMusic: The zone music that will play in the area.
-
IntroSound: The intro zone music that will play in the area.
-
Exploration Level: The zone level, or the character level at which the area will be explored.
-
AreaName_Lang_enUS: Area text string that will be displayed in-game.
-
Faction_GroupMask: Associates the area with a faction. Leave as
0
for Contested Territory.
-
0
= Contested Territory | 2
= Alliance Territory | 4
= Horde Territory | 6
= Neutral Territory
- Save the edited
AreaTable.dbc
file.
- WIth the same edited
AreaTable.dbc
file, select Export > To MPQ, and export as patch-x.MPQ
.
-
Naming: Follow the convention of
patch-x.MPQ
, with x
as any integer or letter character.
- Transfer the edited
AreaTable.dbc
and patch-x.MPQ
files to their respective directories.
- Copy
AreaTable.dbc
to the TrinityCore server in: /TrinityCore/.../bin/dbc/
- Copy
patch-x.MPQ
to the WoW client in: /WoW/Data/
and in: /WoW/Data/enUS/
- In
/WoW/Data/enUS/
, rename patch-x.MPQ
to: patch-enUS-x.MPQ
- Launch Noggit.
- Select a Continent from the left panel and load a map chunk from the right panel.
- Select AreaID Paint from the left panel.
-
Shift
+ Click
= Paints the chunk with the selected AreaID.
-
Ctrl
+ Click
= Obtains the AreaID of the selected chunk (think, eyedropper tool).
- Save any edits with Editor > Save Changed Tiles.
- Launch MPQ Editor.
- From the Noggit Project directory, add the
world
folder to a new or existing .MPQ file.
- Save
patch-x.MPQ
to the WoW client in: /WoW/Data/
and in: /WoW/Data/enUS/
- In
/WoW/Data/enUS/
, rename patch-x.MPQ
to: patch-enUS-x.MPQ
- Close MPQ Editor and launch the game client to test whether world edits made in Noggit are reflected in-game.

Custom Area
Location name appears on-screen and in the mini-map. Success!
Adding Objects and Buildings
Wow Model Viewer is optional to Noggit functionality, but it is extremely recommended to easily find, view, and import .M2 (e.g. objects) and .WMO (e.g. buildings, large structures) models into Noggit.
- Launch WMV.
- In the bottom-left corner, select Models (*m.2) to view objects, or WMOs (*.wmo) to view structures.
- Launch Noggit.
- Select a Continent from the left panel and load a map chunk from the right panel.
- Import the .M2 or .WMO into Noggit.
- In WMV, simply load the model in the window for Noggit to import.
- In Noggit, select Object Editor from the left panel.
- Import .M2 models with Import > Last M2 from WMV in the right panel, or use
Shift
+ V
.
- Import .WMO models with Import > Last WMO from WMV in the right panel, or use
Alt
+ V
.
- On a successful import, the model will appear at the bottom of the Object Editor panel.
- Paste the imported model with
Ctrl
+ V
.
- Save any edits with Editor > Save Changed Tiles.
- Launch MPQ Editor.
- From the Noggit Project directory, add the
world
folder to the new or existing .MPQ file.
- Save
patch-x.MPQ
to the WoW client in: /WoW/Data/
and in: /WoW/Data/enUS/
- In
/WoW/Data/enUS/
, rename patch-x.MPQ
to: patch-enUS-x.MPQ
- Close MPQ Editor and launch the game client to test whether world edits made in Noggit are reflected in-game.
TrinityCore - Updating the Core
When fixes are released, or – more likely, and more impertinently – when MySQL is upgraded with sudo apt update && upgrade -y
, the TrinityCore core binaries will need to be recompiled. Fret not, the second going is easier, and any existing database files should not be replaced.
-
Optional: Prepare for the TrinityCore server update.
- Navigate to
/TrinityCore/.../bin/
, and copy cameras
, dbc
, maps
, mmaps
, vmaps
to a backup location.
- Navigate to
/TrinityCore/.../etc/
and copy worldserver.conf
and authserver.conf
to a backup location.
- Delete the server folder (i.e. the parent directory containing
/bin/
and /etc/
).
- Update the TrinityCore source code for either the 3.3.5a Branch (WotLK) or Master Branch.
-
Warning: Avoid cloning, compiling, or running the server as
sudo
or root
. It will create permissions-related issues.
cd ~/TrinityCore/
git pull origin 3.3.5
cd ~/TrinityCore/
git pull origin master
- Install the TrinityCore core binaries and server files.
- Delete
/TrinityCore/build/
, and create a new build
directory.
- Configure and compile the core with the
cmake
command.
$ cmake ../ -DCMAKE_INSTALL_PREFIX=~/TrinityCore/wow/server_335
$ time make -j $(nproc) install
- Copy
cameras
, dbc
, maps
, mmaps
, vmaps
from the backup location to /TrinityCore/.../bin/
.
- Copy
worldserver.conf
and authserver.conf
from the backup location to /TrinityCore/.../etc/
.
- Keep the existing
worldserver.conf.dist
and authserver.conf.dist
files, in the event changes have been made to their respective files during the update.
- In the Terminal, navigate to
/TrinityCore/.../bin/
and run the worldserver file with ./worldserver
- In a separate tab in the Terminal, navigate to
/TrinityCore/.../bin/
and run the authserver file with ./authserver
Closing Comments
The odd running trend with WoW is that, every time I dip back into it after a long break, I always seem to end up learning something new.
IIRC, the last time I touched WoW was 3+ years ago. I had graduated from Uni, and was being a proper jobless shut-in, living with my mother back in Malaysia. I managed to figure out Noggit and the Item Icon Patch, and all of a sudden, WoW transformed itself into a sandbox ORPG.
This time, I’m adding Linux to my lil’ collection of WoW-related milestones. 
Don’t talk about Wine, I don’t want to talk about Wine and how it isn’t working right now, shush.
I’ve spent a ridiculous amount of my life on playing with and fiddling around with WoW private servers, but all the above barely scratches the surface of what more experienced / compentent folks can really do with WoW.
Someone with Blender experience, for instance, would be able to create their own gameobject models, or edit existing models, and import those into the game.
I think I have a few more tricks up my sleeve for cool WoW private server stuff I can do, but the above is probably the most visually-impressive. 