• This is a read only backup of the old Emudevs forum. If you want to have anything removed, please message me on Discord: KittyKaev

Creating a Custom Profession

FoxGaming

Exalted Member
So to start this off I just want to say thank you to Tommy for giving me the suggestion to make a custom profession as it has turned out to be an awesome process that turned out really nice. I will be teaching you how to create my custom profession, Infusement.

Just a little about "Infusement", Infusement is the profession that is designed to allow the Infuser to bind elements and spirits to items. The magic involved in Infusing is very dark, so dark that it has been hidden from Azeroth until now. My first example of using Infusement is this, for my first recipe we will be creating a staff...the Staff of Infusement, Which is going to turn out to be the required tool for greater recipes. In order for you create the Staff of Infusement you must have wood, dragon's blood, life energy, and one tree spirit. The Dragon's blood will be sacrificed to the dark gods while the life energy will strengthen the bind. The combination of these 2 acts, sacrifice and power, are enough to dominate the weak tree spirit. Binding it to the wood, it however is no longer a kind spirit, Once a spirit is bound there is no telling how it will act.

Items created by Infusement:
Transformation scrolls
Staves
Scrolls that alter abilities of the user.
Perhaps some weapons for other class.
Links to other professions. (Can infuse and empower a sword made by blacksmithing)
Buffs?

The Start:
If you followed my other profession guides then you are already a step ahead once you get here. To create a custom profession takes some more advanced editing of DBC's and some new lines in the core. I will warn you again just like in my other tutorial, please back up everything that you do not want to erase.


Here are the requirements for the guide:
1. The ability to follow directions. I will not be leading you blindly into the dark, I will do my best to make this simple.
2. Small knowledge of DBC files.
3. Very basic knowledge of c++, and i mean Very Basic.
4. Understanding of professions...this one is uhh self explanatory.
5. Most importantly, Patience and accuracy.
6. Oh and i shouldn't have to mention this but you CANNOT be using a repack.

This guide will be written for TrinityCore, however it is easily converted to ArcEmu, and i'm not sure about mangos.

Programs Required:
  1. Taliis
  2. You will also need Visual Express...Whatever it is you use to compile, i use Visual Express 2010.
  3. Either MyWarCraft Studio or Ladik's MPQ Editor

Here goes nothing :)

Part One:Editing the SkillLine DBC

Editing the SkillLine.dbc files is one of the easier edits that will be done. First things first, open up Taliis and find the SkillLine.dbc file. If you've followed my other guide you will have a very generic understanding of how this program functions and will find this guide easier.

Once the file is open you are going to do 3 things first, Go to strings, make 3 strings The first one for me is,
1. The name of your profession. For me, Infusement
2. A spell description. This one is mine "A higher Infusement skill allows you to alter and infuse dark magics into objects, players, and items"
3. The profession as a verb, for me...(Infusing)

skilllinestrings_zps08dd23dc.jpg


Once you have your 3 strings, write them down and don't forget them.
Now we will be editing SkillLine.dbc

Here are the columns we will be edting:
#0: Skill ID, make it something unique.
#1: CategoryID, not really important as we will be copying another profession row.
#3 Name of your profession
#20 the description.
#37, IconID
#38 Profession as a verb.
#55 Decides whether or not this can be linked in chat.

So first thing's first we need a new row, in Column #0 go down to row 164, blacksmithing. Click on it and clone it, the row will appear at the bottom of the page. Now, lets get to editing :)
Capture_zps4b0f1d40.jpg


As you can see we need to change Column #0 to a unique ID, i'm using 900.
Column #1: If you copied blacksmithing you should already have this set to 11.
Column #3: This is our String value, so type the string number in that is linked to the name of your spell.
Column #20: This is also a string value, so type in the string number that is linked to the description of your spell.

Now scroll over to Column #37 and #38, once you get to 37 it should look like this.
Skilllinestrings2_zps6081078f.jpg


So first things first, Column #37 This is the IconID. This is what my icon looks like:
Icon_zpsb3fe0d00.jpg
However, if you would like to find one that you like then go on WoWHead and search around till you find a spell that has an icon you like. Remember, it has to be from whatever Expansion you're doing this for. Once you have your spell, Open up a new Tallis window.
So for the sake of the guide let's just say the profession I'm making is bow crafting or fletching. I would search for a spell that has an icon i like, turns out to be TrueShot Aura which as an ID of 19506, And this is the icon:
fletchingexample_zps9d2f9204.jpg


While you are doing this i would also recommend finding a spell that when casted has a visual you want for your profession as well, this value is stored in Column #131 in the Spell.dbc. If you put this spell visual value in the recipe for your custom profession when you are crafting your items in your profession it could look like my custom profession examples below.

So we go into a our NEW taliis window and open up Spell.dbc. We're going to scroll down to TrueShot Aura which will have an ID of 19506 in Column #0. Found it? Good. Now staying on row 19506 scroll all the way over to Column #133.
FindingIconID_zps07c03ebf.jpg

As you can see it has an ID of 128.

