<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://datoolset.net/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stuntpope</id>
		<title>Dragon Age Toolset Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://datoolset.net/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stuntpope"/>
		<link rel="alternate" type="text/html" href="http://datoolset.net/wiki/Special:Contributions/Stuntpope"/>
		<updated>2026-07-10T19:50:50Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.6</generator>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Add_A_New_Class_Tutorial&amp;diff=8597</id>
		<title>Talk:Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Add_A_New_Class_Tutorial&amp;diff=8597"/>
				<updated>2009-12-07T13:13:27Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Errors */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Initial edit ==&lt;br /&gt;
I have started to edit this page at the author's request to try and fix up some of the formatting. It was prety much a cut and paste from the forum. I think it has a way to go yet. I would recommend replacing all the capitalised text with appropriate markup such as '''bold'''. Also the structure could perhaps be improved and some of the content organised better in sentences rather than point form. Please help out if you have the time and incliniation. [[User:Stuntpope|Stuntpope]]&lt;br /&gt;
&lt;br /&gt;
=== edit ===&lt;br /&gt;
Embedded all images and added dascript tages&lt;br /&gt;
&lt;br /&gt;
--[[User:Rigortauri|Rigortauri]] 13:12, 2 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
&lt;br /&gt;
The following section is incorrect:&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot; and add the 4th CharGen_ClearAbilityList&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
            // Note: This wipes the ability list clear&lt;br /&gt;
            CharGen_ClearAbilityList(oChar,1);&lt;br /&gt;
            CharGen_ClearAbilityList(oChar,2);&lt;br /&gt;
            CharGen_ClearAbilityList(oChar,3);&lt;br /&gt;
            CharGen_ClearAbilityList(oChar,4);&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot; and add the ValidForClass4 parts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
            nForClass1 = GetM2DAInt(TABLE_TACTICS_USER_PRESETS, &amp;quot;ValidForClass1&amp;quot;, nCurrentRow);&lt;br /&gt;
            nForClass2 = GetM2DAInt(TABLE_TACTICS_USER_PRESETS, &amp;quot;ValidForClass2&amp;quot;, nCurrentRow);&lt;br /&gt;
            nForClass3 = GetM2DAInt(TABLE_TACTICS_USER_PRESETS, &amp;quot;ValidForClass3&amp;quot;, nCurrentRow);&lt;br /&gt;
            nForClass4 = GetM2DAInt(TABLE_TACTICS_USER_PRESETS, &amp;quot;ValidForClass4&amp;quot;, nCurrentRow);&lt;br /&gt;
            if(nCoreClass == nForClass1 || nCoreClass == nForClass2 || nCoreClass == nForClass3 || nCoreClass == nForClass4)&lt;br /&gt;
                AddTacticPresetID(oCreature, nCurrentRow);&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The author has misunderstood the purpose of these methods. There is no need to modify the first of these. The int parameter in CharGen_ClearAbilityList is actually the ability type - not a class id. In the second part there is no point modifying this unless you also modify user tactics 2da table. The three columns allow up to three classes to be listed and since the third column is not used already there is really no need to add a fourth column anyway.&lt;br /&gt;
&lt;br /&gt;
I considered removing this but it really needs to be replaced with the correct approach. I suspect that there are other aspects of AI that need to be dealt with too. [[User:Stuntpope|Stuntpope]] 13:13, 7 December 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Tutorials&amp;diff=8385</id>
		<title>Talk:Tutorials</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Tutorials&amp;diff=8385"/>
				<updated>2009-11-28T03:21:23Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Restructure ==&lt;br /&gt;
I have moved some things around and created some extra categories. First off I reverted the placeable tutorial to its original place in the list. It seems to me that creating an area should take precedence, and you don't need custom placeables in order to do that. I moved the level tutorial down into the more advanced section as that first list was meant to be very introductory. I also split up the other category into different sections. [[User:Stuntpope|Stuntpope]] 01:37, 28 November 2009 (UTC)&lt;br /&gt;
:Actually when I moved the level tutorial I assumed it was the old one. I notice the new one is much more introductory, so maybe it could go at the beginning, but I'm still not sure if it isn't too steep a learning curve to start with that. [[User:Stuntpope|Stuntpope]] 03:21, 28 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Tutorials&amp;diff=8384</id>
		<title>Talk:Tutorials</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Tutorials&amp;diff=8384"/>
				<updated>2009-11-28T03:21:13Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Restructure ==&lt;br /&gt;
I have moved some things around and created some extra categories. First off I reverted the placeable tutorial to its original place in the list. It seems to me that creating an area should take precedence, and you don't need custom placeables in order to do that. I moved the level tutorial down into the more advanced section as that first list was meant to be very introductory. I also split up the other category into different sections. [[User:Stuntpope|Stuntpope]] 01:37, 28 November 2009 (UTC)&lt;br /&gt;
:actually when I moved the level tutorial I assumed it was the old one. I notice the new one is much more introductory, so maybe it could go at the beginning, but I'm still not sure if it isn't too steep a learning curve to start with that. [[User:Stuntpope|Stuntpope]] 03:21, 28 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8383</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8383"/>
				<updated>2009-11-28T01:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Creating a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Editing the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating the UTC template file==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Trying it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;br /&gt;
&lt;br /&gt;
[[Category:Character generation]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Add_A_New_Class_Tutorial&amp;diff=8382</id>
		<title>Talk:Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Add_A_New_Class_Tutorial&amp;diff=8382"/>
				<updated>2009-11-28T01:47:37Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Initial edit ==&lt;br /&gt;
I have started to edit this page at the author's request to try and fix up some of the formatting. It was prety much a cut and paste from the forum. I think it has a way to go yet. I would recommend replacing all the capitalised text with appropriate markup such as '''bold'''. Also the structure could perhaps be improved and some of the content organised better in sentences rather than point form. Please help out if you have the time and incliniation. [[User:Stuntpope|Stuntpope]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8381</id>
		<title>Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8381"/>
				<updated>2009-11-28T01:44:31Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This tutorial shows you how to modify the character backgrounds that can be selected during character generation. This is likely only of use if you are creating your own module or campaign as there would be no point to changing the background in the single player campaign unless you were also going to make extensive additions to support the new backgrounds  (e.g a completely new origin story). So the example we will use for this tutorial is a new stand alone module in which we completely replace the existing backgrounds. Changing backgrounds is especially useful if your module is set in a different lore to the main Dragon Age game or if you simply want to reduce the scope of the number of different backgrounds.&lt;br /&gt;
&lt;br /&gt;
We will also demonstrate some important principals that can be followed when modifying other core rules such as available races or classes. Most importantly we will add the new backgrounds in a way that doesn’t require any editing of core resources. By leaving the core resources alone we make our changes compatible with future patches which might otherwise overwrite our work. Furthermore keeping the core resources in tact allows us to make different modifications to different modules within the same toolset.&lt;br /&gt;
&lt;br /&gt;
It is recommended that the reader should have some experience with scripting or coding in order to carry out the operations involved. The more you are relying on just copy pasting these instructions the more likely you are to make mistakes that you won’t know how to fix.&lt;br /&gt;
&lt;br /&gt;
== The backgrounds demo module ==&lt;br /&gt;
Any basic module will do for the purposes of this tutorial. If you want to create a test module for this tutorial then just create a simple module with a single area and a starting location. Make sure that the only thing selected in the module’s hierarchy is ''Core game resources''. This will ensure that the module is a stand alone module rather than an add-in to the single player campaign or some other module. For the purposes of this tutorial we will assume the module is called ''Backgrounds demo'' and I will prefix my resources with ''bdm_'' to be sure that they are distinct from any that are already in existence.&lt;br /&gt;
&lt;br /&gt;
We are going to completely replace the existing backgrounds with 3 new ones of our own. You can use new backgrounds in your module however you see fit. You could create entire origin stories for each one like in the single player campaign (possibly a major undertaking depending on length) or you can just use them to influence dialogue and plot options in the main part of your game.&lt;br /&gt;
&lt;br /&gt;
For our demo we are creating a  module in which the player starts off in a small human village (we will not be creating the details of this module so this is just for the purpose of an example). There is a wizard in this village who plays a pivotal role in the story. We allow the player to start as the wizard’s apprentice (if they are a mage) or as his servant (if they are human or elven and not a mage) or as a wandering traveller who has come to visit the wizard (if they are not human and not a mage). So the three backgrounds will be:&lt;br /&gt;
&lt;br /&gt;
* Servant&lt;br /&gt;
* Apprentice&lt;br /&gt;
* Traveller&lt;br /&gt;
&lt;br /&gt;
== Creating the background strings ==&lt;br /&gt;
Before we start modifying the 2DA files we are going to create some strings. Open the string editor in the toolset and create the following strings in your ‘Backgrounds demo’ talk table:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_talk_table.png]]&lt;br /&gt;
&lt;br /&gt;
Your string IDs might be different to these so be sure to reference the right string ID in the instructions that follow. Simply replace these string Ids with your own.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''There is currently a bug in the game that causes it to crash if a background description ID has a value greater than 109 912 680. To get around this you can go into your module’s properties and change the start and end IDs for strings to be less than that. After that the string editor will generate IDs in a range that won’t crash. You can always put those values back again after you create the background descriptions (that way you have less to alter once Bioware fix this). Hopefully Bioware will fix this bug soon as the official string range for non-Bioware / certified modules is over 610 000 000.''&lt;br /&gt;
&lt;br /&gt;
You may have noticed that we have given two different names and descriptions for the traveller background depending on the PC’s race. We will say more about that in the following section.&lt;br /&gt;
&lt;br /&gt;
== Modifying the 2DAs ==&lt;br /&gt;
The next thing we need to do is to modify the worksheets in Backgrounds.xls. Be sure to make a copy of the spreadsheet first so that you leave the original intact. See LINK for general information about editing 2DA files. The first worksheet is called ‘backgrounds’; modify it to look like the following:&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_backgrounds.png]]&lt;br /&gt;
&lt;br /&gt;
Note that since 2DAs combine together to form M2DAs, and we don’t want the existing backgrounds in our game, we have overwritten the last two slots as unused1 and unused2,  even though we won’t be using them. The name and desc  string refs on this tab will be overwritten by the race specific ones on the names tab so we can leave those blank (AFAIK these string refs are not used providing the ones on the names tab are provided - also the tooltip string ref seems not to be used anywhere – if you prefer you can set these to something just to be safe).&lt;br /&gt;
&lt;br /&gt;
The three race columns determine which backgrounds can be selected by which race and the 3 class columns determine which background can be selected by which class. So, as you can see from the picture our Servant background is accessible to elf or human warriors and rogues, the Apprentice background can be selected by elf or human mages and the Traveller background by elf or dwarf warriors and rogues.&lt;br /&gt;
&lt;br /&gt;
The last three tabs indicate a starting ability for each background by race. Note that by default these columns are not hooked up into the character generation script (instead they are hard coded in the script) and are not used, but we will correct that later on when we do the scripting. You have to be careful here because the columns relate to the race IDs, so 1=dwarf, 2=elf and 3=human, which is in a different order to the other race columns in this table. The number in the column is an ability ID as given in ABI_base.xls. For this demo we have just given the same skill for each race for a given background. Servants get combat tactics, Apprentices get persuade and Travellers get survival.&lt;br /&gt;
&lt;br /&gt;
The next tab table to modify is background_names.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_names.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure that the IDs here match the IDs in your string table. Note that for Apprentices and Servants we use the same strings regardless of race, but for the Traveller background we use different strings. This is to illustrate how you can divide a single background up into multiple names and descriptions. Internally they are both stored as the same background ID but during character generation a different name, description and icon can be shown to the player. In the single player game this was done with the Noble background by splitting it into human and dwarf Noble variations.&lt;br /&gt;
&lt;br /&gt;
NOTE – you must be careful when splitting a single background into different parts for each race. You must make both the names and descriptions different! If you don’t make the descriptions different then the engine will not recognise them as different even if they have different names.&lt;br /&gt;
&lt;br /&gt;
Now modify the background_desc table as follows&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_desc.png]]&lt;br /&gt;
&lt;br /&gt;
Again note the distinct descriptions for the Traveller background&lt;br /&gt;
Now for the background_icons table. For this demo we will just use some of the existing icons but you may want to create your own icons to add here.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_icons.png]]&lt;br /&gt;
&lt;br /&gt;
The background_defaults table must have an entry for each race, background and class combination that is allowed. The ID column must be calculated as follows:&lt;br /&gt;
&lt;br /&gt;
1000 * raceID  + 100 * classID + backgroundID&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tute_bg_defaults.png]]&lt;br /&gt;
&lt;br /&gt;
The label column should give a description of the row (AFAIK this is not used anywhere).&lt;br /&gt;
For this simple demo we will have each background combination spawn in the same place (the module default start location) but if you wanted different origins to spawn in different places then you can use the next two columns to specify this (AFAIK you have to write your own scripts to accomplish this though).&lt;br /&gt;
&lt;br /&gt;
In the template column you can put the name of a creature resource that you want to use as a template for this race/background/class combination. In the picture you can see that we have just used some default templates that shipped with the toolset but you can easily create your own. Note that only the inventory is copied across to the PC so if you want to create your own templates you do not need to alter anything on the creature except for their inventory.&lt;br /&gt;
&lt;br /&gt;
The name columns take string Ids. If you want to add your own names then you’ll have to create new strings in the string editor.&lt;br /&gt;
&lt;br /&gt;
Finally we have the ability column. As with the skill columns in the backgrounds table these IDs correspond to entries in the ABI_base.xls file. It should be noted that race, class and background are all possible sources of starting abilities so before you decide what to put in this column you should familiarise yourself with what skills are already being added in different parts of character generation in order to ensure that you don’t duplicate an ability somewhere.&lt;br /&gt;
&lt;br /&gt;
The final table is the chargen_preload table. The two columns here should exactly match the entries from the ID and Template columns of the previous table.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_chargen_preload.png]]&lt;br /&gt;
&lt;br /&gt;
== Compiling and fixing the GDAs ==&lt;br /&gt;
Now compile backgrounds.xls and place the resulting GDAs into your ''AddIns\module_name\module\override'' directory.&lt;br /&gt;
Never place anything in your ''AddIns\module_name\core\override'' directory or it will affect other modules than the one you are editing.&lt;br /&gt;
&lt;br /&gt;
Unfortunately there is a bug that prevents large string IDs from compiling correctly so until BioWare fix this bug you will have to edit the GDA files in the toolset. Open up the two GDA files that contain your new string IDs and check to see if the correct string IDs from your spreadsheet are there. Most probably you will have to edit some of them to match. Once you are certain you have done this accurately, save and close the GDA files.&lt;br /&gt;
&lt;br /&gt;
== Creating the backgrounds plot ==&lt;br /&gt;
The background plot is used for keeping track of a PC’s background and can be used to affect conversation options.&lt;br /&gt;
 &lt;br /&gt;
The single player game uses a plot called gen00pt_backgrounds to keep track of the PC background. You can find it in the ''\_Glabal\Generic'' folder of the plots tab if you want to take a look. We will create a similar plot for our custom backgrounds. Create a new plot and call it ''bdm_000pt_backgrounds'' (My naming convention is to use 000 to indicate a resource that isn’t tied to any particular area – feel free to use your own convention but remember to update any references later in the tutorial). Add main plot flags as indicated in the picture below:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_bg_plot.png]]&lt;br /&gt;
&lt;br /&gt;
You could also add some defined flags if you wanted. Defined flags can be used to return some combination of the main flags such as TRAVELLER or add some extra condition like FEMALE_APPRENTICE or ELVEN_APPRENTICE. Defined flags are beyond the scope of this tutorial however.&lt;br /&gt;
&lt;br /&gt;
== Creating the scripts ==&lt;br /&gt;
We are not going to edit any of the original core game scripts, we will only be adding new scripts of our own. As we discuss how to do this you should examine the core scripts that are referred to, but under no circumstances should you make any changes to those files. By leaving the core scripts as they are we make our modification more compatible with any future patches that may be released. If you modified the core scripts and then a patch was released that overwrote those scripts you would lose your changes. Also keeping your modification contained within your own module allows you to make different modifications to different modules within the one toolset.&lt;br /&gt;
&lt;br /&gt;
Lets start off with a script to handle the character generation events that are normally handled by the module_core script. Create a new script called ''bdm_module_core''. It is up to you what directory structure to use for your scripts but it can be a good idea to keep all your scripts in a directory with your module name to make them distinct from the core scripts. Then if you are emulating the functionality of  a particular core script you can mirror the original directory structure underneath your main module folder. So in this case the module_core script is contained in the ''\_Core Scripts'' folder so we will put our bdm_module_core in ''\Backgrounds demo\_Core Scripts'' (the underscore ensures the core directories come first – looks like Bioware accidentally created one without it! I’m pretty sure Core and _Core are meant to be the same directory). Organising things this way will really help with keeping track of your scripts.&lt;br /&gt;
&lt;br /&gt;
The ''bdm_module_core'' script should contain the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
void main(){&lt;br /&gt;
    event ev = GetCurrentEvent();&lt;br /&gt;
    int nEvent = GetEventType(ev); //extract event type from current event&lt;br /&gt;
    int nEventHandled = FALSE; //keep track of whether the event has been handled&lt;br /&gt;
    switch(nEvent){&lt;br /&gt;
        case EVENT_TYPE_MODULE_START:{&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Initiate character generation.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            PreloadCharGen(); //preloads resources for character generation&lt;br /&gt;
            StartCharGen(GetHero(),0,TRUE); //initiates character generation&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        default:&lt;br /&gt;
        {&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Handle character generation events sent by the engine.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            if ((nEvent &amp;gt;= EVENT_TYPE_CHARGEN_START &amp;amp;&amp;amp; nEvent &amp;lt;= EVENT_TYPE_CHARGEN_END) &lt;br /&gt;
                || nEvent == EVENT_TYPE_PLAYERLEVELUP )&lt;br /&gt;
            {&lt;br /&gt;
                HandleEvent(ev, R&amp;quot;bdm_sys_chargen.ncs&amp;quot;);&lt;br /&gt;
                nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    if (!nEventHandled) { //If this event wasn't handled by this script, let the core script try&lt;br /&gt;
        HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to ''file &amp;gt; manage modules'' and open the properties for your module and set the script property to point at this script.&lt;br /&gt;
&lt;br /&gt;
Our new script handles some of the events that are usually handled by the module_core script. Once it has handled the event it chooses whether or not to pass the event on to module_core. The first event that we handle is EVENT_TYPE_MODULE_START, which is where we initiate character generation. In this case we pass the event on to the core script to handle after we have done what we need to.&lt;br /&gt;
&lt;br /&gt;
The second thing we handle is actually a group of events. If you look in the module_core script you will see that right down the bottom in the default event handler is some code that looks just like the code we have added in our default event, with a couple of little differences. Instead of passing the character generation events to the sys_chargen.ncs script we are going to pass it to our own script called ''bdm_sys_chargen.ncs'' which we will write shortly. If we catch one of those character generation events then we want to handle it ourselves and prevent the core script from handling it so we set nEventHandled = TRUE. Note that any other event that is caught by the default handler but isn’t a character generation event is going to go straight on through to the core script.&lt;br /&gt;
&lt;br /&gt;
Before we create the ''bdm_sys_chargen'' script we are going to need some new constants defined. Create a new script called ''bdm_2da_constants_h'' and put it in folder ''\Backgrounds demo\_Core Includes''. Now add the following to this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// Backgrounds - rules/backgrounds.xls&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
const int BACKGROUND_SERVANT = 1;&lt;br /&gt;
const int BACKGROUND_APPRENTICE = 2;&lt;br /&gt;
const int BACKGROUND_TRAVELLER = 3;&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These constants provide a way for us to refer to the background IDs that we defined in the 2DA files without having to remember the numbers. Constants like this also make your code more readable.  If you need to add more new items to 2DAs when you are modding something else you can also add constants for them here. From now on we will be using these background constants instead of the original single player background constants that you can find in the ''2da_constants_h'' script. That means we’d better find all the places where those constants are used and update them with our own scripts.&lt;br /&gt;
&lt;br /&gt;
Create another new script and call it ''bdm_sys_chargen'' and put it in a folder called ''\Backgrounds demo\_Systems''. Put the following code in it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;bdm_sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;log_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
const int CHARGEN_QUICKSTART_QUICK = 0;&lt;br /&gt;
const int CHARGEN_QUICKSTART_NORMAL = 1;&lt;br /&gt;
const int CHARGEN_QUICKSTART_ADVANCED = 2;&lt;br /&gt;
&lt;br /&gt;
void _RunChargen(int nRace, int nClass, object oChar, int nBackground)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    Chargen_InitializeCharacter(oChar);&lt;br /&gt;
    Chargen_SelectGender(oChar,GENDER_MALE);&lt;br /&gt;
    Chargen_SelectRace(oChar,nRace);&lt;br /&gt;
    Chargen_SelectCoreClass(oChar,nClass);&lt;br /&gt;
    Chargen_SelectBackground(oChar, nBackground,FALSE);&lt;br /&gt;
&lt;br /&gt;
    int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
    Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_STRENGTH, 3,FALSE);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_DEXTERITY, 2,FALSE);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main(){&lt;br /&gt;
    event   ev              =   GetCurrentEvent();&lt;br /&gt;
    int     nEventType      =   GetEventType(ev);&lt;br /&gt;
    object  oChar           =   GetEventObject(ev,0);&lt;br /&gt;
&lt;br /&gt;
    int nMode;&lt;br /&gt;
    int nInt0 = GetEventInteger(ev,0);&lt;br /&gt;
    int nInt1 = GetEventInteger(ev,1);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // Debug Data.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_EVENTS_CHARGEN,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Chargen Event:&amp;quot; + Log_GetEventNameById (nEventType) &lt;br /&gt;
               + &amp;quot; &amp;quot; + ToString(nInt0) + &amp;quot;,&amp;quot; + ToString(nInt1), oChar);&lt;br /&gt;
&lt;br /&gt;
    int nEventHandled = FALSE;&lt;br /&gt;
&lt;br /&gt;
    switch (nEventType)&lt;br /&gt;
    {&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        // This fires when the player selects the icon corresponding to any of&lt;br /&gt;
        // the available backgrounds&lt;br /&gt;
        //&lt;br /&gt;
        // nInt0 - Constant BACKGROUND_* integer&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_SELECT_BACKGROUND: {&lt;br /&gt;
            int nBackground = nInt0;&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Set the background on the player and reinitialize plot flags&lt;br /&gt;
            // for the background&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            Chargen_InitializeCharacter(oChar,TRUE);&lt;br /&gt;
            Chargen_SelectGender(oChar,GetCreatureGender(oChar));&lt;br /&gt;
            Chargen_SelectRace(oChar,GetCreatureRacialType(oChar));&lt;br /&gt;
            Chargen_SelectCoreClass(oChar,GetCreatureCoreClass(oChar));&lt;br /&gt;
&lt;br /&gt;
            bdm_Chargen_SelectBackground(oChar, nBackground, FALSE);&lt;br /&gt;
            bdm_Chargen_SetupPlotFlags(oChar);&lt;br /&gt;
&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Generate the index into the equipment template 2da and&lt;br /&gt;
            // then load the starting equipment based on the data returned.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            int nClass = GetCreatureCoreClass(oChar);&lt;br /&gt;
            int nRace = GetCreatureRacialType(oChar);&lt;br /&gt;
            int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
           Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
            nEventHandled = TRUE;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_END: {&lt;br /&gt;
            nMode = nInt0;&lt;br /&gt;
            int nQuickStart = nInt1;&lt;br /&gt;
            // 0 - quickstart&lt;br /&gt;
            // 1 - normal    \&lt;br /&gt;
            // 2 - advanced  / treat as the same&lt;br /&gt;
            Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;MODE: &amp;quot; + IntToString(nMode) &lt;br /&gt;
                       + &amp;quot;, Quick Start: &amp;quot; + IntToString(nQuickStart));&lt;br /&gt;
            if (nMode == CHARGEN_MODE_CREATE &amp;amp;&amp;amp; nQuickStart == CHARGEN_QUICKSTART_QUICK){&lt;br /&gt;
                Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Setting default values for player character&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                    int nRandClass = abs((GetLowResTimer()%3)+1);&lt;br /&gt;
&lt;br /&gt;
                    if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR)&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_SERVANT );&lt;br /&gt;
&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    else // mage&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_APPRENTICE );&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    Chargen_SetNumTactics(oChar);&lt;br /&gt;
                    SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar));&lt;br /&gt;
                    SendEventModuleChargenDone(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
                    nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }    //end switch&lt;br /&gt;
&lt;br /&gt;
    if (!nEventHandled){&lt;br /&gt;
        HandleEvent(ev, R&amp;quot;sys_chargen.ncs&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two events in the original sys_chargen script that we need to replace because they deal with backgrounds. The first of these is EVENT_TYPE_CHARGEN_SELECT_BACKGROUND and the other is EVENT_TYPE_CHARGEN_END. For the second event we only need to change the case where the character is being created in quickstart mode, so we just handle that section of the code. The objective here is to change only as much as we need to and then pass any remaining events through to the original sys_chargen script. Take some time to compare the new script with Bioware’s ''sys_chargen'' script .&lt;br /&gt;
&lt;br /&gt;
You will notice that we include a script called ''bdm_sys_chargen_h'' and that we use some functions with a ''bdm_'' prefix. Those functions are contained in that include file which we’ll write now. Essentially these are modifications of a couple of functions from the ''sys_chargen_h'' include file. Create a new script and call it ''bdm_sys_chargen_h''. Put it in folder ''\Backgrounds demo\_Systems\Includes'' and add the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;bdm_2da_constants_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_bdm_000pt_backgrounds&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SelectBackground(object oChar, int nBackground, int bUnApply = FALSE)&lt;br /&gt;
{&lt;br /&gt;
     Log_Chargen(&amp;quot;bdm_Chargen_SelectBackground&amp;quot;,&amp;quot;-- &amp;quot; + (bUnApply?&amp;quot;Un&amp;quot;:&amp;quot;&amp;quot;) +&amp;quot;Selecting BG: &amp;quot; + ToString(nBackground),oChar);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 1. Set the background variable&lt;br /&gt;
    //          - Create creature property (or check what we used so far&lt;br /&gt;
    //          - We don't set backgrounds on non player generated chars.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    if (bUnApply)&lt;br /&gt;
    {&lt;br /&gt;
        SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, 0.0, PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
       SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, IntToFloat(nBackground), PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 2. Give one skill&lt;br /&gt;
    //    - retrieve the skill that is granted by the background from backgrounds.xls&lt;br /&gt;
    //    - give it to the player.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    int nAbility = ChargenGetBackgroundSkill(GetCreatureRacialType(oChar), nBackground);&lt;br /&gt;
    if (nAbility)&lt;br /&gt;
    {&lt;br /&gt;
        _AddAbility (oChar, nAbility, bUnApply);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SetupPlotFlags(object oChar)&lt;br /&gt;
{&lt;br /&gt;
    int nRace       =  GetCreatureRacialType(oChar);&lt;br /&gt;
    int nBackground = GetPlayerBackground(oChar);&lt;br /&gt;
&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen_h&amp;quot;,&amp;quot;Setting plot flags, race: &amp;quot; &lt;br /&gt;
               + IntToString(nRace) + &amp;quot;, background: &amp;quot; + IntToString(nBackground));&lt;br /&gt;
&lt;br /&gt;
    // First, init all flags (debug setup)&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,FALSE);&lt;br /&gt;
&lt;br /&gt;
    switch (nBackground)&lt;br /&gt;
    {&lt;br /&gt;
        case BACKGROUND_SERVANT:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_APPRENTICE:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_TRAVELLER:&lt;br /&gt;
        {&lt;br /&gt;
            switch(nRace)&lt;br /&gt;
            {&lt;br /&gt;
                case RACE_DWARF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,TRUE); break;&lt;br /&gt;
                case RACE_ELF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,TRUE); break;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets examine these two functions. First you should compare them to their original versions. For ''bdm_Chargen_SelectBackground()'' we have actually made a more generic version of the function that should work with any backgrounds. We have removed the hard coded values for the background abilities and now use the function ChargenGetBackgroundSkill() which actually gets the background skill from the backgrounds 2DA file that we edited earlier (recall the last three columns that give a skill depending on background and race). If you need fancier logic than just reading the values form the GDA (e.g. like Bioware’s logic for the Noble background) then you can always go back to hard coding them the way Bioware did.&lt;br /&gt;
&lt;br /&gt;
The second function is ''bdm_Chargen_SetupPlotFlags()'' which does just what it says. Remember the plot we created earlier? Here we set the appropriate flag based on race and background.&lt;br /&gt;
&lt;br /&gt;
== Testing that everything works ==&lt;br /&gt;
Now compile your scripts and export your module. Also, make sure that you export your talk table.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''Always make sure you empty your \Dragon Age\packages\core\override folder after doing an export. Due to a bug in the current toolset your single player game will become damaged if you don’t do this before playing.''&lt;br /&gt;
&lt;br /&gt;
You should now be able to run your game and see the backgrounds you created appear in character generation. If you want to test that the background plots have been set correctly, add an NPC to the start area and create a conversation for them in which each line is switched according to a background plot flag. You can also check that the character is receiving the abilities that we set in the 2DAs.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' ''There seems to be no way to change the popup message that comes up at the beginning of character generation. Altering the Pre-chargen string ID in the loadhints GDA does not seem to do anything.''&lt;br /&gt;
&lt;br /&gt;
== Optional extras ==&lt;br /&gt;
There are a couple of other Bioware scripts that reference the background constants. They are not essential to modify because they are not used anywhere by default. The genev_tutorial script uses a background check but unless you plan on firing the tutorial from your module then you won’t have need of it. Also there is at least one debug script that makes use of the original single player backgrounds (to grant a background plot flag to the PC) so if you want similar debug functionality you may have to roll your own function.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
In this tutorial we have demonstrated a way to modify the backgrounds used in the game without altering any of the core scripts. It is expected that a similar approach could be taken to modding other aspects of the game such as adding classes or races. In these cases the scripts that were created in this tutorial could be extended to handle other parts of the character generation process such as class and race selection.&lt;br /&gt;
&lt;br /&gt;
[[Category:Character generation]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8380</id>
		<title>Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8380"/>
				<updated>2009-11-28T01:39:35Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This tutorial shows you how to modify the character backgrounds that can be selected during character generation. This is likely only of use if you are creating your own module or campaign as there would be no point to changing the background in the single player campaign unless you were also going to make extensive additions to support the new backgrounds  (e.g a completely new origin story). So the example we will use for this tutorial is a new stand alone module in which we completely replace the existing backgrounds. Changing backgrounds is especially useful if your module is set in a different lore to the main Dragon Age game or if you simply want to reduce the scope of the number of different backgrounds.&lt;br /&gt;
&lt;br /&gt;
We will also demonstrate some important principals that can be followed when modifying other core rules such as available races or classes. Most importantly we will add the new backgrounds in a way that doesn’t require any editing of core resources. By leaving the core resources alone we make our changes compatible with future patches which might otherwise overwrite our work. Furthermore keeping the core resources in tact allows us to make different modifications to different modules within the same toolset.&lt;br /&gt;
&lt;br /&gt;
It is recommended that the reader should have some experience with scripting or coding in order to carry out the operations involved. The more you are relying on just copy pasting these instructions the more likely you are to make mistakes that you won’t know how to fix.&lt;br /&gt;
&lt;br /&gt;
== The backgrounds demo module ==&lt;br /&gt;
Any basic module will do for the purposes of this tutorial. If you want to create a test module for this tutorial then just create a simple module with a single area and a starting location. Make sure that the only thing selected in the module’s hierarchy is ''Core game resources''. This will ensure that the module is a stand alone module rather than an add-in to the single player campaign or some other module. For the purposes of this tutorial we will assume the module is called ''Backgrounds demo'' and I will prefix my resources with ''bdm_'' to be sure that they are distinct from any that are already in existence.&lt;br /&gt;
&lt;br /&gt;
We are going to completely replace the existing backgrounds with 3 new ones of our own. You can use new backgrounds in your module however you see fit. You could create entire origin stories for each one like in the single player campaign (possibly a major undertaking depending on length) or you can just use them to influence dialogue and plot options in the main part of your game.&lt;br /&gt;
&lt;br /&gt;
For our demo we are creating a  module in which the player starts off in a small human village (we will not be creating the details of this module so this is just for the purpose of an example). There is a wizard in this village who plays a pivotal role in the story. We allow the player to start as the wizard’s apprentice (if they are a mage) or as his servant (if they are human or elven and not a mage) or as a wandering traveller who has come to visit the wizard (if they are not human and not a mage). So the three backgrounds will be:&lt;br /&gt;
&lt;br /&gt;
* Servant&lt;br /&gt;
* Apprentice&lt;br /&gt;
* Traveller&lt;br /&gt;
&lt;br /&gt;
== Creating the background strings ==&lt;br /&gt;
Before we start modifying the 2DA files we are going to create some strings. Open the string editor in the toolset and create the following strings in your ‘Backgrounds demo’ talk table:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_talk_table.png]]&lt;br /&gt;
&lt;br /&gt;
Your string IDs might be different to these so be sure to reference the right string ID in the instructions that follow. Simply replace these string Ids with your own.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''There is currently a bug in the game that causes it to crash if a background description ID has a value greater than 109 912 680. To get around this you can go into your module’s properties and change the start and end IDs for strings to be less than that. After that the string editor will generate IDs in a range that won’t crash. You can always put those values back again after you create the background descriptions (that way you have less to alter once Bioware fix this). Hopefully Bioware will fix this bug soon as the official string range for non-Bioware / certified modules is over 610 000 000.''&lt;br /&gt;
&lt;br /&gt;
You may have noticed that we have given two different names and descriptions for the traveller background depending on the PC’s race. We will say more about that in the following section.&lt;br /&gt;
&lt;br /&gt;
== Modifying the 2DAs ==&lt;br /&gt;
The next thing we need to do is to modify the worksheets in Backgrounds.xls. Be sure to make a copy of the spreadsheet first so that you leave the original intact. See LINK for general information about editing 2DA files. The first worksheet is called ‘backgrounds’; modify it to look like the following:&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_backgrounds.png]]&lt;br /&gt;
&lt;br /&gt;
Note that since 2DAs combine together to form M2DAs, and we don’t want the existing backgrounds in our game, we have overwritten the last two slots as unused1 and unused2,  even though we won’t be using them. The name and desc  string refs on this tab will be overwritten by the race specific ones on the names tab so we can leave those blank (AFAIK these string refs are not used providing the ones on the names tab are provided - also the tooltip string ref seems not to be used anywhere – if you prefer you can set these to something just to be safe).&lt;br /&gt;
&lt;br /&gt;
The three race columns determine which backgrounds can be selected by which race and the 3 class columns determine which background can be selected by which class. So, as you can see from the picture our Servant background is accessible to elf or human warriors and rogues, the Apprentice background can be selected by elf or human mages and the Traveller background by elf or dwarf warriors and rogues.&lt;br /&gt;
&lt;br /&gt;
The last three tabs indicate a starting ability for each background by race. Note that by default these columns are not hooked up into the character generation script (instead they are hard coded in the script) and are not used, but we will correct that later on when we do the scripting. You have to be careful here because the columns relate to the race IDs, so 1=dwarf, 2=elf and 3=human, which is in a different order to the other race columns in this table. The number in the column is an ability ID as given in ABI_base.xls. For this demo we have just given the same skill for each race for a given background. Servants get combat tactics, Apprentices get persuade and Travellers get survival.&lt;br /&gt;
&lt;br /&gt;
The next tab table to modify is background_names.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_names.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure that the IDs here match the IDs in your string table. Note that for Apprentices and Servants we use the same strings regardless of race, but for the Traveller background we use different strings. This is to illustrate how you can divide a single background up into multiple names and descriptions. Internally they are both stored as the same background ID but during character generation a different name, description and icon can be shown to the player. In the single player game this was done with the Noble background by splitting it into human and dwarf Noble variations.&lt;br /&gt;
&lt;br /&gt;
NOTE – you must be careful when splitting a single background into different parts for each race. You must make both the names and descriptions different! If you don’t make the descriptions different then the engine will not recognise them as different even if they have different names.&lt;br /&gt;
&lt;br /&gt;
Now modify the background_desc table as follows&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_desc.png]]&lt;br /&gt;
&lt;br /&gt;
Again note the distinct descriptions for the Traveller background&lt;br /&gt;
Now for the background_icons table. For this demo we will just use some of the existing icons but you may want to create your own icons to add here.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_icons.png]]&lt;br /&gt;
&lt;br /&gt;
The background_defaults table must have an entry for each race, background and class combination that is allowed. The ID column must be calculated as follows:&lt;br /&gt;
&lt;br /&gt;
1000 * raceID  + 100 * classID + backgroundID&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tute_bg_defaults.png]]&lt;br /&gt;
&lt;br /&gt;
The label column should give a description of the row (AFAIK this is not used anywhere).&lt;br /&gt;
For this simple demo we will have each background combination spawn in the same place (the module default start location) but if you wanted different origins to spawn in different places then you can use the next two columns to specify this (AFAIK you have to write your own scripts to accomplish this though).&lt;br /&gt;
&lt;br /&gt;
In the template column you can put the name of a creature resource that you want to use as a template for this race/background/class combination. In the picture you can see that we have just used some default templates that shipped with the toolset but you can easily create your own. Note that only the inventory is copied across to the PC so if you want to create your own templates you do not need to alter anything on the creature except for their inventory.&lt;br /&gt;
&lt;br /&gt;
The name columns take string Ids. If you want to add your own names then you’ll have to create new strings in the string editor.&lt;br /&gt;
&lt;br /&gt;
Finally we have the ability column. As with the skill columns in the backgrounds table these IDs correspond to entries in the ABI_base.xls file. It should be noted that race, class and background are all possible sources of starting abilities so before you decide what to put in this column you should familiarise yourself with what skills are already being added in different parts of character generation in order to ensure that you don’t duplicate an ability somewhere.&lt;br /&gt;
&lt;br /&gt;
The final table is the chargen_preload table. The two columns here should exactly match the entries from the ID and Template columns of the previous table.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_chargen_preload.png]]&lt;br /&gt;
&lt;br /&gt;
== Compiling and fixing the GDAs ==&lt;br /&gt;
Now compile backgrounds.xls and place the resulting GDAs into your ''AddIns\module_name\module\override'' directory.&lt;br /&gt;
Never place anything in your ''AddIns\module_name\core\override'' directory or it will affect other modules than the one you are editing.&lt;br /&gt;
&lt;br /&gt;
Unfortunately there is a bug that prevents large string IDs from compiling correctly so until BioWare fix this bug you will have to edit the GDA files in the toolset. Open up the two GDA files that contain your new string IDs and check to see if the correct string IDs from your spreadsheet are there. Most probably you will have to edit some of them to match. Once you are certain you have done this accurately, save and close the GDA files.&lt;br /&gt;
&lt;br /&gt;
== Creating the backgrounds plot ==&lt;br /&gt;
The background plot is used for keeping track of a PC’s background and can be used to affect conversation options.&lt;br /&gt;
 &lt;br /&gt;
The single player game uses a plot called gen00pt_backgrounds to keep track of the PC background. You can find it in the ''\_Glabal\Generic'' folder of the plots tab if you want to take a look. We will create a similar plot for our custom backgrounds. Create a new plot and call it ''bdm_000pt_backgrounds'' (My naming convention is to use 000 to indicate a resource that isn’t tied to any particular area – feel free to use your own convention but remember to update any references later in the tutorial). Add main plot flags as indicated in the picture below:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_bg_plot.png]]&lt;br /&gt;
&lt;br /&gt;
You could also add some defined flags if you wanted. Defined flags can be used to return some combination of the main flags such as TRAVELLER or add some extra condition like FEMALE_APPRENTICE or ELVEN_APPRENTICE. Defined flags are beyond the scope of this tutorial however.&lt;br /&gt;
&lt;br /&gt;
== Creating the scripts ==&lt;br /&gt;
We are not going to edit any of the original core game scripts, we will only be adding new scripts of our own. As we discuss how to do this you should examine the core scripts that are referred to, but under no circumstances should you make any changes to those files. By leaving the core scripts as they are we make our modification more compatible with any future patches that may be released. If you modified the core scripts and then a patch was released that overwrote those scripts you would lose your changes. Also keeping your modification contained within your own module allows you to make different modifications to different modules within the one toolset.&lt;br /&gt;
&lt;br /&gt;
Lets start off with a script to handle the character generation events that are normally handled by the module_core script. Create a new script called ''bdm_module_core''. It is up to you what directory structure to use for your scripts but it can be a good idea to keep all your scripts in a directory with your module name to make them distinct from the core scripts. Then if you are emulating the functionality of  a particular core script you can mirror the original directory structure underneath your main module folder. So in this case the module_core script is contained in the ''\_Core Scripts'' folder so we will put our bdm_module_core in ''\Backgrounds demo\_Core Scripts'' (the underscore ensures the core directories come first – looks like Bioware accidentally created one without it! I’m pretty sure Core and _Core are meant to be the same directory). Organising things this way will really help with keeping track of your scripts.&lt;br /&gt;
&lt;br /&gt;
The ''bdm_module_core'' script should contain the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
void main(){&lt;br /&gt;
    event ev = GetCurrentEvent();&lt;br /&gt;
    int nEvent = GetEventType(ev); //extract event type from current event&lt;br /&gt;
    int nEventHandled = FALSE; //keep track of whether the event has been handled&lt;br /&gt;
    switch(nEvent){&lt;br /&gt;
        case EVENT_TYPE_MODULE_START:{&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Initiate character generation.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            PreloadCharGen(); //preloads resources for character generation&lt;br /&gt;
            StartCharGen(GetHero(),0,TRUE); //initiates character generation&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        default:&lt;br /&gt;
        {&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Handle character generation events sent by the engine.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            if ((nEvent &amp;gt;= EVENT_TYPE_CHARGEN_START &amp;amp;&amp;amp; nEvent &amp;lt;= EVENT_TYPE_CHARGEN_END) &lt;br /&gt;
                || nEvent == EVENT_TYPE_PLAYERLEVELUP )&lt;br /&gt;
            {&lt;br /&gt;
                HandleEvent(ev, R&amp;quot;bdm_sys_chargen.ncs&amp;quot;);&lt;br /&gt;
                nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    if (!nEventHandled) { //If this event wasn't handled by this script, let the core script try&lt;br /&gt;
        HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to ''file &amp;gt; manage modules'' and open the properties for your module and set the script property to point at this script.&lt;br /&gt;
&lt;br /&gt;
Our new script handles some of the events that are usually handled by the module_core script. Once it has handled the event it chooses whether or not to pass the event on to module_core. The first event that we handle is EVENT_TYPE_MODULE_START, which is where we initiate character generation. In this case we pass the event on to the core script to handle after we have done what we need to.&lt;br /&gt;
&lt;br /&gt;
The second thing we handle is actually a group of events. If you look in the module_core script you will see that right down the bottom in the default event handler is some code that looks just like the code we have added in our default event, with a couple of little differences. Instead of passing the character generation events to the sys_chargen.ncs script we are going to pass it to our own script called ''bdm_sys_chargen.ncs'' which we will write shortly. If we catch one of those character generation events then we want to handle it ourselves and prevent the core script from handling it so we set nEventHandled = TRUE. Note that any other event that is caught by the default handler but isn’t a character generation event is going to go straight on through to the core script.&lt;br /&gt;
&lt;br /&gt;
Before we create the ''bdm_sys_chargen'' script we are going to need some new constants defined. Create a new script called ''bdm_2da_constants_h'' and put it in folder ''\Backgrounds demo\_Core Includes''. Now add the following to this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// Backgrounds - rules/backgrounds.xls&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
const int BACKGROUND_SERVANT = 1;&lt;br /&gt;
const int BACKGROUND_APPRENTICE = 2;&lt;br /&gt;
const int BACKGROUND_TRAVELLER = 3;&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These constants provide a way for us to refer to the background IDs that we defined in the 2DA files without having to remember the numbers. Constants like this also make your code more readable.  If you need to add more new items to 2DAs when you are modding something else you can also add constants for them here. From now on we will be using these background constants instead of the original single player background constants that you can find in the ''2da_constants_h'' script. That means we’d better find all the places where those constants are used and update them with our own scripts.&lt;br /&gt;
&lt;br /&gt;
Create another new script and call it ''bdm_sys_chargen'' and put it in a folder called ''\Backgrounds demo\_Systems''. Put the following code in it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;bdm_sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;log_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
const int CHARGEN_QUICKSTART_QUICK = 0;&lt;br /&gt;
const int CHARGEN_QUICKSTART_NORMAL = 1;&lt;br /&gt;
const int CHARGEN_QUICKSTART_ADVANCED = 2;&lt;br /&gt;
&lt;br /&gt;
void _RunChargen(int nRace, int nClass, object oChar, int nBackground)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    Chargen_InitializeCharacter(oChar);&lt;br /&gt;
    Chargen_SelectGender(oChar,GENDER_MALE);&lt;br /&gt;
    Chargen_SelectRace(oChar,nRace);&lt;br /&gt;
    Chargen_SelectCoreClass(oChar,nClass);&lt;br /&gt;
    Chargen_SelectBackground(oChar, nBackground,FALSE);&lt;br /&gt;
&lt;br /&gt;
    int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
    Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_STRENGTH, 3,FALSE);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_DEXTERITY, 2,FALSE);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main(){&lt;br /&gt;
    event   ev              =   GetCurrentEvent();&lt;br /&gt;
    int     nEventType      =   GetEventType(ev);&lt;br /&gt;
    object  oChar           =   GetEventObject(ev,0);&lt;br /&gt;
&lt;br /&gt;
    int nMode;&lt;br /&gt;
    int nInt0 = GetEventInteger(ev,0);&lt;br /&gt;
    int nInt1 = GetEventInteger(ev,1);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // Debug Data.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_EVENTS_CHARGEN,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Chargen Event:&amp;quot; + Log_GetEventNameById (nEventType) &lt;br /&gt;
               + &amp;quot; &amp;quot; + ToString(nInt0) + &amp;quot;,&amp;quot; + ToString(nInt1), oChar);&lt;br /&gt;
&lt;br /&gt;
    int nEventHandled = FALSE;&lt;br /&gt;
&lt;br /&gt;
    switch (nEventType)&lt;br /&gt;
    {&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        // This fires when the player selects the icon corresponding to any of&lt;br /&gt;
        // the available backgrounds&lt;br /&gt;
        //&lt;br /&gt;
        // nInt0 - Constant BACKGROUND_* integer&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_SELECT_BACKGROUND: {&lt;br /&gt;
            int nBackground = nInt0;&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Set the background on the player and reinitialize plot flags&lt;br /&gt;
            // for the background&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            Chargen_InitializeCharacter(oChar,TRUE);&lt;br /&gt;
            Chargen_SelectGender(oChar,GetCreatureGender(oChar));&lt;br /&gt;
            Chargen_SelectRace(oChar,GetCreatureRacialType(oChar));&lt;br /&gt;
            Chargen_SelectCoreClass(oChar,GetCreatureCoreClass(oChar));&lt;br /&gt;
&lt;br /&gt;
            bdm_Chargen_SelectBackground(oChar, nBackground, FALSE);&lt;br /&gt;
            bdm_Chargen_SetupPlotFlags(oChar);&lt;br /&gt;
&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Generate the index into the equipment template 2da and&lt;br /&gt;
            // then load the starting equipment based on the data returned.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            int nClass = GetCreatureCoreClass(oChar);&lt;br /&gt;
            int nRace = GetCreatureRacialType(oChar);&lt;br /&gt;
            int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
           Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
            nEventHandled = TRUE;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_END: {&lt;br /&gt;
            nMode = nInt0;&lt;br /&gt;
            int nQuickStart = nInt1;&lt;br /&gt;
            // 0 - quickstart&lt;br /&gt;
            // 1 - normal    \&lt;br /&gt;
            // 2 - advanced  / treat as the same&lt;br /&gt;
            Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;MODE: &amp;quot; + IntToString(nMode) &lt;br /&gt;
                       + &amp;quot;, Quick Start: &amp;quot; + IntToString(nQuickStart));&lt;br /&gt;
            if (nMode == CHARGEN_MODE_CREATE &amp;amp;&amp;amp; nQuickStart == CHARGEN_QUICKSTART_QUICK){&lt;br /&gt;
                Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Setting default values for player character&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                    int nRandClass = abs((GetLowResTimer()%3)+1);&lt;br /&gt;
&lt;br /&gt;
                    if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR)&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_SERVANT );&lt;br /&gt;
&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    else // mage&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_APPRENTICE );&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    Chargen_SetNumTactics(oChar);&lt;br /&gt;
                    SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar));&lt;br /&gt;
                    SendEventModuleChargenDone(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
                    nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }    //end switch&lt;br /&gt;
&lt;br /&gt;
    if (!nEventHandled){&lt;br /&gt;
        HandleEvent(ev, R&amp;quot;sys_chargen.ncs&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two events in the original sys_chargen script that we need to replace because they deal with backgrounds. The first of these is EVENT_TYPE_CHARGEN_SELECT_BACKGROUND and the other is EVENT_TYPE_CHARGEN_END. For the second event we only need to change the case where the character is being created in quickstart mode, so we just handle that section of the code. The objective here is to change only as much as we need to and then pass any remaining events through to the original sys_chargen script. Take some time to compare the new script with Bioware’s ''sys_chargen'' script .&lt;br /&gt;
&lt;br /&gt;
You will notice that we include a script called ''bdm_sys_chargen_h'' and that we use some functions with a ''bdm_'' prefix. Those functions are contained in that include file which we’ll write now. Essentially these are modifications of a couple of functions from the ''sys_chargen_h'' include file. Create a new script and call it ''bdm_sys_chargen_h''. Put it in folder ''\Backgrounds demo\_Systems\Includes'' and add the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;bdm_2da_constants_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_bdm_000pt_backgrounds&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SelectBackground(object oChar, int nBackground, int bUnApply = FALSE)&lt;br /&gt;
{&lt;br /&gt;
     Log_Chargen(&amp;quot;bdm_Chargen_SelectBackground&amp;quot;,&amp;quot;-- &amp;quot; + (bUnApply?&amp;quot;Un&amp;quot;:&amp;quot;&amp;quot;) +&amp;quot;Selecting BG: &amp;quot; + ToString(nBackground),oChar);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 1. Set the background variable&lt;br /&gt;
    //          - Create creature property (or check what we used so far&lt;br /&gt;
    //          - We don't set backgrounds on non player generated chars.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    if (bUnApply)&lt;br /&gt;
    {&lt;br /&gt;
        SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, 0.0, PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
       SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, IntToFloat(nBackground), PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 2. Give one skill&lt;br /&gt;
    //    - retrieve the skill that is granted by the background from backgrounds.xls&lt;br /&gt;
    //    - give it to the player.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    int nAbility = ChargenGetBackgroundSkill(GetCreatureRacialType(oChar), nBackground);&lt;br /&gt;
    if (nAbility)&lt;br /&gt;
    {&lt;br /&gt;
        _AddAbility (oChar, nAbility, bUnApply);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SetupPlotFlags(object oChar)&lt;br /&gt;
{&lt;br /&gt;
    int nRace       =  GetCreatureRacialType(oChar);&lt;br /&gt;
    int nBackground = GetPlayerBackground(oChar);&lt;br /&gt;
&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen_h&amp;quot;,&amp;quot;Setting plot flags, race: &amp;quot; &lt;br /&gt;
               + IntToString(nRace) + &amp;quot;, background: &amp;quot; + IntToString(nBackground));&lt;br /&gt;
&lt;br /&gt;
    // First, init all flags (debug setup)&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,FALSE);&lt;br /&gt;
&lt;br /&gt;
    switch (nBackground)&lt;br /&gt;
    {&lt;br /&gt;
        case BACKGROUND_SERVANT:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_APPRENTICE:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_TRAVELLER:&lt;br /&gt;
        {&lt;br /&gt;
            switch(nRace)&lt;br /&gt;
            {&lt;br /&gt;
                case RACE_DWARF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,TRUE); break;&lt;br /&gt;
                case RACE_ELF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,TRUE); break;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets examine these two functions. First you should compare them to their original versions. For ''bdm_Chargen_SelectBackground()'' we have actually made a more generic version of the function that should work with any backgrounds. We have removed the hard coded values for the background abilities and now use the function ChargenGetBackgroundSkill() which actually gets the background skill from the backgrounds 2DA file that we edited earlier (recall the last three columns that give a skill depending on background and race). If you need fancier logic than just reading the values form the GDA (e.g. like Bioware’s logic for the Noble background) then you can always go back to hard coding them the way Bioware did.&lt;br /&gt;
&lt;br /&gt;
The second function is ''bdm_Chargen_SetupPlotFlags()'' which does just what it says. Remember the plot we created earlier? Here we set the appropriate flag based on race and background.&lt;br /&gt;
&lt;br /&gt;
== Testing that everything works ==&lt;br /&gt;
Now compile your scripts and export your module. Also, make sure that you export your talk table.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''Always make sure you empty your \Dragon Age\packages\core\override folder after doing an export. Due to a bug in the current toolset your single player game will become damaged if you don’t do this before playing.''&lt;br /&gt;
&lt;br /&gt;
You should now be able to run your game and see the backgrounds you created appear in character generation. If you want to test that the background plots have been set correctly, add an NPC to the start area and create a conversation for them in which each line is switched according to a background plot flag. You can also check that the character is receiving the abilities that we set in the 2DAs.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' ''There seems to be no way to change the popup message that comes up at the beginning of character generation. Altering the Pre-chargen string ID in the loadhints GDA does not seem to do anything.''&lt;br /&gt;
&lt;br /&gt;
== Optional extras ==&lt;br /&gt;
There are a couple of other Bioware scripts that reference the background constants. They are not essential to modify because they are not used anywhere by default. The genev_tutorial script uses a background check but unless you plan on firing the tutorial from your module then you won’t have need of it. Also there is at least one debug script that makes use of the original single player backgrounds (to grant a background plot flag to the PC) so if you want similar debug functionality you may have to roll your own function.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
In this tutorial we have demonstrated a way to modify the backgrounds used in the game without altering any of the core scripts. It is expected that a similar approach could be taken to modding other aspects of the game such as adding classes or races. In these cases the scripts that were created in this tutorial could be extended to handle other parts of the character generation process such as class and race selection.&lt;br /&gt;
&lt;br /&gt;
[[Category:Character generation]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Tutorials&amp;diff=8379</id>
		<title>Talk:Tutorials</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Tutorials&amp;diff=8379"/>
				<updated>2009-11-28T01:37:08Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: Created page with '== Restructure == I have moved some things around and created some extra categories. First off I reverted the placeable tutorial to its original place in the list. It seems to me...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Restructure ==&lt;br /&gt;
I have moved some things around and created some extra categories. First off I reverted the placeable tutorial to its original place in the list. It seems to me that creating an area should take precedence, and you don't need custom placeables in order to do that. I moved the level tutorial down into the more advanced section as that first list was meant to be very introductory. I also split up the other category into different sections. [[User:Stuntpope|Stuntpope]] 01:37, 28 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Tutorials&amp;diff=8378</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Tutorials&amp;diff=8378"/>
				<updated>2009-11-28T01:34:24Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introductory tutorials ==&lt;br /&gt;
&lt;br /&gt;
In the course of these tutorials we'll go through all the steps needed to create a basic adventure.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
*Boxes like this contain a checklist of important steps.&lt;br /&gt;
*They're intended as a reminder and as a navigational aid.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
*[[Introductory tutorial]] - An overview of the toolset as a whole&lt;br /&gt;
*[[Module tutorial]] - how to create a module to work in.&lt;br /&gt;
&lt;br /&gt;
This set of tutorials forms a series, each building on or filling in omissions by the last:&lt;br /&gt;
*[[Area tutorial]]&lt;br /&gt;
*[[Placeable tutorial]]&lt;br /&gt;
*[[Item tutorial]]&lt;br /&gt;
*[[Creature tutorial]]&lt;br /&gt;
*[[Conversation tutorial]]&lt;br /&gt;
&lt;br /&gt;
Once you've become familiar with the basics introduced on those tutorials you might have a better grounding for:&lt;br /&gt;
*[[Cutscene tutorial]]&lt;br /&gt;
*[[Map tutorial]] (which also introduces you to [[2DA]] editing)&lt;br /&gt;
*[[Level Editor Tutorial]]&lt;br /&gt;
*[[Scripting tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Demo module ==&lt;br /&gt;
&lt;br /&gt;
The toolset currently ships with a simple demo module pre-loaded into its database.&lt;br /&gt;
&lt;br /&gt;
*[[Demo module]] - how to export and run the demo module.&lt;br /&gt;
&lt;br /&gt;
== Custom content tutorials == &lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
&lt;br /&gt;
== Character generation tutorials ==&lt;br /&gt;
*[[Backgrounds tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== External Tutorials ==&lt;br /&gt;
*[http://dragonagemodding.wordpress.com Beyond Ferelden] has many in-depth tutorials by jwvanderbeck.&lt;br /&gt;
*[http://www.youtube.com/watch?v=TwQNRBFLhrE Playable Area and Conversation] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=CaHldJcUTz8 Simple Conversation Cameras] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=QOQJ2heQto4 Cutscene and Trigger] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=szWKgj2ZuXo Custom Level and Room Building] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=DKJ7F14n8o8 Downloading and Installing the Toolset] video tutorial by [http://social.bioware.com/74287/ DragonAge22].&lt;br /&gt;
*[http://www.youtube.com/watch?v=iMPBsulv9xI Creating a Room] video tutorial by [http://social.bioware.com/74287/ DragonAge22].&lt;br /&gt;
*[http://www.youtube.com/watch?v=g3kx2CaarHo How to Make an Interior Level with Lighting] video tutorial by [http://social.bioware.com/group/60/ Darkworld Development Team].&lt;br /&gt;
*[http://www.youtube.com/watch?v=O6TeZeE1Lc8 Making a Room] video tutorial by BigDrip681.&lt;br /&gt;
*[http://social.bioware.com/5339/blog/576/ Custom Player Items In Single Player] by [http://social.bioware.com/5339/ weriK].&lt;br /&gt;
*[http://social.bioware.com/5339/blog/651/ The Secret Behind Item Statistics] by [http://social.bioware.com/5339/ weriK].&lt;br /&gt;
*[http://social.bioware.com/project/923/ Guide for installing/uninstalling Mods] Beginner Guide to get started with using Mods by [http://social.bioware.com/237411/ Alexspeed].&lt;br /&gt;
*[http://www.jezelf.co.uk/tutorials.htm Photoshop Map making tutorials] Credits to Jason Elford, brought to DAT wiki by [http://social.bioware.com/48156/ Arixsus]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Tutorials&amp;diff=8377</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Tutorials&amp;diff=8377"/>
				<updated>2009-11-28T01:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introductory tutorials ==&lt;br /&gt;
&lt;br /&gt;
In the course of these tutorials we'll go through all the steps needed to create a basic adventure.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
*Boxes like this contain a checklist of important steps.&lt;br /&gt;
*They're intended as a reminder and as a navigational aid.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
*[[Introductory tutorial]] - An overview of the toolset as a whole&lt;br /&gt;
*[[Module tutorial]] - how to create a module to work in.&lt;br /&gt;
&lt;br /&gt;
This set of tutorials forms a series, each building on or filling in omissions by the last:&lt;br /&gt;
*[[Area tutorial]]&lt;br /&gt;
*[[Placeable tutorial]]&lt;br /&gt;
*[[Item tutorial]]&lt;br /&gt;
*[[Creature tutorial]]&lt;br /&gt;
*[[Conversation tutorial]]&lt;br /&gt;
*[[Scripting tutorial]]&lt;br /&gt;
&lt;br /&gt;
Once you've become familiar with the basics introduced on those tutorials you might have a better grounding for:&lt;br /&gt;
*[[Cutscene tutorial]]&lt;br /&gt;
*[[Map tutorial]] (which also introduces you to [[2DA]] editing)&lt;br /&gt;
*[[Level Editor Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Demo module ==&lt;br /&gt;
&lt;br /&gt;
The toolset currently ships with a simple demo module pre-loaded into its database.&lt;br /&gt;
&lt;br /&gt;
*[[Demo module]] - how to export and run the demo module.&lt;br /&gt;
&lt;br /&gt;
== Custom content tutorials == &lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
&lt;br /&gt;
== Character generation tutorials ==&lt;br /&gt;
*[[Backgrounds tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== External Tutorials ==&lt;br /&gt;
*[http://dragonagemodding.wordpress.com Beyond Ferelden] has many in-depth tutorials by jwvanderbeck.&lt;br /&gt;
*[http://www.youtube.com/watch?v=TwQNRBFLhrE Playable Area and Conversation] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=CaHldJcUTz8 Simple Conversation Cameras] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=QOQJ2heQto4 Cutscene and Trigger] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=szWKgj2ZuXo Custom Level and Room Building] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=DKJ7F14n8o8 Downloading and Installing the Toolset] video tutorial by [http://social.bioware.com/74287/ DragonAge22].&lt;br /&gt;
*[http://www.youtube.com/watch?v=iMPBsulv9xI Creating a Room] video tutorial by [http://social.bioware.com/74287/ DragonAge22].&lt;br /&gt;
*[http://www.youtube.com/watch?v=g3kx2CaarHo How to Make an Interior Level with Lighting] video tutorial by [http://social.bioware.com/group/60/ Darkworld Development Team].&lt;br /&gt;
*[http://www.youtube.com/watch?v=O6TeZeE1Lc8 Making a Room] video tutorial by BigDrip681.&lt;br /&gt;
*[http://social.bioware.com/5339/blog/576/ Custom Player Items In Single Player] by [http://social.bioware.com/5339/ weriK].&lt;br /&gt;
*[http://social.bioware.com/5339/blog/651/ The Secret Behind Item Statistics] by [http://social.bioware.com/5339/ weriK].&lt;br /&gt;
*[http://social.bioware.com/project/923/ Guide for installing/uninstalling Mods] Beginner Guide to get started with using Mods by [http://social.bioware.com/237411/ Alexspeed].&lt;br /&gt;
*[http://www.jezelf.co.uk/tutorials.htm Photoshop Map making tutorials] Credits to Jason Elford, brought to DAT wiki by [http://social.bioware.com/48156/ Arixsus]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Tutorials&amp;diff=8376</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Tutorials&amp;diff=8376"/>
				<updated>2009-11-28T01:30:01Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the course of these tutorials we'll go through all the steps needed to create a basic adventure.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
*Boxes like this contain a checklist of important steps.&lt;br /&gt;
*They're intended as a reminder and as a navigational aid.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
*[[Introductory tutorial]] - An overview of the toolset as a whole&lt;br /&gt;
*[[Module tutorial]] - how to create a module to work in.&lt;br /&gt;
&lt;br /&gt;
This set of tutorials forms a series, each building on or filling in omissions by the last:&lt;br /&gt;
*[[Area tutorial]]&lt;br /&gt;
*[[Placeable tutorial]]&lt;br /&gt;
*[[Item tutorial]]&lt;br /&gt;
*[[Creature tutorial]]&lt;br /&gt;
*[[Conversation tutorial]]&lt;br /&gt;
*[[Scripting tutorial]]&lt;br /&gt;
&lt;br /&gt;
Once you've become familiar with the basics introduced on those tutorials you might have a better grounding for:&lt;br /&gt;
*[[Cutscene tutorial]]&lt;br /&gt;
*[[Map tutorial]] (which also introduces you to [[2DA]] editing)&lt;br /&gt;
*[[Level Editor Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Demo module ==&lt;br /&gt;
&lt;br /&gt;
The toolset currently ships with a simple demo module pre-loaded into its database.&lt;br /&gt;
&lt;br /&gt;
*[[Demo module]] - how to export and run the demo module.&lt;br /&gt;
&lt;br /&gt;
== Custom content tutorials == &lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
&lt;br /&gt;
== Character generation tutorials ==&lt;br /&gt;
*[[Backgrounds tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== External Tutorials ==&lt;br /&gt;
*[http://dragonagemodding.wordpress.com Beyond Ferelden] has many in-depth tutorials by jwvanderbeck.&lt;br /&gt;
*[http://www.youtube.com/watch?v=TwQNRBFLhrE Playable Area and Conversation] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=CaHldJcUTz8 Simple Conversation Cameras] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=QOQJ2heQto4 Cutscene and Trigger] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=szWKgj2ZuXo Custom Level and Room Building] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=DKJ7F14n8o8 Downloading and Installing the Toolset] video tutorial by [http://social.bioware.com/74287/ DragonAge22].&lt;br /&gt;
*[http://www.youtube.com/watch?v=iMPBsulv9xI Creating a Room] video tutorial by [http://social.bioware.com/74287/ DragonAge22].&lt;br /&gt;
*[http://www.youtube.com/watch?v=g3kx2CaarHo How to Make an Interior Level with Lighting] video tutorial by [http://social.bioware.com/group/60/ Darkworld Development Team].&lt;br /&gt;
*[http://www.youtube.com/watch?v=O6TeZeE1Lc8 Making a Room] video tutorial by BigDrip681.&lt;br /&gt;
*[http://social.bioware.com/5339/blog/576/ Custom Player Items In Single Player] by [http://social.bioware.com/5339/ weriK].&lt;br /&gt;
*[http://social.bioware.com/5339/blog/651/ The Secret Behind Item Statistics] by [http://social.bioware.com/5339/ weriK].&lt;br /&gt;
*[http://social.bioware.com/project/923/ Guide for installing/uninstalling Mods] Beginner Guide to get started with using Mods by [http://social.bioware.com/237411/ Alexspeed].&lt;br /&gt;
*[http://www.jezelf.co.uk/tutorials.htm Photoshop Map making tutorials] Credits to Jason Elford, brought to DAT wiki by [http://social.bioware.com/48156/ Arixsus]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Main_Page&amp;diff=8375</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Main_Page&amp;diff=8375"/>
				<updated>2009-11-28T01:23:42Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Can we add a link to the Level Editor tutorial to the list of tutorials on the main page? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Add a new topic by creating a new header like this one ==&lt;br /&gt;
&lt;br /&gt;
And then write your comment below it. Sign your comment with four tildes, like so: &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;. It is automatically substituted with your user name and a link to your user page.&lt;br /&gt;
&lt;br /&gt;
:To respond to someone else's comment, use a colon at the beginning of your response to indent it.&lt;br /&gt;
&lt;br /&gt;
::Two colons indent twice, and so forth.&lt;br /&gt;
&lt;br /&gt;
== Can we add a link to the Level Editor tutorial to the list of tutorials on the main page? ==&lt;br /&gt;
&lt;br /&gt;
I don't know how to do it myself, but it seems like the Level Editor tutorial belongs before the Area tutorial in that list on the main page.&lt;br /&gt;
:I think the reason it has been left out of there is that it is a more advanced topic. It is possible to go through those beginner tutorials without creating your own level. It should be in a tutorial list somewhere though. [[User:Stuntpope|Stuntpope]] 01:23, 28 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
I moved the placeable tutorial to second on the list, because it doesn't work unless you already created a module in the area tutorial.&lt;br /&gt;
[[User:Proleric1|Proleric1]] 12:41, 25 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
The list of events is actually here:&lt;br /&gt;
http://social.bioware.com/wiki/datoolset/index.php/Category:Event_types [[User:Proleric1|Proleric1]] 07:59, 15 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== NDA ==&lt;br /&gt;
I suspect that the NDA no longer applies to the Wiki, since the latter does not touch on the three topics that Chris Priestly asked us not to discuss in his e-mail of 13-Jul-2009.&lt;br /&gt;
[[User:Proleric1|Proleric1]] 09:42, 25 July 2009 (UTC)&lt;br /&gt;
:Surely no NDA applies now, as the wiki is in the public domain? [[User:Proleric1|Proleric1]] 07:47, 15 October 2009 (UTC)&lt;br /&gt;
::Probably not. I'll ask around to make sure, though. [[User:BryanDerksen|BryanDerksen]] 19:44, 15 October 2009 (UTC)&lt;br /&gt;
::I've been asked to ask you to hold off on talking about the wiki until next week, to help spread the &amp;quot;buzz&amp;quot; out a bit. Right now everyone's talking about character creator, we don't want to distract from that. The folks who busted their humps on CC need their due. [[User:BryanDerksen|BryanDerksen]] 15:07, 16 October 2009 (UTC)&lt;br /&gt;
::Heh. I see Sunjammer just posted about the wiki on the forum, directing people here. Oh well. :) [[User:BryanDerksen|BryanDerksen]] 15:41, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Toolset download location ==&lt;br /&gt;
&lt;br /&gt;
Someone should probably post a link to the location of the toolset here and/or in the installation page, to go with the instructions.  It's a bit slow on the various EA/Bioware servers right now to just search around for them, and there's no direct link on Google for the obvious searches yet.&lt;br /&gt;
&lt;br /&gt;
Edit: That link would be:&lt;br /&gt;
[http://social.bioware.com/toolset.php#downloads]&lt;br /&gt;
&lt;br /&gt;
According to a post by Scott Meadows,Senior Programmer in the forums, it is still not available for general download, as of 9:48pm PST.  No ETA was given.&lt;br /&gt;
&lt;br /&gt;
--[[User:RyanFenton|RyanFenton]] 20:45, 3 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:It is available now.&lt;br /&gt;
[[User:Rabidgerbal|Rabidgerbal]] 23:20, 6 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Thanks, slipped my mind in the midst of all the troubleshooting. :) [[User:BryanDerksen|BryanDerksen]] 23:41, 6 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Camp ==&lt;br /&gt;
&lt;br /&gt;
How do I add stuff to the camp area? [[User:Apocalypsefu|Apocalypsefu]] 04:45, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: [[How-tos#Insert_content_into_an_existing_area]] has a summary of how you can create an addin that adds new content to existing areas. [[User:BryanDerksen|BryanDerksen]] 01:42, 14 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Ten Minute Tutorials==&lt;br /&gt;
I think we should create a category and or easily accessible launch page where people can contribute quick 10 minute tutorials on a variety of subjects [[User:Allan Smith|Allan Smith]] 01:54, 13 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Help for the timid==&lt;br /&gt;
We should also put up something on the main page that helps timid editors know that it is okay to make new articles, and possibly give some guidance on naming conventions and how to get their articles included or linked from the main page (or really guidance on where they should be linked from [[User:Allan Smith|Allan Smith]] 01:54, 13 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I'll come up with a page tomorrow, I should have some spare time then. :) [[User:BryanDerksen|BryanDerksen]] 01:43, 14 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Added an Item Reskinning Tutorial==&lt;br /&gt;
See [[Tutorial: Reskinning an Item]]. Perhaps someone could add it to the list of tutorials on the main page, if appropriate?&lt;br /&gt;
[[User:Avantoreon|Avantoreon]] 00:38, 17 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Google ==&lt;br /&gt;
&lt;br /&gt;
The Wiki isn't accessible unless you have a Bioware social account; are there exceptions for Googlebot?  I understand wanting to protect the contents but being searchable is a great way to be found.  --[[User:Talonius|Talonius]] 04:30, 17 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== 2DA ID reservation page ==&lt;br /&gt;
&lt;br /&gt;
Is there any way a page can be added to the wiki so that modders that use it can reserve ranges for their content? I would do it, but I feel that it needs to be accessible from the main page of the wiki so that its existence is well known. [[User:Ladydesire|Ladydesire]] 01:34, 19 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I've just redone the main page to have a lot fewer links on it, which I think will actually help a new user find things more easily. I'm thinking that putting it on [[script]] would be better now, since that's the &amp;quot;portal&amp;quot; page that deals with things where row IDs are likely to come up. I'll put it there for now, anyway. Thoughts? [[User:BryanDerksen|BryanDerksen]] 22:46, 23 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:There, I've whipped up a stub page at [[2DA ranges in use]]. Is that the sort of thing you were thinking of? [[User:BryanDerksen|BryanDerksen]] 22:53, 23 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Adding to main game ==&lt;br /&gt;
&lt;br /&gt;
Is it possible to add &amp;quot;addin&amp;quot; content to the main game (Single Player)? I would like to add a new town to an existing forest in the main game without going through Other Campaign.&lt;br /&gt;
&lt;br /&gt;
:Does [[How-tos#Insert_content_into_an_existing_area]] cover what you had in mind? [[User:BryanDerksen|BryanDerksen]] 22:58, 23 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Custom Animations? ==&lt;br /&gt;
&lt;br /&gt;
Is it possible to create custom animations with the toolset?  As in, animate the characters any way you wish for cutscenes, like a werewolf thriller remake for example?  I haven't taken a good look in the toolset quite yet, and only a brief look at the wiki, but it looks as though I would be limited to a set group of named pre-made animations.  [[User:Interitus3841|Interitus3841]] 13:29, 23 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: The toolset doesn't have animation-creation tools in it, though the [[blend tree editor]] is used to combine existing animations. Currently there aren't any tools available that I know of for converting animations created with other tools such as Poser to the [[ANI]] format used by Dragon Age, but I'm sure eventually someone will come up with something. [[User:BryanDerksen|BryanDerksen]] 22:58, 23 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a new single developers page within the wiki to properly list addon's underdevelopment, and the teams developing them? ==&lt;br /&gt;
&lt;br /&gt;
Title basically sums it up. I feel like Social.Bioware.com itself isn't as organized as it should be, and its quiet hard to sift through. I figure if all us developers get together we could maintain a single page that would list addon's and the team doing them in a table sort of way, linking our social.bioware.com page, and our websites all in one little easy to use area.&lt;br /&gt;
:No. The role of wiki is not a to make up for Social's percieved short-comings. If you don't like the way projects work on Social then petition Jesse and his team to fix that issue.  The wiki is for documenting the toolset not any and all projects that may or may not ever see the light of day. --[[User:Sunjammer|Sunjammer]] 16:50, 27 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Adding_a_custom_model_to_the_toolset_tutorial&amp;diff=8374</id>
		<title>Adding a custom model to the toolset tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Adding_a_custom_model_to_the_toolset_tutorial&amp;diff=8374"/>
				<updated>2009-11-28T01:17:34Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Convert your model to DA:O compatible files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial describes how to add a custom model to your Toolset. It is assumed that the reader is familiar with the Toolset.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Needed Files==&lt;br /&gt;
Download tazpn's Command Line Tools [http://social.bioware.com/project/218/#files] &lt;br /&gt;
&lt;br /&gt;
==Convert your model to DA:O compatible files==&lt;br /&gt;
&lt;br /&gt;
It is assumed that the model is finished and textured.&lt;br /&gt;
&lt;br /&gt;
Export your model as a *.fbx file.&lt;br /&gt;
&lt;br /&gt;
Use tapzn`s Tool to convert the *.fbx file to a *.mmh.xml file (fbxcmd convert name.fbx name.mmh.xml).&lt;br /&gt;
You will get 3 files out of this: &lt;br /&gt;
&lt;br /&gt;
• *.mmh.xml&lt;br /&gt;
&lt;br /&gt;
• *.msh.xml&lt;br /&gt;
&lt;br /&gt;
• *.mao&lt;br /&gt;
&lt;br /&gt;
Since the *.mao file is not well named in some cases, you have to manually rename it in some cases. If you do this dont forget to change the reference in the *.mmh.xml file!!!&lt;br /&gt;
[[File:blender.png]]&lt;br /&gt;
&lt;br /&gt;
== Create *.mmh ==&lt;br /&gt;
&lt;br /&gt;
Just drag and drop your *.mmh.xml on the &amp;quot;\Dragon Age\tools\ResourceBuild\Processors\MMH\GraphicsProcessorMMH.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create *.msh ==&lt;br /&gt;
&lt;br /&gt;
Copy the *.msh.xml file to &amp;quot;\Dragon Age\tools\ResourceBuild\Processors\MSH&amp;quot;&lt;br /&gt;
Then do &amp;quot;GraphicsProcessorMSH -platform pc mmdtogff (filename).msh.xml&amp;quot; using your Shell / cmd&lt;br /&gt;
&lt;br /&gt;
== Adding the *.mmh and *.phy to your Toolset ==&lt;br /&gt;
&lt;br /&gt;
Open &amp;quot;\Dragon Age\pagages\core\data\modelmeshdata.erf&amp;quot; in your Toolset and drag&amp;amp;drop the *.mmh and *.phy files there.&lt;br /&gt;
Manually save it then. You will get an error but that is normal. Close your Toolkit and go to &amp;quot;\Dragon Age\pagages\core\data\&amp;quot;&lt;br /&gt;
There should be a modelmeshdata.erf and a modelmeshdata.erf.$$$. Just move the modelmeshdata.erf to another folder and rename the other one to modelmeshdata.erf&lt;br /&gt;
&lt;br /&gt;
== Adding the *.msh to your Toolset ==&lt;br /&gt;
&lt;br /&gt;
Open &amp;quot;\Dragon Age\pagages\core\data\modelhierarchies.erf&amp;quot; in your Toolset and drag&amp;amp;drop the *.msh file there.&lt;br /&gt;
Manually save it then. You will get an error but that is normal. Close your Toolkit and go to &amp;quot;\Dragon Age\pagages\core\data\&amp;quot;&lt;br /&gt;
There should be a modelhierarchies.erf and a modelhierarchies.erf.$$$. Just move the modelhierarchies.erf to another folder and rename the other one to modelhierarchies.erf&lt;br /&gt;
&lt;br /&gt;
== Adding the *.mao and *.dds to your Toolset==&lt;br /&gt;
&lt;br /&gt;
This is staight forward as before. *.mao file to materialobjects.erf and *.dds to textures.erf&lt;br /&gt;
&lt;br /&gt;
== Using it in the Toolkit ==&lt;br /&gt;
&lt;br /&gt;
To use it in the toolkit you have to specify which item variation your item is. Edit the fitting *.gda in the 2da.erf to do so.&lt;br /&gt;
[[File:Toolkit.png]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8345</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8345"/>
				<updated>2009-11-27T12:31:07Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Open up CLA_base.xls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Creating a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Editing the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating the UTC template file==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Trying it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8344</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8344"/>
				<updated>2009-11-27T12:30:58Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Open up guitypes.xls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Creating a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Editing the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating the UTC template file==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Trying it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8343</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8343"/>
				<updated>2009-11-27T12:30:47Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* open up 2da_base.xls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Creating a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Editing the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating the UTC template file==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Trying it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Add_A_New_Class_Tutorial&amp;diff=8342</id>
		<title>Talk:Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Add_A_New_Class_Tutorial&amp;diff=8342"/>
				<updated>2009-11-27T11:29:57Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have started to edit this page at the author's request to try and fix up some of the formatting. It was prety much a cut and paste from the forum. I think it has a way to go yet. I would recommend replacing all the capitalised text with appropriate markup such as '''bold'''. Also the structure could perhaps be improved and some of the content organised better in sentences rather than point form. Please help out if you have the time and incliniation. [[User:Stuntpope|Stuntpope]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8341</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8341"/>
				<updated>2009-11-27T11:18:48Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Creating the UTC TEMPLATE FILE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Creating a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Editing the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating the UTC template file==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Trying it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Backgrounds_tutorial&amp;diff=8335</id>
		<title>Talk:Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Backgrounds_tutorial&amp;diff=8335"/>
				<updated>2009-11-27T08:14:58Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Is this correct? ==&lt;br /&gt;
&lt;br /&gt;
I have problems with this solution. I tried it twice now, once I tried to implement it into my module, the other time I did it exactly as written here. 1. The custom templates for the Backgrounds don't work (The character has no equipment, no matter what background I choose) with the scripts on this tutorial, although the changes work fine if I run RESOURCE_SCRIPT_MODULE_CORE 2. The race choice doesn't change the character (But that could be because the scripts are missing alot, it's not that important for test purposes) 3. The strings for the Background description don't work (Yes I have corrected them in the Toolset, because the ExcelProcessor can't handle that big numbers), they don't show up, when I'm clicking on the Backgrounds.&lt;br /&gt;
&lt;br /&gt;
I have not tested dialouge yet, but am I making something wrong? Or has this tutorial some errors? [[User:Nobody123456|Nobody123456]] 13:49, 26 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think you might be making some errors (although it is possible that there is some error or ommision in what I wrote). I tested the tutorial by running through it from scratch after I wrote it and my game worked fine. It is a very sensitive process though, so the slightest thing wrong can really throw you out. &lt;br /&gt;
&lt;br /&gt;
: The first thing I would suggest is to get the background description strings working because I know that can cause issues if you don't get it right. Try a new module and don't make any changes execpt for adding your own strings to the backgrounds and see if that works. Oh and be sure to export your talk table along with any other resources before you play. Actaully that's probably it - I should add that to the tutorial. [[User:Stuntpope|Stuntpope]] 15:01, 26 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I did export the string table, so that can't be it. I recreated it from scratch, now some equipment choices work, some don't. The race choices now works fine, but the strings still don't show up. I tested the background choices in a dialouge, and this works perfectly fine. I uploaded the module, so if you wanna take a quick look, that would be great. [http://www.megaupload.com/?d=CYHIVYJL Background Test Module] and if you want to install the module as an addin [http://www.megaupload.com/?d=2FILLQ5N DAZIP format] [[User:Nobody123456|Nobody123456]] 05:20, 27 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I notice your talk table is called strings.tlk. That seems strange to me, I didn't know you could rename tlk files but mine is called bg_demo_en-us, where bg_demo is what my module is called. so i would have expected yours to be bdm_2_en-us.tlk if you hadn't renamed it. You say that you are able to display strings in dialogue though so maybe that's not it. Another possibility is that this is another bug in the description strings. Your strings are a good million higher than mine - try using exctly the same string ID range that I used.&lt;br /&gt;
&lt;br /&gt;
:As for equipment - I didn't really spend any time looking at what equipment those templates start with. I just selected some that had the look I was going for in chargen, so the ones that are just dressed plainly and don't have weapons or anything are that way becasue that is what those templates are (I think i used those for the servants). To check that this is working go into the toolset and find those templates - compare them to what those characters have if you create them. If you want them to have equipment, simply create a new creature and give them whatever equipment you want, then use that template name in the GDA. Try and resolve your other issue first though before you try that. [[User:Stuntpope|Stuntpope]] 07:25, 27 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: It was indeed the table name. It was exportet that way, that's strange, but now the Strings work fine, thank you very much! [[User:Nobody123456|Nobody123456]] 07:52, 27 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Great to hear you got it working! [[User:Stuntpope|Stuntpope]] 08:14, 27 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8332</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8332"/>
				<updated>2009-11-27T08:13:21Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Step 7: Put it all together */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Creating a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Editing the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Trying it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8331</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8331"/>
				<updated>2009-11-27T08:12:57Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Step 5: Create the UTC TEMPLATE FILE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Creating a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Editing the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step 7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Trying it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8330</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8330"/>
				<updated>2009-11-27T08:12:42Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Creating a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Editing the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Creating some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step 7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Trying it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Add_A_New_Class_Tutorial&amp;diff=8329</id>
		<title>Talk:Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Add_A_New_Class_Tutorial&amp;diff=8329"/>
				<updated>2009-11-27T08:07:39Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: Created page with 'I have started to edit this page at the author's request to try and fix up some of the formatting. It was prety much a cut and paste from the forum. I think it has a way to go ye...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have started to edit this page at the author's request to try and fix up some of the formatting. It was prety much a cut and paste from the forum. I think it has a way to go yet. I would recommend replacing all the capitalised text with appropriate markup such as '''bold'''. Also the structure could perhaps be improved and some of the content organised better in sentences rather than point form. Please help out if you have the time and incliniation.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8328</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8328"/>
				<updated>2009-11-27T08:00:26Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Step 4: Edit scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 6: Create some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step 7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 8: Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Step 9: Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8327</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8327"/>
				<updated>2009-11-27T08:00:08Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Step 1: Edit 2das */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 6: Create some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step 7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 8: Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Step 9: Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8326</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8326"/>
				<updated>2009-11-27T07:59:07Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* TOUBLESHOOTING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 6: Create some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step 7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 8: Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Step 9: Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8325</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8325"/>
				<updated>2009-11-27T07:58:51Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Try it out */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 6: Create some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step 7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 8: Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Step 9: Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8324</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8324"/>
				<updated>2009-11-27T07:58:35Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Clean up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 6: Create some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step 7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 8: Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8323</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8323"/>
				<updated>2009-11-27T07:58:21Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Step7: Put it all together */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 6: Create some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step 7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8322</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8322"/>
				<updated>2009-11-27T07:58:13Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Putting it all together */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 6: Create some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Step7: Put it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8321</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8321"/>
				<updated>2009-11-27T07:57:56Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Using the string editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 6: Create some strings ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8320</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8320"/>
				<updated>2009-11-27T07:57:30Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Create the UTC TEMPLATE FILE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8319</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8319"/>
				<updated>2009-11-27T07:57:15Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Edit the scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Step 4: Edit scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8318</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8318"/>
				<updated>2009-11-27T07:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Create a module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Step 3: Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Edit the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8317</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8317"/>
				<updated>2009-11-27T07:56:42Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Step 2: Converting the files from 2DA to GDA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Edit the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8316</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8316"/>
				<updated>2009-11-27T07:56:28Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Step 1: Editing the 2das */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Edit 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Edit the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8315</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8315"/>
				<updated>2009-11-27T07:55:51Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Convert the files from 2DA to GDA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
== Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Edit the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8314</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8314"/>
				<updated>2009-11-27T07:55:25Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
==Edit the scripts== &lt;br /&gt;
You now need to edit some scripts.&lt;br /&gt;
&lt;br /&gt;
=== Edit the 2da_constants_h file ===&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the gen00pt_class_race_gend file ===&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen_h file ===&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_rewards_h file ===&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit the sys_chargen file ===&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8311</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8311"/>
				<updated>2009-11-27T07:48:53Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Open up background.xls = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ===&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Edit the 2da_constants_h file ==&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Edit the gen00pt_class_race_gend file ==&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Edit the sys_chargen_h file ==&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Edit the sys_rewards_h file ==&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Edit the sys_chargen file ==&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8310</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8310"/>
				<updated>2009-11-27T07:48:29Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New class starter kit ==&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ====&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Convert the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Edit the 2da_constants_h file ==&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Edit the gen00pt_class_race_gend file ==&lt;br /&gt;
under _Global ==&amp;gt; plot scripts find the gen00pt_class_race_gend file. &lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Edit the sys_chargen_h file ==&lt;br /&gt;
Find the sys_chargen_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Edit the sys_rewards_h file ==&lt;br /&gt;
Find the sys_rewards_h file under _Systems ==&amp;gt; _Includes&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Edit the sys_chargen file ==&lt;br /&gt;
Find the sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create the UTC TEMPLATE FILE ==&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
== Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean up ==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
== Try it out ==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
== TOUBLESHOOTING ==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8309</id>
		<title>Add A New Class Tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Add_A_New_Class_Tutorial&amp;diff=8309"/>
				<updated>2009-11-27T07:39:09Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NEW CLASS STARTER KIT'''&lt;br /&gt;
