What's new

World of Warcraft - How to Create New Factions

znzz

Silver Supporter
MoP Premium
Superior Member
163
2015
33
World of Warcraft - How to Create New Factions

There are a few things that you'll need before editing a DBC file. I've seen many different programs, and even more people recommending each program over every other program, but the vast majority either didn't work or corrupted the DBC files. I'll only be recommending the programs that work for me. So, before you continue reading, please download this; it contains everything that I use. These programs will only work on Windows.

Assuming that you've followed my instructions to download the tools that we'll be using in this tutorial, lets begin!

If you already know how to edit DBC files, which I'm going to assume that most of the people reading this don't, then you can skip to the end of this post and check out my notes on the DBC files. Although I would recommend doing a quick read-through of the tutorial.

The rest of this will be a simple explanation of how to add a new faction category called New (Master Faction) and a faction called Test Alliance Faction.

Now that you've downloaded the tools and have a folder of clean, unedited, DBC files to work with and revert to incase of any unforeseen errors, lets begin!

The first thing that you need to do is copy Faction.dbc and FactionTemplate.dbc from your folder of clean DBC files into /Tools/DBCUtil/ and double-click on DBCUtil.exe. Next you must go to /Tools/CSVed/ and double-click CSVed.exe to open the program. You should open two instances of CSVed.exe to make this a bit easier. Now click File and then go open Faction.dbc.csv in /Tools/DBCUtil/, if you have a second instance of CSVed.exe running you should open FactionTemplate.dbc.csv in it. I'll be assuming that you have two instances of CSVed.exe open with one of the files in each, if you don't then you may need to read through this tutorial twice to complete it.

This next step needs to be repeated in both instances of CSVed.exe, do it once in the instance with Faction.dbc.csv open and again in the instance with FactionTemplate.dbc.csv open. Scroll to the bottom of the file, right-click on the last row, select Copy Selected Record(s), left-click on the last row, now right-click on the last row, and select Paste Record(s) below Cursor Pos. Now we will proceed by editing Faction.dbc.csv, we will get to FactionTemplate.dbc.csv later on. For an explanation on what each column represents, please refer to my notes near the end of this post as I will not be explaining every value we're going to insert in this part of the tutorial. Double-click on the second-last row to open up the edit form window and type in the following values, for any columns not listed below just leave them blank. When you're finished editing the columns you need to click Apply Changes in the bottom-left corner of the edit form window.

Column 1 - 1161
Column 2 - 105
Column 3 - 1100
Column 4 - 690
Column 5 - 0x1
Column 17 - 0x10
Column 19 - 1162
Column 24 - Test Alliance Faction
Column 41 - Test Description - Test Alliance Faction
Now double-click on the last row and fill in these values:

Column 1 - 1162
Column 2 - -1
Column 3 - 1791
Column 24 - New (Master Faction)
Now click File, then Save, and then close this instance of CSVed.exe. In the remaining instance of CSVed.exe double-click on the second-last row and fill in these values:

Column 1- 2237
Column 2 - 1161
Column 4 - 3
Column 5 - 2
Column 6 - 12
Column 11 - 1162
Now apply those changes and double-click on the last row and fill in these values:

Column 1 - 2238
Column 2 - 1162
Save all of the changes above just like we did the first time and then exit CSVed.exe. Now go into /Tools/DBCUtil/ and, one-by-one, drag Faction.dbc.csv and FactionTemplate.dbc.csv onto DBCUtil.exe, if the .dbc files are still there delete them first. The second last step is to copy Faction.dbc and FactionTemplate.dbc into your server/bin/dbc/ folder and restart your server.

The final step is to create the MPQ file. Go to /Tools/mpqediten64/ and create a folder called Modified Files, then within that folder create another folder called DBCFilesClient, then paste Faction.dbc and FactionTemplate.dbc into /Tools/mpqediten64/Modified Files/DBCFilesClient/. Now go back up to /Tools/mpqediten64/ and double-click MPQEditor.exe, then click New MPQ, enter the name as patch-# (I'll use patch-5), then click Next, and then select Build the MPQ archive from a file or directory and enter the path to /Tools/mpqediten64/Modified Files/, now just keep clicking Next until the MPQ is created, then you can exit the program and copy patch-#.mpq into your /WoW/Data/ folder. After that just restart your server and test out the new factions.

Faction.dbc

Column 1 - Unique row ID.
Column 2 - Unique rep ID, just make sure no other factions use the number and then forget about it. I haven't found any use for it, it just has to be unique. Use -1 if you don't want players to be able to gain reputation with the faction, this will also cause the faction not to show-up on the reputation pane.
Column 3 - Sets who the faction is allied with. If Horde-aligned use (Untested) 690, else if Alliance-aligned use 1100, else if Neutral use (Untested) 1791.
Column 4 - Sets who the faction is at war with. If Horde-aligned use (Untested) 1100, else if Alliance-aligned use 690, (Untested) else if Neutral use 0.
Column 5 - Use 0x1, I believe this says to show the faction name in the tooltip. You can only see the tooltip if you're allied to the NPC. (Ex: Horde only see faction names on Horde NPCs) For Horde try using 0x2.
Column 11 - Starting rep when faction is encountered?
Column 12 - Lowest possible rep?
Column 13 - Something to do with rep probably.
Column 15 - See notes further down the post.
Column 17 - See notes further down the post.
Column 19 - Parent faction, points to a row in Faction.dbc.
Column 24 - Faction Name
Column 41 - Description (Shows up in the reputation pane of the character screen in-game.)
FactionTemplate.dbc