So now you can close that new window and go back to your SkillLine.dbc, and edit Column #37 to be whatever value it is you just found.
In column #38 or Name Male enGB put your Profession Verb, Infusing. Remember it uses Strings.
Now really quick scroll over to Column #55. Make sure that Column #55 has 1 as a value in it, this allows our profession to be linked in chat.

Save and Close SkillLine.DBC :)

Part 2: Editing the SkillRaceClassInfo.dbc
This is literally the easiest DBC to edit, open it up and click on tables with the cog.
This DBC file isn't formatted like the others, so in the First Column, ID. Scroll down until you find row 243.
Clone it, now change the Value in Column ID to something unique, I used 1000. Next, the SkillLine Column. Change that to the skill we just created in SkillLine.dbc This is what mine looks like:
RaceInfo_zpsf70de92f.jpg


Save and Close, See, Easiest Edit ever!

Part 3: Editing the Spell.dbc

Welcome to spell.dbc this is where things get slightly more complicated but I promise I will make it easy. So, crack open the spell.dbc. We're going to start off by making 5 strings since the professions we're making will currently only go up to Skill Level 150.
5Stringsspelldbc_zpse45a735b.jpg

So this is what you need:
1. A General name for your profession, Infusement.
2. The apprentice rank description (Allows an Infuser to infuse dark magics into objects, items and player up to a maximum potential skill of 75.)
3. The journeyman rank description (Allows an Infuser to infuse dark magics into objects, items and player up to a maximum potential skill of 150)
4. Apprentice Rank parent/trainer spell name.
5. Journeyman Rank parent/trainer spell name.

Once you are done with those, go to the Table with the Cog. We have some rows to clone, for the sake of ease we will be using blacksmithing. So here are the rows you need to clone, Copy them in this EXACT order.
1. 2018 (The apprentice spell)
2. 2020 (The apprentice parent spell)
3. 3100 (The journeyman Spell)
4. 2021 (The Journeyman parent spell.)

Don't ask me why these spells are in different order, but it's the easiest way to make them work...Trust me.

So now comes the fun part, editing the values.
Here are the Columns and their descriptions:
Column #0: Unique Spell ID
Column #111: The Skill ID defined in SkillLine.dbc
Column #133: IconID (We found this awhile ago for SkillLine.dbc, hopefully you wrote it down?)
Column #136: The Spell Name
Column #170: The spell description.

So lets edit the values!
Column #0: I will be using 150000,150001,150002,150003 for my spell IDs.

Now scroll the long way over to Column #111, this is the SkillID we already defined in SkillLine.dbc so edit it, mine is 900.

Column #116: This can be a little bit confusing but oh well. So for your 2 spells that ARE NOT parent spell you do nothing in this column leave it at 0. However for your 2 Trainer/Parent spells you need to edit this value. So this is what mine looks like:
Spelldbciconsandspellids_zps5733c740.jpg

As you can see i have my spells in order so it is listed the way i listed it above.
So for spell 150001 I put 150000 in Column #116
and for Spell 150003 I put 150002 in Column #116 as you can see above.

Column #133: This is the same IconID we used in SkillLine.dbc, so for me 2724.

Column #136: Spell names, Remember these are Strings.
SpellnameandIcon_zps90ffb601.jpg


Now, we need to edit Column #170, these are the spell descriptions. You should be an expert at strings by now and I'm running out of allowed pictures in one thread so I'm going to hope you can do this one without a screenshot :)

You are now done with Spell.dbc congrats, it wasn't too hard right? So if you decided that you wanted to make the skill go up to infinity you would just repeat the steps creating new Profession skills and new parent skills.


Part 4:Editing the SkillLineAbility.dbc

This is the last DBC you will have to edit if everything is going correctly, we just have to finish this DBC then do the c++ edits, and make a new recipe for our profession.

Okay so here are the columns we will be editing:
Column #0: The SkillLineAbility Unique ID, this isn't used for anything except the SkillLineAbility table.
Column #1: Your skillID, the skill you made in SkillLine.dbc and linked to the spells in the spell.dbc
Column #2: The spell ID's you just created, not the trainer spells. Just the 2 Rank Spells.
Column #7: The minimum skill required, So: (1 for apprentice, 50 for journeyman, 125 for expert.)
Column #8: The Spell that is next.

So first things first we need clone some rows, so using Column #1 and Column #0. Using Column #1 first scroll down until you find 164. Once you find it, use Column #0 and find 1283. This is Base skill for blacksmithing, if you're following the guide exactly you will clone this row 2 times. Clone it for however many Rank spells you have.

So now we scroll down to the bottom and make our edits
SkillLineAbility_zpsafa7a097.jpg

As you can see, i have a unique ID in Column #0.
Column #1: Has my SkillID, 900.
Column #2: Has my 2 Rank Spell ID's.
Column #7: Has the minimum Skill required in it.
and last but not least Column #8 has the spell is next in line. Notice that i do not have any spells yet after 150002(Journeyman) so i do not have anything set.

You are now done with the DBC files! Except for the ones you'll need to edit when you make a recipe for your new profession.

