Mathex
Respected Member
1. Introduction
Okay so now I've been trying to make custom races for a week or so because the only guide made was for an earlier patch and the people who knew what to do wouldn't respond to my questions or just simply ignored me. So now I'm sharing what I've found out on how to create your own custom race.
So what you have to understand for a start is that you can't have all custom races such as pigs or something else, it has to be a race that's actually defined, now you'll probably ask me: "which is defined?", well let's take a look:
(From SharedDefines.h)
That is the current races that is playable. What I'm going to teach you today is how to add two of them: The Goblin and the Fel Orc.
Before we start I'd like to say a couple of things:
2. Getting The Files
Okay, we'll start editing the DBC files, the ones you need are:
You can extract them from the core/dbc, it's the same as in the client. You'll also have to get some Lua and XML files from the blizzard patches so that you can edit the character creation screen. Those files are:
Now that we got our desired files smoothly lined up we can go on to the editing of them.
3. Editing The DBC Files
For this, unless stated otherwise, use your favorite DBC editor.
Firstly open up your ChrRaces.dbc, you'll see all the races I listed above shows up, now what you want to do is fine these 2 lines:
Or something along the lines of that..
Now you want to edit is as follows:
2nd column, it must change by 12 for the race is playable.
4th column defines the faction of the race, see Faction.dbc
8th column, 1 for horde and 7 for alliance. -Taken from Modcraft, see credits
Now you want to save and close that. And you want to open up CharBaseInfo.dbc, this file determines the class/race combos for your races. So what you want to do is for now only add 2 lines:
9, 1
12, 1
This makes it so that Goblin (9) can be warrior and so can Fel Orc (12). --NOTE: If you're having trouble opening this DBC file Taliis does the job
Now that we're done with that we'll move on to the Lua/XML files, and this is where the fun begins
4. Editing the Interface Files
Okay so the first thing you want to do is get open the GlueStrings file, in there you'll find many values that you can edit and such, but let's keep it simple and add what we need:
Find
And on top of that add this:
Next find:
after that line insert these:
And you're done with GlueStrings.lua, close it down (remember to save ofc) and we'll move on to GlueParent.lua
So as you now see this is what the ModCraft tutorial didn't cover, and it's here that many people fail, so therefore I'll complete this part
Firstly you want to open up GlueParent.lua (of course) and then search for
After this line add these 2:
Now you want to go to around:
and after that you should add:
This will add the light so the models are lightened up and nice
After this you want to go to:
and replace that whole function with:
This will make the goblin and the Fel Orc appear as if they had the orc character creation background.
You're now done with the GlueParent.lua and can move on to the CharacterCreate.lua, firstly open it and go to
and edit that to
Find
After that add:
-This will add the Draenei icons to the character creation screen since I haven't quite figured out the icon placement coord system.
Continues below
Okay so now I've been trying to make custom races for a week or so because the only guide made was for an earlier patch and the people who knew what to do wouldn't respond to my questions or just simply ignored me. So now I'm sharing what I've found out on how to create your own custom race.
So what you have to understand for a start is that you can't have all custom races such as pigs or something else, it has to be a race that's actually defined, now you'll probably ask me: "which is defined?", well let's take a look:
(From SharedDefines.h)
Code:
enum Races
{
RACE_NONE = 0,
RACE_HUMAN = 1,
RACE_ORC = 2,
RACE_DWARF = 3,
RACE_NIGHTELF = 4,
RACE_UNDEAD_PLAYER = 5,
RACE_TAUREN = 6,
RACE_GNOME = 7,
RACE_TROLL = 8,
//RACE_GOBLIN = 9,
RACE_BLOODELF = 10,
RACE_DRAENEI = 11,
//RACE_FEL_ORC = 12
//RACE_NAGA = 13,
//RACE_BROKEN = 14,
//RACE_SKELETON = 15,
//RACE_VRYKUL = 16,
//RACE_TUSKARR = 17,
//RACE_FOREST_TROLL = 18,
//RACE_TAUNKA = 19,
//RACE_NORTHREND_SKELETON = 20,
//RACE_ICE_TROLL = 21
};
That is the current races that is playable. What I'm going to teach you today is how to add two of them: The Goblin and the Fel Orc.
Before we start I'd like to say a couple of things:
- This is not and easy guide, don't expect me to hand out information if you don't know what you're doing
- I will provide information that I found worked for me
- I don't care if anything I do is "hacky".
2. Getting The Files
Okay, we'll start editing the DBC files, the ones you need are:
Code:
ChrRaces.dbc
CharBaseInfo.dbc
CharStartOutfit.dbc
SkillLineAbility.dbc
SkillRaceClassInfo.dbc
Faction.dbc
You can extract them from the core/dbc, it's the same as in the client. You'll also have to get some Lua and XML files from the blizzard patches so that you can edit the character creation screen. Those files are:
Code:
patch-enXX-3.mpq\Interface\GlueXML\GlueStrings.lua
patch-enXX-3.mpq\Interface\GlueXML\GlueParent.lua
patch-enXX-2.mpq\Interface\GlueXML\CharacterCreate.lua
patch-enXX-2.mpq\Interface\GlueXML\CharacterCreate.xml
[/code
Okay, great so some of you will maybe ask how to extract those, what you do is get your favorite MPQ Editor, you can use whichever you like (google it if you don't have one) and open the patches with it, go to the path the I wrote above in the MPQ file and drag it somewhere in a folder for this project of yours.
Now that we got all our files we need to arrange them, make a new folder called "RacePatch" on your desktop which should look like this:
[code]
RacePatch\Interface\GlueXML\GlueStrings.lua
RacePatch\Interface\GlueXML\GlueParent.lua
RacePatch\Interface\GlueXML\CharacterCreate.lua
RacePatch\Interface\GlueXML\CharacterCreate.xml
RacePatch\DBFilesClient\ChrRaces.dbc
RacePatch\DBFilesClient\CharBaseInfo.dbc
RacePatch\DBFilesClient\CharStartOutfit.dbc
RacePatch\DBFilesClient\SkillLineAbility.dbc
RacePatch\DBFilesClient\SkillRaceClassInfo.dbc
RacePatch\DBFilesClient\Faction.dbc
Now that we got our desired files smoothly lined up we can go on to the editing of them.
3. Editing The DBC Files
For this, unless stated otherwise, use your favorite DBC editor.
Firstly open up your ChrRaces.dbc, you'll see all the races I listed above shows up, now what you want to do is fine these 2 lines:
Code:
9,1,1,0x0,6894,6895,"Go",7,7,15007,0x448,"Goblin",0,0x2,,,"Goblin",,,,,,,,,,,,,,0xFF01FE,,,"Goblin",,,,,,,,,,,,,,0xFF01CC,,,"Gobelin",,,,,,,,,,,,,,0xFF01CC,"NORMAL","NONE","NORMAL",0,
12,5,1,0x0,16981,16980,"Fo",7,7,15007,0x448,"FelOrc",0,0x2,,,"Fel Orc",,,,,,,,,,,,,,0xFF01FE,,,"Fel Orc",,,,,,,,,,,,,,0xFF01CC,,,"Fel Orc",,,,,,,,,,,,,,0xFF01CC,"NORMAL","NORMAL","NORMAL",0,
Or something along the lines of that..
Now you want to edit is as follows:
2nd column, it must change by 12 for the race is playable.
4th column defines the faction of the race, see Faction.dbc
8th column, 1 for horde and 7 for alliance. -Taken from Modcraft, see credits
Now you want to save and close that. And you want to open up CharBaseInfo.dbc, this file determines the class/race combos for your races. So what you want to do is for now only add 2 lines:
9, 1
12, 1
This makes it so that Goblin (9) can be warrior and so can Fel Orc (12). --NOTE: If you're having trouble opening this DBC file Taliis does the job
Now that we're done with that we'll move on to the Lua/XML files, and this is where the fun begins
4. Editing the Interface Files
Okay so the first thing you want to do is get open the GlueStrings file, in there you'll find many values that you can edit and such, but let's keep it simple and add what we need:
Find
Code:
ABILITY_INFO_BLOODELF1 = "- Enchanting skill increased.";
Code:
ABILITY_INFO_GOBLIN1 = "- Goblin Racial 1";
ABILITY_INFO_GOBLIN2 = "- Goblin Racial 2";
ABILITY_INFO_GOBLIN3 = "- Goblin Racial 3";
ABILITY_INFO_GOBLIN4 = "- Goblin Racial 4";
ABILITY_INFO_FELORC1 = "- Fel Orc Racial 1";
ABILITY_INFO_FELORC2 = "- Fel Orc Racial 2";
ABILITY_INFO_FELORC3 = "- Fel Orc Racial 3";
ABILITY_INFO_FELORC4 = "- Fel Orc Racial 4";
Next find:
Code:
RACE_CHANGE_IN_PROGRESS = "Updating Race...";
after that line insert these:
Code:
RACE_INFO_GOBLIN = "Information about Goblin males.";
RACE_INFO_GOBLIN_FEMALE = "Information about Goblin females.";
RACE_INFO_FELORC = "Information about Fel Orc males.";
RACE_INFO_FELORC_FEMALE = "Information about Fel Orc females.";
And you're done with GlueStrings.lua, close it down (remember to save ofc) and we'll move on to GlueParent.lua
So as you now see this is what the ModCraft tutorial didn't cover, and it's here that many people fail, so therefore I'll complete this part
Firstly you want to open up GlueParent.lua (of course) and then search for
Code:
GlueAmbienceTracks["CHARACTERSELECT"] = "GlueScreenIntro";
Code:
GlueAmbienceTracks["GOBLIN"] = "GlueScreenIntro";
GlueAmbienceTracks["FELORC"] = "GlueScreenIntro";
Now you want to go to around:
Code:
CHARACTERSELECT = {
{1, 0, 0.00000, 0.00000, -1.00000, 1.0, 0.15000, 0.15000, 0.15000, 1.0, 0.00000, 0.00000, 0.00000},
{1, 0, -0.74919, 0.35208, -0.56103, 1.0, 0.00000, 0.00000, 0.00000, 1.0, 0.44706, 0.54510, 0.73725},
{1, 0, 0.53162, -0.84340, 0.07780, 1.0, 0.00000, 0.00000, 0.00000, 2.0, 0.55, 0.338625, 0.148825},
},
and after that you should add:
Code:
GOBLIN = {
{1, 0, 0.00000, 0.00000, -1.00000, 1.0, 0.15000, 0.15000, 0.15000, 1.0, 0.00000, 0.00000, 0.00000},
{1, 0, -0.74919, 0.35208, -0.56103, 1.0, 0.00000, 0.00000, 0.00000, 1.0, 0.44706, 0.54510, 0.73725},
{1, 0, 0.53162, -0.84340, 0.07780, 1.0, 0.00000, 0.00000, 0.00000, 2.0, 0.55, 0.338625, 0.148825},
},
FELORC = {
{1, 0, 0.00000, 0.00000, -1.00000, 1.0, 0.15000, 0.15000, 0.15000, 1.0, 0.00000, 0.00000, 0.00000},
{1, 0, -0.74919, 0.35208, -0.56103, 1.0, 0.00000, 0.00000, 0.00000, 1.0, 0.44706, 0.54510, 0.73725},
{1, 0, 0.53162, -0.84340, 0.07780, 1.0, 0.00000, 0.00000, 0.00000, 2.0, 0.55, 0.338625, 0.148825},
},
This will add the light so the models are lightened up and nice
After this you want to go to:
Code:
function SetBackgroundModel(model, name)
Code:
function SetBackgroundModel(model, name)
local nameupper = strupper(name);
if (name == "Goblin" or name == "GOBLIN") then
name = "Orc";
end
if (name == "FelOrc" or name == "FELORC") then
name = "Orc";
end
local path = "Interface\\Glues\\Models\\UI_"..name.."\\UI_"..name..".m2";
if ( model == CharacterCreate ) then
SetCharCustomizeBackground(path);
else
SetCharSelectBackground(path);
end
PlayGlueAmbience(GlueAmbienceTracks[nameupper], 4.0);
SetLighting(model, nameupper)
end
This will make the goblin and the Fel Orc appear as if they had the orc character creation background.
You're now done with the GlueParent.lua and can move on to the CharacterCreate.lua, firstly open it and go to
Code:
MAX_RACES = 10;
Code:
MAX_RACES = 12;
Find
Code:
["DRAENEI_MALE"] = {0.5, 0.625, 0, 0.25},
["DRAENEI_FEMALE"] = {0.5, 0.625, 0.5, 0.75},
After that add:
Code:
["GOBLIN_MALE"] = {0.625, 0.625, 0, 0.25},
["GOBLIN_FEMALE"] = {0.625, 0.625, 0, 0.25},
["FELORC_MALE"] = {0.5, 0.625, 0, 0.25},
["FELORC_FEMALE"] = {0.5, 0.625, 0, 0.25},
Continues below