Column 1 - Unique row ID.
Column 2 - Points to a row in Faction.dbc.
Column 4 - What type of faction are we? (For Alliance use 3. For horde use 5. For monsters use 8.)
Column 5 - What type of factions are we allied with? (For alliance use 2. For horde use 4. For monsters use 8 if allied with other monsters, else use 0.)
Column 6 - What type of factions are we at war with? (For alliance use 12. For horde use 10. For monsters use 7. If you don't want NPCs of the faction attacking monsters, subtract 8 from the number.)
Column 11 - Parent faction, points to a row in Faction.dbc.
All columns not listed in my notes were left at their default values. A few of the columns do certain things, but I don't want to spend another 8 hours trying to figure out how they work.

When editing your new factions to change names, data, etc... there is always a very high chance that any characters that had reputation/knew the faction before your latest edit will bug out and not show the faction in the reputation pane of their character screens. Be absolutely certain about what you're creating and what you have created before you release these patches to your users as it would be a terrible loss to have to delete an old character just for a small faction update.

When creating a faction hierarchy like I have in the second picture above, you just need to create a faction, in Faction.dbc, with a unique ID in Column 2, add in a name for the faction, and leave out the description as you can't view it in-game. Now just reference my notes on the Columns above and add the faction you just created as the parent of whatever factions that you want listed under the faction you just created.

Major Update:

After a solid three hours of trying to get the "At War" button on the reputation pane of the character screen to be unselect/unclickable I've managed do document the previously unknown Columns 15 and 17 of Faction.dbc. I cannot guarantee this information for a Horde-aligned faction or Horde characters, but I strongly believe that it is the same on both factions. Whenever I mention Humans just replace that with Orcs and whenever I mention the other races, just group them together and switch for the other faction's races.

It seems that Columns 15 and 17 only affect the reputation pane of the character screen, and that Column 15 applies to all non-human races whereas Column 17 specifically applies to humans. (The same should be true for Horde races)

Column 15:

0x0 - Default Value
0x1 - Faction shows up on character creation of Dwarves, Night Elves, Gnomes, and Draenei.
0x2 - No change from 0x0 as far as I've seen.
0x4 - Hides the faction, in the reputation pane of the character screen, from Dwarves, Night Elves, Gnomes, and Draenei.
0x8 - Same as 0x4.
0x10 - Greys out the "At War" button from the faction on the description pane of the reputation pane, for Dwarves, Night Elves, Gnomes, and Draenei.
0x16 - Same as 0x4.
Any multiples above 0x16 such as 0x32 and above seems to be extremely buggy. Other values probably exist, but I only went by multiples of two. You may be able to add them together like all other flags, but I haven't tested that. Ex: 0x1 + 0x10 = 0x11 Shows up on char creation & has "At War" greyed out.

Column 17:

0x0 - Default Value
0x1 - Faction shows up on character creation of Humans.
0x2 - No change from 0x0 as far as I've seen.
0x4 - Hides the faction, in the reputation pane of the character screen, from Humans.
0x8 - Same as 0x4.
0x10 - Greys out the "At War" button from the faction on the description pane of the reputation pane, for Humans.
0x16 - Same as 0x4.
Any multiples above 0x16 such as 0x32 and above seems to be extremely buggy. Other values probably exist, but I only went by multiples of two. You may be able to add them together like all other flags, but I haven't tested that. Ex: 0x1 + 0x10 = 0x11 Shows up on char creation & has "At War" greyed out.

New Information on the Faction.dbc file:

Faction.dbc:

Columns 3, 4, 5, and 6 are all race masks when converted to binary. For example, Faction 81 (Thunderbluff) has values of 130, 1101, 16, and 0x20 respectively. 130 in binary is 10000010 and is read from right to left and are as follows:

Human
Orc
Dwarf
Night Elf
Undead
Tauren
Gnome
Troll
Goblin
Blood Elf
Draenei
So 10000010 has a 1 for Orc and Troll. Therefore, the value of 130 in field 3 means it's setting the Thunderbluff reputation for Orcs and Trolls. 1101 to binary is 10001001101. This is flagging the alliance characters (Human, Dwarf, Night Elf, Gnome, and Draenei. The 16 is 10000, which is for Undead. The 0x20 is for Tauren. I think my values here may be off for one because I'm almost certain I edited out the Blood Elf race mask on my project

Columns 3, 4, 5, and 6 are set by their respective values in columns 11, 12, 13, and 14. Columns 7, 8, 9, and 10 are also race masks, but I'm not sure what field they interact with. I presume it's 15, 16, 17, and 18.

So using the above, field 3 with a value of 130 is defining the race mask of Orcs and Trolls. Field 11 says that these races start with 3100 reputation with Thunderbluff (100 reputation into friendly). Field 4 with a value of 1101 defines the alliance races and says they are all at -42000 reputation (hated) with Thunderbluff. Field 5 with a value of 16 defines that Undead start with 500 reputation from field 13 whilst field 6 defines Tauren starting with 4000 reputation from field 14.

- Credits to kojak488 of Modcraft for this information.

Big thanks to Valkryst for this.
 
Top