Part 5:The C++ Involved

These are the edits for TrinityCore:
Okay, so open up ItemPrototype.h and either go to line 442 or search
Code:
    ITEM_SUBCLASS_JEWELCRAFTING_RECIPE          = 10
Either way you get there it doesn't matter. This is what you are going to change for this file:

You are going to change
Code:
ITEM_SUBCLASS_JEWELCRAFTING_RECIPE          = 10
};

To this

Code:
ITEM_SUBCLASS_JEWELCRAFTING_RECIPE          = 10,
ITEM_SUBCLASS_INFUSEMENT                    = 11 
};
make sure you remember the , after the 10.
You are also going to go down to where it says
Code:
#define MAX_ITEM_SUBCLASS_RECIPE                  10
Change that 10 to an 11.

Save and close ItemPrototype.h

Now open ShardDefines.h you are going to search for this:
Code:
    SKILL_PET_EXOTIC_SPIRIT_BEAST  = 788

Once you find it you're going to change the file so that it looks like this:
Code:
    SKILL_PET_EXOTIC_SPIRIT_BEAST  = 788,
    SKILL_INFUSEMENT  = 900
again, don't forget the comma after 788.

One last thing to edit :) right under the skills you will see a line that says:

Code:
#define MAX_SKILL_TYPE               789
change it to:
Code:
#define MAX_SKILL_TYPE               901

You always need to make this 1 higher than the actually skill value you have.

Save and close SharedDefines.h

So now since we added our skill to ItemPrototype.h we can put a new requirement on our items, i can now create items that are only useable by Infusers :)

This is very important!
You need to compile this new core that you just made edits too...ALSO! You need to take all of the DBC files we just edited and put them into a custom mpq patch, they also need to be in your servers DBC folder. But wait just a second, I know you are anxious to try this out but you have ONE more step. If you go in-game and try to use your profession you will realize that it doesn't work...This is because in order for a profession to function it needs recipes. So to learn how to make a custom recipe and to create an MPQ patch you need to follow my other guide posted Here

The following C++ edits are the Edit required to make this work in ArcEmu
First, open up Skill.h and search for
Code:
#define SKILL_PET_EXOTIC_SPIRIT_BEAST 788
Underneath that code add another one that says:
Code:
#define SKILL_INFUSEMENT 900
Save and close Skill.h

Next, open up ItemPrototype.h
and search for
Code:
ITEM_SUBCLASS_RECIPE_FISNING            = 9,
now add a line under it that says:
Code:
ITEM_SUBCLASS_RECIPE_INFUSEMENT      =10,

You are now done with the ArcEmu edits.

If you have gotten this far that means you have completed the guide!
I would like to congratulate you on creating your first custom profession, I hope that all works well for you, if everything turned out and created the custom recipe correctly this is what your profession Could look like :)

WoWScrnShot_080813_214052_zpsae66b790.jpg

WoWScrnShot_080813_214214_zps3501edaa.jpg


Credits:
Me, FoxGaming for creating the guide and the method of which this can be done.
Tommy, for giving me the wild idea to even try it, Thank you.
 
Last edited by a moderator:

Boogie

Enthusiast
So thanks for the guide really helpful found another on another site, and it didn't have the detail or images as helpful as yours so I'm really grateful for that. I had been trying to attempt this several days before seeing your tutorial and thought okay lets start from scratch. So I think I have followed all the appropriate steps however, I have the spells in my spell book but when clicked they don't do anything. I learnt the profession and then learnt the recipe I created 150004 and still cant click it. I have a hint that I think its the recipes not being linked or learnt when I learn the profession that is making it not work. Any suggestions on what could be the problem? :)

Thanks in advance
 

FoxGaming

Exalted Member
So thanks for the guide really helpful found another on another site, and it didn't have the detail or images as helpful as yours so I'm really grateful for that. I had been trying to attempt this several days before seeing your tutorial and thought okay lets start from scratch. So I think I have followed all the appropriate steps however, I have the spells in my spell book but when clicked they don't do anything. I learnt the profession and then learnt the recipe I created 150004 and still cant click it. I have a hint that I think its the recipes not being linked or learnt when I learn the profession that is making it not work. Any suggestions on what could be the problem? :)

Thanks in advance

Sorry for not getting back to you as quickly as I'd like, my job takes so much of my time. The first place I would look is in your SkillLineAbility.dbc this is where the linking of spells to skills is handled, so go down to your spell look in Column #1 and make sure that the value in that column matches the value you defined in SkillLine.dbc. Also, i would check in your spell.dbc, if your recipe does not have the proper "flags" it will not function as a recipe, which recipe did you copy from? The way recipes are handled and your regular spells are handled are 2 separate flags and exceptionally different values.
 

Tommy

Founder
Do you have any information about the recipe categories? For example:

Metal & Stone
Cloth
Staves

Etc..
 

FoxGaming

Exalted Member
I am finally home from vacation, time to get back onto guides and things :) sorry I didn't get back to you about your question.
 
Top