&lt;br /&gt;
This kit has all the .xls spreadsheets you need to add a new class.&lt;br /&gt;
&lt;br /&gt;
These have been pre-programmed to follow the tutorial I wrote so you can see how it is done.  It also contains the converter and the GDA as well.&lt;br /&gt;
&lt;br /&gt;
You still need to edit the scripts in the toolkit and add the UTC model.&lt;br /&gt;
&lt;br /&gt;
YOU STILL NEED TO ADD THESE GDA TO YOUR MODULE&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
http://www.damods.com/forums/index.php?action=downloads;sa=view;down=131&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Editing the 2das ==&lt;br /&gt;
You will need to edit the following 2DA's.&lt;br /&gt;
*[[2da_base.xls]]&lt;br /&gt;
*[[abi_base.xls]]&lt;br /&gt;
*[[ALclassname_default.xls]]  (ex  ALshaman_default.xls) Copy from ALWizard_default.xls&lt;br /&gt;
*[[background.xls]]&lt;br /&gt;
*[[cla_base.xls]]&lt;br /&gt;
*[[guitypes.xls]]&lt;br /&gt;
&lt;br /&gt;
=== open up 2da_base.xls ===&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of M2DA_base TAB&lt;br /&gt;
&lt;br /&gt;
ID above 100000  ALShaman_default  ALShaman_default &lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up guitypes.xls ===&lt;br /&gt;
At bottom of list paste this:&lt;br /&gt;
&lt;br /&gt;
ID	Label		StringId	Ability	ProgressBar	CombatTraining	SpecialGraphic	TintColor	Orphanage	Flags	BlendTree&lt;br /&gt;
500	Class: Shaman	8000000		5000	0		0		1		0x9B0F00	0		0	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up CLA_base.xls ===&lt;br /&gt;
Paste this AFTER line 3: (Move all down 1)&lt;br /&gt;
&lt;br /&gt;
4	Shaman	8000000	8000001	****	8000002	8000003	classico_spirithealer	CLASS_Shaman	2	95	1	100	5	2	2	2	2	2	0	0	0	55	50	1	5	1	3	0.3	4035	****	1	Shaman	****&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open up background.xls ====&lt;br /&gt;
On backgrounds tab:  You need to insert a section between mage and skill 1, see screenshot&lt;br /&gt;
&lt;br /&gt;
[[Image:http://www.damods.com/images/tuts/background.jpg]]&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=135]http://www.damods.com/images/tuts/background.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
On background_defaults there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=274]http://www.damods.com/images/tuts/bgdef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.&lt;br /&gt;
&lt;br /&gt;
On lines 12,15,17,19 you need to add these in.  What I recommend is just coping these lines&lt;br /&gt;
&lt;br /&gt;
:10 ==&amp;gt; 12&lt;br /&gt;
:13 ==&amp;gt; 15&lt;br /&gt;
:16 ==&amp;gt; 17&lt;br /&gt;
:18 ==&amp;gt; 19&lt;br /&gt;
&lt;br /&gt;
The template string is the deault_shaman.utc you will need to create in the toolset later on for these to have a base model&lt;br /&gt;
The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have&lt;br /&gt;
&lt;br /&gt;
On chargen_preload there are several section you need to note here regarding the screenshot:&lt;br /&gt;
&lt;br /&gt;
[img width=281 height=374]http://www.damods.com/images/tuts/chardef.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
These ID's must match what is on the background_defaults otherwise the game WILL crash.&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up abi_base.xls ===&lt;br /&gt;
&lt;br /&gt;
in the ABI_Base tab add the following to the bottom of the list&lt;br /&gt;
&lt;br /&gt;
There are several columns that very are important&lt;br /&gt;
&lt;br /&gt;
abilitytype - define what type of ability. melee, spell, skill etc..---&amp;gt; links with abilitytype.xls&lt;br /&gt;
&lt;br /&gt;
prereqability - defines what is needed to have this ability.  To add a new class these need to be changed on existing classes.&lt;br /&gt;
&lt;br /&gt;
guitypes - referenced what class this links too ---&amp;gt; links with guitypes.xls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AFTER LINE 119 ==&amp;gt; 4034 HIDDEN_DOG insert a new row and put in the following&lt;br /&gt;
&lt;br /&gt;
 5000	HIDDEN_SHAMAN	0	0	380405	330716	hidden			2	0	0	0	0	0	0	0	1	0	0	12	0	0	0	0	3		1.5			0		0	0	0	0	0	0	0	0	0	0		0	0	0	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the bottom paste these&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 300000	HEROIC_OFFENSE2	380003	379523	367458	379231	spl_ico_heroic_offense	2	1	0	0	0	20	0	5000	0	0	0	500	3	0	3	1	4	spell_singletarget.ncs	5	90215		244	247	0	0	2	0	0	0	0	0		0	90109	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300001	HEROIC_AURA2	380000	379520	367458	379214	spl_ico_heroic_aura	2	1	0	0	0	30	0	300000	0	4	15	500	3	0	3	1	4	spell_singletarget.ncs	5	90213		244	247	0	0	0	0	0	0	0	0		0	90110	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300002	HEROIC_DEFENSE2	380001	379521	367458	379256	spl_ico_heroic_defense	2	1	0	0	0	40	0	300001	0	4	20	500	3	0	3	1	4	spell_singletarget.ncs	10	90214		244	247	0	0	2	0	0	0	0	0		0	90111	128	1	7	0	2	33	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
 300003	HASTE2		380005	379525	398957	379229	spl_ico_agility		2	0	0	0	0	0	60	300002	0	4	30	500	1	1	18	1	2	spell_modal.ncs	30		90216		244	247	0	0	2	0	0	0	0	0		0	90112	192	1	7	0	2	33	0	0	0	10&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN S (guitypes)  Now they should all be sorted by guitype&lt;br /&gt;
&lt;br /&gt;
Now we need to seperate the mage spells from our new shaman spells.&lt;br /&gt;
&lt;br /&gt;
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023&lt;br /&gt;
This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class)&lt;br /&gt;
Ok this will now prevent duplicate of skills&lt;br /&gt;
&lt;br /&gt;
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)&lt;br /&gt;
&lt;br /&gt;
NOW GOTO DATA --&amp;gt; SORT BY COLUMN A (ID)  Now we are back to normal&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Now goto passive_abilities&lt;br /&gt;
&lt;br /&gt;
Paste the following at the bottom of the list&lt;br /&gt;
&lt;br /&gt;
 9000	HIDDEN_SHAMAN	1	2	4	2	6	1		str +2,mag +2,con +1&lt;br /&gt;
&lt;br /&gt;
Now SAVE your file :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== open up ALShaman_default.xls ===&lt;br /&gt;
&lt;br /&gt;
Should look like this&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=394]http://www.damods.com/images/tuts/alshaman.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
== Converting the files from 2DA to GDA ==&lt;br /&gt;
&lt;br /&gt;
Create a directory called 2DA on C:, inside that dir create one called override.&lt;br /&gt;
&lt;br /&gt;
In your C:\2da put the following:&lt;br /&gt;
&lt;br /&gt;
:[[2da_base.xls]]&lt;br /&gt;
:[[abi_base.xls]]&lt;br /&gt;
:[[background.xls]]&lt;br /&gt;
:[[cla_base.xls]]&lt;br /&gt;
:[[guitypes.xls]]&lt;br /&gt;
:[[ALShaman_default.xls]]&lt;br /&gt;
&lt;br /&gt;
Also: ExcelProcessor.exe from the tool converter in your toolset section.&lt;br /&gt;
&lt;br /&gt;
Next you need to make a batch file to run to convert these.&lt;br /&gt;
Simply open notepad, copy and paste below and save as convert.bat&lt;br /&gt;
&lt;br /&gt;
:C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\ &lt;br /&gt;
:C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\ &lt;br /&gt;
&lt;br /&gt;
NOTE: YOU MAY NEED TO &amp;quot;RUN AS ADMINISTRATOR&amp;quot; CONVERT.BAT IN VISTA / W7&lt;br /&gt;
&lt;br /&gt;
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a module ==&lt;br /&gt;
Now we begin editing inside the toolset&lt;br /&gt;
&lt;br /&gt;
Create a new module, similiar to the picture below&lt;br /&gt;
&lt;br /&gt;
[color=maroon][b]MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000&lt;br /&gt;
IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.&lt;br /&gt;
BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM[/b][/color]&lt;br /&gt;
&lt;br /&gt;
[img width=431 height=812]http://www.damods.com/images/tuts/module1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
After making it go back to the module screen and select heirarchy and make sure single player is checked&lt;br /&gt;
&lt;br /&gt;
[img width=295 height=365]http://www.damods.com/images/tuts/hier.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now that your module is created we need to add the appropriate GDA to the override section.&lt;br /&gt;
&lt;br /&gt;
look in name/mydocuments/bioware/dragonage/addins/modulename&lt;br /&gt;
&lt;br /&gt;
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory&lt;br /&gt;
&lt;br /&gt;
== Edit the 2da_constants_h file ==&lt;br /&gt;
&lt;br /&gt;
find the 2da_constants_h file under Core scripts&lt;br /&gt;
&lt;br /&gt;
right click on 2DA_CONSTANTS_H, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following sections and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=490 height=160]http://www.damods.com/images/tuts/constant.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
[img width=388 height=354]http://www.damods.com/images/tuts/constant2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
EDITING THE gen00pt_class_race_gend FILE ==&amp;gt; under _Global ==&amp;gt; plot scripts&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
right click on gen00pt_class_race_gend, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down and you'll see the following and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=618 height=338]http://www.damods.com/images/tuts/plot.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
EDITING THE sys_chargen_h ==&amp;gt; under _Systems ==&amp;gt; _Includes&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the starting skills section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=448 height=329]http://www.damods.com/images/tuts/syschar1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Next goto starting ability&lt;br /&gt;
&lt;br /&gt;
[img width=556 height=409]http://www.damods.com/images/tuts/syschar2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next goto  &amp;quot;// Undo Class and Race selection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=395]http://www.damods.com/images/tuts/syschar5.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next goto &amp;quot;// enabling proper tactics presets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=314]http://www.damods.com/images/tuts/syschar6.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
EDITING THE sys_rewards_h ==&amp;gt; under _Systems ==&amp;gt; _Includes&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
right click on sys_rewards_h, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Go down to the following section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=416 height=253]http://www.damods.com/images/tuts/rewards.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
EDITING THE sys_chargen ==&amp;gt; under _Systems&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
right click on sys_chargen, select CHECK OUT&lt;br /&gt;
&lt;br /&gt;
Change this line:&lt;br /&gt;
&lt;br /&gt;
const int MAX_CLASS_INDEX = 4; // Last index of available base classes in cla_base.&lt;br /&gt;
&lt;br /&gt;
Go down to the special handling section and edit it like below:&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=288]http://www.damods.com/images/tuts/syschar3.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
next go down to the tactics sections and add the following:&lt;br /&gt;
&lt;br /&gt;
[img width=542 height=247]http://www.damods.com/images/tuts/syschar4.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Afterwards on top select SAVE then CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------&lt;br /&gt;
Creating the UTC TEMPLATE FILE&lt;br /&gt;
------------------------------------&lt;br /&gt;
&lt;br /&gt;
Back in the toolset we need to do the following:&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;creature tab&amp;quot; (red head icon)&lt;br /&gt;
&lt;br /&gt;
Right click on default_mage ==&amp;gt; duplicate&lt;br /&gt;
Do like the following:&lt;br /&gt;
&lt;br /&gt;
[img width=377 height=215]http://www.damods.com/images/tuts/dfs1.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the values and give them some armor and weapons, like so:&lt;br /&gt;
&lt;br /&gt;
Class: Shaman (from dropdown)&lt;br /&gt;
Name: Default Male Shaman&lt;br /&gt;
&lt;br /&gt;
[img width=750 height=570]http://www.damods.com/images/tuts/dfs2.jpg[/img]&lt;br /&gt;
&lt;br /&gt;
Now at the top and click SAVE ==&amp;gt; CHECK IN&lt;br /&gt;
&lt;br /&gt;
Now at the top and click &amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using the string editor ==&lt;br /&gt;
&lt;br /&gt;
Start the String editor and right click and insert.&lt;br /&gt;
&lt;br /&gt;
You will be setting up like this &lt;br /&gt;
&lt;br /&gt;
:Table = module talk base&lt;br /&gt;
:Owner = module name&lt;br /&gt;
:TYPE = GUI&lt;br /&gt;
&lt;br /&gt;
:8000000 - Shaman&lt;br /&gt;
:8000001 - Shamans&lt;br /&gt;
:8000002 - Shamans commune with spirits to get thier other worldly powers.&lt;br /&gt;
:8000004 - Shaman&lt;br /&gt;
:8000005 - Shaman Male Name&lt;br /&gt;
:8000006 - Shaman Female Name&lt;br /&gt;
&lt;br /&gt;
When all is said close string editor&lt;br /&gt;
&lt;br /&gt;
==Putting it all together==&lt;br /&gt;
&lt;br /&gt;
Up on top ON THE EXPORT TAB &lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT WITHOUT DEPENDENT RESOURCES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MODULE XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GENERATE MANIFEST XML&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;EXPORT TALK TABLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CLEANING UP==&lt;br /&gt;
&lt;br /&gt;
DON'T SKIP THIS PART&lt;br /&gt;
&lt;br /&gt;
goto name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
COPY THE FOLLOWING FILES OVER TO YOUR &lt;br /&gt;
&lt;br /&gt;
name/mydocuments/bioware/dragonage/addins/modulename/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
:2da_constant_h.nss&lt;br /&gt;
:gen00pt_class_race_gend.nss&lt;br /&gt;
:sys_chargen_h.nss&lt;br /&gt;
:sys_rewards_h.nss &lt;br /&gt;
:sys_chargen.nss&lt;br /&gt;
:sys_chargen.ncs&lt;br /&gt;
&lt;br /&gt;
Delete the rest in the name/mydocuments/bioware/dragonage/packages/core/override/toolset&lt;br /&gt;
&lt;br /&gt;
==Trying it out==&lt;br /&gt;
&lt;br /&gt;
Start up your game (It may take a min) and start a new game.&lt;br /&gt;
&lt;br /&gt;
*WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED&lt;br /&gt;
&lt;br /&gt;
Select MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
YOU SHOULD SEE YOUR NEW CHARACTER&lt;br /&gt;
&lt;br /&gt;
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS&lt;br /&gt;
&lt;br /&gt;
Make sure you did not miss ANY &amp;quot;;&amp;quot; or &amp;quot;{ }&amp;quot; as a single one of these missed can destroy the game.&lt;br /&gt;
&lt;br /&gt;
==TOUBLESHOOTING==&lt;br /&gt;
&lt;br /&gt;
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!&lt;br /&gt;
&lt;br /&gt;
* You may not have sort your ability file back to ID.  It has to be sorted by ID in order to show up.&lt;br /&gt;
* You may not have assigned the new abilities to your new class &amp;quot;5000&amp;quot; in the prereqability column&lt;br /&gt;
&lt;br /&gt;
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==&amp;gt; HUMAN ==&amp;gt; SHAMAN ==&amp;gt; MAGI&lt;br /&gt;
&lt;br /&gt;
* It is very likely you did not EXPORT your default_shaman.utc model&lt;br /&gt;
* Double check the background file to make sure you are using default_shaman.utc for the template&lt;br /&gt;
* Try rebooting your computer.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Backgrounds_tutorial&amp;diff=8308</id>
		<title>Talk:Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Backgrounds_tutorial&amp;diff=8308"/>
				<updated>2009-11-27T07:25:35Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Is this correct? ==&lt;br /&gt;
&lt;br /&gt;
I have problems with this solution. I tried it twice now, once I tried to implement it into my module, the other time I did it exactly as written here. 1. The custom templates for the Backgrounds don't work (The character has no equipment, no matter what background I choose) with the scripts on this tutorial, although the changes work fine if I run RESOURCE_SCRIPT_MODULE_CORE 2. The race choice doesn't change the character (But that could be because the scripts are missing alot, it's not that important for test purposes) 3. The strings for the Background description don't work (Yes I have corrected them in the Toolset, because the ExcelProcessor can't handle that big numbers), they don't show up, when I'm clicking on the Backgrounds.&lt;br /&gt;
&lt;br /&gt;
I have not tested dialouge yet, but am I making something wrong? Or has this tutorial some errors? [[User:Nobody123456|Nobody123456]] 13:49, 26 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think you might be making some errors (although it is possible that there is some error or ommision in what I wrote). I tested the tutorial by running through it from scratch after I wrote it and my game worked fine. It is a very sensitive process though, so the slightest thing wrong can really throw you out. &lt;br /&gt;
&lt;br /&gt;
: The first thing I would suggest is to get the background description strings working because I know that can cause issues if you don't get it right. Try a new module and don't make any changes execpt for adding your own strings to the backgrounds and see if that works. Oh and be sure to export your talk table along with any other resources before you play. Actaully that's probably it - I should add that to the tutorial. [[User:Stuntpope|Stuntpope]] 15:01, 26 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I did export the string table, so that can't be it. I recreated it from scratch, now some equipment choices work, some don't. The race choices now works fine, but the strings still don't show up. I tested the background choices in a dialouge, and this works perfectly fine. I uploaded the module, so if you wanna take a quick look, that would be great. [http://www.megaupload.com/?d=CYHIVYJL Background Test Module] and if you want to install the module as an addin [http://www.megaupload.com/?d=2FILLQ5N DAZIP format] [[User:Nobody123456|Nobody123456]] 05:20, 27 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I notice your talk table is called strings.tlk. That seems strange to me, I didn't know you could rename tlk files but mine is called bg_demo_en-us, where bg_demo is what my module is called. so i would have expected yours to be bdm_2_en-us.tlk if you hadn't renamed it. You say that you are able to display strings in dialogue though so maybe that's not it. Another possibility is that this is another bug in the description strings. Your strings are a good million higher than mine - try using exctly the same string ID range that I used.&lt;br /&gt;
&lt;br /&gt;
:As for equipment - I didn't really spend any time looking at what equipment those templates start with. I just selected some that had the look I was going for in chargen, so the ones that are just dressed plainly and don't have weapons or anything are that way becasue that is what those templates are (I think i used those for the servants). To check that this is working go into the toolset and find those templates - compare them to what those characters have if you create them. If you want them to have equipment, simply create a new creature and give them whatever equipment you want, then use that template name in the GDA. Try and resolve your other issue first though before you try that. [[User:Stuntpope|Stuntpope]] 07:25, 27 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Backgrounds_tutorial&amp;diff=8307</id>
		<title>Talk:Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Backgrounds_tutorial&amp;diff=8307"/>
				<updated>2009-11-27T07:25:17Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Is this correct? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Is this correct? ==&lt;br /&gt;
&lt;br /&gt;
I have problems with this solution. I tried it twice now, once I tried to implement it into my module, the other time I did it exactly as written here. 1. The custom templates for the Backgrounds don't work (The character has no equipment, no matter what background I choose) with the scripts on this tutorial, although the changes work fine if I run RESOURCE_SCRIPT_MODULE_CORE 2. The race choice doesn't change the character (But that could be because the scripts are missing alot, it's not that important for test purposes) 3. The strings for the Background description don't work (Yes I have corrected them in the Toolset, because the ExcelProcessor can't handle that big numbers), they don't show up, when I'm clicking on the Backgrounds.&lt;br /&gt;
&lt;br /&gt;
I have not tested dialouge yet, but am I making something wrong? Or has this tutorial some errors? [[User:Nobody123456|Nobody123456]] 13:49, 26 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think you might be making some errors (although it is possible that there is some error or ommision in what I wrote). I tested the tutorial by running through it from scratch after I wrote it and my game worked fine. It is a very sensitive process though, so the slightest thing wrong can really throw you out. &lt;br /&gt;
&lt;br /&gt;
: The first thing I would suggest is to get the background description strings working because I know that can cause issues if you don't get it right. Try a new module and don't make any changes execpt for adding your own strings to the backgrounds and see if that works. Oh and be sure to export your talk table along with any other resources before you play. Actaully that's probably it - I should add that to the tutorial. [[User:Stuntpope|Stuntpope]] 15:01, 26 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I did export the string table, so that can't be it. I recreated it from scratch, now some equipment choices work, some don't. The race choices now works fine, but the strings still don't show up. I tested the background choices in a dialouge, and this works perfectly fine. I uploaded the module, so if you wanna take a quick look, that would be great. [http://www.megaupload.com/?d=CYHIVYJL Background Test Module] and if you want to install the module as an addin [http://www.megaupload.com/?d=2FILLQ5N DAZIP format] [[User:Nobody123456|Nobody123456]] 05:20, 27 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I notice your talk table is called strings.tlk. That seems strange to me, I didn't know you could rename tlk files but mine is called bg_demo_en-us, where bg_demo is what my module is called. so i would have expected yours to be bdm_2_en-us.tlk if you hadn't renamed it. You say that you are able to display strings in dialogue though so maybe that's not it. Another possibility is that this is another bug in the description strings. Your strings are a good million higher than mine - try using exctly the same string ID range that I used.&lt;br /&gt;
&lt;br /&gt;
:As for equipment - I didn't really spend any time looking at what equipment those templates start with. I just selected some that had the look I was going for in chargen, so the ones that are just dressed plainly and don't have weapons or anything are that way becasue that is what those templates are (I think i used those for the servants). To check that this is working go into the toolset and find those templates - compare them to what those characters have if you create them. If you want them to have equipment, simply create a new creature and give them whatever equipment you want, then use that template name in the GDA. Try and resolve your other issue first though before you try that.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8270</id>
		<title>Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8270"/>
				<updated>2009-11-26T15:02:15Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Testing that everything works */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This tutorial shows you how to modify the character backgrounds that can be selected during character generation. This is likely only of use if you are creating your own module or campaign as there would be no point to changing the background in the single player campaign unless you were also going to make extensive additions to support the new backgrounds  (e.g a completely new origin story). So the example we will use for this tutorial is a new stand alone module in which we completely replace the existing backgrounds. Changing backgrounds is especially useful if your module is set in a different lore to the main Dragon Age game or if you simply want to reduce the scope of the number of different backgrounds.&lt;br /&gt;
&lt;br /&gt;
We will also demonstrate some important principals that can be followed when modifying other core rules such as available races or classes. Most importantly we will add the new backgrounds in a way that doesn’t require any editing of core resources. By leaving the core resources alone we make our changes compatible with future patches which might otherwise overwrite our work. Furthermore keeping the core resources in tact allows us to make different modifications to different modules within the same toolset.&lt;br /&gt;
&lt;br /&gt;
It is recommended that the reader should have some experience with scripting or coding in order to carry out the operations involved. The more you are relying on just copy pasting these instructions the more likely you are to make mistakes that you won’t know how to fix.&lt;br /&gt;
&lt;br /&gt;
== The backgrounds demo module ==&lt;br /&gt;
Any basic module will do for the purposes of this tutorial. If you want to create a test module for this tutorial then just create a simple module with a single area and a starting location. Make sure that the only thing selected in the module’s hierarchy is ''Core game resources''. This will ensure that the module is a stand alone module rather than an add-in to the single player campaign or some other module. For the purposes of this tutorial we will assume the module is called ''Backgrounds demo'' and I will prefix my resources with ''bdm_'' to be sure that they are distinct from any that are already in existence.&lt;br /&gt;
&lt;br /&gt;
We are going to completely replace the existing backgrounds with 3 new ones of our own. You can use new backgrounds in your module however you see fit. You could create entire origin stories for each one like in the single player campaign (possibly a major undertaking depending on length) or you can just use them to influence dialogue and plot options in the main part of your game.&lt;br /&gt;
&lt;br /&gt;
For our demo we are creating a  module in which the player starts off in a small human village (we will not be creating the details of this module so this is just for the purpose of an example). There is a wizard in this village who plays a pivotal role in the story. We allow the player to start as the wizard’s apprentice (if they are a mage) or as his servant (if they are human or elven and not a mage) or as a wandering traveller who has come to visit the wizard (if they are not human and not a mage). So the three backgrounds will be:&lt;br /&gt;
&lt;br /&gt;
* Servant&lt;br /&gt;
* Apprentice&lt;br /&gt;
* Traveller&lt;br /&gt;
&lt;br /&gt;
== Creating the background strings ==&lt;br /&gt;
Before we start modifying the 2DA files we are going to create some strings. Open the string editor in the toolset and create the following strings in your ‘Backgrounds demo’ talk table:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_talk_table.png]]&lt;br /&gt;
&lt;br /&gt;
Your string IDs might be different to these so be sure to reference the right string ID in the instructions that follow. Simply replace these string Ids with your own.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''There is currently a bug in the game that causes it to crash if a background description ID has a value greater than 109 912 680. To get around this you can go into your module’s properties and change the start and end IDs for strings to be less than that. After that the string editor will generate IDs in a range that won’t crash. You can always put those values back again after you create the background descriptions (that way you have less to alter once Bioware fix this). Hopefully Bioware will fix this bug soon as the official string range for non-Bioware / certified modules is over 610 000 000.''&lt;br /&gt;
&lt;br /&gt;
You may have noticed that we have given two different names and descriptions for the traveller background depending on the PC’s race. We will say more about that in the following section.&lt;br /&gt;
&lt;br /&gt;
== Modifying the 2DAs ==&lt;br /&gt;
The next thing we need to do is to modify the worksheets in Backgrounds.xls. Be sure to make a copy of the spreadsheet first so that you leave the original intact. See LINK for general information about editing 2DA files. The first worksheet is called ‘backgrounds’; modify it to look like the following:&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_backgrounds.png]]&lt;br /&gt;
&lt;br /&gt;
Note that since 2DAs combine together to form M2DAs, and we don’t want the existing backgrounds in our game, we have overwritten the last two slots as unused1 and unused2,  even though we won’t be using them. The name and desc  string refs on this tab will be overwritten by the race specific ones on the names tab so we can leave those blank (AFAIK these string refs are not used providing the ones on the names tab are provided - also the tooltip string ref seems not to be used anywhere – if you prefer you can set these to something just to be safe).&lt;br /&gt;
&lt;br /&gt;
The three race columns determine which backgrounds can be selected by which race and the 3 class columns determine which background can be selected by which class. So, as you can see from the picture our Servant background is accessible to elf or human warriors and rogues, the Apprentice background can be selected by elf or human mages and the Traveller background by elf or dwarf warriors and rogues.&lt;br /&gt;
&lt;br /&gt;
The last three tabs indicate a starting ability for each background by race. Note that by default these columns are not hooked up into the character generation script (instead they are hard coded in the script) and are not used, but we will correct that later on when we do the scripting. You have to be careful here because the columns relate to the race IDs, so 1=dwarf, 2=elf and 3=human, which is in a different order to the other race columns in this table. The number in the column is an ability ID as given in ABI_base.xls. For this demo we have just given the same skill for each race for a given background. Servants get combat tactics, Apprentices get persuade and Travellers get survival.&lt;br /&gt;
&lt;br /&gt;
The next tab table to modify is background_names.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_names.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure that the IDs here match the IDs in your string table. Note that for Apprentices and Servants we use the same strings regardless of race, but for the Traveller background we use different strings. This is to illustrate how you can divide a single background up into multiple names and descriptions. Internally they are both stored as the same background ID but during character generation a different name, description and icon can be shown to the player. In the single player game this was done with the Noble background by splitting it into human and dwarf Noble variations.&lt;br /&gt;
&lt;br /&gt;
NOTE – you must be careful when splitting a single background into different parts for each race. You must make both the names and descriptions different! If you don’t make the descriptions different then the engine will not recognise them as different even if they have different names.&lt;br /&gt;
&lt;br /&gt;
Now modify the background_desc table as follows&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_desc.png]]&lt;br /&gt;
&lt;br /&gt;
Again note the distinct descriptions for the Traveller background&lt;br /&gt;
Now for the background_icons table. For this demo we will just use some of the existing icons but you may want to create your own icons to add here.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_icons.png]]&lt;br /&gt;
&lt;br /&gt;
The background_defaults table must have an entry for each race, background and class combination that is allowed. The ID column must be calculated as follows:&lt;br /&gt;
&lt;br /&gt;
1000 * raceID  + 100 * classID + backgroundID&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tute_bg_defaults.png]]&lt;br /&gt;
&lt;br /&gt;
The label column should give a description of the row (AFAIK this is not used anywhere).&lt;br /&gt;
For this simple demo we will have each background combination spawn in the same place (the module default start location) but if you wanted different origins to spawn in different places then you can use the next two columns to specify this (AFAIK you have to write your own scripts to accomplish this though).&lt;br /&gt;
&lt;br /&gt;
In the template column you can put the name of a creature resource that you want to use as a template for this race/background/class combination. In the picture you can see that we have just used some default templates that shipped with the toolset but you can easily create your own. Note that only the inventory is copied across to the PC so if you want to create your own templates you do not need to alter anything on the creature except for their inventory.&lt;br /&gt;
&lt;br /&gt;
The name columns take string Ids. If you want to add your own names then you’ll have to create new strings in the string editor.&lt;br /&gt;
&lt;br /&gt;
Finally we have the ability column. As with the skill columns in the backgrounds table these IDs correspond to entries in the ABI_base.xls file. It should be noted that race, class and background are all possible sources of starting abilities so before you decide what to put in this column you should familiarise yourself with what skills are already being added in different parts of character generation in order to ensure that you don’t duplicate an ability somewhere.&lt;br /&gt;
&lt;br /&gt;
The final table is the chargen_preload table. The two columns here should exactly match the entries from the ID and Template columns of the previous table.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_chargen_preload.png]]&lt;br /&gt;
&lt;br /&gt;
== Compiling and fixing the GDAs ==&lt;br /&gt;
Now compile backgrounds.xls and place the resulting GDAs into your ''AddIns\module_name\module\override'' directory.&lt;br /&gt;
Never place anything in your ''AddIns\module_name\core\override'' directory or it will affect other modules than the one you are editing.&lt;br /&gt;
&lt;br /&gt;
Unfortunately there is a bug that prevents large string IDs from compiling correctly so until BioWare fix this bug you will have to edit the GDA files in the toolset. Open up the two GDA files that contain your new string IDs and check to see if the correct string IDs from your spreadsheet are there. Most probably you will have to edit some of them to match. Once you are certain you have done this accurately, save and close the GDA files.&lt;br /&gt;
&lt;br /&gt;
== Creating the backgrounds plot ==&lt;br /&gt;
The background plot is used for keeping track of a PC’s background and can be used to affect conversation options.&lt;br /&gt;
 &lt;br /&gt;
The single player game uses a plot called gen00pt_backgrounds to keep track of the PC background. You can find it in the ''\_Glabal\Generic'' folder of the plots tab if you want to take a look. We will create a similar plot for our custom backgrounds. Create a new plot and call it ''bdm_000pt_backgrounds'' (My naming convention is to use 000 to indicate a resource that isn’t tied to any particular area – feel free to use your own convention but remember to update any references later in the tutorial). Add main plot flags as indicated in the picture below:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_bg_plot.png]]&lt;br /&gt;
&lt;br /&gt;
You could also add some defined flags if you wanted. Defined flags can be used to return some combination of the main flags such as TRAVELLER or add some extra condition like FEMALE_APPRENTICE or ELVEN_APPRENTICE. Defined flags are beyond the scope of this tutorial however.&lt;br /&gt;
&lt;br /&gt;
== Creating the scripts ==&lt;br /&gt;
We are not going to edit any of the original core game scripts, we will only be adding new scripts of our own. As we discuss how to do this you should examine the core scripts that are referred to, but under no circumstances should you make any changes to those files. By leaving the core scripts as they are we make our modification more compatible with any future patches that may be released. If you modified the core scripts and then a patch was released that overwrote those scripts you would lose your changes. Also keeping your modification contained within your own module allows you to make different modifications to different modules within the one toolset.&lt;br /&gt;
&lt;br /&gt;
Lets start off with a script to handle the character generation events that are normally handled by the module_core script. Create a new script called ''bdm_module_core''. It is up to you what directory structure to use for your scripts but it can be a good idea to keep all your scripts in a directory with your module name to make them distinct from the core scripts. Then if you are emulating the functionality of  a particular core script you can mirror the original directory structure underneath your main module folder. So in this case the module_core script is contained in the ''\_Core Scripts'' folder so we will put our bdm_module_core in ''\Backgrounds demo\_Core Scripts'' (the underscore ensures the core directories come first – looks like Bioware accidentally created one without it! I’m pretty sure Core and _Core are meant to be the same directory). Organising things this way will really help with keeping track of your scripts.&lt;br /&gt;
&lt;br /&gt;
The ''bdm_module_core'' script should contain the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
void main(){&lt;br /&gt;
    event ev = GetCurrentEvent();&lt;br /&gt;
    int nEvent = GetEventType(ev); //extract event type from current event&lt;br /&gt;
    int nEventHandled = FALSE; //keep track of whether the event has been handled&lt;br /&gt;
    switch(nEvent){&lt;br /&gt;
        case EVENT_TYPE_MODULE_START:{&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Initiate character generation.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            PreloadCharGen(); //preloads resources for character generation&lt;br /&gt;
            StartCharGen(GetHero(),0,TRUE); //initiates character generation&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        default:&lt;br /&gt;
        {&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Handle character generation events sent by the engine.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            if ((nEvent &amp;gt;= EVENT_TYPE_CHARGEN_START &amp;amp;&amp;amp; nEvent &amp;lt;= EVENT_TYPE_CHARGEN_END) &lt;br /&gt;
                || nEvent == EVENT_TYPE_PLAYERLEVELUP )&lt;br /&gt;
            {&lt;br /&gt;
                HandleEvent(ev, R&amp;quot;bdm_sys_chargen.ncs&amp;quot;);&lt;br /&gt;
                nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    if (!nEventHandled) { //If this event wasn't handled by this script, let the core script try&lt;br /&gt;
        HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to ''file &amp;gt; manage modules'' and open the properties for your module and set the script property to point at this script.&lt;br /&gt;
&lt;br /&gt;
Our new script handles some of the events that are usually handled by the module_core script. Once it has handled the event it chooses whether or not to pass the event on to module_core. The first event that we handle is EVENT_TYPE_MODULE_START, which is where we initiate character generation. In this case we pass the event on to the core script to handle after we have done what we need to.&lt;br /&gt;
&lt;br /&gt;
The second thing we handle is actually a group of events. If you look in the module_core script you will see that right down the bottom in the default event handler is some code that looks just like the code we have added in our default event, with a couple of little differences. Instead of passing the character generation events to the sys_chargen.ncs script we are going to pass it to our own script called ''bdm_sys_chargen.ncs'' which we will write shortly. If we catch one of those character generation events then we want to handle it ourselves and prevent the core script from handling it so we set nEventHandled = TRUE. Note that any other event that is caught by the default handler but isn’t a character generation event is going to go straight on through to the core script.&lt;br /&gt;
&lt;br /&gt;
Before we create the ''bdm_sys_chargen'' script we are going to need some new constants defined. Create a new script called ''bdm_2da_constants_h'' and put it in folder ''\Backgrounds demo\_Core Includes''. Now add the following to this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// Backgrounds - rules/backgrounds.xls&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
const int BACKGROUND_SERVANT = 1;&lt;br /&gt;
const int BACKGROUND_APPRENTICE = 2;&lt;br /&gt;
const int BACKGROUND_TRAVELLER = 3;&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These constants provide a way for us to refer to the background IDs that we defined in the 2DA files without having to remember the numbers. Constants like this also make your code more readable.  If you need to add more new items to 2DAs when you are modding something else you can also add constants for them here. From now on we will be using these background constants instead of the original single player background constants that you can find in the ''2da_constants_h'' script. That means we’d better find all the places where those constants are used and update them with our own scripts.&lt;br /&gt;
&lt;br /&gt;
Create another new script and call it ''bdm_sys_chargen'' and put it in a folder called ''\Backgrounds demo\_Systems''. Put the following code in it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;bdm_sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;log_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
const int CHARGEN_QUICKSTART_QUICK = 0;&lt;br /&gt;
const int CHARGEN_QUICKSTART_NORMAL = 1;&lt;br /&gt;
const int CHARGEN_QUICKSTART_ADVANCED = 2;&lt;br /&gt;
&lt;br /&gt;
void _RunChargen(int nRace, int nClass, object oChar, int nBackground)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    Chargen_InitializeCharacter(oChar);&lt;br /&gt;
    Chargen_SelectGender(oChar,GENDER_MALE);&lt;br /&gt;
    Chargen_SelectRace(oChar,nRace);&lt;br /&gt;
    Chargen_SelectCoreClass(oChar,nClass);&lt;br /&gt;
    Chargen_SelectBackground(oChar, nBackground,FALSE);&lt;br /&gt;
&lt;br /&gt;
    int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
    Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_STRENGTH, 3,FALSE);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_DEXTERITY, 2,FALSE);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main(){&lt;br /&gt;
    event   ev              =   GetCurrentEvent();&lt;br /&gt;
    int     nEventType      =   GetEventType(ev);&lt;br /&gt;
    object  oChar           =   GetEventObject(ev,0);&lt;br /&gt;
&lt;br /&gt;
    int nMode;&lt;br /&gt;
    int nInt0 = GetEventInteger(ev,0);&lt;br /&gt;
    int nInt1 = GetEventInteger(ev,1);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // Debug Data.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_EVENTS_CHARGEN,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Chargen Event:&amp;quot; + Log_GetEventNameById (nEventType) &lt;br /&gt;
               + &amp;quot; &amp;quot; + ToString(nInt0) + &amp;quot;,&amp;quot; + ToString(nInt1), oChar);&lt;br /&gt;
&lt;br /&gt;
    int nEventHandled = FALSE;&lt;br /&gt;
&lt;br /&gt;
    switch (nEventType)&lt;br /&gt;
    {&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        // This fires when the player selects the icon corresponding to any of&lt;br /&gt;
        // the available backgrounds&lt;br /&gt;
        //&lt;br /&gt;
        // nInt0 - Constant BACKGROUND_* integer&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_SELECT_BACKGROUND: {&lt;br /&gt;
            int nBackground = nInt0;&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Set the background on the player and reinitialize plot flags&lt;br /&gt;
            // for the background&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            Chargen_InitializeCharacter(oChar,TRUE);&lt;br /&gt;
            Chargen_SelectGender(oChar,GetCreatureGender(oChar));&lt;br /&gt;
            Chargen_SelectRace(oChar,GetCreatureRacialType(oChar));&lt;br /&gt;
            Chargen_SelectCoreClass(oChar,GetCreatureCoreClass(oChar));&lt;br /&gt;
&lt;br /&gt;
            bdm_Chargen_SelectBackground(oChar, nBackground, FALSE);&lt;br /&gt;
            bdm_Chargen_SetupPlotFlags(oChar);&lt;br /&gt;
&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Generate the index into the equipment template 2da and&lt;br /&gt;
            // then load the starting equipment based on the data returned.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            int nClass = GetCreatureCoreClass(oChar);&lt;br /&gt;
            int nRace = GetCreatureRacialType(oChar);&lt;br /&gt;
            int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
           Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
            nEventHandled = TRUE;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_END: {&lt;br /&gt;
            nMode = nInt0;&lt;br /&gt;
            int nQuickStart = nInt1;&lt;br /&gt;
            // 0 - quickstart&lt;br /&gt;
            // 1 - normal    \&lt;br /&gt;
            // 2 - advanced  / treat as the same&lt;br /&gt;
            Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;MODE: &amp;quot; + IntToString(nMode) &lt;br /&gt;
                       + &amp;quot;, Quick Start: &amp;quot; + IntToString(nQuickStart));&lt;br /&gt;
            if (nMode == CHARGEN_MODE_CREATE &amp;amp;&amp;amp; nQuickStart == CHARGEN_QUICKSTART_QUICK){&lt;br /&gt;
                Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Setting default values for player character&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                    int nRandClass = abs((GetLowResTimer()%3)+1);&lt;br /&gt;
&lt;br /&gt;
                    if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR)&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_SERVANT );&lt;br /&gt;
&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    else // mage&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_APPRENTICE );&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    Chargen_SetNumTactics(oChar);&lt;br /&gt;
                    SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar));&lt;br /&gt;
                    SendEventModuleChargenDone(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
                    nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }    //end switch&lt;br /&gt;
&lt;br /&gt;
    if (!nEventHandled){&lt;br /&gt;
        HandleEvent(ev, R&amp;quot;sys_chargen.ncs&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two events in the original sys_chargen script that we need to replace because they deal with backgrounds. The first of these is EVENT_TYPE_CHARGEN_SELECT_BACKGROUND and the other is EVENT_TYPE_CHARGEN_END. For the second event we only need to change the case where the character is being created in quickstart mode, so we just handle that section of the code. The objective here is to change only as much as we need to and then pass any remaining events through to the original sys_chargen script. Take some time to compare the new script with Bioware’s ''sys_chargen'' script .&lt;br /&gt;
&lt;br /&gt;
You will notice that we include a script called ''bdm_sys_chargen_h'' and that we use some functions with a ''bdm_'' prefix. Those functions are contained in that include file which we’ll write now. Essentially these are modifications of a couple of functions from the ''sys_chargen_h'' include file. Create a new script and call it ''bdm_sys_chargen_h''. Put it in folder ''\Backgrounds demo\_Systems\Includes'' and add the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;bdm_2da_constants_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_bdm_000pt_backgrounds&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SelectBackground(object oChar, int nBackground, int bUnApply = FALSE)&lt;br /&gt;
{&lt;br /&gt;
     Log_Chargen(&amp;quot;bdm_Chargen_SelectBackground&amp;quot;,&amp;quot;-- &amp;quot; + (bUnApply?&amp;quot;Un&amp;quot;:&amp;quot;&amp;quot;) +&amp;quot;Selecting BG: &amp;quot; + ToString(nBackground),oChar);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 1. Set the background variable&lt;br /&gt;
    //          - Create creature property (or check what we used so far&lt;br /&gt;
    //          - We don't set backgrounds on non player generated chars.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    if (bUnApply)&lt;br /&gt;
    {&lt;br /&gt;
        SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, 0.0, PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
       SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, IntToFloat(nBackground), PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 2. Give one skill&lt;br /&gt;
    //    - retrieve the skill that is granted by the background from backgrounds.xls&lt;br /&gt;
    //    - give it to the player.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    int nAbility = ChargenGetBackgroundSkill(GetCreatureRacialType(oChar), nBackground);&lt;br /&gt;
    if (nAbility)&lt;br /&gt;
    {&lt;br /&gt;
        _AddAbility (oChar, nAbility, bUnApply);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SetupPlotFlags(object oChar)&lt;br /&gt;
{&lt;br /&gt;
    int nRace       =  GetCreatureRacialType(oChar);&lt;br /&gt;
    int nBackground = GetPlayerBackground(oChar);&lt;br /&gt;
&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen_h&amp;quot;,&amp;quot;Setting plot flags, race: &amp;quot; &lt;br /&gt;
               + IntToString(nRace) + &amp;quot;, background: &amp;quot; + IntToString(nBackground));&lt;br /&gt;
&lt;br /&gt;
    // First, init all flags (debug setup)&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,FALSE);&lt;br /&gt;
&lt;br /&gt;
    switch (nBackground)&lt;br /&gt;
    {&lt;br /&gt;
        case BACKGROUND_SERVANT:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_APPRENTICE:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_TRAVELLER:&lt;br /&gt;
        {&lt;br /&gt;
            switch(nRace)&lt;br /&gt;
            {&lt;br /&gt;
                case RACE_DWARF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,TRUE); break;&lt;br /&gt;
                case RACE_ELF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,TRUE); break;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets examine these two functions. First you should compare them to their original versions. For ''bdm_Chargen_SelectBackground()'' we have actually made a more generic version of the function that should work with any backgrounds. We have removed the hard coded values for the background abilities and now use the function ChargenGetBackgroundSkill() which actually gets the background skill from the backgrounds 2DA file that we edited earlier (recall the last three columns that give a skill depending on background and race). If you need fancier logic than just reading the values form the GDA (e.g. like Bioware’s logic for the Noble background) then you can always go back to hard coding them the way Bioware did.&lt;br /&gt;
&lt;br /&gt;
The second function is ''bdm_Chargen_SetupPlotFlags()'' which does just what it says. Remember the plot we created earlier? Here we set the appropriate flag based on race and background.&lt;br /&gt;
&lt;br /&gt;
== Testing that everything works ==&lt;br /&gt;
Now compile your scripts and export your module. Also, make sure that you export your talk table.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''Always make sure you empty your \Dragon Age\packages\core\override folder after doing an export. Due to a bug in the current toolset your single player game will become damaged if you don’t do this before playing.''&lt;br /&gt;
&lt;br /&gt;
You should now be able to run your game and see the backgrounds you created appear in character generation. If you want to test that the background plots have been set correctly, add an NPC to the start area and create a conversation for them in which each line is switched according to a background plot flag. You can also check that the character is receiving the abilities that we set in the 2DAs.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' ''There seems to be no way to change the popup message that comes up at the beginning of character generation. Altering the Pre-chargen string ID in the loadhints GDA does not seem to do anything.''&lt;br /&gt;
&lt;br /&gt;
== Optional extras ==&lt;br /&gt;
There are a couple of other Bioware scripts that reference the background constants. They are not essential to modify because they are not used anywhere by default. The genev_tutorial script uses a background check but unless you plan on firing the tutorial from your module then you won’t have need of it. Also there is at least one debug script that makes use of the original single player backgrounds (to grant a background plot flag to the PC) so if you want similar debug functionality you may have to roll your own function.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
In this tutorial we have demonstrated a way to modify the backgrounds used in the game without altering any of the core scripts. It is expected that a similar approach could be taken to modding other aspects of the game such as adding classes or races. In these cases the scripts that were created in this tutorial could be extended to handle other parts of the character generation process such as class and race selection.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Backgrounds_tutorial&amp;diff=8269</id>
		<title>Talk:Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Backgrounds_tutorial&amp;diff=8269"/>
				<updated>2009-11-26T15:01:35Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Is this correct? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Is this correct? ==&lt;br /&gt;
&lt;br /&gt;
I have problems with this solution. I tried it twice now, once I tried to implement it into my module, the other time I did it exactly as written here. 1. The custom templates for the Backgrounds don't work (The character has no equipment, no matter what background I choose) with the scripts on this tutorial, although the changes work fine if I run RESOURCE_SCRIPT_MODULE_CORE 2. The race choice doesn't change the character (But that could be because the scripts are missing alot, it's not that important for test purposes) 3. The strings for the Background description don't work (Yes I have corrected them in the Toolset, because the ExcelProcessor can't handle that big numbers), they don't show up, when I'm clicking on the Backgrounds.&lt;br /&gt;
&lt;br /&gt;
I have not tested dialouge yet, but am I making something wrong? Or has this tutorial some errors? [[User:Nobody123456|Nobody123456]] 13:49, 26 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think you might be making some errors (although it is possible that there is some error or ommision in what I wrote). I tested the tutorial by running through it from scratch after I wrote it and my game worked fine. It is a very sensitive process though, so the slightest thing wrong can really throw you out. &lt;br /&gt;
&lt;br /&gt;
: The first thing I would suggest is to get the background description strings working because I know that can cause issues if you don't get it right. Try a new module and don't make any changes execpt for adding your own strings to the backgrounds and see if that works. Oh and be sure to export your talk table along with any other resources before you play. Actaully that's probably it - I should add that to the tutorial. [[User:Stuntpope|Stuntpope]] 15:01, 26 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Design&amp;diff=8263</id>
		<title>Talk:Design</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Design&amp;diff=8263"/>
				<updated>2009-11-26T09:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Page name */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Page name ==&lt;br /&gt;
&lt;br /&gt;
This page doesn't seem to contain anything on game design. The content is all about database resources. [[User:Stuntpope|Stuntpope]]&lt;br /&gt;
&lt;br /&gt;
:Those are the resources that are used when doing the &amp;quot;game designy&amp;quot; part of building. I'm quite open to suggestions about better titles, though, or just generally about better organization in general. One of the reasons I split the main page up into these &amp;quot;portal&amp;quot; pages was to give more people opportunity to edit this stuff. :) [[User:BryanDerksen|BryanDerksen]] 21:34, 25 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fair enough - I guess with some more content to help define it, it will make some more sense. I think one problem at the moment is that a lot of the top level category stuff is a bit hidden. So yes hopefully someone will find the time to get in and edit things a bit. [[User:Stuntpope|Stuntpope]] 09:59, 26 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Tutorials&amp;diff=8212</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Tutorials&amp;diff=8212"/>
				<updated>2009-11-25T06:16:31Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* Other Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the course of these tutorials we'll go through all the steps needed to create a basic adventure.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
*Boxes like this contain a checklist of important steps.&lt;br /&gt;
*They're intended as a reminder and as a navigational aid.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
*[[Introductory tutorial]] - An overview of the toolset as a whole&lt;br /&gt;
*[[Module tutorial]] - how to create a module to work in.&lt;br /&gt;
&lt;br /&gt;
This set of tutorials forms a series, each building on or filling in omissions by the last:&lt;br /&gt;
*[[Level Editor Tutorial]]&lt;br /&gt;
*[[Placeable tutorial]]&lt;br /&gt;
*[[Area tutorial]]&lt;br /&gt;
*[[Item tutorial]]&lt;br /&gt;
*[[Creature tutorial]]&lt;br /&gt;
*[[Conversation tutorial]]&lt;br /&gt;
*[[Scripting tutorial]]&lt;br /&gt;
&lt;br /&gt;
Once you've become familiar with the basics introduced on those tutorials you might have a better grounding for:&lt;br /&gt;
*[[Cutscene tutorial]]&lt;br /&gt;
*[[Map tutorial]] (which also introduces you to [[2DA]] editing)&lt;br /&gt;
&lt;br /&gt;
== Demo module ==&lt;br /&gt;
&lt;br /&gt;
The toolset currently ships with a simple demo module pre-loaded into its database.&lt;br /&gt;
&lt;br /&gt;
*[[Demo module]] - how to export and run the demo module.&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
*[[Backgrounds tutorial]]&lt;br /&gt;
&lt;br /&gt;
== External Tutorials ==&lt;br /&gt;
*[http://dragonagemodding.wordpress.com Beyond Ferelden] has many in-depth tutorials by jwvanderbeck.&lt;br /&gt;
&lt;br /&gt;
*[http://www.youtube.com/watch?v=TwQNRBFLhrE Playable Area and Conversation] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=CaHldJcUTz8 Simple Conversation Cameras] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=QOQJ2heQto4 Cutscene and Trigger] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=szWKgj2ZuXo Custom Level and Room Building] video tutorial by [http://social.bioware.com/64020/ st4rdog].&lt;br /&gt;
*[http://www.youtube.com/watch?v=DKJ7F14n8o8 Downloading and Installing the Toolset] video tutorial by [http://social.bioware.com/74287/ DragonAge22].&lt;br /&gt;
*[http://www.youtube.com/watch?v=iMPBsulv9xI Creating a Room] video tutorial by [http://social.bioware.com/74287/ DragonAge22].&lt;br /&gt;
*[http://www.youtube.com/watch?v=g3kx2CaarHo How to Make an Interior Level with Lighting] video tutorial by [http://social.bioware.com/group/60/ Darkworld Development Team].&lt;br /&gt;
*[http://www.youtube.com/watch?v=O6TeZeE1Lc8 Making a Room] video tutorial by BigDrip681.&lt;br /&gt;
*[http://social.bioware.com/5339/blog/576/ Custom Player Items In Single Player] by [http://social.bioware.com/5339/ weriK].&lt;br /&gt;
*[http://social.bioware.com/5339/blog/651/ The Secret Behind Item Statistics] by [http://social.bioware.com/5339/ weriK].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8211</id>
		<title>Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8211"/>
				<updated>2009-11-25T06:12:51Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This tutorial shows you how to modify the character backgrounds that can be selected during character generation. This is likely only of use if you are creating your own module or campaign as there would be no point to changing the background in the single player campaign unless you were also going to make extensive additions to support the new backgrounds  (e.g a completely new origin story). So the example we will use for this tutorial is a new stand alone module in which we completely replace the existing backgrounds. Changing backgrounds is especially useful if your module is set in a different lore to the main Dragon Age game or if you simply want to reduce the scope of the number of different backgrounds.&lt;br /&gt;
&lt;br /&gt;
We will also demonstrate some important principals that can be followed when modifying other core rules such as available races or classes. Most importantly we will add the new backgrounds in a way that doesn’t require any editing of core resources. By leaving the core resources alone we make our changes compatible with future patches which might otherwise overwrite our work. Furthermore keeping the core resources in tact allows us to make different modifications to different modules within the same toolset.&lt;br /&gt;
&lt;br /&gt;
It is recommended that the reader should have some experience with scripting or coding in order to carry out the operations involved. The more you are relying on just copy pasting these instructions the more likely you are to make mistakes that you won’t know how to fix.&lt;br /&gt;
&lt;br /&gt;
== The backgrounds demo module ==&lt;br /&gt;
Any basic module will do for the purposes of this tutorial. If you want to create a test module for this tutorial then just create a simple module with a single area and a starting location. Make sure that the only thing selected in the module’s hierarchy is ''Core game resources''. This will ensure that the module is a stand alone module rather than an add-in to the single player campaign or some other module. For the purposes of this tutorial we will assume the module is called ''Backgrounds demo'' and I will prefix my resources with ''bdm_'' to be sure that they are distinct from any that are already in existence.&lt;br /&gt;
&lt;br /&gt;
We are going to completely replace the existing backgrounds with 3 new ones of our own. You can use new backgrounds in your module however you see fit. You could create entire origin stories for each one like in the single player campaign (possibly a major undertaking depending on length) or you can just use them to influence dialogue and plot options in the main part of your game.&lt;br /&gt;
&lt;br /&gt;
For our demo we are creating a  module in which the player starts off in a small human village (we will not be creating the details of this module so this is just for the purpose of an example). There is a wizard in this village who plays a pivotal role in the story. We allow the player to start as the wizard’s apprentice (if they are a mage) or as his servant (if they are human or elven and not a mage) or as a wandering traveller who has come to visit the wizard (if they are not human and not a mage). So the three backgrounds will be:&lt;br /&gt;
&lt;br /&gt;
* Servant&lt;br /&gt;
* Apprentice&lt;br /&gt;
* Traveller&lt;br /&gt;
&lt;br /&gt;
== Creating the background strings ==&lt;br /&gt;
Before we start modifying the 2DA files we are going to create some strings. Open the string editor in the toolset and create the following strings in your ‘Backgrounds demo’ talk table:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_talk_table.png]]&lt;br /&gt;
&lt;br /&gt;
Your string IDs might be different to these so be sure to reference the right string ID in the instructions that follow. Simply replace these string Ids with your own.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''There is currently a bug in the game that causes it to crash if a background description ID has a value greater than 109 912 680. To get around this you can go into your module’s properties and change the start and end IDs for strings to be less than that. After that the string editor will generate IDs in a range that won’t crash. You can always put those values back again after you create the background descriptions (that way you have less to alter once Bioware fix this). Hopefully Bioware will fix this bug soon as the official string range for non-Bioware / certified modules is over 610 000 000.''&lt;br /&gt;
&lt;br /&gt;
You may have noticed that we have given two different names and descriptions for the traveller background depending on the PC’s race. We will say more about that in the following section.&lt;br /&gt;
&lt;br /&gt;
== Modifying the 2DAs ==&lt;br /&gt;
The next thing we need to do is to modify the worksheets in Backgrounds.xls. Be sure to make a copy of the spreadsheet first so that you leave the original intact. See LINK for general information about editing 2DA files. The first worksheet is called ‘backgrounds’; modify it to look like the following:&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_backgrounds.png]]&lt;br /&gt;
&lt;br /&gt;
Note that since 2DAs combine together to form M2DAs, and we don’t want the existing backgrounds in our game, we have overwritten the last two slots as unused1 and unused2,  even though we won’t be using them. The name and desc  string refs on this tab will be overwritten by the race specific ones on the names tab so we can leave those blank (AFAIK these string refs are not used providing the ones on the names tab are provided - also the tooltip string ref seems not to be used anywhere – if you prefer you can set these to something just to be safe).&lt;br /&gt;
&lt;br /&gt;
The three race columns determine which backgrounds can be selected by which race and the 3 class columns determine which background can be selected by which class. So, as you can see from the picture our Servant background is accessible to elf or human warriors and rogues, the Apprentice background can be selected by elf or human mages and the Traveller background by elf or dwarf warriors and rogues.&lt;br /&gt;
&lt;br /&gt;
The last three tabs indicate a starting ability for each background by race. Note that by default these columns are not hooked up into the character generation script (instead they are hard coded in the script) and are not used, but we will correct that later on when we do the scripting. You have to be careful here because the columns relate to the race IDs, so 1=dwarf, 2=elf and 3=human, which is in a different order to the other race columns in this table. The number in the column is an ability ID as given in ABI_base.xls. For this demo we have just given the same skill for each race for a given background. Servants get combat tactics, Apprentices get persuade and Travellers get survival.&lt;br /&gt;
&lt;br /&gt;
The next tab table to modify is background_names.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_names.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure that the IDs here match the IDs in your string table. Note that for Apprentices and Servants we use the same strings regardless of race, but for the Traveller background we use different strings. This is to illustrate how you can divide a single background up into multiple names and descriptions. Internally they are both stored as the same background ID but during character generation a different name, description and icon can be shown to the player. In the single player game this was done with the Noble background by splitting it into human and dwarf Noble variations.&lt;br /&gt;
&lt;br /&gt;
NOTE – you must be careful when splitting a single background into different parts for each race. You must make both the names and descriptions different! If you don’t make the descriptions different then the engine will not recognise them as different even if they have different names.&lt;br /&gt;
&lt;br /&gt;
Now modify the background_desc table as follows&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_desc.png]]&lt;br /&gt;
&lt;br /&gt;
Again note the distinct descriptions for the Traveller background&lt;br /&gt;
Now for the background_icons table. For this demo we will just use some of the existing icons but you may want to create your own icons to add here.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_icons.png]]&lt;br /&gt;
&lt;br /&gt;
The background_defaults table must have an entry for each race, background and class combination that is allowed. The ID column must be calculated as follows:&lt;br /&gt;
&lt;br /&gt;
1000 * raceID  + 100 * classID + backgroundID&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tute_bg_defaults.png]]&lt;br /&gt;
&lt;br /&gt;
The label column should give a description of the row (AFAIK this is not used anywhere).&lt;br /&gt;
For this simple demo we will have each background combination spawn in the same place (the module default start location) but if you wanted different origins to spawn in different places then you can use the next two columns to specify this (AFAIK you have to write your own scripts to accomplish this though).&lt;br /&gt;
&lt;br /&gt;
In the template column you can put the name of a creature resource that you want to use as a template for this race/background/class combination. In the picture you can see that we have just used some default templates that shipped with the toolset but you can easily create your own. Note that only the inventory is copied across to the PC so if you want to create your own templates you do not need to alter anything on the creature except for their inventory.&lt;br /&gt;
&lt;br /&gt;
The name columns take string Ids. If you want to add your own names then you’ll have to create new strings in the string editor.&lt;br /&gt;
&lt;br /&gt;
Finally we have the ability column. As with the skill columns in the backgrounds table these IDs correspond to entries in the ABI_base.xls file. It should be noted that race, class and background are all possible sources of starting abilities so before you decide what to put in this column you should familiarise yourself with what skills are already being added in different parts of character generation in order to ensure that you don’t duplicate an ability somewhere.&lt;br /&gt;
&lt;br /&gt;
The final table is the chargen_preload table. The two columns here should exactly match the entries from the ID and Template columns of the previous table.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_chargen_preload.png]]&lt;br /&gt;
&lt;br /&gt;
== Compiling and fixing the GDAs ==&lt;br /&gt;
Now compile backgrounds.xls and place the resulting GDAs into your ''AddIns\module_name\module\override'' directory.&lt;br /&gt;
Never place anything in your ''AddIns\module_name\core\override'' directory or it will affect other modules than the one you are editing.&lt;br /&gt;
&lt;br /&gt;
Unfortunately there is a bug that prevents large string IDs from compiling correctly so until BioWare fix this bug you will have to edit the GDA files in the toolset. Open up the two GDA files that contain your new string IDs and check to see if the correct string IDs from your spreadsheet are there. Most probably you will have to edit some of them to match. Once you are certain you have done this accurately, save and close the GDA files.&lt;br /&gt;
&lt;br /&gt;
== Creating the backgrounds plot ==&lt;br /&gt;
The background plot is used for keeping track of a PC’s background and can be used to affect conversation options.&lt;br /&gt;
 &lt;br /&gt;
The single player game uses a plot called gen00pt_backgrounds to keep track of the PC background. You can find it in the ''\_Glabal\Generic'' folder of the plots tab if you want to take a look. We will create a similar plot for our custom backgrounds. Create a new plot and call it ''bdm_000pt_backgrounds'' (My naming convention is to use 000 to indicate a resource that isn’t tied to any particular area – feel free to use your own convention but remember to update any references later in the tutorial). Add main plot flags as indicated in the picture below:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_bg_plot.png]]&lt;br /&gt;
&lt;br /&gt;
You could also add some defined flags if you wanted. Defined flags can be used to return some combination of the main flags such as TRAVELLER or add some extra condition like FEMALE_APPRENTICE or ELVEN_APPRENTICE. Defined flags are beyond the scope of this tutorial however.&lt;br /&gt;
&lt;br /&gt;
== Creating the scripts ==&lt;br /&gt;
We are not going to edit any of the original core game scripts, we will only be adding new scripts of our own. As we discuss how to do this you should examine the core scripts that are referred to, but under no circumstances should you make any changes to those files. By leaving the core scripts as they are we make our modification more compatible with any future patches that may be released. If you modified the core scripts and then a patch was released that overwrote those scripts you would lose your changes. Also keeping your modification contained within your own module allows you to make different modifications to different modules within the one toolset.&lt;br /&gt;
&lt;br /&gt;
Lets start off with a script to handle the character generation events that are normally handled by the module_core script. Create a new script called ''bdm_module_core''. It is up to you what directory structure to use for your scripts but it can be a good idea to keep all your scripts in a directory with your module name to make them distinct from the core scripts. Then if you are emulating the functionality of  a particular core script you can mirror the original directory structure underneath your main module folder. So in this case the module_core script is contained in the ''\_Core Scripts'' folder so we will put our bdm_module_core in ''\Backgrounds demo\_Core Scripts'' (the underscore ensures the core directories come first – looks like Bioware accidentally created one without it! I’m pretty sure Core and _Core are meant to be the same directory). Organising things this way will really help with keeping track of your scripts.&lt;br /&gt;
&lt;br /&gt;
The ''bdm_module_core'' script should contain the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
void main(){&lt;br /&gt;
    event ev = GetCurrentEvent();&lt;br /&gt;
    int nEvent = GetEventType(ev); //extract event type from current event&lt;br /&gt;
    int nEventHandled = FALSE; //keep track of whether the event has been handled&lt;br /&gt;
    switch(nEvent){&lt;br /&gt;
        case EVENT_TYPE_MODULE_START:{&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Initiate character generation.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            PreloadCharGen(); //preloads resources for character generation&lt;br /&gt;
            StartCharGen(GetHero(),0,TRUE); //initiates character generation&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        default:&lt;br /&gt;
        {&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Handle character generation events sent by the engine.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            if ((nEvent &amp;gt;= EVENT_TYPE_CHARGEN_START &amp;amp;&amp;amp; nEvent &amp;lt;= EVENT_TYPE_CHARGEN_END) &lt;br /&gt;
                || nEvent == EVENT_TYPE_PLAYERLEVELUP )&lt;br /&gt;
            {&lt;br /&gt;
                HandleEvent(ev, R&amp;quot;bdm_sys_chargen.ncs&amp;quot;);&lt;br /&gt;
                nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    if (!nEventHandled) { //If this event wasn't handled by this script, let the core script try&lt;br /&gt;
        HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to ''file &amp;gt; manage modules'' and open the properties for your module and set the script property to point at this script.&lt;br /&gt;
&lt;br /&gt;
Our new script handles some of the events that are usually handled by the module_core script. Once it has handled the event it chooses whether or not to pass the event on to module_core. The first event that we handle is EVENT_TYPE_MODULE_START, which is where we initiate character generation. In this case we pass the event on to the core script to handle after we have done what we need to.&lt;br /&gt;
&lt;br /&gt;
The second thing we handle is actually a group of events. If you look in the module_core script you will see that right down the bottom in the default event handler is some code that looks just like the code we have added in our default event, with a couple of little differences. Instead of passing the character generation events to the sys_chargen.ncs script we are going to pass it to our own script called ''bdm_sys_chargen.ncs'' which we will write shortly. If we catch one of those character generation events then we want to handle it ourselves and prevent the core script from handling it so we set nEventHandled = TRUE. Note that any other event that is caught by the default handler but isn’t a character generation event is going to go straight on through to the core script.&lt;br /&gt;
&lt;br /&gt;
Before we create the ''bdm_sys_chargen'' script we are going to need some new constants defined. Create a new script called ''bdm_2da_constants_h'' and put it in folder ''\Backgrounds demo\_Core Includes''. Now add the following to this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// Backgrounds - rules/backgrounds.xls&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
const int BACKGROUND_SERVANT = 1;&lt;br /&gt;
const int BACKGROUND_APPRENTICE = 2;&lt;br /&gt;
const int BACKGROUND_TRAVELLER = 3;&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These constants provide a way for us to refer to the background IDs that we defined in the 2DA files without having to remember the numbers. Constants like this also make your code more readable.  If you need to add more new items to 2DAs when you are modding something else you can also add constants for them here. From now on we will be using these background constants instead of the original single player background constants that you can find in the ''2da_constants_h'' script. That means we’d better find all the places where those constants are used and update them with our own scripts.&lt;br /&gt;
&lt;br /&gt;
Create another new script and call it ''bdm_sys_chargen'' and put it in a folder called ''\Backgrounds demo\_Systems''. Put the following code in it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;bdm_sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;log_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
const int CHARGEN_QUICKSTART_QUICK = 0;&lt;br /&gt;
const int CHARGEN_QUICKSTART_NORMAL = 1;&lt;br /&gt;
const int CHARGEN_QUICKSTART_ADVANCED = 2;&lt;br /&gt;
&lt;br /&gt;
void _RunChargen(int nRace, int nClass, object oChar, int nBackground)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    Chargen_InitializeCharacter(oChar);&lt;br /&gt;
    Chargen_SelectGender(oChar,GENDER_MALE);&lt;br /&gt;
    Chargen_SelectRace(oChar,nRace);&lt;br /&gt;
    Chargen_SelectCoreClass(oChar,nClass);&lt;br /&gt;
    Chargen_SelectBackground(oChar, nBackground,FALSE);&lt;br /&gt;
&lt;br /&gt;
    int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
    Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_STRENGTH, 3,FALSE);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_DEXTERITY, 2,FALSE);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main(){&lt;br /&gt;
    event   ev              =   GetCurrentEvent();&lt;br /&gt;
    int     nEventType      =   GetEventType(ev);&lt;br /&gt;
    object  oChar           =   GetEventObject(ev,0);&lt;br /&gt;
&lt;br /&gt;
    int nMode;&lt;br /&gt;
    int nInt0 = GetEventInteger(ev,0);&lt;br /&gt;
    int nInt1 = GetEventInteger(ev,1);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // Debug Data.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_EVENTS_CHARGEN,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Chargen Event:&amp;quot; + Log_GetEventNameById (nEventType) &lt;br /&gt;
               + &amp;quot; &amp;quot; + ToString(nInt0) + &amp;quot;,&amp;quot; + ToString(nInt1), oChar);&lt;br /&gt;
&lt;br /&gt;
    int nEventHandled = FALSE;&lt;br /&gt;
&lt;br /&gt;
    switch (nEventType)&lt;br /&gt;
    {&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        // This fires when the player selects the icon corresponding to any of&lt;br /&gt;
        // the available backgrounds&lt;br /&gt;
        //&lt;br /&gt;
        // nInt0 - Constant BACKGROUND_* integer&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_SELECT_BACKGROUND: {&lt;br /&gt;
            int nBackground = nInt0;&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Set the background on the player and reinitialize plot flags&lt;br /&gt;
            // for the background&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            Chargen_InitializeCharacter(oChar,TRUE);&lt;br /&gt;
            Chargen_SelectGender(oChar,GetCreatureGender(oChar));&lt;br /&gt;
            Chargen_SelectRace(oChar,GetCreatureRacialType(oChar));&lt;br /&gt;
            Chargen_SelectCoreClass(oChar,GetCreatureCoreClass(oChar));&lt;br /&gt;
&lt;br /&gt;
            bdm_Chargen_SelectBackground(oChar, nBackground, FALSE);&lt;br /&gt;
            bdm_Chargen_SetupPlotFlags(oChar);&lt;br /&gt;
&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Generate the index into the equipment template 2da and&lt;br /&gt;
            // then load the starting equipment based on the data returned.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            int nClass = GetCreatureCoreClass(oChar);&lt;br /&gt;
            int nRace = GetCreatureRacialType(oChar);&lt;br /&gt;
            int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
           Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
            nEventHandled = TRUE;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_END: {&lt;br /&gt;
            nMode = nInt0;&lt;br /&gt;
            int nQuickStart = nInt1;&lt;br /&gt;
            // 0 - quickstart&lt;br /&gt;
            // 1 - normal    \&lt;br /&gt;
            // 2 - advanced  / treat as the same&lt;br /&gt;
            Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;MODE: &amp;quot; + IntToString(nMode) &lt;br /&gt;
                       + &amp;quot;, Quick Start: &amp;quot; + IntToString(nQuickStart));&lt;br /&gt;
            if (nMode == CHARGEN_MODE_CREATE &amp;amp;&amp;amp; nQuickStart == CHARGEN_QUICKSTART_QUICK){&lt;br /&gt;
                Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Setting default values for player character&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                    int nRandClass = abs((GetLowResTimer()%3)+1);&lt;br /&gt;
&lt;br /&gt;
                    if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR)&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_SERVANT );&lt;br /&gt;
&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    else // mage&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_APPRENTICE );&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    Chargen_SetNumTactics(oChar);&lt;br /&gt;
                    SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar));&lt;br /&gt;
                    SendEventModuleChargenDone(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
                    nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }    //end switch&lt;br /&gt;
&lt;br /&gt;
    if (!nEventHandled){&lt;br /&gt;
        HandleEvent(ev, R&amp;quot;sys_chargen.ncs&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two events in the original sys_chargen script that we need to replace because they deal with backgrounds. The first of these is EVENT_TYPE_CHARGEN_SELECT_BACKGROUND and the other is EVENT_TYPE_CHARGEN_END. For the second event we only need to change the case where the character is being created in quickstart mode, so we just handle that section of the code. The objective here is to change only as much as we need to and then pass any remaining events through to the original sys_chargen script. Take some time to compare the new script with Bioware’s ''sys_chargen'' script .&lt;br /&gt;
&lt;br /&gt;
You will notice that we include a script called ''bdm_sys_chargen_h'' and that we use some functions with a ''bdm_'' prefix. Those functions are contained in that include file which we’ll write now. Essentially these are modifications of a couple of functions from the ''sys_chargen_h'' include file. Create a new script and call it ''bdm_sys_chargen_h''. Put it in folder ''\Backgrounds demo\_Systems\Includes'' and add the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;bdm_2da_constants_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_bdm_000pt_backgrounds&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SelectBackground(object oChar, int nBackground, int bUnApply = FALSE)&lt;br /&gt;
{&lt;br /&gt;
     Log_Chargen(&amp;quot;bdm_Chargen_SelectBackground&amp;quot;,&amp;quot;-- &amp;quot; + (bUnApply?&amp;quot;Un&amp;quot;:&amp;quot;&amp;quot;) +&amp;quot;Selecting BG: &amp;quot; + ToString(nBackground),oChar);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 1. Set the background variable&lt;br /&gt;
    //          - Create creature property (or check what we used so far&lt;br /&gt;
    //          - We don't set backgrounds on non player generated chars.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    if (bUnApply)&lt;br /&gt;
    {&lt;br /&gt;
        SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, 0.0, PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
       SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, IntToFloat(nBackground), PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 2. Give one skill&lt;br /&gt;
    //    - retrieve the skill that is granted by the background from backgrounds.xls&lt;br /&gt;
    //    - give it to the player.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    int nAbility = ChargenGetBackgroundSkill(GetCreatureRacialType(oChar), nBackground);&lt;br /&gt;
    if (nAbility)&lt;br /&gt;
    {&lt;br /&gt;
        _AddAbility (oChar, nAbility, bUnApply);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SetupPlotFlags(object oChar)&lt;br /&gt;
{&lt;br /&gt;
    int nRace       =  GetCreatureRacialType(oChar);&lt;br /&gt;
    int nBackground = GetPlayerBackground(oChar);&lt;br /&gt;
&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen_h&amp;quot;,&amp;quot;Setting plot flags, race: &amp;quot; &lt;br /&gt;
               + IntToString(nRace) + &amp;quot;, background: &amp;quot; + IntToString(nBackground));&lt;br /&gt;
&lt;br /&gt;
    // First, init all flags (debug setup)&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,FALSE);&lt;br /&gt;
&lt;br /&gt;
    switch (nBackground)&lt;br /&gt;
    {&lt;br /&gt;
        case BACKGROUND_SERVANT:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_APPRENTICE:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_TRAVELLER:&lt;br /&gt;
        {&lt;br /&gt;
            switch(nRace)&lt;br /&gt;
            {&lt;br /&gt;
                case RACE_DWARF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,TRUE); break;&lt;br /&gt;
                case RACE_ELF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,TRUE); break;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets examine these two functions. First you should compare them to their original versions. For ''bdm_Chargen_SelectBackground()'' we have actually made a more generic version of the function that should work with any backgrounds. We have removed the hard coded values for the background abilities and now use the function ChargenGetBackgroundSkill() which actually gets the background skill from the backgrounds 2DA file that we edited earlier (recall the last three columns that give a skill depending on background and race). If you need fancier logic than just reading the values form the GDA (e.g. like Bioware’s logic for the Noble background) then you can always go back to hard coding them the way Bioware did.&lt;br /&gt;
&lt;br /&gt;
The second function is ''bdm_Chargen_SetupPlotFlags()'' which does just what it says. Remember the plot we created earlier? Here we set the appropriate flag based on race and background.&lt;br /&gt;
&lt;br /&gt;
== Testing that everything works ==&lt;br /&gt;
Now compile your scripts and export your module.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''Always make sure you empty your \Dragon Age\packages\core\override folder after doing an export. Due to a bug in the current toolset your single player game will become damaged if you don’t do this before playing.''&lt;br /&gt;
&lt;br /&gt;
You should now be able to run your game and see the backgrounds you created appear in character generation. If you want to test that the background plots have been set correctly, add an NPC to the start area and create a conversation for them in which each line is switched according to a background plot flag. You can also check that the character is receiving the abilities that we set in the 2DAs.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' ''There seems to be no way to change the popup message that comes up at the beginning of character generation. Altering the Pre-chargen string ID in the loadhints GDA does not seem to do anything.''&lt;br /&gt;
&lt;br /&gt;
== Optional extras ==&lt;br /&gt;
There are a couple of other Bioware scripts that reference the background constants. They are not essential to modify because they are not used anywhere by default. The genev_tutorial script uses a background check but unless you plan on firing the tutorial from your module then you won’t have need of it. Also there is at least one debug script that makes use of the original single player backgrounds (to grant a background plot flag to the PC) so if you want similar debug functionality you may have to roll your own function.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
In this tutorial we have demonstrated a way to modify the backgrounds used in the game without altering any of the core scripts. It is expected that a similar approach could be taken to modding other aspects of the game such as adding classes or races. In these cases the scripts that were created in this tutorial could be extended to handle other parts of the character generation process such as class and race selection.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Design&amp;diff=8210</id>
		<title>Talk:Design</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Design&amp;diff=8210"/>
				<updated>2009-11-25T06:08:52Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: Created page with 'This page doesn't seem to contain anything on game design. The content is all about database resources. ~~~'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page doesn't seem to contain anything on game design. The content is all about database resources. [[User:Stuntpope|Stuntpope]]&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8209</id>
		<title>Backgrounds tutorial</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Backgrounds_tutorial&amp;diff=8209"/>
				<updated>2009-11-25T06:05:28Z</updated>
		
		<summary type="html">&lt;p&gt;Stuntpope: /* The module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''PAGE UNDER CONSTRUCTION'''&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial shows you how to modify the character backgrounds that can be selected during character generation. This is likely only of use if you are creating your own module or campaign as there would be no point to changing the background in the single player campaign unless you were also going to make extensive additions to support the new backgrounds  (e.g a completely new origin story). So the example we will use for this tutorial is a new stand alone module in which we completely replace the existing backgrounds. Changing backgrounds is especially useful if your module is set in a different lore to the main Dragon Age game or if you simply want to reduce the scope of the number of different backgrounds.&lt;br /&gt;
&lt;br /&gt;
We will also demonstrate some important principals that can be followed when modifying other core rules such as available races or classes. Most importantly we will add the new backgrounds in a way that doesn’t require any editing of core resources. By leaving the core resources alone we make our changes compatible with future patches which might otherwise overwrite our work. Furthermore keeping the core resources in tact allows us to make different modifications to different modules within the same toolset.&lt;br /&gt;
&lt;br /&gt;
It is recommended that the reader should have some experience with scripting or coding in order to carry out the operations involved. The more you are relying on just copy pasting these instructions the more likely you are to make mistakes that you won’t know how to fix.&lt;br /&gt;
&lt;br /&gt;
== The backgrounds demo module ==&lt;br /&gt;
Any basic module will do for the purposes of this tutorial. If you want to create a test module for this tutorial then just create a simple module with a single area and a starting location. Make sure that the only thing selected in the module’s hierarchy is ''Core game resources''. This will ensure that the module is a stand alone module rather than an add-in to the single player campaign or some other module. For the purposes of this tutorial we will assume the module is called ''Backgrounds demo'' and I will prefix my resources with ''bdm_'' to be sure that they are distinct from any that are already in existence.&lt;br /&gt;
&lt;br /&gt;
We are going to completely replace the existing backgrounds with 3 new ones of our own. You can use new backgrounds in your module however you see fit. You could create entire origin stories for each one like in the single player campaign (possibly a major undertaking depending on length) or you can just use them to influence dialogue and plot options in the main part of your game.&lt;br /&gt;
&lt;br /&gt;
For our demo we are creating a  module in which the player starts off in a small human village (we will not be creating the details of this module so this is just for the purpose of an example). There is a wizard in this village who plays a pivotal role in the story. We allow the player to start as the wizard’s apprentice (if they are a mage) or as his servant (if they are human or elven and not a mage) or as a wandering traveller who has come to visit the wizard (if they are not human and not a mage). So the three backgrounds will be:&lt;br /&gt;
&lt;br /&gt;
* Servant&lt;br /&gt;
* Apprentice&lt;br /&gt;
* Traveller&lt;br /&gt;
&lt;br /&gt;
== Creating the background strings ==&lt;br /&gt;
Before we start modifying the 2DA files we are going to create some strings. Open the string editor in the toolset and create the following strings in your ‘Backgrounds demo’ talk table:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_talk_table.png]]&lt;br /&gt;
&lt;br /&gt;
Your string IDs might be different to these so be sure to reference the right string ID in the instructions that follow. Simply replace these string Ids with your own.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''There is currently a bug in the game that causes it to crash if a background description ID has a value greater than 109 912 680. To get around this you can go into your module’s properties and change the start and end IDs for strings to be less than that. After that the string editor will generate IDs in a range that won’t crash. You can always put those values back again after you create the background descriptions (that way you have less to alter once Bioware fix this). Hopefully Bioware will fix this bug soon as the official string range for non-Bioware / certified modules is over 610 000 000.''&lt;br /&gt;
&lt;br /&gt;
You may have noticed that we have given two different names and descriptions for the traveller background depending on the PC’s race. We will say more about that in the following section.&lt;br /&gt;
&lt;br /&gt;
== Modifying the 2DAs ==&lt;br /&gt;
The next thing we need to do is to modify the worksheets in Backgrounds.xls. Be sure to make a copy of the spreadsheet first so that you leave the original intact. See LINK for general information about editing 2DA files. The first worksheet is called ‘backgrounds’; modify it to look like the following:&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_backgrounds.png]]&lt;br /&gt;
&lt;br /&gt;
Note that since 2DAs combine together to form M2DAs, and we don’t want the existing backgrounds in our game, we have overwritten the last two slots as unused1 and unused2,  even though we won’t be using them. The name and desc  string refs on this tab will be overwritten by the race specific ones on the names tab so we can leave those blank (AFAIK these string refs are not used providing the ones on the names tab are provided - also the tooltip string ref seems not to be used anywhere – if you prefer you can set these to something just to be safe).&lt;br /&gt;
&lt;br /&gt;
The three race columns determine which backgrounds can be selected by which race and the 3 class columns determine which background can be selected by which class. So, as you can see from the picture our Servant background is accessible to elf or human warriors and rogues, the Apprentice background can be selected by elf or human mages and the Traveller background by elf or dwarf warriors and rogues.&lt;br /&gt;
&lt;br /&gt;
The last three tabs indicate a starting ability for each background by race. Note that by default these columns are not hooked up into the character generation script (instead they are hard coded in the script) and are not used, but we will correct that later on when we do the scripting. You have to be careful here because the columns relate to the race IDs, so 1=dwarf, 2=elf and 3=human, which is in a different order to the other race columns in this table. The number in the column is an ability ID as given in ABI_base.xls. For this demo we have just given the same skill for each race for a given background. Servants get combat tactics, Apprentices get persuade and Travellers get survival.&lt;br /&gt;
&lt;br /&gt;
The next tab table to modify is background_names.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_names.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure that the IDs here match the IDs in your string table. Note that for Apprentices and Servants we use the same strings regardless of race, but for the Traveller background we use different strings. This is to illustrate how you can divide a single background up into multiple names and descriptions. Internally they are both stored as the same background ID but during character generation a different name, description and icon can be shown to the player. In the single player game this was done with the Noble background by splitting it into human and dwarf Noble variations.&lt;br /&gt;
&lt;br /&gt;
NOTE – you must be careful when splitting a single background into different parts for each race. You must make both the names and descriptions different! If you don’t make the descriptions different then the engine will not recognise them as different even if they have different names.&lt;br /&gt;
&lt;br /&gt;
Now modify the background_desc table as follows&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_desc.png]]&lt;br /&gt;
&lt;br /&gt;
Again note the distinct descriptions for the Traveller background&lt;br /&gt;
Now for the background_icons table. For this demo we will just use some of the existing icons but you may want to create your own icons to add here.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_bg_icons.png]]&lt;br /&gt;
&lt;br /&gt;
The background_defaults table must have an entry for each race, background and class combination that is allowed. The ID column must be calculated as follows:&lt;br /&gt;
&lt;br /&gt;
1000 * raceID  + 100 * classID + backgroundID&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tute_bg_defaults.png]]&lt;br /&gt;
&lt;br /&gt;
The label column should give a description of the row (AFAIK this is not used anywhere).&lt;br /&gt;
For this simple demo we will have each background combination spawn in the same place (the module default start location) but if you wanted different origins to spawn in different places then you can use the next two columns to specify this (AFAIK you have to write your own scripts to accomplish this though).&lt;br /&gt;
&lt;br /&gt;
In the template column you can put the name of a creature resource that you want to use as a template for this race/background/class combination. In the picture you can see that we have just used some default templates that shipped with the toolset but you can easily create your own. Note that only the inventory is copied across to the PC so if you want to create your own templates you do not need to alter anything on the creature except for their inventory.&lt;br /&gt;
&lt;br /&gt;
The name columns take string Ids. If you want to add your own names then you’ll have to create new strings in the string editor.&lt;br /&gt;
&lt;br /&gt;
Finally we have the ability column. As with the skill columns in the backgrounds table these IDs correspond to entries in the ABI_base.xls file. It should be noted that race, class and background are all possible sources of starting abilities so before you decide what to put in this column you should familiarise yourself with what skills are already being added in different parts of character generation in order to ensure that you don’t duplicate an ability somewhere.&lt;br /&gt;
&lt;br /&gt;
The final table is the chargen_preload table. The two columns here should exactly match the entries from the ID and Template columns of the previous table.&lt;br /&gt;
&lt;br /&gt;
[[Image:back_tut_chargen_preload.png]]&lt;br /&gt;
&lt;br /&gt;
== Compiling and fixing the GDAs ==&lt;br /&gt;
Now compile backgrounds.xls and place the resulting GDAs into your ''AddIns\module_name\module\override'' directory.&lt;br /&gt;
Never place anything in your ''AddIns\module_name\core\override'' directory or it will affect other modules than the one you are editing.&lt;br /&gt;
&lt;br /&gt;
Unfortunately there is a bug that prevents large string IDs from compiling correctly so until BioWare fix this bug you will have to edit the GDA files in the toolset. Open up the two GDA files that contain your new string IDs and check to see if the correct string IDs from your spreadsheet are there. Most probably you will have to edit some of them to match. Once you are certain you have done this accurately, save and close the GDA files.&lt;br /&gt;
&lt;br /&gt;
== Creating the backgrounds plot ==&lt;br /&gt;
The background plot is used for keeping track of a PC’s background and can be used to affect conversation options.&lt;br /&gt;
 &lt;br /&gt;
The single player game uses a plot called gen00pt_backgrounds to keep track of the PC background. You can find it in the ''\_Glabal\Generic'' folder of the plots tab if you want to take a look. We will create a similar plot for our custom backgrounds. Create a new plot and call it ''bdm_000pt_backgrounds'' (My naming convention is to use 000 to indicate a resource that isn’t tied to any particular area – feel free to use your own convention but remember to update any references later in the tutorial). Add main plot flags as indicated in the picture below:&lt;br /&gt;
&lt;br /&gt;
[[Image:Back_tut_bg_plot.png]]&lt;br /&gt;
&lt;br /&gt;
You could also add some defined flags if you wanted. Defined flags can be used to return some combination of the main flags such as TRAVELLER or add some extra condition like FEMALE_APPRENTICE or ELVEN_APPRENTICE. Defined flags are beyond the scope of this tutorial however.&lt;br /&gt;
&lt;br /&gt;
== Creating the scripts ==&lt;br /&gt;
We are not going to edit any of the original core game scripts, we will only be adding new scripts of our own. As we discuss how to do this you should examine the core scripts that are referred to, but under no circumstances should you make any changes to those files. By leaving the core scripts as they are we make our modification more compatible with any future patches that may be released. If you modified the core scripts and then a patch was released that overwrote those scripts you would lose your changes. Also keeping your modification contained within your own module allows you to make different modifications to different modules within the one toolset.&lt;br /&gt;
&lt;br /&gt;
Lets start off with a script to handle the character generation events that are normally handled by the module_core script. Create a new script called ''bdm_module_core''. It is up to you what directory structure to use for your scripts but it can be a good idea to keep all your scripts in a directory with your module name to make them distinct from the core scripts. Then if you are emulating the functionality of  a particular core script you can mirror the original directory structure underneath your main module folder. So in this case the module_core script is contained in the ''\_Core Scripts'' folder so we will put our bdm_module_core in ''\Backgrounds demo\_Core Scripts'' (the underscore ensures the core directories come first – looks like Bioware accidentally created one without it! I’m pretty sure Core and _Core are meant to be the same directory). Organising things this way will really help with keeping track of your scripts.&lt;br /&gt;
&lt;br /&gt;
The ''bdm_module_core'' script should contain the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
void main(){&lt;br /&gt;
    event ev = GetCurrentEvent();&lt;br /&gt;
    int nEvent = GetEventType(ev); //extract event type from current event&lt;br /&gt;
    int nEventHandled = FALSE; //keep track of whether the event has been handled&lt;br /&gt;
    switch(nEvent){&lt;br /&gt;
        case EVENT_TYPE_MODULE_START:{&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Initiate character generation.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            PreloadCharGen(); //preloads resources for character generation&lt;br /&gt;
            StartCharGen(GetHero(),0,TRUE); //initiates character generation&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        default:&lt;br /&gt;
        {&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Handle character generation events sent by the engine.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            if ((nEvent &amp;gt;= EVENT_TYPE_CHARGEN_START &amp;amp;&amp;amp; nEvent &amp;lt;= EVENT_TYPE_CHARGEN_END) &lt;br /&gt;
                || nEvent == EVENT_TYPE_PLAYERLEVELUP )&lt;br /&gt;
            {&lt;br /&gt;
                HandleEvent(ev, R&amp;quot;bdm_sys_chargen.ncs&amp;quot;);&lt;br /&gt;
                nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    if (!nEventHandled) { //If this event wasn't handled by this script, let the core script try&lt;br /&gt;
        HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to ''file &amp;gt; manage modules'' and open the properties for your module and set the script property to point at this script.&lt;br /&gt;
&lt;br /&gt;
Our new script handles some of the events that are usually handled by the module_core script. Once it has handled the event it chooses whether or not to pass the event on to module_core. The first event that we handle is EVENT_TYPE_MODULE_START, which is where we initiate character generation. In this case we pass the event on to the core script to handle after we have done what we need to.&lt;br /&gt;
&lt;br /&gt;
The second thing we handle is actually a group of events. If you look in the module_core script you will see that right down the bottom in the default event handler is some code that looks just like the code we have added in our default event, with a couple of little differences. Instead of passing the character generation events to the sys_chargen.ncs script we are going to pass it to our own script called ''bdm_sys_chargen.ncs'' which we will write shortly. If we catch one of those character generation events then we want to handle it ourselves and prevent the core script from handling it so we set nEventHandled = TRUE. Note that any other event that is caught by the default handler but isn’t a character generation event is going to go straight on through to the core script.&lt;br /&gt;
&lt;br /&gt;
Before we create the ''bdm_sys_chargen'' script we are going to need some new constants defined. Create a new script called ''bdm_2da_constants_h'' and put it in folder ''\Backgrounds demo\_Core Includes''. Now add the following to this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// Backgrounds - rules/backgrounds.xls&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
const int BACKGROUND_SERVANT = 1;&lt;br /&gt;
const int BACKGROUND_APPRENTICE = 2;&lt;br /&gt;
const int BACKGROUND_TRAVELLER = 3;&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These constants provide a way for us to refer to the background IDs that we defined in the 2DA files without having to remember the numbers. Constants like this also make your code more readable.  If you need to add more new items to 2DAs when you are modding something else you can also add constants for them here. From now on we will be using these background constants instead of the original single player background constants that you can find in the ''2da_constants_h'' script. That means we’d better find all the places where those constants are used and update them with our own scripts.&lt;br /&gt;
&lt;br /&gt;
Create another new script and call it ''bdm_sys_chargen'' and put it in a folder called ''\Backgrounds demo\_Systems''. Put the following code in it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;bdm_sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;log_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
const int CHARGEN_QUICKSTART_QUICK = 0;&lt;br /&gt;
const int CHARGEN_QUICKSTART_NORMAL = 1;&lt;br /&gt;
const int CHARGEN_QUICKSTART_ADVANCED = 2;&lt;br /&gt;
&lt;br /&gt;
void _RunChargen(int nRace, int nClass, object oChar, int nBackground)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    Chargen_InitializeCharacter(oChar);&lt;br /&gt;
    Chargen_SelectGender(oChar,GENDER_MALE);&lt;br /&gt;
    Chargen_SelectRace(oChar,nRace);&lt;br /&gt;
    Chargen_SelectCoreClass(oChar,nClass);&lt;br /&gt;
    Chargen_SelectBackground(oChar, nBackground,FALSE);&lt;br /&gt;
&lt;br /&gt;
    int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
    Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_STRENGTH, 3,FALSE);&lt;br /&gt;
    Chargen_SpendAttributePoints(oChar,PROPERTY_ATTRIBUTE_DEXTERITY, 2,FALSE);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main(){&lt;br /&gt;
    event   ev              =   GetCurrentEvent();&lt;br /&gt;
    int     nEventType      =   GetEventType(ev);&lt;br /&gt;
    object  oChar           =   GetEventObject(ev,0);&lt;br /&gt;
&lt;br /&gt;
    int nMode;&lt;br /&gt;
    int nInt0 = GetEventInteger(ev,0);&lt;br /&gt;
    int nInt1 = GetEventInteger(ev,1);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // Debug Data.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_EVENTS_CHARGEN,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Chargen Event:&amp;quot; + Log_GetEventNameById (nEventType) &lt;br /&gt;
               + &amp;quot; &amp;quot; + ToString(nInt0) + &amp;quot;,&amp;quot; + ToString(nInt1), oChar);&lt;br /&gt;
&lt;br /&gt;
    int nEventHandled = FALSE;&lt;br /&gt;
&lt;br /&gt;
    switch (nEventType)&lt;br /&gt;
    {&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        // This fires when the player selects the icon corresponding to any of&lt;br /&gt;
        // the available backgrounds&lt;br /&gt;
        //&lt;br /&gt;
        // nInt0 - Constant BACKGROUND_* integer&lt;br /&gt;
        // ----------------------------------------------------------------------&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_SELECT_BACKGROUND: {&lt;br /&gt;
            int nBackground = nInt0;&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Set the background on the player and reinitialize plot flags&lt;br /&gt;
            // for the background&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            Chargen_InitializeCharacter(oChar,TRUE);&lt;br /&gt;
            Chargen_SelectGender(oChar,GetCreatureGender(oChar));&lt;br /&gt;
            Chargen_SelectRace(oChar,GetCreatureRacialType(oChar));&lt;br /&gt;
            Chargen_SelectCoreClass(oChar,GetCreatureCoreClass(oChar));&lt;br /&gt;
&lt;br /&gt;
            bdm_Chargen_SelectBackground(oChar, nBackground, FALSE);&lt;br /&gt;
            bdm_Chargen_SetupPlotFlags(oChar);&lt;br /&gt;
&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            // Generate the index into the equipment template 2da and&lt;br /&gt;
            // then load the starting equipment based on the data returned.&lt;br /&gt;
            // -----------------------------------------------------------------&lt;br /&gt;
            int nClass = GetCreatureCoreClass(oChar);&lt;br /&gt;
            int nRace = GetCreatureRacialType(oChar);&lt;br /&gt;
            int nEquipIdx = Chargen_GetEquipIndex(nRace, nClass, nBackground);&lt;br /&gt;
           Chargen_InitInventory(oChar,0,nEquipIdx);&lt;br /&gt;
            nEventHandled = TRUE;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case EVENT_TYPE_CHARGEN_END: {&lt;br /&gt;
            nMode = nInt0;&lt;br /&gt;
            int nQuickStart = nInt1;&lt;br /&gt;
            // 0 - quickstart&lt;br /&gt;
            // 1 - normal    \&lt;br /&gt;
            // 2 - advanced  / treat as the same&lt;br /&gt;
            Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;MODE: &amp;quot; + IntToString(nMode) &lt;br /&gt;
                       + &amp;quot;, Quick Start: &amp;quot; + IntToString(nQuickStart));&lt;br /&gt;
            if (nMode == CHARGEN_MODE_CREATE &amp;amp;&amp;amp; nQuickStart == CHARGEN_QUICKSTART_QUICK){&lt;br /&gt;
                Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen&amp;quot;,&amp;quot;Setting default values for player character&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                    int nRandClass = abs((GetLowResTimer()%3)+1);&lt;br /&gt;
&lt;br /&gt;
                    if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR)&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_SERVANT );&lt;br /&gt;
&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    else // mage&lt;br /&gt;
                    {&lt;br /&gt;
                        _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_APPRENTICE );&lt;br /&gt;
                        WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE, TRUE);&lt;br /&gt;
                    }&lt;br /&gt;
                    Chargen_SetNumTactics(oChar);&lt;br /&gt;
                    SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar));&lt;br /&gt;
                    SendEventModuleChargenDone(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
                    nEventHandled = TRUE;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }    //end switch&lt;br /&gt;
&lt;br /&gt;
    if (!nEventHandled){&lt;br /&gt;
        HandleEvent(ev, R&amp;quot;sys_chargen.ncs&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two events in the original sys_chargen script that we need to replace because they deal with backgrounds. The first of these is EVENT_TYPE_CHARGEN_SELECT_BACKGROUND and the other is EVENT_TYPE_CHARGEN_END. For the second event we only need to change the case where the character is being created in quickstart mode, so we just handle that section of the code. The objective here is to change only as much as we need to and then pass any remaining events through to the original sys_chargen script. Take some time to compare the new script with Bioware’s ''sys_chargen'' script .&lt;br /&gt;
&lt;br /&gt;
You will notice that we include a script called ''bdm_sys_chargen_h'' and that we use some functions with a ''bdm_'' prefix. Those functions are contained in that include file which we’ll write now. Essentially these are modifications of a couple of functions from the ''sys_chargen_h'' include file. Create a new script and call it ''bdm_sys_chargen_h''. Put it in folder ''\Backgrounds demo\_Systems\Includes'' and add the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;bdm_2da_constants_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_bdm_000pt_backgrounds&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SelectBackground(object oChar, int nBackground, int bUnApply = FALSE)&lt;br /&gt;
{&lt;br /&gt;
     Log_Chargen(&amp;quot;bdm_Chargen_SelectBackground&amp;quot;,&amp;quot;-- &amp;quot; + (bUnApply?&amp;quot;Un&amp;quot;:&amp;quot;&amp;quot;) +&amp;quot;Selecting BG: &amp;quot; + ToString(nBackground),oChar);&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 1. Set the background variable&lt;br /&gt;
    //          - Create creature property (or check what we used so far&lt;br /&gt;
    //          - We don't set backgrounds on non player generated chars.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    if (bUnApply)&lt;br /&gt;
    {&lt;br /&gt;
        SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, 0.0, PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
       SetCreatureProperty(oChar, PROPERTY_SIMPLE_BACKGROUND, IntToFloat(nBackground), PROPERTY_VALUE_BASE);&lt;br /&gt;
    }&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    // 2. Give one skill&lt;br /&gt;
    //    - retrieve the skill that is granted by the background from backgrounds.xls&lt;br /&gt;
    //    - give it to the player.&lt;br /&gt;
    // -------------------------------------------------------------------------&lt;br /&gt;
    int nAbility = ChargenGetBackgroundSkill(GetCreatureRacialType(oChar), nBackground);&lt;br /&gt;
    if (nAbility)&lt;br /&gt;
    {&lt;br /&gt;
        _AddAbility (oChar, nAbility, bUnApply);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void bdm_Chargen_SetupPlotFlags(object oChar)&lt;br /&gt;
{&lt;br /&gt;
    int nRace       =  GetCreatureRacialType(oChar);&lt;br /&gt;
    int nBackground = GetPlayerBackground(oChar);&lt;br /&gt;
&lt;br /&gt;
    Log_Trace(LOG_CHANNEL_CHARACTER,&amp;quot;bdm_sys_chargen_h&amp;quot;,&amp;quot;Setting plot flags, race: &amp;quot; &lt;br /&gt;
               + IntToString(nRace) + &amp;quot;, background: &amp;quot; + IntToString(nBackground));&lt;br /&gt;
&lt;br /&gt;
    // First, init all flags (debug setup)&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,FALSE);&lt;br /&gt;
&lt;br /&gt;
    switch (nBackground)&lt;br /&gt;
    {&lt;br /&gt;
        case BACKGROUND_SERVANT:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_SERVANT,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_APPRENTICE:&lt;br /&gt;
        {&lt;br /&gt;
            WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_APPRENTICE,TRUE); break;&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        case BACKGROUND_TRAVELLER:&lt;br /&gt;
        {&lt;br /&gt;
            switch(nRace)&lt;br /&gt;
            {&lt;br /&gt;
                case RACE_DWARF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_DWARF_TRAVELLER,TRUE); break;&lt;br /&gt;
                case RACE_ELF: WR_SetPlotFlag(PLT_BDM_000PT_BACKGROUNDS, BDM_GEN_BACK_ELF_TRAVELLER,TRUE); break;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets examine these two functions. First you should compare them to their original versions. For ''bdm_Chargen_SelectBackground()'' we have actually made a more generic version of the function that should work with any backgrounds. We have removed the hard coded values for the background abilities and now use the function ChargenGetBackgroundSkill() which actually gets the background skill from the backgrounds 2DA file that we edited earlier (recall the last three columns that give a skill depending on background and race). If you need fancier logic than just reading the values form the GDA (e.g. like Bioware’s logic for the Noble background) then you can always go back to hard coding them the way Bioware did.&lt;br /&gt;
&lt;br /&gt;
The second function is ''bdm_Chargen_SetupPlotFlags()'' which does just what it says. Remember the plot we created earlier? Here we set the appropriate flag based on race and background.&lt;br /&gt;
&lt;br /&gt;
== Testing that everything works ==&lt;br /&gt;
Now compile your scripts and export your module.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!''' ''Always make sure you empty your \Dragon Age\packages\core\override folder after doing an export. Due to a bug in the current toolset your single player game will become damaged if you don’t do this before playing.''&lt;br /&gt;
&lt;br /&gt;
You should now be able to run your game and see the backgrounds you created appear in character generation. If you want to test that the background plots have been set correctly, add an NPC to the start area and create a conversation for them in which each line is switched according to a background plot flag. You can also check that the character is receiving the abilities that we set in the 2DAs.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' ''There seems to be no way to change the popup message that comes up at the beginning of character generation. Altering the Pre-chargen string ID in the loadhints GDA does not seem to do anything.''&lt;br /&gt;
&lt;br /&gt;
== Optional extras ==&lt;br /&gt;
There are a couple of other Bioware scripts that reference the background constants. They are not essential to modify because they are not used anywhere by default. The genev_tutorial script uses a background check but unless you plan on firing the tutorial from your module then you won’t have need of it. Also there is at least one debug script that makes use of the original single player backgrounds (to grant a background plot flag to the PC) so if you want similar debug functionality you may have to roll your own function.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
In this tutorial we have demonstrated a way to modify the backgrounds used in the game without altering any of the core scripts. It is expected that a similar approach could be taken to modding other aspects of the game such as adding classes or races. In these cases the scripts that were created in this tutorial could be extended to handle other parts of the character generation process such as class and race selection.&lt;/div&gt;</summary>
		<author><name>Stuntpope</name></author>	</entry>

	</feed>