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

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18895</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18895"/>
				<updated>2012-08-05T23:32:55Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Module Core Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). [If you plan to release this mod to the public, you should also include waypoints for the other mod companions. A list can be found on the [[Follower_guidelines]] page.] Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.] Alternatively, you can download my partypicker from http://social.bioware.com/project/3408/ and add your waypoint (and any others that I may be missing) to it.&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE; //&amp;lt;-- same as one from approval GDA &lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;ability_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;2da_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero())); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectRace(oFollower, GetCreatureRacialType(oFollower));&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, nClass);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE);&lt;br /&gt;
    Chargen_EnableTacticsPresets(oFollower);&lt;br /&gt;
    SetAutoLevelUp(oFollower, 2); //done by UT_HireFollower&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0); &amp;lt;--write custom script similar to this one to have approval bonus abilities&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero)); //done by UT_HireFollower&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        //adds follower to party if there is room&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
            // clears active party if the party is full&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED))&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetFollowerState(GetObjectByTag(GEN_FL_FOLLOWERNAME), FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
            }      &lt;br /&gt;
            WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
            SetPartyPickerGUIStatus(2);&lt;br /&gt;
            ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF FOLLOWER HERE&amp;quot;);&lt;br /&gt;
    //Follower's camp position near... &amp;lt;--change the vector coordinates below to camp coordinates&lt;br /&gt;
    vector vFollowerCamp = Vector(135.424f, 124.962f, -0.253687f);&lt;br /&gt;
    location lFollowerCamp = Location(GetArea(GetHero()), vFollowerCamp,  -130.2f);&lt;br /&gt;
    command cMoveFollowerCamp = CommandJumpToLocation(lFollowerCamp);&lt;br /&gt;
    //Follower's Redcliffe position near... &amp;lt;--change the vector coordinates below to Redcliffe coordinates&lt;br /&gt;
    vector vFollowerRed = Vector(32.3337f, -26.7351f, 0.401679f);&lt;br /&gt;
    location lFollowerRed = Location(GetArea(GetHero()), vFollowerRed,  30.0f);&lt;br /&gt;
    command cMoveFollowerRed = CommandJumpToLocation(lFollowerRed);&lt;br /&gt;
    //Follower's Denerim position near... &amp;lt;--change the vector coordinates below to Denerim estate coordinates&lt;br /&gt;
    vector vFollowerDen = Vector(79.0577f, -9.56501f, 5.02284f);&lt;br /&gt;
    location lFollowerDen = Location(GetArea(GetHero()), vFollowerDen,  180.0f);&lt;br /&gt;
    command cMoveFollowerDen = CommandJumpToLocation(lFollowerDen);&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    SetImmortal(oFollower, TRUE);&lt;br /&gt;
    RW_CatchUpToPlayer(oFollower);&lt;br /&gt;
    if (GetTag(oArea) == &amp;quot;cam100ar_camp_plains&amp;quot; || GetTag(oArea) == &amp;quot;cam110ar_camp_arch3&amp;quot; || GetTag(oArea) == &amp;quot;cam104ar_camp_arch1&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerCamp);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else if (GetTag(oArea) == &amp;quot;cli300ar_redcliffe_castle&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerRed);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else if (GetTag(oArea) == &amp;quot;den211ar_arl_eamon_estate_1&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerDen);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18894</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18894"/>
				<updated>2012-08-05T23:29:10Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Spawn Follower in Camp Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). [If you plan to release this mod to the public, you should also include waypoints for the other mod companions. A list can be found on the [[Follower_guidelines]] page.] Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.] Alternatively, you can download my partypicker from http://social.bioware.com/project/3408/ and add your waypoint (and any others that I may be missing) to it.&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;ability_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;2da_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero())); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectRace(oFollower, GetCreatureRacialType(oFollower));&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, nClass);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE);&lt;br /&gt;
    Chargen_EnableTacticsPresets(oFollower);&lt;br /&gt;
    SetAutoLevelUp(oFollower, 2); //done by UT_HireFollower&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0); &amp;lt;--write custom script similar to this one to have approval bonus abilities&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero)); //done by UT_HireFollower&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        //adds follower to party if there is room&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
            // clears active party if the party is full&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED))&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetFollowerState(GetObjectByTag(GEN_FL_FOLLOWERNAME), FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
            }      &lt;br /&gt;
            WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
            SetPartyPickerGUIStatus(2);&lt;br /&gt;
            ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF FOLLOWER HERE&amp;quot;);&lt;br /&gt;
    //Follower's camp position near... &amp;lt;--change the vector coordinates below to camp coordinates&lt;br /&gt;
    vector vFollowerCamp = Vector(135.424f, 124.962f, -0.253687f);&lt;br /&gt;
    location lFollowerCamp = Location(GetArea(GetHero()), vFollowerCamp,  -130.2f);&lt;br /&gt;
    command cMoveFollowerCamp = CommandJumpToLocation(lFollowerCamp);&lt;br /&gt;
    //Follower's Redcliffe position near... &amp;lt;--change the vector coordinates below to Redcliffe coordinates&lt;br /&gt;
    vector vFollowerRed = Vector(32.3337f, -26.7351f, 0.401679f);&lt;br /&gt;
    location lFollowerRed = Location(GetArea(GetHero()), vFollowerRed,  30.0f);&lt;br /&gt;
    command cMoveFollowerRed = CommandJumpToLocation(lFollowerRed);&lt;br /&gt;
    //Follower's Denerim position near... &amp;lt;--change the vector coordinates below to Denerim estate coordinates&lt;br /&gt;
    vector vFollowerDen = Vector(79.0577f, -9.56501f, 5.02284f);&lt;br /&gt;
    location lFollowerDen = Location(GetArea(GetHero()), vFollowerDen,  180.0f);&lt;br /&gt;
    command cMoveFollowerDen = CommandJumpToLocation(lFollowerDen);&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    SetImmortal(oFollower, TRUE);&lt;br /&gt;
    RW_CatchUpToPlayer(oFollower);&lt;br /&gt;
    if (GetTag(oArea) == &amp;quot;cam100ar_camp_plains&amp;quot; || GetTag(oArea) == &amp;quot;cam110ar_camp_arch3&amp;quot; || GetTag(oArea) == &amp;quot;cam104ar_camp_arch1&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerCamp);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else if (GetTag(oArea) == &amp;quot;cli300ar_redcliffe_castle&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerRed);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else if (GetTag(oArea) == &amp;quot;den211ar_arl_eamon_estate_1&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerDen);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18893</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18893"/>
				<updated>2012-08-05T23:28:30Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Spawn Follower in Camp Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). [If you plan to release this mod to the public, you should also include waypoints for the other mod companions. A list can be found on the [[Follower_guidelines]] page.] Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.] Alternatively, you can download my partypicker from http://social.bioware.com/project/3408/ and add your waypoint (and any others that I may be missing) to it.&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;ability_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;2da_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero())); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectRace(oFollower, GetCreatureRacialType(oFollower));&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, nClass);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE);&lt;br /&gt;
    Chargen_EnableTacticsPresets(oFollower);&lt;br /&gt;
    SetAutoLevelUp(oFollower, 2); //done by UT_HireFollower&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0); &amp;lt;--write custom script similar to this one to have approval bonus abilities&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero)); //done by UT_HireFollower&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        //adds follower to party if there is room&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
            // clears active party if the party is full&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED))&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetFollowerState(GetObjectByTag(GEN_FL_FOLLOWERNAME), FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
            }      &lt;br /&gt;
            WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
            SetPartyPickerGUIStatus(2);&lt;br /&gt;
            ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF FOLLOWER HERE&amp;quot;);&lt;br /&gt;
    //Follower's camp position near... &amp;lt;--change the vector coordinates below &lt;br /&gt;
    vector vFollowerCamp = Vector(135.424f, 124.962f, -0.253687f);&lt;br /&gt;
    location lFollowerCamp = Location(GetArea(GetHero()), vFollowerCamp,  -130.2f);&lt;br /&gt;
    command cMoveFollowerCamp = CommandJumpToLocation(lFollowerCamp);&lt;br /&gt;
    //Follower's Redcliffe position near... &amp;lt;--change the vector coordinates below &lt;br /&gt;
    vector vFollowerRed = Vector(32.3337f, -26.7351f, 0.401679f);&lt;br /&gt;
    location lFollowerRed = Location(GetArea(GetHero()), vFollowerRed,  30.0f);&lt;br /&gt;
    command cMoveFollowerRed = CommandJumpToLocation(lFollowerRed);&lt;br /&gt;
    //Follower's Denerim position near... &amp;lt;--change the vector coordinates below &lt;br /&gt;
    vector vFollowerDen = Vector(79.0577f, -9.56501f, 5.02284f);&lt;br /&gt;
    location lFollowerDen = Location(GetArea(GetHero()), vFollowerDen,  180.0f);&lt;br /&gt;
    command cMoveFollowerDen = CommandJumpToLocation(lFollowerDen);&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    SetImmortal(oFollower, TRUE);&lt;br /&gt;
    RW_CatchUpToPlayer(oFollower);&lt;br /&gt;
    if (GetTag(oArea) == &amp;quot;cam100ar_camp_plains&amp;quot; || GetTag(oArea) == &amp;quot;cam110ar_camp_arch3&amp;quot; || GetTag(oArea) == &amp;quot;cam104ar_camp_arch1&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerCamp);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else if (GetTag(oArea) == &amp;quot;cli300ar_redcliffe_castle&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerRed);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else if (GetTag(oArea) == &amp;quot;den211ar_arl_eamon_estate_1&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        AddCommand(oFollower, cMoveFollowerDen);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWER_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18892</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18892"/>
				<updated>2012-08-05T23:02:47Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Spawn Follower in Camp Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). [If you plan to release this mod to the public, you should also include waypoints for the other mod companions. A list can be found on the [[Follower_guidelines]] page.] Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.] Alternatively, you can download my partypicker from http://social.bioware.com/project/3408/ and add your waypoint (and any others that I may be missing) to it.&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;ability_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;2da_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero())); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectRace(oFollower, GetCreatureRacialType(oFollower));&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, nClass);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE);&lt;br /&gt;
    Chargen_EnableTacticsPresets(oFollower);&lt;br /&gt;
    SetAutoLevelUp(oFollower, 2); //done by UT_HireFollower&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0); &amp;lt;--write custom script similar to this one to have approval bonus abilities&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero)); //done by UT_HireFollower&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        //adds follower to party if there is room&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
            // clears active party if the party is full&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED))&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetFollowerState(GetObjectByTag(GEN_FL_FOLLOWERNAME), FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
            }      &lt;br /&gt;
            WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
            SetPartyPickerGUIStatus(2);&lt;br /&gt;
            ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18891</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18891"/>
				<updated>2012-08-05T23:02:09Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Spawn Follower in Camp Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). [If you plan to release this mod to the public, you should also include waypoints for the other mod companions. A list can be found on the [[Follower_guidelines]] page.] Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.] Alternatively, you can download my partypicker from http://social.bioware.com/project/3408/ and add your waypoint (and any others that I may be missing) to it.&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;ability_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;2da_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero())); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectRace(oFollower, GetCreatureRacialType(oFollower));&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, nClass);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE);&lt;br /&gt;
    Chargen_EnableTacticsPresets(oFollower);&lt;br /&gt;
    SetAutoLevelUp(oFollower, 2); //done by UT_HireFollower&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0); &amp;lt;--write custom script similar to this one to have approval bonus abilities&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero)); //done by UT_HireFollower&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        //adds follower to party if there is room&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
            // clears active party if the party is full&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED))&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetFollowerState(GetObjectByTag(GEN_FL_FOLLOWERNAME), FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
            }      &lt;br /&gt;
            WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
            SetPartyPickerGUIStatus(2);&lt;br /&gt;
            ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18890</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18890"/>
				<updated>2012-08-05T22:58:18Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Hiring Script (long version - level up table, AI table) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). [If you plan to release this mod to the public, you should also include waypoints for the other mod companions. A list can be found on the [[Follower_guidelines]] page.] Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.] Alternatively, you can download my partypicker from http://social.bioware.com/project/3408/ and add your waypoint (and any others that I may be missing) to it.&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;ability_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;2da_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_constants_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero())); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectRace(oFollower, GetCreatureRacialType(oFollower));&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, nClass);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE);&lt;br /&gt;
    Chargen_EnableTacticsPresets(oFollower);&lt;br /&gt;
    SetAutoLevelUp(oFollower, 2); //done by UT_HireFollower&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0); &amp;lt;--write custom script similar to this one to have approval bonus abilities&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero)); //done by UT_HireFollower&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        //adds follower to party if there is room&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
            // clears active party if the party is full&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED))&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetFollowerState(GetObjectByTag(GEN_FL_FOLLOWERNAME), FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
            }      &lt;br /&gt;
            WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
            SetPartyPickerGUIStatus(2);&lt;br /&gt;
            ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    Camp_PlaceFollowersInCamp();&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18889</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18889"/>
				<updated>2012-08-05T22:57:00Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Hiring Script (long version - level up table, AI table) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). [If you plan to release this mod to the public, you should also include waypoints for the other mod companions. A list can be found on the [[Follower_guidelines]] page.] Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.] Alternatively, you can download my partypicker from http://social.bioware.com/project/3408/ and add your waypoint (and any others that I may be missing) to it.&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;ability_h&amp;quot;&lt;br /&gt;
#include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
#include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
#include &amp;quot;2da_constants_h&amp;quot;&lt;br /&gt;
#include &amp;quot;global_constants_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero())); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE); &amp;lt;--use if hiring existing NPC&lt;br /&gt;
    SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectRace(oFollower, GetCreatureRacialType(oFollower));&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, nClass);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE);&lt;br /&gt;
    Chargen_EnableTacticsPresets(oFollower);&lt;br /&gt;
    SetAutoLevelUp(oFollower, 2); //done by UT_HireFollower&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0); &amp;lt;--write custom script similar to this one to have approval bonus abilities&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero)); //done by UT_HireFollower&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        //adds follower to party if there is room&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
            // clears active party if the party is full&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
            if(WR_GetPlotFlag( PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED))&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetFollowerState(GetObjectByTag(GEN_FL_FOLLOWERNAME), FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
            }      &lt;br /&gt;
            WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
            SetPartyPickerGUIStatus(2);&lt;br /&gt;
            ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    Camp_PlaceFollowersInCamp();&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18888</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18888"/>
				<updated>2012-08-05T22:39:14Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Directions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). [If you plan to release this mod to the public, you should also include waypoints for the other mod companions. A list can be found on the [[Follower_guidelines]] page.] Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.] Alternatively, you can download my partypicker from http://social.bioware.com/project/3408/ and add your waypoint (and any others that I may be missing) to it.&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAttributeModifiers(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAbilities(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE, FALSE);&lt;br /&gt;
    //AddAbility(oFollower, INSERT SPECIALIZATION # HERE);&lt;br /&gt;
    AL_SpendAttributePoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendSpecializationPoints(oFollower, nALTable);&lt;br /&gt;
    AL_SpendSkillPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendTalentSpellPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    Chargen_SetNumTactics(oFollower);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0);&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
        // Clearing active party so there won't be 1+4 party members&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
        SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
        //SendPartyMemberHiredEvent(oFollower, TRUE);&lt;br /&gt;
        SetPartyPickerGUIStatus(2);&lt;br /&gt;
        ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    Camp_PlaceFollowersInCamp();&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18887</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=18887"/>
				<updated>2012-08-05T22:28:49Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Module Core Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAttributeModifiers(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAbilities(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE, FALSE);&lt;br /&gt;
    //AddAbility(oFollower, INSERT SPECIALIZATION # HERE);&lt;br /&gt;
    AL_SpendAttributePoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendSpecializationPoints(oFollower, nALTable);&lt;br /&gt;
    AL_SpendSkillPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendTalentSpellPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    Chargen_SetNumTactics(oFollower);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0);&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
        // Clearing active party so there won't be 1+4 party members&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
        SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
        //SendPartyMemberHiredEvent(oFollower, TRUE);&lt;br /&gt;
        SetPartyPickerGUIStatus(2);&lt;br /&gt;
        ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    Camp_PlaceFollowersInCamp();&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=15504</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=15504"/>
				<updated>2011-01-09T20:15:35Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Module Core Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;map_events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_denpt_map&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             //SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {  &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAttributeModifiers(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAbilities(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE, FALSE);&lt;br /&gt;
    //AddAbility(oFollower, INSERT SPECIALIZATION # HERE);&lt;br /&gt;
    AL_SpendAttributePoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendSpecializationPoints(oFollower, nALTable);&lt;br /&gt;
    AL_SpendSkillPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendTalentSpellPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    Chargen_SetNumTactics(oFollower);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0);&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
        // Clearing active party so there won't be 1+4 party members&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
        SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
        //SendPartyMemberHiredEvent(oFollower, TRUE);&lt;br /&gt;
        SetPartyPickerGUIStatus(2);&lt;br /&gt;
        ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    Camp_PlaceFollowersInCamp();&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=15303</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=15303"/>
				<updated>2010-12-27T21:10:10Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Used numbers: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that the common core dialogues (listed below) contain the additional lines for the other companion mods (also listed below).&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- cir300_sloth_demon.dlg&lt;br /&gt;
&lt;br /&gt;
- urn230_guardian.dlg&lt;br /&gt;
 &lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
The partypicker.gda's are not overwritten but extended.&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Compatibility Core Package === &lt;br /&gt;
&lt;br /&gt;
'''COMPANION COMPATIBILITY CORE V1.03&lt;br /&gt;
BY NOOB766'''&lt;br /&gt;
&lt;br /&gt;
This package is intended to use by all NPC modders in order compatibilize their mods by suppressing the edition of the file “party_events.dlg”.&lt;br /&gt;
&lt;br /&gt;
DOWNLOAD [http://social.bioware.com/project/789/#files HERE]. (package and manual).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====The problem:====&lt;br /&gt;
Many NPC modders have the need to modify party_events.dlg in order to allow their NPCs to talk at the gates.&lt;br /&gt;
&lt;br /&gt;
The objective:&lt;br /&gt;
* To suppress the edition of party_events.dlg. &lt;br /&gt;
* Modders should create a separate dlg containing their NPC’s dialogs.&lt;br /&gt;
* Those separate dlg’s will trigger at the gates (one after the other, after party_events.dlg.)&lt;br /&gt;
&lt;br /&gt;
====Things required:====&lt;br /&gt;
* Toolset.&lt;br /&gt;
* Excel.&lt;br /&gt;
* ExcelProcessor (in the “tools” directory in the Dragon Age folder.)&lt;br /&gt;
&lt;br /&gt;
====Contents:====&lt;br /&gt;
This package is distributed as a dazip for easy installation. The contents of the dazip are as follows:&lt;br /&gt;
* cc_climax_denerim_gates.ncs&lt;br /&gt;
* cc_climax_end_cust_dialog.ncs&lt;br /&gt;
* cc_constants_h.nss&lt;br /&gt;
* cc_denerim_climax.dlg&lt;br /&gt;
* cc_climax.GDA&lt;br /&gt;
* cc_denerim_climax_2.dlg&lt;br /&gt;
* cc_event_handler.ncs&lt;br /&gt;
* cc_party_events.dlg&lt;br /&gt;
* cc_script_end_dialog.ncs&lt;br /&gt;
* clipt_main.ncs&lt;br /&gt;
* M2DA_base_cc.GDA&lt;br /&gt;
&lt;br /&gt;
====Procedure:====&lt;br /&gt;
&lt;br /&gt;
Either install the .dazip or place the contents of the &amp;quot;source&amp;quot; folder in your packages/core/override folder. These are the handling scripts and all the core files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Create your own ''''cc_climax_YOURMOD.GDA''''&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;ID&amp;quot; is your unique ID number; &amp;quot;TagOfSpeaker&amp;quot; is your NPC's tag and &amp;quot;DialogResource&amp;quot; is the climax dialog you create for your NPC.&lt;br /&gt;
Important!!!!! The ID number has to be between 1 and 5000!!&lt;br /&gt;
&lt;br /&gt;
=====Used numbers:=====&lt;br /&gt;
* Ser Gilmore NPC - 1981&lt;br /&gt;
* Reserved by ladydesire for Lealion/Tevinter Wardens - 2001-2006&lt;br /&gt;
* Karma's Origins Companions - 690 &lt;br /&gt;
&lt;br /&gt;
[[image:49013081.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Create your own '''cc_climax_YOURMOD.dlg'''&lt;br /&gt;
&lt;br /&gt;
Set the line to &amp;quot;show only once per game&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[image:Screendlg1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[image:42673137.jpg]]&lt;br /&gt;
&lt;br /&gt;
Create the script cc_climax_end_cust_dialog.nss that we need to link at the end of your custom dialog (as explained above). DO NOT EXPORT. (It's already included in the compatibility core).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    event eDialog = Event(EVENT_TYPE_CUSTOM_EVENT_01);&lt;br /&gt;
    DelayEvent(0.1f,oHero,eDialog,&amp;quot;cc_event_handler&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Place your GDA in your mod's core override, and export your custom dlg. Nothing else is required (because it's included in the companion compatibility core package).&lt;br /&gt;
&lt;br /&gt;
====The result:====&lt;br /&gt;
Once the vanilla NPCs have their final dialogs at the gates, all the custom NPCs dialogs will trigger, one after the other.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Important notes:====&lt;br /&gt;
&lt;br /&gt;
* DO NOT touch or export party_events! It's not needed any more.&lt;br /&gt;
* DO NOT export  cc_climax_end_cust_dialog.nss that you created to link at the end of your custom climax dialog. It's not needed.&lt;br /&gt;
* Always remember to add  cc_climax_end_cust_dialog.nss at the end of your climax dialog!&lt;br /&gt;
* Make sure cc_climax_end_cust_dialog fires OUTSIDE of a conditional branch to ensure the next dialog gets read even if your companion isn't recruited.&lt;br /&gt;
* The ONLY things required from you (modder) is your GDA and your custom dlg. Simple!&lt;br /&gt;
* Distribute the .dazip to the players.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Cullen&lt;br /&gt;
| Human&lt;br /&gt;
| kc_cir230cr_cullen&lt;br /&gt;
|-&lt;br /&gt;
| Jowan&lt;br /&gt;
| Human&lt;br /&gt;
| kc_arl210cr_jowan&lt;br /&gt;
|-&lt;br /&gt;
| Gorim&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdn120cr_gorim&lt;br /&gt;
|-&lt;br /&gt;
| Ser Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhn100cr_gilmore&lt;br /&gt;
|-&lt;br /&gt;
| Tamlen&lt;br /&gt;
| Elf&lt;br /&gt;
| kc_bed100cr_tamlen&lt;br /&gt;
|-&lt;br /&gt;
| Tamlen&lt;br /&gt;
| Elf/Shriek&lt;br /&gt;
| kc_cam110cr_tamlen&lt;br /&gt;
|-&lt;br /&gt;
| Soris&lt;br /&gt;
| Elf&lt;br /&gt;
| kc_bec100cr_soris&lt;br /&gt;
|-&lt;br /&gt;
| Leske&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdc200cr_leske&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=851 Ser Gilmore recruitable NPC]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Ser Roland Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| ser_gilmore_lbc&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lealion&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lealion&lt;br /&gt;
|-&lt;br /&gt;
| Legion&lt;br /&gt;
| Dog&lt;br /&gt;
| gen00fl_legion&lt;br /&gt;
|-&lt;br /&gt;
| Lanna&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lanna&lt;br /&gt;
|-&lt;br /&gt;
| Marric&lt;br /&gt;
| Elf&lt;br /&gt;
| gen00fl_marric&lt;br /&gt;
|-&lt;br /&gt;
| Martin&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_martin&lt;br /&gt;
|-&lt;br /&gt;
| Willam&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_willam&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Saarebas&lt;br /&gt;
| Qunari&lt;br /&gt;
| gen00fl_saarebas&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Douglas&lt;br /&gt;
| Human&lt;br /&gt;
| party_douglas&lt;br /&gt;
|-&lt;br /&gt;
| Ser Kenneth&lt;br /&gt;
| Human&lt;br /&gt;
| party_serken&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Chris&lt;br /&gt;
| Human&lt;br /&gt;
| chrischar&lt;br /&gt;
|-&lt;br /&gt;
| Lucius&lt;br /&gt;
| Human&lt;br /&gt;
| luciuschar&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Humanoid&lt;br /&gt;
| dt_fol_lethe_demon&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_lethe_human&lt;br /&gt;
|-&lt;br /&gt;
| Thazulok&lt;br /&gt;
| Elf&lt;br /&gt;
| dt_fol_thazulok&lt;br /&gt;
|-&lt;br /&gt;
| Myrdo&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_myrdo&lt;br /&gt;
|-&lt;br /&gt;
| Fetch&lt;br /&gt;
| Dwarf&lt;br /&gt;
| dt_fol_fetch&lt;br /&gt;
|-&lt;br /&gt;
| Marukhan&lt;br /&gt;
| Werewolf&lt;br /&gt;
| dt_fol_marukhan&lt;br /&gt;
|-&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragonling&lt;br /&gt;
| dt_fol_dragon_i&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://social.bioware.com/project/3152/ Valeria Addon]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Valeria&lt;br /&gt;
| Human&lt;br /&gt;
| valeria_npc&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 135.159f, 123.599f, -0.20766f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
:Tamlen's position: 171.71f, 150.038f, -1.02744f&lt;br /&gt;
:Soris' position: 138.381f, 119.108f, -0.17616f&lt;br /&gt;
:Leske's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
:Tamlen's position: 33.8068f, 20.4451f, 0.804601f&lt;br /&gt;
:Soris' position: 77.679f, 11.5635f, 5.02284f&lt;br /&gt;
:Leske's position: 83.8656f, 31.9483f, 5.00912f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
:Tamlen's position: 36.626f, -9.17714f, 0.022839f&lt;br /&gt;
:Soris' position: 34.8394f, -17.4045f, 0.022839f&lt;br /&gt;
:Leske's position: 34.2706f, -7.74061f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;br /&gt;
:Tamlen's position: &lt;br /&gt;
:Soris' position: &lt;br /&gt;
:Leske's position: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Gauntlet Doppelgangers ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;br /&gt;
:Tamlen's position: 81.9272f, 1.60791f, 0.011455f&lt;br /&gt;
:Soris' position: 78.4324f, 0.0464842f, 0.011455f&lt;br /&gt;
:Leske's position: 78.4908f, -3.069f, 0.000986939f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=15259</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=15259"/>
				<updated>2010-12-21T21:20:17Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Companion Names, Races, &amp;amp; Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that the common core dialogues (listed below) contain the additional lines for the other companion mods (also listed below).&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- cir300_sloth_demon.dlg&lt;br /&gt;
&lt;br /&gt;
- urn230_guardian.dlg&lt;br /&gt;
 &lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
The partypicker.gda's are not overwritten but extended.&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Compatibility Core Package === &lt;br /&gt;
&lt;br /&gt;
'''COMPANION COMPATIBILITY CORE V1.03&lt;br /&gt;
BY NOOB766'''&lt;br /&gt;
&lt;br /&gt;
This package is intended to use by all NPC modders in order compatibilize their mods by suppressing the edition of the file “party_events.dlg”.&lt;br /&gt;
&lt;br /&gt;
DOWNLOAD [http://social.bioware.com/project/789/#files HERE]. (package and manual).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====The problem:====&lt;br /&gt;
Many NPC modders have the need to modify party_events.dlg in order to allow their NPCs to talk at the gates.&lt;br /&gt;
&lt;br /&gt;
The objective:&lt;br /&gt;
* To suppress the edition of party_events.dlg. &lt;br /&gt;
* Modders should create a separate dlg containing their NPC’s dialogs.&lt;br /&gt;
* Those separate dlg’s will trigger at the gates (one after the other, after party_events.dlg.)&lt;br /&gt;
&lt;br /&gt;
====Things required:====&lt;br /&gt;
* Toolset.&lt;br /&gt;
* Excel.&lt;br /&gt;
* ExcelProcessor (in the “tools” directory in the Dragon Age folder.)&lt;br /&gt;
&lt;br /&gt;
====Contents:====&lt;br /&gt;
This package is distributed as a dazip for easy installation. The contents of the dazip are as follows:&lt;br /&gt;
* cc_climax_denerim_gates.ncs&lt;br /&gt;
* cc_climax_end_cust_dialog.ncs&lt;br /&gt;
* cc_constants_h.nss&lt;br /&gt;
* cc_denerim_climax.dlg&lt;br /&gt;
* cc_climax.GDA&lt;br /&gt;
* cc_denerim_climax_2.dlg&lt;br /&gt;
* cc_event_handler.ncs&lt;br /&gt;
* cc_party_events.dlg&lt;br /&gt;
* cc_script_end_dialog.ncs&lt;br /&gt;
* clipt_main.ncs&lt;br /&gt;
* M2DA_base_cc.GDA&lt;br /&gt;
&lt;br /&gt;
====Procedure:====&lt;br /&gt;
&lt;br /&gt;
Either install the .dazip or place the contents of the &amp;quot;source&amp;quot; folder in your packages/core/override folder. These are the handling scripts and all the core files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Create your own ''''cc_climax_YOURMOD.GDA''''&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;ID&amp;quot; is your unique ID number; &amp;quot;TagOfSpeaker&amp;quot; is your NPC's tag and &amp;quot;DialogResource&amp;quot; is the climax dialog you create for your NPC.&lt;br /&gt;
Important!!!!! The ID number has to be between 1 and 5000!!&lt;br /&gt;
&lt;br /&gt;
=====Used numbers:=====&lt;br /&gt;
* Ser Gilmore NPC - 1981&lt;br /&gt;
* Reserved by ladydesire for Lealion/Tevinter Wardens - 2001-2006&lt;br /&gt;
&lt;br /&gt;
[[image:49013081.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Create your own '''cc_climax_YOURMOD.dlg'''&lt;br /&gt;
&lt;br /&gt;
Set the line to &amp;quot;show only once per game&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[image:Screendlg1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[image:42673137.jpg]]&lt;br /&gt;
&lt;br /&gt;
Create the script cc_climax_end_cust_dialog.nss that we need to link at the end of your custom dialog (as explained above). DO NOT EXPORT. (It's already included in the compatibility core).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    event eDialog = Event(EVENT_TYPE_CUSTOM_EVENT_01);&lt;br /&gt;
    DelayEvent(0.1f,oHero,eDialog,&amp;quot;cc_event_handler&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Place your GDA in your mod's core override, and export your custom dlg. Nothing else is required (because it's included in the companion compatibility core package).&lt;br /&gt;
&lt;br /&gt;
====The result:====&lt;br /&gt;
Once the vanilla NPCs have their final dialogs at the gates, all the custom NPCs dialogs will trigger, one after the other.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Important notes:====&lt;br /&gt;
&lt;br /&gt;
* DO NOT touch or export party_events! It's not needed any more.&lt;br /&gt;
* DO NOT export  cc_climax_end_cust_dialog.nss that you created to link at the end of your custom climax dialog. It's not needed.&lt;br /&gt;
* Always remember to add  cc_climax_end_cust_dialog.nss at the end of your climax dialog!&lt;br /&gt;
* Make sure cc_climax_end_cust_dialog fires OUTSIDE of a conditional branch to ensure the next dialog gets read even if your companion isn't recruited.&lt;br /&gt;
* The ONLY things required from you (modder) is your GDA and your custom dlg. Simple!&lt;br /&gt;
* Distribute the .dazip to the players.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Cullen&lt;br /&gt;
| Human&lt;br /&gt;
| kc_cir230cr_cullen&lt;br /&gt;
|-&lt;br /&gt;
| Jowan&lt;br /&gt;
| Human&lt;br /&gt;
| kc_arl210cr_jowan&lt;br /&gt;
|-&lt;br /&gt;
| Gorim&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdn120cr_gorim&lt;br /&gt;
|-&lt;br /&gt;
| Ser Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhn100cr_gilmore&lt;br /&gt;
|-&lt;br /&gt;
| Tamlen&lt;br /&gt;
| Elf&lt;br /&gt;
| kc_bed100cr_tamlen&lt;br /&gt;
|-&lt;br /&gt;
| Tamlen&lt;br /&gt;
| Elf/Shriek&lt;br /&gt;
| kc_cam110cr_tamlen&lt;br /&gt;
|-&lt;br /&gt;
| Soris&lt;br /&gt;
| Elf&lt;br /&gt;
| kc_bec100cr_soris&lt;br /&gt;
|-&lt;br /&gt;
| Leske&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdc200cr_leske&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=851 Ser Gilmore recruitable NPC]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Ser Roland Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| ser_gilmore_lbc&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lealion&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lealion&lt;br /&gt;
|-&lt;br /&gt;
| Legion&lt;br /&gt;
| Dog&lt;br /&gt;
| gen00fl_legion&lt;br /&gt;
|-&lt;br /&gt;
| Lanna&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lanna&lt;br /&gt;
|-&lt;br /&gt;
| Marric&lt;br /&gt;
| Elf&lt;br /&gt;
| gen00fl_marric&lt;br /&gt;
|-&lt;br /&gt;
| Martin&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_martin&lt;br /&gt;
|-&lt;br /&gt;
| Willam&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_willam&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Saarebas&lt;br /&gt;
| Qunari&lt;br /&gt;
| gen00fl_saarebas&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Douglas&lt;br /&gt;
| Human&lt;br /&gt;
| party_douglas&lt;br /&gt;
|-&lt;br /&gt;
| Ser Kenneth&lt;br /&gt;
| Human&lt;br /&gt;
| party_serken&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Chris&lt;br /&gt;
| Human&lt;br /&gt;
| chrischar&lt;br /&gt;
|-&lt;br /&gt;
| Lucius&lt;br /&gt;
| Human&lt;br /&gt;
| luciuschar&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Humanoid&lt;br /&gt;
| dt_fol_lethe_demon&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_lethe_human&lt;br /&gt;
|-&lt;br /&gt;
| Thazulok&lt;br /&gt;
| Elf&lt;br /&gt;
| dt_fol_thazulok&lt;br /&gt;
|-&lt;br /&gt;
| Myrdo&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_myrdo&lt;br /&gt;
|-&lt;br /&gt;
| Fetch&lt;br /&gt;
| Dwarf&lt;br /&gt;
| dt_fol_fetch&lt;br /&gt;
|-&lt;br /&gt;
| Marukhan&lt;br /&gt;
| Werewolf&lt;br /&gt;
| dt_fol_marukhan&lt;br /&gt;
|-&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragonling&lt;br /&gt;
| dt_fol_dragon_i&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://social.bioware.com/project/3152/ Valeria Addon]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Valeria&lt;br /&gt;
| Human&lt;br /&gt;
| valeria_npc&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 135.159f, 123.599f, -0.20766f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
:Tamlen's position: 171.71f, 150.038f, -1.02744f&lt;br /&gt;
:Soris' position: 138.381f, 119.108f, -0.17616f&lt;br /&gt;
:Leske's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
:Tamlen's position: 33.8068f, 20.4451f, 0.804601f&lt;br /&gt;
:Soris' position: 77.679f, 11.5635f, 5.02284f&lt;br /&gt;
:Leske's position: 83.8656f, 31.9483f, 5.00912f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
:Tamlen's position: 36.626f, -9.17714f, 0.022839f&lt;br /&gt;
:Soris' position: 34.8394f, -17.4045f, 0.022839f&lt;br /&gt;
:Leske's position: 34.2706f, -7.74061f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;br /&gt;
:Tamlen's position: &lt;br /&gt;
:Soris' position: &lt;br /&gt;
:Leske's position: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Gauntlet Doppelgangers ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;br /&gt;
:Tamlen's position: 81.9272f, 1.60791f, 0.011455f&lt;br /&gt;
:Soris' position: 78.4324f, 0.0464842f, 0.011455f&lt;br /&gt;
:Leske's position: 78.4908f, -3.069f, 0.000986939f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=15258</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=15258"/>
				<updated>2010-12-21T21:19:29Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Occupied Locations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that the common core dialogues (listed below) contain the additional lines for the other companion mods (also listed below).&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- cir300_sloth_demon.dlg&lt;br /&gt;
&lt;br /&gt;
- urn230_guardian.dlg&lt;br /&gt;
 &lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
The partypicker.gda's are not overwritten but extended.&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Compatibility Core Package === &lt;br /&gt;
&lt;br /&gt;
'''COMPANION COMPATIBILITY CORE V1.03&lt;br /&gt;
BY NOOB766'''&lt;br /&gt;
&lt;br /&gt;
This package is intended to use by all NPC modders in order compatibilize their mods by suppressing the edition of the file “party_events.dlg”.&lt;br /&gt;
&lt;br /&gt;
DOWNLOAD [http://social.bioware.com/project/789/#files HERE]. (package and manual).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====The problem:====&lt;br /&gt;
Many NPC modders have the need to modify party_events.dlg in order to allow their NPCs to talk at the gates.&lt;br /&gt;
&lt;br /&gt;
The objective:&lt;br /&gt;
* To suppress the edition of party_events.dlg. &lt;br /&gt;
* Modders should create a separate dlg containing their NPC’s dialogs.&lt;br /&gt;
* Those separate dlg’s will trigger at the gates (one after the other, after party_events.dlg.)&lt;br /&gt;
&lt;br /&gt;
====Things required:====&lt;br /&gt;
* Toolset.&lt;br /&gt;
* Excel.&lt;br /&gt;
* ExcelProcessor (in the “tools” directory in the Dragon Age folder.)&lt;br /&gt;
&lt;br /&gt;
====Contents:====&lt;br /&gt;
This package is distributed as a dazip for easy installation. The contents of the dazip are as follows:&lt;br /&gt;
* cc_climax_denerim_gates.ncs&lt;br /&gt;
* cc_climax_end_cust_dialog.ncs&lt;br /&gt;
* cc_constants_h.nss&lt;br /&gt;
* cc_denerim_climax.dlg&lt;br /&gt;
* cc_climax.GDA&lt;br /&gt;
* cc_denerim_climax_2.dlg&lt;br /&gt;
* cc_event_handler.ncs&lt;br /&gt;
* cc_party_events.dlg&lt;br /&gt;
* cc_script_end_dialog.ncs&lt;br /&gt;
* clipt_main.ncs&lt;br /&gt;
* M2DA_base_cc.GDA&lt;br /&gt;
&lt;br /&gt;
====Procedure:====&lt;br /&gt;
&lt;br /&gt;
Either install the .dazip or place the contents of the &amp;quot;source&amp;quot; folder in your packages/core/override folder. These are the handling scripts and all the core files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Create your own ''''cc_climax_YOURMOD.GDA''''&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;ID&amp;quot; is your unique ID number; &amp;quot;TagOfSpeaker&amp;quot; is your NPC's tag and &amp;quot;DialogResource&amp;quot; is the climax dialog you create for your NPC.&lt;br /&gt;
Important!!!!! The ID number has to be between 1 and 5000!!&lt;br /&gt;
&lt;br /&gt;
=====Used numbers:=====&lt;br /&gt;
* Ser Gilmore NPC - 1981&lt;br /&gt;
* Reserved by ladydesire for Lealion/Tevinter Wardens - 2001-2006&lt;br /&gt;
&lt;br /&gt;
[[image:49013081.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Create your own '''cc_climax_YOURMOD.dlg'''&lt;br /&gt;
&lt;br /&gt;
Set the line to &amp;quot;show only once per game&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[image:Screendlg1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[image:42673137.jpg]]&lt;br /&gt;
&lt;br /&gt;
Create the script cc_climax_end_cust_dialog.nss that we need to link at the end of your custom dialog (as explained above). DO NOT EXPORT. (It's already included in the compatibility core).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    event eDialog = Event(EVENT_TYPE_CUSTOM_EVENT_01);&lt;br /&gt;
    DelayEvent(0.1f,oHero,eDialog,&amp;quot;cc_event_handler&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Place your GDA in your mod's core override, and export your custom dlg. Nothing else is required (because it's included in the companion compatibility core package).&lt;br /&gt;
&lt;br /&gt;
====The result:====&lt;br /&gt;
Once the vanilla NPCs have their final dialogs at the gates, all the custom NPCs dialogs will trigger, one after the other.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Important notes:====&lt;br /&gt;
&lt;br /&gt;
* DO NOT touch or export party_events! It's not needed any more.&lt;br /&gt;
* DO NOT export  cc_climax_end_cust_dialog.nss that you created to link at the end of your custom climax dialog. It's not needed.&lt;br /&gt;
* Always remember to add  cc_climax_end_cust_dialog.nss at the end of your climax dialog!&lt;br /&gt;
* Make sure cc_climax_end_cust_dialog fires OUTSIDE of a conditional branch to ensure the next dialog gets read even if your companion isn't recruited.&lt;br /&gt;
* The ONLY things required from you (modder) is your GDA and your custom dlg. Simple!&lt;br /&gt;
* Distribute the .dazip to the players.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Cullen&lt;br /&gt;
| Human&lt;br /&gt;
| kc_cir230cr_cullen&lt;br /&gt;
|-&lt;br /&gt;
| Jowan&lt;br /&gt;
| Human&lt;br /&gt;
| kc_arl210cr_jowan&lt;br /&gt;
|-&lt;br /&gt;
| Gorim&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdn120cr_gorim&lt;br /&gt;
|-&lt;br /&gt;
| Tamlen&lt;br /&gt;
| Elf&lt;br /&gt;
| kc_bed100cr_tamlen&lt;br /&gt;
|-&lt;br /&gt;
| Tamlen&lt;br /&gt;
| Elf/Shriek&lt;br /&gt;
| kc_cam110cr_tamlen&lt;br /&gt;
|-&lt;br /&gt;
| Soris&lt;br /&gt;
| Elf&lt;br /&gt;
| kc_bec100cr_soris&lt;br /&gt;
|-&lt;br /&gt;
| Leske&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdc200cr_leske&lt;br /&gt;
|-&lt;br /&gt;
| Ser Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhn100cr_gilmore&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=851 Ser Gilmore recruitable NPC]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Ser Roland Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| ser_gilmore_lbc&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lealion&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lealion&lt;br /&gt;
|-&lt;br /&gt;
| Legion&lt;br /&gt;
| Dog&lt;br /&gt;
| gen00fl_legion&lt;br /&gt;
|-&lt;br /&gt;
| Lanna&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lanna&lt;br /&gt;
|-&lt;br /&gt;
| Marric&lt;br /&gt;
| Elf&lt;br /&gt;
| gen00fl_marric&lt;br /&gt;
|-&lt;br /&gt;
| Martin&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_martin&lt;br /&gt;
|-&lt;br /&gt;
| Willam&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_willam&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Saarebas&lt;br /&gt;
| Qunari&lt;br /&gt;
| gen00fl_saarebas&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Douglas&lt;br /&gt;
| Human&lt;br /&gt;
| party_douglas&lt;br /&gt;
|-&lt;br /&gt;
| Ser Kenneth&lt;br /&gt;
| Human&lt;br /&gt;
| party_serken&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Chris&lt;br /&gt;
| Human&lt;br /&gt;
| chrischar&lt;br /&gt;
|-&lt;br /&gt;
| Lucius&lt;br /&gt;
| Human&lt;br /&gt;
| luciuschar&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Humanoid&lt;br /&gt;
| dt_fol_lethe_demon&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_lethe_human&lt;br /&gt;
|-&lt;br /&gt;
| Thazulok&lt;br /&gt;
| Elf&lt;br /&gt;
| dt_fol_thazulok&lt;br /&gt;
|-&lt;br /&gt;
| Myrdo&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_myrdo&lt;br /&gt;
|-&lt;br /&gt;
| Fetch&lt;br /&gt;
| Dwarf&lt;br /&gt;
| dt_fol_fetch&lt;br /&gt;
|-&lt;br /&gt;
| Marukhan&lt;br /&gt;
| Werewolf&lt;br /&gt;
| dt_fol_marukhan&lt;br /&gt;
|-&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragonling&lt;br /&gt;
| dt_fol_dragon_i&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://social.bioware.com/project/3152/ Valeria Addon]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Valeria&lt;br /&gt;
| Human&lt;br /&gt;
| valeria_npc&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 135.159f, 123.599f, -0.20766f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
:Tamlen's position: 171.71f, 150.038f, -1.02744f&lt;br /&gt;
:Soris' position: 138.381f, 119.108f, -0.17616f&lt;br /&gt;
:Leske's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
:Tamlen's position: 33.8068f, 20.4451f, 0.804601f&lt;br /&gt;
:Soris' position: 77.679f, 11.5635f, 5.02284f&lt;br /&gt;
:Leske's position: 83.8656f, 31.9483f, 5.00912f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
:Tamlen's position: 36.626f, -9.17714f, 0.022839f&lt;br /&gt;
:Soris' position: 34.8394f, -17.4045f, 0.022839f&lt;br /&gt;
:Leske's position: 34.2706f, -7.74061f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;br /&gt;
:Tamlen's position: &lt;br /&gt;
:Soris' position: &lt;br /&gt;
:Leske's position: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Gauntlet Doppelgangers ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;br /&gt;
:Tamlen's position: 81.9272f, 1.60791f, 0.011455f&lt;br /&gt;
:Soris' position: 78.4324f, 0.0464842f, 0.011455f&lt;br /&gt;
:Leske's position: 78.4908f, -3.069f, 0.000986939f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=15257</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=15257"/>
				<updated>2010-12-21T21:04:44Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Companion Names, Races, &amp;amp; Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that the common core dialogues (listed below) contain the additional lines for the other companion mods (also listed below).&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- cir300_sloth_demon.dlg&lt;br /&gt;
&lt;br /&gt;
- urn230_guardian.dlg&lt;br /&gt;
 &lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
The partypicker.gda's are not overwritten but extended.&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Compatibility Core Package === &lt;br /&gt;
&lt;br /&gt;
'''COMPANION COMPATIBILITY CORE V1.03&lt;br /&gt;
BY NOOB766'''&lt;br /&gt;
&lt;br /&gt;
This package is intended to use by all NPC modders in order compatibilize their mods by suppressing the edition of the file “party_events.dlg”.&lt;br /&gt;
&lt;br /&gt;
DOWNLOAD [http://social.bioware.com/project/789/#files HERE]. (package and manual).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====The problem:====&lt;br /&gt;
Many NPC modders have the need to modify party_events.dlg in order to allow their NPCs to talk at the gates.&lt;br /&gt;
&lt;br /&gt;
The objective:&lt;br /&gt;
* To suppress the edition of party_events.dlg. &lt;br /&gt;
* Modders should create a separate dlg containing their NPC’s dialogs.&lt;br /&gt;
* Those separate dlg’s will trigger at the gates (one after the other, after party_events.dlg.)&lt;br /&gt;
&lt;br /&gt;
====Things required:====&lt;br /&gt;
* Toolset.&lt;br /&gt;
* Excel.&lt;br /&gt;
* ExcelProcessor (in the “tools” directory in the Dragon Age folder.)&lt;br /&gt;
&lt;br /&gt;
====Contents:====&lt;br /&gt;
This package is distributed as a dazip for easy installation. The contents of the dazip are as follows:&lt;br /&gt;
* cc_climax_denerim_gates.ncs&lt;br /&gt;
* cc_climax_end_cust_dialog.ncs&lt;br /&gt;
* cc_constants_h.nss&lt;br /&gt;
* cc_denerim_climax.dlg&lt;br /&gt;
* cc_climax.GDA&lt;br /&gt;
* cc_denerim_climax_2.dlg&lt;br /&gt;
* cc_event_handler.ncs&lt;br /&gt;
* cc_party_events.dlg&lt;br /&gt;
* cc_script_end_dialog.ncs&lt;br /&gt;
* clipt_main.ncs&lt;br /&gt;
* M2DA_base_cc.GDA&lt;br /&gt;
&lt;br /&gt;
====Procedure:====&lt;br /&gt;
&lt;br /&gt;
Either install the .dazip or place the contents of the &amp;quot;source&amp;quot; folder in your packages/core/override folder. These are the handling scripts and all the core files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Create your own ''''cc_climax_YOURMOD.GDA''''&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;ID&amp;quot; is your unique ID number; &amp;quot;TagOfSpeaker&amp;quot; is your NPC's tag and &amp;quot;DialogResource&amp;quot; is the climax dialog you create for your NPC.&lt;br /&gt;
Important!!!!! The ID number has to be between 1 and 5000!!&lt;br /&gt;
&lt;br /&gt;
=====Used numbers:=====&lt;br /&gt;
* Ser Gilmore NPC - 1981&lt;br /&gt;
* Reserved by ladydesire for Lealion/Tevinter Wardens - 2001-2006&lt;br /&gt;
&lt;br /&gt;
[[image:49013081.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Create your own '''cc_climax_YOURMOD.dlg'''&lt;br /&gt;
&lt;br /&gt;
Set the line to &amp;quot;show only once per game&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[image:Screendlg1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[image:42673137.jpg]]&lt;br /&gt;
&lt;br /&gt;
Create the script cc_climax_end_cust_dialog.nss that we need to link at the end of your custom dialog (as explained above). DO NOT EXPORT. (It's already included in the compatibility core).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    event eDialog = Event(EVENT_TYPE_CUSTOM_EVENT_01);&lt;br /&gt;
    DelayEvent(0.1f,oHero,eDialog,&amp;quot;cc_event_handler&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Place your GDA in your mod's core override, and export your custom dlg. Nothing else is required (because it's included in the companion compatibility core package).&lt;br /&gt;
&lt;br /&gt;
====The result:====&lt;br /&gt;
Once the vanilla NPCs have their final dialogs at the gates, all the custom NPCs dialogs will trigger, one after the other.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Important notes:====&lt;br /&gt;
&lt;br /&gt;
* DO NOT touch or export party_events! It's not needed any more.&lt;br /&gt;
* DO NOT export  cc_climax_end_cust_dialog.nss that you created to link at the end of your custom climax dialog. It's not needed.&lt;br /&gt;
* Always remember to add  cc_climax_end_cust_dialog.nss at the end of your climax dialog!&lt;br /&gt;
* Make sure cc_climax_end_cust_dialog fires OUTSIDE of a conditional branch to ensure the next dialog gets read even if your companion isn't recruited.&lt;br /&gt;
* The ONLY things required from you (modder) is your GDA and your custom dlg. Simple!&lt;br /&gt;
* Distribute the .dazip to the players.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Cullen&lt;br /&gt;
| Human&lt;br /&gt;
| kc_cir230cr_cullen&lt;br /&gt;
|-&lt;br /&gt;
| Jowan&lt;br /&gt;
| Human&lt;br /&gt;
| kc_arl210cr_jowan&lt;br /&gt;
|-&lt;br /&gt;
| Gorim&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdn120cr_gorim&lt;br /&gt;
|-&lt;br /&gt;
| Tamlen&lt;br /&gt;
| Elf&lt;br /&gt;
| kc_bed100cr_tamlen&lt;br /&gt;
|-&lt;br /&gt;
| Tamlen&lt;br /&gt;
| Elf/Shriek&lt;br /&gt;
| kc_cam110cr_tamlen&lt;br /&gt;
|-&lt;br /&gt;
| Soris&lt;br /&gt;
| Elf&lt;br /&gt;
| kc_bec100cr_soris&lt;br /&gt;
|-&lt;br /&gt;
| Leske&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdc200cr_leske&lt;br /&gt;
|-&lt;br /&gt;
| Ser Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhn100cr_gilmore&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=851 Ser Gilmore recruitable NPC]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Ser Roland Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| ser_gilmore_lbc&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lealion&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lealion&lt;br /&gt;
|-&lt;br /&gt;
| Legion&lt;br /&gt;
| Dog&lt;br /&gt;
| gen00fl_legion&lt;br /&gt;
|-&lt;br /&gt;
| Lanna&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lanna&lt;br /&gt;
|-&lt;br /&gt;
| Marric&lt;br /&gt;
| Elf&lt;br /&gt;
| gen00fl_marric&lt;br /&gt;
|-&lt;br /&gt;
| Martin&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_martin&lt;br /&gt;
|-&lt;br /&gt;
| Willam&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_willam&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Saarebas&lt;br /&gt;
| Qunari&lt;br /&gt;
| gen00fl_saarebas&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Douglas&lt;br /&gt;
| Human&lt;br /&gt;
| party_douglas&lt;br /&gt;
|-&lt;br /&gt;
| Ser Kenneth&lt;br /&gt;
| Human&lt;br /&gt;
| party_serken&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Chris&lt;br /&gt;
| Human&lt;br /&gt;
| chrischar&lt;br /&gt;
|-&lt;br /&gt;
| Lucius&lt;br /&gt;
| Human&lt;br /&gt;
| luciuschar&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Humanoid&lt;br /&gt;
| dt_fol_lethe_demon&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_lethe_human&lt;br /&gt;
|-&lt;br /&gt;
| Thazulok&lt;br /&gt;
| Elf&lt;br /&gt;
| dt_fol_thazulok&lt;br /&gt;
|-&lt;br /&gt;
| Myrdo&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_myrdo&lt;br /&gt;
|-&lt;br /&gt;
| Fetch&lt;br /&gt;
| Dwarf&lt;br /&gt;
| dt_fol_fetch&lt;br /&gt;
|-&lt;br /&gt;
| Marukhan&lt;br /&gt;
| Werewolf&lt;br /&gt;
| dt_fol_marukhan&lt;br /&gt;
|-&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragonling&lt;br /&gt;
| dt_fol_dragon_i&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://social.bioware.com/project/3152/ Valeria Addon]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Valeria&lt;br /&gt;
| Human&lt;br /&gt;
| valeria_npc&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=15213</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=15213"/>
				<updated>2010-12-11T17:58:25Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;map_events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_denpt_map&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             //SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
                // Note I would reccommend choosing a different Plot name than gen00pt_party_xxx because gen00pt means its a generic plot of the &lt;br /&gt;
                //core resources &lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {&lt;br /&gt;
                    // remove active party and place them again in area&lt;br /&gt;
                    // Handled in sp_module&lt;br /&gt;
                    //Camp_PlaceFollowersInCamp();&lt;br /&gt;
                   &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
                // Shouldn't be needed because it should be handled in sp_module&lt;br /&gt;
                /*&lt;br /&gt;
                else if (StringLeft(sAreaTag, 3) == DEN_AR_PREFIX &amp;amp;&amp;amp; sAreaTag != &amp;quot;den965ar_qunari_assassin&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    WR_SetPlotFlag(PLT_DENPT_MAP, DEN_MAP__ACTIVATE_CITY_MAP, TRUE, TRUE);&lt;br /&gt;
                }*/&lt;br /&gt;
                // Shouldn't be needed because it should be handled in sp_module&lt;br /&gt;
                /*else if (StringLeft(sAreaTag, 3) == &amp;quot;orz&amp;quot; &amp;amp;&amp;amp; sAreaTag != &amp;quot;orz100ar_mountain_pass&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    object oUndergroundMap   = GetObjectByTag( WM_UND_TAG );&lt;br /&gt;
                    object oWideOpenWorldMap = GetObjectByTag( WM_WOW_TAG );&lt;br /&gt;
                    WR_SetWorldMapPrimary( oUndergroundMap );&lt;br /&gt;
                    WR_SetWorldMapSecondary( oWideOpenWorldMap );&lt;br /&gt;
                }*/&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAttributeModifiers(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAbilities(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE, FALSE);&lt;br /&gt;
    //AddAbility(oFollower, INSERT SPECIALIZATION # HERE);&lt;br /&gt;
    AL_SpendAttributePoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendSpecializationPoints(oFollower, nALTable);&lt;br /&gt;
    AL_SpendSkillPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendTalentSpellPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    Chargen_SetNumTactics(oFollower);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0);&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
        // Clearing active party so there won't be 1+4 party members&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
        SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
        //SendPartyMemberHiredEvent(oFollower, TRUE);&lt;br /&gt;
        SetPartyPickerGUIStatus(2);&lt;br /&gt;
        ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The other follower tutorial shows how to set up level up table.&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
For specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    Camp_PlaceFollowersInCamp();&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=15212</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=15212"/>
				<updated>2010-12-11T17:56:47Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial that extends the single player campaign. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 11, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma) or edit it here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot; [Eventually you'll have to come back to this to set the &amp;quot;script&amp;quot; to the module_script you'll write below.] Always make sure you are working within your module. It'll say your module name at the top of the toolset.&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;) (Set this line to show up only once per game)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Change its class, inventory, name, description, etc. to whatever you want. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) five new main flags - FOLLOWERNAME_CREATED, FOLLOWERNAME_HIRED, FOLLOWERNAME_IN_PARTY, FOLLOWERNAME_IN_CAMP, and FOLLOWERNAME_FIRED. Replace &amp;quot;FOLLOWERNAME&amp;quot; with your follower's name. In the column that says &amp;quot;repeatable&amp;quot; check &amp;quot;yes&amp;quot; for &amp;quot;FOLLOWERNAME_IN_PARTY&amp;quot; and &amp;quot;FOLLOWERNAME_IN_CAMP.&amp;quot; Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the Module Core Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the Hiring Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the Firing Script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste the Spawn Follower in Camp Script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) At this point, you need to decide where you want to spawn your new follower. If your follower is an NPC that already exists in the game, things can get rather complicated. You'll probably have to duplicate an existing dialogue, add your hiring lines to it (which means you won't need the hiring line in the dialogue from Step #2), override it, and repackage the voice over. (This is beyond the scope of this tutorial.) If you want to place your follower in an existing area, that can be done fairly easily with PRCSCR scripts.&lt;br /&gt;
 &lt;br /&gt;
:a. You will have to find the tag of the area and the exact location in which you want to spawn your follower. [http://dragonagemodding.wordpress.com/2009/11/15/creating-a-custom-merchant-for-the-players-camp-part-1/ This Website] describes how to do that using a short script.&lt;br /&gt;
:b. After finding the area tag and location of your desired spawning spot, create a new script. Name it something like xxx_spawn_follower. Copy and paste the spawn follower in area script into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;FOLLOWERNAME,&amp;quot; and &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. &lt;br /&gt;
:c. Save and check in.&lt;br /&gt;
&lt;br /&gt;
NOTE: You cannot (as far as I know) use PRCSCR to spawn creatures in areas that are included in an area list but are not the first area entered on that list. For example, you can spawn a creature in the marketplace in Denerim (because it's usually the first area of Denerim to be entered), but you cannot spawn a creature in the Wonders of Thedas shop (because you had to go through the marketplace to get there). If I can get this to work in the future, I will update the script, but until then, you'll have to find other spawning locations. To check to see if your location is on an area list, find the area in the toolset and look at its Area List property in the object inspector.&lt;br /&gt;
&lt;br /&gt;
11) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx.&lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
AMENDMENT: In addition to the rows above, add another row that contains | ###5 | INSERT THE AREA TAG YOU FOUND | xxx_spawn_follower |&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. Make sure the resulting GDA file is in your .../module/override folder.&lt;br /&gt;
&lt;br /&gt;
12) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script. [The plot gen00pt_generic_actions has a flag GEN_OWNER_DISAPPEAR. This can be used to make the follower disappear/get fired, though it won't set the plot flag that the follower was fired, so be careful.] Save and check in (unless you want to do the optional step below). For more complex dialogues, you'll have to set up conditions based on plots. (For example, setting the firing branch to only show up if the follower has actually been hired.)&lt;br /&gt;
&lt;br /&gt;
13) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script using the Simple Approval Script below. You may have to make several copies for varying levels of approval/disapproval. (There is a shorter way of doing this using plots, but it's not very noob-friendly.) After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts. Save and check in.&lt;br /&gt;
&lt;br /&gt;
14) Export your module. &lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Export without dependent resources&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate module XML&lt;br /&gt;
:Go to Tools-&amp;gt;Export-&amp;gt;Generate manifest XML&lt;br /&gt;
&lt;br /&gt;
15) Don't forget to clean out the toolsetexport folders before in-game testing. &lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\core\override.&lt;br /&gt;
:Go to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override\toolsetexport. Move everything in there (if anything) up one level to C:\Documents and Settings\YourName\My Documents\BioWare\Dragon Age\AddIns\YourModule\module\override.&lt;br /&gt;
:In the toolset, go to Tools-&amp;gt;Export-&amp;gt;Empty export directories&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
In theory, these scripts should first spawn the follower in camp. At that point, you should be able to talk to him/her to hire them. It'll show the partypicker GUI (probably unnecessarily since you're in camp). After that, whenever you enter camp, the follower should move to the location where they were spawned. However, I do advise caution. I hired my follower from a location other than camp, so these scripts have not been tested as I included them here. You may need to tweak them a bit to fit them to your needs. If you don't want the partypicker GUI to show up at camp when you hire the follower, just omit &amp;quot;SetPartyPickerGUIStatus(2);&amp;quot; and &amp;quot;ShowPartyPickerGUI();&amp;quot; from the hiring script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module Core Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;map_events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_denpt_map&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             //ONLY DO THIS IF YOU HAVE A STAGE WITH EVERYONE'S CHARACTERS IN IT&lt;br /&gt;
             //SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                //Never put code outside of your GetTag(oFollower) Otherwise it will affect All Companions&lt;br /&gt;
                SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE, FALSE);&lt;br /&gt;
                AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
                // Note I would reccommend choosing a different Plot name than gen00pt_party_xxx because gen00pt means its a generic plot of the &lt;br /&gt;
                //core resources &lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             &lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             WR_SetObjectActive(oFollower, FALSE);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          //The section below is supposed to handle gifts; omit it if it causes a problem&lt;br /&gt;
          case EVENT_TYPE_MODULE_HANDLE_GIFT:&lt;br /&gt;
          {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            object oControlled = GetMainControlled();&lt;br /&gt;
            int nFollower = INSERT VERY LARGE NUMBER HERE;&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                Approval_ChangeApproval(nFollower, 5);&lt;br /&gt;
                AdjustFollowerApproval(oControlled, -5, TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
        //The section below returns followers to their positions in camp when world map is closed&lt;br /&gt;
        case EVENT_TYPE_WORLD_MAP_CLOSED:&lt;br /&gt;
        {&lt;br /&gt;
            object oPC = GetHero();&lt;br /&gt;
            object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
            object oArea = GetArea(oPC);&lt;br /&gt;
            string sAreaTag = GetTag(oArea);&lt;br /&gt;
            int nCloseType = GetEventInteger(ev, 0); // 0 for cancel, 1 for travel            &lt;br /&gt;
                     &lt;br /&gt;
            if(nCloseType == 0)&lt;br /&gt;
            {&lt;br /&gt;
                if (GetLocalInt(oArea, AREA_PARTY_CAMP) == 1)&lt;br /&gt;
                {&lt;br /&gt;
                    // remove active party and place them again in area&lt;br /&gt;
                    // Handled in sp_module&lt;br /&gt;
                    //Camp_PlaceFollowersInCamp();&lt;br /&gt;
                   &lt;br /&gt;
                    if(GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
                    {&lt;br /&gt;
                        //Creature's camp position - should be same as used in spawn in camp script&lt;br /&gt;
                        vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
                        location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
                        command cMoveFollower = CommandJumpToLocation(lTent); &lt;br /&gt;
                        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
                        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
                        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
                        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                    }                   &lt;br /&gt;
                }&lt;br /&gt;
                // Shouldn't be needed because it should be handled in sp_module&lt;br /&gt;
                /*&lt;br /&gt;
                else if (StringLeft(sAreaTag, 3) == DEN_AR_PREFIX &amp;amp;&amp;amp; sAreaTag != &amp;quot;den965ar_qunari_assassin&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    WR_SetPlotFlag(PLT_DENPT_MAP, DEN_MAP__ACTIVATE_CITY_MAP, TRUE, TRUE);&lt;br /&gt;
                }*/&lt;br /&gt;
                // Shouldn't be needed because it should be handled in sp_module&lt;br /&gt;
                /*else if (StringLeft(sAreaTag, 3) == &amp;quot;orz&amp;quot; &amp;amp;&amp;amp; sAreaTag != &amp;quot;orz100ar_mountain_pass&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    object oUndergroundMap   = GetObjectByTag( WM_UND_TAG );&lt;br /&gt;
                    object oWideOpenWorldMap = GetObjectByTag( WM_WOW_TAG );&lt;br /&gt;
                    WR_SetWorldMapPrimary( oUndergroundMap );&lt;br /&gt;
                    WR_SetWorldMapSecondary( oWideOpenWorldMap );&lt;br /&gt;
                }*/&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (short version - no level up table, no AI) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring Script (long version - level up table, AI table other follower tutorial shows how to set up level up table) ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oPC = GetPartyLeader();    &lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&lt;br /&gt;
    int nALTable = TABLE_ALFOLLOWERNAME;&lt;br /&gt;
    int nLevel = GetLevel(oHero);&lt;br /&gt;
    //SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&lt;br /&gt;
    ScaleEquippedItems(oFollower, nLevel);&lt;br /&gt;
    Chargen_InitializeCharacter(oFollower, FALSE);&lt;br /&gt;
    Chargen_SelectCoreClass(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAttributeModifiers(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    Chargen_ApplyClassAbilities(oFollower, INSERTCLASSHERE);&lt;br /&gt;
    AL_DoAutoLevelUp(oFollower, TRUE, FALSE);&lt;br /&gt;
    //AddAbility(oFollower, INSERT SPECIALIZATION # HERE);&lt;br /&gt;
    AL_SpendAttributePoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendSpecializationPoints(oFollower, nALTable);&lt;br /&gt;
    AL_SpendSkillPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    AL_SpendTalentSpellPoints(oFollower, nALTable, FALSE);&lt;br /&gt;
    Chargen_SetNumTactics(oFollower);&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    //Approval_AddFollowerBonusAbility(nAppIndex, 0);&lt;br /&gt;
    if (GetArraySize(GetPartyList(oPC)) &amp;lt; 4)&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
        SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
        SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, INSERT HIRED FLAG HERE, TRUE, FALSE);&lt;br /&gt;
        // Clearing active party so there won't be 1+4 party members&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        if(WR_GetPlotFlag( PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
                    WR_SetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_IN_CAMP, TRUE, TRUE);&lt;br /&gt;
        WR_SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE, FALSE);&lt;br /&gt;
        SetEventScript(oFollower, RESOURCE_SCRIPT_PLAYER_CORE);&lt;br /&gt;
        //SendPartyMemberHiredEvent(oFollower, TRUE);&lt;br /&gt;
        SetPartyPickerGUIStatus(2);&lt;br /&gt;
        ShowPartyPickerGUI();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Where it says INSERTCLASSHERE, use CLASS_WARRIOR, CLASS_WIZARD, or CLASS_ROGUE&lt;br /&gt;
&lt;br /&gt;
for specialization numbers, go to the dragon age wiki [http://dragonage.wikia.com/wiki/Console]&lt;br /&gt;
(I know the same listing exists here somewhere, but I can't seem to find it right now.)&lt;br /&gt;
&lt;br /&gt;
If you are using an existing NPC as your follower, you'll have to make three easy changes to the script above:&lt;br /&gt;
&lt;br /&gt;
1) Remove the &amp;quot;//&amp;quot; from &amp;quot;//SetObjectActive(GetObjectByTag(&amp;quot;INSERT TAG OF ORIGINAL NPC HERE&amp;quot;), FALSE);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Add &amp;quot;//&amp;quot; in front of &amp;quot;object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE&amp;quot;);&amp;quot; &lt;br /&gt;
&lt;br /&gt;
3) Remove the &amp;quot;//&amp;quot; from &amp;quot;//object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT TAG OF CLONED FOLLOWER HERE.utc&amp;quot;, GetLocation(GetHero()));&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    //Follower's position &amp;lt;--- you should change vector below to your desired position in camp&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMoveFollower = CommandJumpToLocation(lTent);&lt;br /&gt;
    Camp_PlaceFollowersInCamp();&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMoveFollower);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Area Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oArea = GetObjectByTag(&amp;quot;INSERT AREA TAG HERE&amp;quot;);&lt;br /&gt;
    vector vLocation = Vector(361.868f, 214.521f, 1.93519f); //change these numbers to the ones you found&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT FOLLOWER TAG HERE.utc&amp;quot;, Location(oArea, vLocation, 0.0f)); //change 0.0f to the orientation angle you found&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, FOLLOWERNAME_CREATED, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT FOLLOWER TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;br /&gt;
&lt;br /&gt;
== Other Notes ==&lt;br /&gt;
It is possible to combine the separate party-related scripts (like hiring, firing, etc.) into a single plot script. This can also be done for the various approval-related scripts (like increasing/decreasing approval, setting up romances, etc.). However, this requires more advanced scripting knowledge than the separate scripts. Eventually, I may add the scripts and directions here for more advanced users.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=15041</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=15041"/>
				<updated>2010-11-29T03:46:57Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Companion Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists links to step-by-step tutorials, both on this wiki and on external sites.&lt;br /&gt;
&lt;br /&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;
{|align=right&lt;br /&gt;
|{{TutorialRef|&amp;lt;nowiki&amp;gt;Boxes like these contain links,&amp;lt;/nowiki&amp;gt;|&amp;lt;nowiki&amp;gt;to topics taking you to further information&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
|&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;
&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;
**[[Useful Scripts]] &amp;lt;!-- for anyone not familar with scripts, this will be very helpful. However i extracted this from the Overview page which seemes inappropriate --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Various small Tutorials, in a unsorted manner. &lt;br /&gt;
*[[How-tos]]&lt;br /&gt;
*[[VFX 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: Using DLC areas in your mods]]&lt;br /&gt;
*[[Tutorial: Adding custom items to custom modules]]&lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Creating a custom placeable from a model]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
*[[Tutorial: Creating recolors of existing items]]&lt;br /&gt;
*[[Tutorial: Understanding Tints: Overriding Defaults &amp;amp; Creating New Ones]]&lt;br /&gt;
*[[Tutorial: Adding a New Weapon Type]]&lt;br /&gt;
*[[Tutorial: Adding custom heraldry to a shield]]&lt;br /&gt;
*[[Adding a New Spell Tutorial]]&lt;br /&gt;
*[[UI Tutorial (draft)]]&lt;br /&gt;
&lt;br /&gt;
== Character generation tutorials ==&lt;br /&gt;
*[[Backgrounds tutorial|Background/Origin Tutorial]]&lt;br /&gt;
*[[Add A New Class Tutorial]]&lt;br /&gt;
*[[High-Level Character Generation]]&lt;br /&gt;
&lt;br /&gt;
== Companion Tutorials ==&lt;br /&gt;
*[[Follower tutorial]] (Simple and advanced, requires scripting knowledge)&lt;br /&gt;
*[[Follower_guidelines]] (contains general guidelines and compatibility information)&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[ToolSet: Area Layouts]]&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
*[[Noob to pro]] (Step by step guide to making a new standalone campaign)&lt;br /&gt;
*[[Module Priority Tutorial]] How to set module. Priority for multiple mods with similar files, so they don't interfere&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/updating 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;
*[http://social.bioware.com/project/527/ Video Tutorials by SilentCid] Multiple in-depth video tutorials of the DA Toolset&lt;br /&gt;
*[http://www.youtube.com/view_play_list?p=EF29DD1AACEBA92A Qkrch's Video Tutorials] Toolset tutorial complete series for the experienced builder (Spanish &amp;amp; English)&lt;br /&gt;
*[http://www.theengineeringguild.co.uk/da-new-campaign-location-tutorial World Editing and Area Creation] Tutorial by [http://social.bioware.com/profile/7848 giskard44] where he walks you through a module creation process for an single player addin.&lt;br /&gt;
*[http://social.bioware.com/203442/blog/1352/ Custom Item Materials] by [http://social.bioware.com/203442/ Chains-Gore].&lt;br /&gt;
*[http://bg2redux.student.utwente.nl/trac/wiki/TutorialLightmapping Lighting Tutorial with Troubleshooting section] (aimed at beginners)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*[[Compatibility]]&lt;br /&gt;
*Can't find what you need? See [[Wiki Improvement Requests]]&lt;br /&gt;
{{Languages|Tutorials}}&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=14790</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=14790"/>
				<updated>2010-11-18T16:25:11Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Companion Names, Races, &amp;amp; Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that the common core dialogues (listed below) contain the additional lines for the other companion mods (also listed below).&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- cir300_sloth_demon.dlg&lt;br /&gt;
&lt;br /&gt;
- urn230_guardian.dlg&lt;br /&gt;
 &lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Cullen&lt;br /&gt;
| Human&lt;br /&gt;
| kc_cir230cr_cullen&lt;br /&gt;
|-&lt;br /&gt;
| Jowan&lt;br /&gt;
| Human&lt;br /&gt;
| kc_arl210cr_jowan&lt;br /&gt;
|-&lt;br /&gt;
| Gorim&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdn120cr_gorim&lt;br /&gt;
|-&lt;br /&gt;
| Ser Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhn100cr_gilmore&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=851 Ser Gilmore joinable NPC]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Ser Roland Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| ser_gilmore_lbc&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lealion&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lealion&lt;br /&gt;
|-&lt;br /&gt;
| Legion&lt;br /&gt;
| Dog&lt;br /&gt;
| gen00fl_legion&lt;br /&gt;
|-&lt;br /&gt;
| Lanna&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lanna&lt;br /&gt;
|-&lt;br /&gt;
| Marric&lt;br /&gt;
| Elf&lt;br /&gt;
| gen00fl_marric&lt;br /&gt;
|-&lt;br /&gt;
| Martin&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_martin&lt;br /&gt;
|-&lt;br /&gt;
| Willam&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_willam&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Saarebas&lt;br /&gt;
| Qunari&lt;br /&gt;
| gen00fl_saarebas&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Douglas&lt;br /&gt;
| Human&lt;br /&gt;
| party_douglas&lt;br /&gt;
|-&lt;br /&gt;
| Ser Kenneth&lt;br /&gt;
| Human&lt;br /&gt;
| party_serken&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Chris&lt;br /&gt;
| Human&lt;br /&gt;
| chrischar&lt;br /&gt;
|-&lt;br /&gt;
| Lucius&lt;br /&gt;
| Human&lt;br /&gt;
| luciuschar&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Dark Times: The Confederacy of Malkuth&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Humanoid&lt;br /&gt;
| dt_fol_lethe_demon&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_lethe_human&lt;br /&gt;
|-&lt;br /&gt;
| Thazulok&lt;br /&gt;
| Elf&lt;br /&gt;
| dt_fol_thazulok&lt;br /&gt;
|-&lt;br /&gt;
| Myrdo&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_myrdo&lt;br /&gt;
|-&lt;br /&gt;
| Fetch&lt;br /&gt;
| Dwarf&lt;br /&gt;
| dt_fol_fetch&lt;br /&gt;
|-&lt;br /&gt;
| Marukhan&lt;br /&gt;
| Werewolf&lt;br /&gt;
| dt_fol_marukhan&lt;br /&gt;
|-&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragonling&lt;br /&gt;
| dt_fol_dragon_i&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Valeria Addon&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Valeria&lt;br /&gt;
| Human&lt;br /&gt;
| valeria_npc&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=14072</id>
		<title>2DA ranges in use</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=14072"/>
				<updated>2010-10-22T19:38:19Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* tint_override */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is meant to enumerate row ID ranges that are used by the main game and by various popular addins, to avoid accidental overlap. See also [[Prefixes in use]] and [[Compatibility]].&lt;br /&gt;
&lt;br /&gt;
Note that there's no need for 2DA row IDs to be sequential, so you can use very large row ID numbers to reduce the chances of collision.&lt;br /&gt;
&lt;br /&gt;
Version 1.0 of the toolset had a bug in ExcelProcessor that caused problems with high row ID numbers, but this has been fixed in subsequent releases. See [[Bug: ExcelProcessor doesn't handle row IDs above 8.3 million correctly|the bug report]].&lt;br /&gt;
&lt;br /&gt;
As of now there is a bug that prevents ID's above 255 to be used for some M2DA's. Most certainly it is ''&amp;quot;only&amp;quot;'' [[ItemVariations.xls]] related. See [[Bug: High M2DA ID ranges might work in the toolset, but not in game|Bug report]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ABI_base ==&lt;br /&gt;
&lt;br /&gt;
According to the [[ABI_base]] page under the ''tooltipstrref'' column, anything over 500000 is considered a debuff. This would limit the range a fair amount.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 200262'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 50000 - 50001&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 51000 - 51002&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560500&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680250&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000 - 40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/2646/ 2 Handed Weapon Abilities for Arcane Warriors]&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/3637/ Dual Weapon Abilities for Arcane Warriors]&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/2644/ Weapon and Shield Abilities for Arcane Warriors]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AI_TacticsPresets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 9'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 15&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== ambient_ai ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| 1000000-1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ANIM_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 65000 - 65002&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== APR_base ==&lt;br /&gt;
&lt;br /&gt;
Note that there is a bug involving this 2DA: [[Bug: APR base maximum M2DA row ID is 65535 in the toolset]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 90'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 65000 - 65001&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|-&lt;br /&gt;
| 55000 - 57000&lt;br /&gt;
| World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
||-&lt;br /&gt;
| 65010 - 65025&lt;br /&gt;
| Mutantspicy Oracle and Enchanted Armor [Dragonage Nexus]&lt;br /&gt;
|--&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== BITM_base and ItemStats_ ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 30000 - 30500&lt;br /&gt;
| Ambaryerno - [http://social.bioware.com/project/415/ Arms and Armor]&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 40200&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 57000-59000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 50000 - 50100&lt;br /&gt;
| Feline Fuelled Games - (by Silk) [http://www.felinefuelledgames.de/ Feline Fuelled Games]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== CLA_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 25'''&lt;br /&gt;
| '''Bioware&lt;br /&gt;
|-&lt;br /&gt;
| 10000 - 10012&lt;br /&gt;
| Ladydesire&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== crafting_recipe_types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 7'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680020&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== crafting_recipes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 91'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680999&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== engineevents ==&lt;br /&gt;
&lt;br /&gt;
Those ranges relates to custom events types/ID and not to engineevents based [[Event_override|events overriding]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 500 - 500&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 510 - 511&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== guitypes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 600 - 600&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 601 - 601&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560050&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680010&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Heraldry ==&lt;br /&gt;
There is a [[Bug:_High_M2DA_ID_ranges_might_work_in_the_toolset,_but_not_in_game | bug]] with this table. The range 0-255 is known to work.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation] (using 201 onwards temporarily) &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== itemprps ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 10022'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 2000000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873322&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== itemsets ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 30'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680500&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 2000000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 7771000 - 7771500&lt;br /&gt;
| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth] (reserved by Starlight on Questorion's behalf)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ItemVariations (all) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 30'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000'''&lt;br /&gt;
| '''Bioware - reserved (guessed)'''&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 12100&lt;br /&gt;
| [http://social.bioware.com/project/1923/ Adonnay's Weaponry] (reserved by mikemike37 on his behalf)&lt;br /&gt;
|-&lt;br /&gt;
| 101000 - 400000&lt;br /&gt;
| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth] (reserved by Starlight on Questorion's behalf)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
note: ItemVariations are affected by the bug which prevents ID's above 255 from appearing properly in the game. See [[Bug: High M2DA ID ranges might work in the toolset, but not in game|Bug report]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== M2DA_base ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1016, 2000 - 2010, 10011 - 10142, ...? '''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5000 - 5014&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 100000 - 100000&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1907/ Event Manager]&lt;br /&gt;
|-&lt;br /&gt;
| 690000 - 690100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 2300000 - 2300100&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation] (M2DA prefix: COC)&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560050&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 5680050 - 5680055&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/3185/ Flexible craft UI]&lt;br /&gt;
|-&lt;br /&gt;
| 5681000 - 5681005&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/2896/ DACrafting framework]&lt;br /&gt;
|-&lt;br /&gt;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&lt;br /&gt;
|-&lt;br /&gt;
| 7000000 - 7000050&lt;br /&gt;
| FtG - [http://social.bioware.com/project/1688/ UI Mod]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000 - 7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone] &lt;br /&gt;
|-&lt;br /&gt;
| 7777770 - 7777799&lt;br /&gt;
| Magic - [http://social.bioware.com/project/1429/ Void Walker] (M2DA prefix: VWK)&lt;br /&gt;
|-&lt;br /&gt;
| 9000000 - 9000050&lt;br /&gt;
| Ambaryerno - [http://social.bioware.com/project/415/ Arms and Armor]&lt;br /&gt;
|- &lt;br /&gt;
| 30000000 - 40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1140150041 - 1140150091&lt;br /&gt;
| DLAN_Immortality - [http://social.bioware.com/project/789/ Ser Gilmore NPC]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== materialrules ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873323&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== materialtypes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 88'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680300&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873340&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PartyPicker ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 11'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''????'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 101-199&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| 200 - 299&lt;br /&gt;
| DA Workshop / Author: frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 300 - 350&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 6900000 - 6900200&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PRCSCR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 690000 - 690100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 10100000&lt;br /&gt;
| Camp [http://social.bioware.com/project/463/ storage chest]&lt;br /&gt;
|-&lt;br /&gt;
| 10100011-10100013&lt;br /&gt;
| Didymos' [http://social.bioware.com/project/2620/ Camp Merchant Chest]&lt;br /&gt;
|-&lt;br /&gt;
| 10100014-10100016&lt;br /&gt;
| Didymos' [http://social.bioware.com/project/2717/ Item Sets Fix]&lt;br /&gt;
|-&lt;br /&gt;
| 10100100-10100110&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680020&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 1140150041 - 1140150091&lt;br /&gt;
| DLAN_Immortality - [http://social.bioware.com/project/789/ Ser Gilmore NPC]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 2000000-2000050&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=942 Oracle,mutantspicy's magic vault, and other custom armors]&lt;br /&gt;
|-&lt;br /&gt;
| 42006090 - 42006100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1120 Morrigan Restoration Patch]&lt;br /&gt;
|-&lt;br /&gt;
| 1109197751 - 1109197799&lt;br /&gt;
| Schwinni - [http://dragonagenexus.com/downloads/file.php?id=1020 Awakening Runes Fixes], [http://dragonagenexus.com/downloads/file.php?id=1112 Awakening Blackblade Armor Dragon Drop Fix]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== placeable_types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 43050-43061&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]  (Greater 65535 is showing bugs so this is until it is fixed)&lt;br /&gt;
|-&lt;br /&gt;
| 43062-43065&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|-&lt;br /&gt;
| 56000-56200&lt;br /&gt;
| [http://social.bioware.com/project/2472/#details Mikes Invisible Boxes]&lt;br /&gt;
|-&lt;br /&gt;
| 2696549 - 2696700&lt;br /&gt;
| PavelNovotny - [http://social.bioware.com/project/517/ Gay Bars of Ferelden] (NOTE: I'm using the 6000-6200 range until Bioware fixes the bug which prevents m2da ID ranges above 900000 from showing up in game.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / Author: frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PRJ_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tint_override ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 500 - 520&lt;br /&gt;
| PavelNovotny - [http://social.bioware.com/project/517/ Gay Bars of Ferelden]&lt;br /&gt;
|-&lt;br /&gt;
| 6900 - 6920&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001-1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1109197701 - 1109197750&lt;br /&gt;
| Schwinni - [http://dragonagenexus.com/downloads/file.php?id=1064 Helmets without wings and retints]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ts_material ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TS_Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680005&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vfx_base ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680010&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 5680011 - 5680019&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=14071</id>
		<title>2DA ranges in use</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=14071"/>
				<updated>2010-10-22T19:34:41Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* PRCSCR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is meant to enumerate row ID ranges that are used by the main game and by various popular addins, to avoid accidental overlap. See also [[Prefixes in use]] and [[Compatibility]].&lt;br /&gt;
&lt;br /&gt;
Note that there's no need for 2DA row IDs to be sequential, so you can use very large row ID numbers to reduce the chances of collision.&lt;br /&gt;
&lt;br /&gt;
Version 1.0 of the toolset had a bug in ExcelProcessor that caused problems with high row ID numbers, but this has been fixed in subsequent releases. See [[Bug: ExcelProcessor doesn't handle row IDs above 8.3 million correctly|the bug report]].&lt;br /&gt;
&lt;br /&gt;
As of now there is a bug that prevents ID's above 255 to be used for some M2DA's. Most certainly it is ''&amp;quot;only&amp;quot;'' [[ItemVariations.xls]] related. See [[Bug: High M2DA ID ranges might work in the toolset, but not in game|Bug report]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ABI_base ==&lt;br /&gt;
&lt;br /&gt;
According to the [[ABI_base]] page under the ''tooltipstrref'' column, anything over 500000 is considered a debuff. This would limit the range a fair amount.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 200262'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 50000 - 50001&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 51000 - 51002&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560500&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680250&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000 - 40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/2646/ 2 Handed Weapon Abilities for Arcane Warriors]&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/3637/ Dual Weapon Abilities for Arcane Warriors]&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/2644/ Weapon and Shield Abilities for Arcane Warriors]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AI_TacticsPresets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 9'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 15&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== ambient_ai ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| 1000000-1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ANIM_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 65000 - 65002&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== APR_base ==&lt;br /&gt;
&lt;br /&gt;
Note that there is a bug involving this 2DA: [[Bug: APR base maximum M2DA row ID is 65535 in the toolset]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 90'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 65000 - 65001&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|-&lt;br /&gt;
| 55000 - 57000&lt;br /&gt;
| World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
||-&lt;br /&gt;
| 65010 - 65025&lt;br /&gt;
| Mutantspicy Oracle and Enchanted Armor [Dragonage Nexus]&lt;br /&gt;
|--&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== BITM_base and ItemStats_ ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 30000 - 30500&lt;br /&gt;
| Ambaryerno - [http://social.bioware.com/project/415/ Arms and Armor]&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 40200&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 57000-59000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 50000 - 50100&lt;br /&gt;
| Feline Fuelled Games - (by Silk) [http://www.felinefuelledgames.de/ Feline Fuelled Games]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== CLA_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 25'''&lt;br /&gt;
| '''Bioware&lt;br /&gt;
|-&lt;br /&gt;
| 10000 - 10012&lt;br /&gt;
| Ladydesire&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== crafting_recipe_types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 7'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680020&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== crafting_recipes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 91'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680999&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== engineevents ==&lt;br /&gt;
&lt;br /&gt;
Those ranges relates to custom events types/ID and not to engineevents based [[Event_override|events overriding]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 500 - 500&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 510 - 511&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== guitypes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 600 - 600&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 601 - 601&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560050&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680010&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Heraldry ==&lt;br /&gt;
There is a [[Bug:_High_M2DA_ID_ranges_might_work_in_the_toolset,_but_not_in_game | bug]] with this table. The range 0-255 is known to work.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation] (using 201 onwards temporarily) &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== itemprps ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 10022'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 2000000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873322&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== itemsets ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 30'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680500&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 2000000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 7771000 - 7771500&lt;br /&gt;
| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth] (reserved by Starlight on Questorion's behalf)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ItemVariations (all) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 30'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000'''&lt;br /&gt;
| '''Bioware - reserved (guessed)'''&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 12100&lt;br /&gt;
| [http://social.bioware.com/project/1923/ Adonnay's Weaponry] (reserved by mikemike37 on his behalf)&lt;br /&gt;
|-&lt;br /&gt;
| 101000 - 400000&lt;br /&gt;
| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth] (reserved by Starlight on Questorion's behalf)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
note: ItemVariations are affected by the bug which prevents ID's above 255 from appearing properly in the game. See [[Bug: High M2DA ID ranges might work in the toolset, but not in game|Bug report]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== M2DA_base ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1016, 2000 - 2010, 10011 - 10142, ...? '''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5000 - 5014&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 100000 - 100000&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1907/ Event Manager]&lt;br /&gt;
|-&lt;br /&gt;
| 690000 - 690100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 2300000 - 2300100&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation] (M2DA prefix: COC)&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560050&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 5680050 - 5680055&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/3185/ Flexible craft UI]&lt;br /&gt;
|-&lt;br /&gt;
| 5681000 - 5681005&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/2896/ DACrafting framework]&lt;br /&gt;
|-&lt;br /&gt;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&lt;br /&gt;
|-&lt;br /&gt;
| 7000000 - 7000050&lt;br /&gt;
| FtG - [http://social.bioware.com/project/1688/ UI Mod]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000 - 7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone] &lt;br /&gt;
|-&lt;br /&gt;
| 7777770 - 7777799&lt;br /&gt;
| Magic - [http://social.bioware.com/project/1429/ Void Walker] (M2DA prefix: VWK)&lt;br /&gt;
|-&lt;br /&gt;
| 9000000 - 9000050&lt;br /&gt;
| Ambaryerno - [http://social.bioware.com/project/415/ Arms and Armor]&lt;br /&gt;
|- &lt;br /&gt;
| 30000000 - 40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1140150041 - 1140150091&lt;br /&gt;
| DLAN_Immortality - [http://social.bioware.com/project/789/ Ser Gilmore NPC]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== materialrules ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873323&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== materialtypes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 88'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680300&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873340&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PartyPicker ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 11'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''????'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 101-199&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| 200 - 299&lt;br /&gt;
| DA Workshop / Author: frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 300 - 350&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 6900000 - 6900200&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PRCSCR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 690000 - 690100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 10100000&lt;br /&gt;
| Camp [http://social.bioware.com/project/463/ storage chest]&lt;br /&gt;
|-&lt;br /&gt;
| 10100011-10100013&lt;br /&gt;
| Didymos' [http://social.bioware.com/project/2620/ Camp Merchant Chest]&lt;br /&gt;
|-&lt;br /&gt;
| 10100014-10100016&lt;br /&gt;
| Didymos' [http://social.bioware.com/project/2717/ Item Sets Fix]&lt;br /&gt;
|-&lt;br /&gt;
| 10100100-10100110&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680020&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 1140150041 - 1140150091&lt;br /&gt;
| DLAN_Immortality - [http://social.bioware.com/project/789/ Ser Gilmore NPC]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 2000000-2000050&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=942 Oracle,mutantspicy's magic vault, and other custom armors]&lt;br /&gt;
|-&lt;br /&gt;
| 42006090 - 42006100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1120 Morrigan Restoration Patch]&lt;br /&gt;
|-&lt;br /&gt;
| 1109197751 - 1109197799&lt;br /&gt;
| Schwinni - [http://dragonagenexus.com/downloads/file.php?id=1020 Awakening Runes Fixes], [http://dragonagenexus.com/downloads/file.php?id=1112 Awakening Blackblade Armor Dragon Drop Fix]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== placeable_types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 43050-43061&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]  (Greater 65535 is showing bugs so this is until it is fixed)&lt;br /&gt;
|-&lt;br /&gt;
| 43062-43065&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|-&lt;br /&gt;
| 56000-56200&lt;br /&gt;
| [http://social.bioware.com/project/2472/#details Mikes Invisible Boxes]&lt;br /&gt;
|-&lt;br /&gt;
| 2696549 - 2696700&lt;br /&gt;
| PavelNovotny - [http://social.bioware.com/project/517/ Gay Bars of Ferelden] (NOTE: I'm using the 6000-6200 range until Bioware fixes the bug which prevents m2da ID ranges above 900000 from showing up in game.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / Author: frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PRJ_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tint_override ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 500 - 520&lt;br /&gt;
| PavelNovotny - [http://social.bioware.com/project/517/ Gay Bars of Ferelden]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001-1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1109197701 - 1109197750&lt;br /&gt;
| Schwinni - [http://dragonagenexus.com/downloads/file.php?id=1064 Helmets without wings and retints]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ts_material ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TS_Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680005&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vfx_base ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680010&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 5680011 - 5680019&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=14070</id>
		<title>2DA ranges in use</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=14070"/>
				<updated>2010-10-22T19:32:47Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* PartyPicker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is meant to enumerate row ID ranges that are used by the main game and by various popular addins, to avoid accidental overlap. See also [[Prefixes in use]] and [[Compatibility]].&lt;br /&gt;
&lt;br /&gt;
Note that there's no need for 2DA row IDs to be sequential, so you can use very large row ID numbers to reduce the chances of collision.&lt;br /&gt;
&lt;br /&gt;
Version 1.0 of the toolset had a bug in ExcelProcessor that caused problems with high row ID numbers, but this has been fixed in subsequent releases. See [[Bug: ExcelProcessor doesn't handle row IDs above 8.3 million correctly|the bug report]].&lt;br /&gt;
&lt;br /&gt;
As of now there is a bug that prevents ID's above 255 to be used for some M2DA's. Most certainly it is ''&amp;quot;only&amp;quot;'' [[ItemVariations.xls]] related. See [[Bug: High M2DA ID ranges might work in the toolset, but not in game|Bug report]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ABI_base ==&lt;br /&gt;
&lt;br /&gt;
According to the [[ABI_base]] page under the ''tooltipstrref'' column, anything over 500000 is considered a debuff. This would limit the range a fair amount.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 200262'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 50000 - 50001&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 51000 - 51002&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560500&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680250&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000 - 40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/2646/ 2 Handed Weapon Abilities for Arcane Warriors]&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/3637/ Dual Weapon Abilities for Arcane Warriors]&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/2644/ Weapon and Shield Abilities for Arcane Warriors]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AI_TacticsPresets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 9'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 15&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== ambient_ai ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| 1000000-1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ANIM_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 65000 - 65002&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== APR_base ==&lt;br /&gt;
&lt;br /&gt;
Note that there is a bug involving this 2DA: [[Bug: APR base maximum M2DA row ID is 65535 in the toolset]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 90'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 65000 - 65001&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|-&lt;br /&gt;
| 55000 - 57000&lt;br /&gt;
| World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
||-&lt;br /&gt;
| 65010 - 65025&lt;br /&gt;
| Mutantspicy Oracle and Enchanted Armor [Dragonage Nexus]&lt;br /&gt;
|--&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== BITM_base and ItemStats_ ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 30000 - 30500&lt;br /&gt;
| Ambaryerno - [http://social.bioware.com/project/415/ Arms and Armor]&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 40200&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 57000-59000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 50000 - 50100&lt;br /&gt;
| Feline Fuelled Games - (by Silk) [http://www.felinefuelledgames.de/ Feline Fuelled Games]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== CLA_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 25'''&lt;br /&gt;
| '''Bioware&lt;br /&gt;
|-&lt;br /&gt;
| 10000 - 10012&lt;br /&gt;
| Ladydesire&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== crafting_recipe_types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 7'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680020&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== crafting_recipes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 91'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680999&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== engineevents ==&lt;br /&gt;
&lt;br /&gt;
Those ranges relates to custom events types/ID and not to engineevents based [[Event_override|events overriding]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 500 - 500&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 510 - 511&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== guitypes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 600 - 600&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 601 - 601&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560050&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680010&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Heraldry ==&lt;br /&gt;
There is a [[Bug:_High_M2DA_ID_ranges_might_work_in_the_toolset,_but_not_in_game | bug]] with this table. The range 0-255 is known to work.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation] (using 201 onwards temporarily) &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== itemprps ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 10022'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 2000000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873322&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== itemsets ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 30'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680500&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 2000000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 7771000 - 7771500&lt;br /&gt;
| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth] (reserved by Starlight on Questorion's behalf)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ItemVariations (all) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 30'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000'''&lt;br /&gt;
| '''Bioware - reserved (guessed)'''&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 12100&lt;br /&gt;
| [http://social.bioware.com/project/1923/ Adonnay's Weaponry] (reserved by mikemike37 on his behalf)&lt;br /&gt;
|-&lt;br /&gt;
| 101000 - 400000&lt;br /&gt;
| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth] (reserved by Starlight on Questorion's behalf)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
note: ItemVariations are affected by the bug which prevents ID's above 255 from appearing properly in the game. See [[Bug: High M2DA ID ranges might work in the toolset, but not in game|Bug report]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== M2DA_base ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1016, 2000 - 2010, 10011 - 10142, ...? '''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5000 - 5014&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 100000 - 100000&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1907/ Event Manager]&lt;br /&gt;
|-&lt;br /&gt;
| 690000 - 690100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 2300000 - 2300100&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation] (M2DA prefix: COC)&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560050&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 5680050 - 5680055&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/3185/ Flexible craft UI]&lt;br /&gt;
|-&lt;br /&gt;
| 5681000 - 5681005&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/2896/ DACrafting framework]&lt;br /&gt;
|-&lt;br /&gt;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&lt;br /&gt;
|-&lt;br /&gt;
| 7000000 - 7000050&lt;br /&gt;
| FtG - [http://social.bioware.com/project/1688/ UI Mod]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000 - 7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone] &lt;br /&gt;
|-&lt;br /&gt;
| 7777770 - 7777799&lt;br /&gt;
| Magic - [http://social.bioware.com/project/1429/ Void Walker] (M2DA prefix: VWK)&lt;br /&gt;
|-&lt;br /&gt;
| 9000000 - 9000050&lt;br /&gt;
| Ambaryerno - [http://social.bioware.com/project/415/ Arms and Armor]&lt;br /&gt;
|- &lt;br /&gt;
| 30000000 - 40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1140150041 - 1140150091&lt;br /&gt;
| DLAN_Immortality - [http://social.bioware.com/project/789/ Ser Gilmore NPC]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== materialrules ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873323&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== materialtypes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 88'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680300&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873340&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PartyPicker ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 11'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''????'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 101-199&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| 200 - 299&lt;br /&gt;
| DA Workshop / Author: frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 300 - 350&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 6900000 - 6900200&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PRCSCR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 10100000&lt;br /&gt;
| Camp [http://social.bioware.com/project/463/ storage chest]&lt;br /&gt;
|-&lt;br /&gt;
| 10100011-10100013&lt;br /&gt;
| Didymos' [http://social.bioware.com/project/2620/ Camp Merchant Chest]&lt;br /&gt;
|-&lt;br /&gt;
| 10100014-10100016&lt;br /&gt;
| Didymos' [http://social.bioware.com/project/2717/ Item Sets Fix]&lt;br /&gt;
|-&lt;br /&gt;
| 10100100-10100110&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680020&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 1140150041 - 1140150091&lt;br /&gt;
| DLAN_Immortality - [http://social.bioware.com/project/789/ Ser Gilmore NPC]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 2000000-2000050&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=942 Oracle,mutantspicy's magic vault, and other custom armors]&lt;br /&gt;
|-&lt;br /&gt;
| 42006090 - 42006100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1120 Morrigan Restoration Patch]&lt;br /&gt;
|-&lt;br /&gt;
| 1109197751 - 1109197799&lt;br /&gt;
| Schwinni - [http://dragonagenexus.com/downloads/file.php?id=1020 Awakening Runes Fixes], [http://dragonagenexus.com/downloads/file.php?id=1112 Awakening Blackblade Armor Dragon Drop Fix]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== placeable_types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 43050-43061&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]  (Greater 65535 is showing bugs so this is until it is fixed)&lt;br /&gt;
|-&lt;br /&gt;
| 43062-43065&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|-&lt;br /&gt;
| 56000-56200&lt;br /&gt;
| [http://social.bioware.com/project/2472/#details Mikes Invisible Boxes]&lt;br /&gt;
|-&lt;br /&gt;
| 2696549 - 2696700&lt;br /&gt;
| PavelNovotny - [http://social.bioware.com/project/517/ Gay Bars of Ferelden] (NOTE: I'm using the 6000-6200 range until Bioware fixes the bug which prevents m2da ID ranges above 900000 from showing up in game.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / Author: frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PRJ_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tint_override ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 500 - 520&lt;br /&gt;
| PavelNovotny - [http://social.bioware.com/project/517/ Gay Bars of Ferelden]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001-1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1109197701 - 1109197750&lt;br /&gt;
| Schwinni - [http://dragonagenexus.com/downloads/file.php?id=1064 Helmets without wings and retints]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ts_material ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TS_Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680005&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vfx_base ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680010&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 5680011 - 5680019&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=14069</id>
		<title>2DA ranges in use</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=14069"/>
				<updated>2010-10-22T19:30:55Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* M2DA_base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is meant to enumerate row ID ranges that are used by the main game and by various popular addins, to avoid accidental overlap. See also [[Prefixes in use]] and [[Compatibility]].&lt;br /&gt;
&lt;br /&gt;
Note that there's no need for 2DA row IDs to be sequential, so you can use very large row ID numbers to reduce the chances of collision.&lt;br /&gt;
&lt;br /&gt;
Version 1.0 of the toolset had a bug in ExcelProcessor that caused problems with high row ID numbers, but this has been fixed in subsequent releases. See [[Bug: ExcelProcessor doesn't handle row IDs above 8.3 million correctly|the bug report]].&lt;br /&gt;
&lt;br /&gt;
As of now there is a bug that prevents ID's above 255 to be used for some M2DA's. Most certainly it is ''&amp;quot;only&amp;quot;'' [[ItemVariations.xls]] related. See [[Bug: High M2DA ID ranges might work in the toolset, but not in game|Bug report]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ABI_base ==&lt;br /&gt;
&lt;br /&gt;
According to the [[ABI_base]] page under the ''tooltipstrref'' column, anything over 500000 is considered a debuff. This would limit the range a fair amount.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 200262'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 50000 - 50001&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 51000 - 51002&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560500&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680250&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000 - 40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/2646/ 2 Handed Weapon Abilities for Arcane Warriors]&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/3637/ Dual Weapon Abilities for Arcane Warriors]&lt;br /&gt;
|-&lt;br /&gt;
| 300000-300047&lt;br /&gt;
| rebel5555's [http://social.bioware.com/project/2644/ Weapon and Shield Abilities for Arcane Warriors]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AI_TacticsPresets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 9'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 15&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== ambient_ai ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| 1000000-1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ANIM_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 65000 - 65002&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== APR_base ==&lt;br /&gt;
&lt;br /&gt;
Note that there is a bug involving this 2DA: [[Bug: APR base maximum M2DA row ID is 65535 in the toolset]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 90'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 65000 - 65001&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|-&lt;br /&gt;
| 55000 - 57000&lt;br /&gt;
| World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
||-&lt;br /&gt;
| 65010 - 65025&lt;br /&gt;
| Mutantspicy Oracle and Enchanted Armor [Dragonage Nexus]&lt;br /&gt;
|--&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== BITM_base and ItemStats_ ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 30000 - 30500&lt;br /&gt;
| Ambaryerno - [http://social.bioware.com/project/415/ Arms and Armor]&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 40200&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 57000-59000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 50000 - 50100&lt;br /&gt;
| Feline Fuelled Games - (by Silk) [http://www.felinefuelledgames.de/ Feline Fuelled Games]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== CLA_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 25'''&lt;br /&gt;
| '''Bioware&lt;br /&gt;
|-&lt;br /&gt;
| 10000 - 10012&lt;br /&gt;
| Ladydesire&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== crafting_recipe_types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 7'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680020&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== crafting_recipes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 91'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680999&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== engineevents ==&lt;br /&gt;
&lt;br /&gt;
Those ranges relates to custom events types/ID and not to engineevents based [[Event_override|events overriding]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 500 - 500&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 510 - 511&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== guitypes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 600 - 600&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 601 - 601&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1888/ Advanced Quickbar]&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560050&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680010&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Heraldry ==&lt;br /&gt;
There is a [[Bug:_High_M2DA_ID_ranges_might_work_in_the_toolset,_but_not_in_game | bug]] with this table. The range 0-255 is known to work.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation] (using 201 onwards temporarily) &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== itemprps ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 10022'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 2000000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873322&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== itemsets ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 30'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680500&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 2000000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 7771000 - 7771500&lt;br /&gt;
| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth] (reserved by Starlight on Questorion's behalf)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ItemVariations (all) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 30'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000'''&lt;br /&gt;
| '''Bioware - reserved (guessed)'''&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 12100&lt;br /&gt;
| [http://social.bioware.com/project/1923/ Adonnay's Weaponry] (reserved by mikemike37 on his behalf)&lt;br /&gt;
|-&lt;br /&gt;
| 101000 - 400000&lt;br /&gt;
| [http://social.bioware.com/project/2157/ Dark Times: The Confederacy of Malkuth] (reserved by Starlight on Questorion's behalf)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
note: ItemVariations are affected by the bug which prevents ID's above 255 from appearing properly in the game. See [[Bug: High M2DA ID ranges might work in the toolset, but not in game|Bug report]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== M2DA_base ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1016, 2000 - 2010, 10011 - 10142, ...? '''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5000 - 5014&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/861/ Advanced Tactics]&lt;br /&gt;
|-&lt;br /&gt;
| 37000 - 38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 100000 - 100000&lt;br /&gt;
| Anakin's [http://social.bioware.com/project/1907/ Event Manager]&lt;br /&gt;
|-&lt;br /&gt;
| 690000 - 690100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1617 Karma's Origins Companions]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 2300000 - 2300100&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation] (M2DA prefix: COC)&lt;br /&gt;
|-&lt;br /&gt;
| 2560000 - 2560050&lt;br /&gt;
| Timelord's [http://social.bioware.com/project/1845/ Blood and Lyrium]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 5680050 - 5680055&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/3185/ Flexible craft UI]&lt;br /&gt;
|-&lt;br /&gt;
| 5681000 - 5681005&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/2896/ DACrafting framework]&lt;br /&gt;
|-&lt;br /&gt;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&lt;br /&gt;
|-&lt;br /&gt;
| 7000000 - 7000050&lt;br /&gt;
| FtG - [http://social.bioware.com/project/1688/ UI Mod]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000 - 7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone] &lt;br /&gt;
|-&lt;br /&gt;
| 7777770 - 7777799&lt;br /&gt;
| Magic - [http://social.bioware.com/project/1429/ Void Walker] (M2DA prefix: VWK)&lt;br /&gt;
|-&lt;br /&gt;
| 9000000 - 9000050&lt;br /&gt;
| Ambaryerno - [http://social.bioware.com/project/415/ Arms and Armor]&lt;br /&gt;
|- &lt;br /&gt;
| 30000000 - 40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1140150041 - 1140150091&lt;br /&gt;
| DLAN_Immortality - [http://social.bioware.com/project/789/ Ser Gilmore NPC]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== materialrules ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873323&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== materialtypes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 88'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680300&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 536873321 - 536873340&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PartyPicker ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 11'''&lt;br /&gt;
| '''Bioware - Main campaign'''&lt;br /&gt;
|-&lt;br /&gt;
| '''????'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 101-199&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| 200 - 299&lt;br /&gt;
| DA Workshop / Author: frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 300 - 350&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PRCSCR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 10100000&lt;br /&gt;
| Camp [http://social.bioware.com/project/463/ storage chest]&lt;br /&gt;
|-&lt;br /&gt;
| 10100011-10100013&lt;br /&gt;
| Didymos' [http://social.bioware.com/project/2620/ Camp Merchant Chest]&lt;br /&gt;
|-&lt;br /&gt;
| 10100014-10100016&lt;br /&gt;
| Didymos' [http://social.bioware.com/project/2717/ Item Sets Fix]&lt;br /&gt;
|-&lt;br /&gt;
| 10100100-10100110&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680020&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 1140150041 - 1140150091&lt;br /&gt;
| DLAN_Immortality - [http://social.bioware.com/project/789/ Ser Gilmore NPC]&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 2000000-2000050&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=942 Oracle,mutantspicy's magic vault, and other custom armors]&lt;br /&gt;
|-&lt;br /&gt;
| 42006090 - 42006100&lt;br /&gt;
| [http://www.dragonagenexus.com/downloads/file.php?id=1120 Morrigan Restoration Patch]&lt;br /&gt;
|-&lt;br /&gt;
| 1109197751 - 1109197799&lt;br /&gt;
| Schwinni - [http://dragonagenexus.com/downloads/file.php?id=1020 Awakening Runes Fixes], [http://dragonagenexus.com/downloads/file.php?id=1112 Awakening Blackblade Armor Dragon Drop Fix]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== placeable_types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 43050-43061&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]  (Greater 65535 is showing bugs so this is until it is fixed)&lt;br /&gt;
|-&lt;br /&gt;
| 43062-43065&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|-&lt;br /&gt;
| 56000-56200&lt;br /&gt;
| [http://social.bioware.com/project/2472/#details Mikes Invisible Boxes]&lt;br /&gt;
|-&lt;br /&gt;
| 2696549 - 2696700&lt;br /&gt;
| PavelNovotny - [http://social.bioware.com/project/517/ Gay Bars of Ferelden] (NOTE: I'm using the 6000-6200 range until Bioware fixes the bug which prevents m2da ID ranges above 900000 from showing up in game.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / Author: frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PRJ_base ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680050&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tint_override ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 500 - 520&lt;br /&gt;
| PavelNovotny - [http://social.bioware.com/project/517/ Gay Bars of Ferelden]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001-1001000&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 1109197701 - 1109197750&lt;br /&gt;
| Schwinni - [http://dragonagenexus.com/downloads/file.php?id=1064 Helmets without wings and retints]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ts_material ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields], [http://www.dragonagenexus.com/downloads/file.php?id=793 Leliana Item Set]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TS_Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680005&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 1000001 - 1100000&lt;br /&gt;
| DA Workshop / by frosti [http://www.dragon-age-workshop.de/forum/viewforum.php?f=19/ Icewind Dale Remake]&lt;br /&gt;
|-&lt;br /&gt;
| 7570000-7770000&lt;br /&gt;
| [World of Grone (by Shodushi) [http://social.bioware.com/project/2194/ World of Grone]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vfx_base ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Range&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| '''0 - 1000000'''&lt;br /&gt;
| '''Bioware - reserved'''&lt;br /&gt;
|-&lt;br /&gt;
| 37000-38000&lt;br /&gt;
| [http://bg2redux.student.utwente.nl/trac/wiki Baldur's Gate Redux]&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680010&lt;br /&gt;
| Phaenan's [http://social.bioware.com/project/672/ The Winter Forge]&lt;br /&gt;
|-&lt;br /&gt;
| 5680011 - 5680019&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13760</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13760"/>
				<updated>2010-09-27T00:33:37Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Basic Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that the common core dialogues (listed below) contain the additional lines for the other companion mods (also listed below).&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- cir300_sloth_demon.dlg&lt;br /&gt;
&lt;br /&gt;
- urn230_guardian.dlg&lt;br /&gt;
 &lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Cullen&lt;br /&gt;
| Human&lt;br /&gt;
| kc_cir230cr_cullen&lt;br /&gt;
|-&lt;br /&gt;
| Jowan&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhm100cr_jowan&lt;br /&gt;
|-&lt;br /&gt;
| Gorim&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdn120cr_gorim&lt;br /&gt;
|-&lt;br /&gt;
| Ser Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhn100cr_gilmore&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Ser Roland Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| ser_gilmore_lbc&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lealion&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lealion&lt;br /&gt;
|-&lt;br /&gt;
| Legion&lt;br /&gt;
| Dog&lt;br /&gt;
| gen00fl_legion&lt;br /&gt;
|-&lt;br /&gt;
| Lanna&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lanna&lt;br /&gt;
|-&lt;br /&gt;
| Marric&lt;br /&gt;
| Elf&lt;br /&gt;
| gen00fl_marric&lt;br /&gt;
|-&lt;br /&gt;
| Martin&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_martin&lt;br /&gt;
|-&lt;br /&gt;
| Willam&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_willam&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Saarebas&lt;br /&gt;
| Qunari&lt;br /&gt;
| gen00fl_saarebas&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Douglas&lt;br /&gt;
| Human&lt;br /&gt;
| party_douglas&lt;br /&gt;
|-&lt;br /&gt;
| Ser Kenneth&lt;br /&gt;
| Human&lt;br /&gt;
| party_serken&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Chris&lt;br /&gt;
| Human&lt;br /&gt;
| chrischar&lt;br /&gt;
|-&lt;br /&gt;
| Lucius&lt;br /&gt;
| Human&lt;br /&gt;
| luciuschar&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Dark Times: The Confederacy of Malkuth&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Humanoid&lt;br /&gt;
| dt_fol_lethe_demon&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_lethe_human&lt;br /&gt;
|-&lt;br /&gt;
| Thazulok&lt;br /&gt;
| Elf&lt;br /&gt;
| dt_fol_thazulok&lt;br /&gt;
|-&lt;br /&gt;
| Myrdo&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_myrdo&lt;br /&gt;
|-&lt;br /&gt;
| Fetch&lt;br /&gt;
| Dwarf&lt;br /&gt;
| dt_fol_fetch&lt;br /&gt;
|-&lt;br /&gt;
| Marukhan&lt;br /&gt;
| Werewolf&lt;br /&gt;
| dt_fol_marukhan&lt;br /&gt;
|-&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragonling&lt;br /&gt;
| dt_fol_dragon_i&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Valeria Addon&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Valeria&lt;br /&gt;
| Human&lt;br /&gt;
| valeria_npc&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13759</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13759"/>
				<updated>2010-09-26T22:28:09Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Common Core Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- cir300_sloth_demon.dlg&lt;br /&gt;
&lt;br /&gt;
- urn230_guardian.dlg&lt;br /&gt;
 &lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Cullen&lt;br /&gt;
| Human&lt;br /&gt;
| kc_cir230cr_cullen&lt;br /&gt;
|-&lt;br /&gt;
| Jowan&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhm100cr_jowan&lt;br /&gt;
|-&lt;br /&gt;
| Gorim&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdn120cr_gorim&lt;br /&gt;
|-&lt;br /&gt;
| Ser Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhn100cr_gilmore&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Ser Roland Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| ser_gilmore_lbc&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lealion&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lealion&lt;br /&gt;
|-&lt;br /&gt;
| Legion&lt;br /&gt;
| Dog&lt;br /&gt;
| gen00fl_legion&lt;br /&gt;
|-&lt;br /&gt;
| Lanna&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lanna&lt;br /&gt;
|-&lt;br /&gt;
| Marric&lt;br /&gt;
| Elf&lt;br /&gt;
| gen00fl_marric&lt;br /&gt;
|-&lt;br /&gt;
| Martin&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_martin&lt;br /&gt;
|-&lt;br /&gt;
| Willam&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_willam&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Saarebas&lt;br /&gt;
| Qunari&lt;br /&gt;
| gen00fl_saarebas&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Douglas&lt;br /&gt;
| Human&lt;br /&gt;
| party_douglas&lt;br /&gt;
|-&lt;br /&gt;
| Ser Kenneth&lt;br /&gt;
| Human&lt;br /&gt;
| party_serken&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Chris&lt;br /&gt;
| Human&lt;br /&gt;
| chrischar&lt;br /&gt;
|-&lt;br /&gt;
| Lucius&lt;br /&gt;
| Human&lt;br /&gt;
| luciuschar&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Dark Times: The Confederacy of Malkuth&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Humanoid&lt;br /&gt;
| dt_fol_lethe_demon&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_lethe_human&lt;br /&gt;
|-&lt;br /&gt;
| Thazulok&lt;br /&gt;
| Elf&lt;br /&gt;
| dt_fol_thazulok&lt;br /&gt;
|-&lt;br /&gt;
| Myrdo&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_myrdo&lt;br /&gt;
|-&lt;br /&gt;
| Fetch&lt;br /&gt;
| Dwarf&lt;br /&gt;
| dt_fol_fetch&lt;br /&gt;
|-&lt;br /&gt;
| Marukhan&lt;br /&gt;
| Werewolf&lt;br /&gt;
| dt_fol_marukhan&lt;br /&gt;
|-&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragonling&lt;br /&gt;
| dt_fol_dragon_i&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Valeria Addon&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Valeria&lt;br /&gt;
| Human&lt;br /&gt;
| valeria_npc&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13758</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13758"/>
				<updated>2010-09-26T22:10:23Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Companion Names, Races, &amp;amp; Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues) &lt;br /&gt;
&lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Cullen&lt;br /&gt;
| Human&lt;br /&gt;
| kc_cir230cr_cullen&lt;br /&gt;
|-&lt;br /&gt;
| Jowan&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhm100cr_jowan&lt;br /&gt;
|-&lt;br /&gt;
| Gorim&lt;br /&gt;
| Dwarf&lt;br /&gt;
| kc_bdn120cr_gorim&lt;br /&gt;
|-&lt;br /&gt;
| Ser Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| kc_bhn100cr_gilmore&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Ser Roland Gilmore&lt;br /&gt;
| Human&lt;br /&gt;
| ser_gilmore_lbc&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lealion&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lealion&lt;br /&gt;
|-&lt;br /&gt;
| Legion&lt;br /&gt;
| Dog&lt;br /&gt;
| gen00fl_legion&lt;br /&gt;
|-&lt;br /&gt;
| Lanna&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_lanna&lt;br /&gt;
|-&lt;br /&gt;
| Marric&lt;br /&gt;
| Elf&lt;br /&gt;
| gen00fl_marric&lt;br /&gt;
|-&lt;br /&gt;
| Martin&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_martin&lt;br /&gt;
|-&lt;br /&gt;
| Willam&lt;br /&gt;
| Human&lt;br /&gt;
| gen00fl_willam&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Saarebas&lt;br /&gt;
| Qunari&lt;br /&gt;
| gen00fl_saarebas&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Douglas&lt;br /&gt;
| Human&lt;br /&gt;
| party_douglas&lt;br /&gt;
|-&lt;br /&gt;
| Ser Kenneth&lt;br /&gt;
| Human&lt;br /&gt;
| party_serken&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| [http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Chris&lt;br /&gt;
| Human&lt;br /&gt;
| chrischar&lt;br /&gt;
|-&lt;br /&gt;
| Lucius&lt;br /&gt;
| Human&lt;br /&gt;
| luciuschar&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Dark Times: The Confederacy of Malkuth&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Humanoid&lt;br /&gt;
| dt_fol_lethe_demon&lt;br /&gt;
|-&lt;br /&gt;
| Lethe&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_lethe_human&lt;br /&gt;
|-&lt;br /&gt;
| Thazulok&lt;br /&gt;
| Elf&lt;br /&gt;
| dt_fol_thazulok&lt;br /&gt;
|-&lt;br /&gt;
| Myrdo&lt;br /&gt;
| Human&lt;br /&gt;
| dt_fol_myrdo&lt;br /&gt;
|-&lt;br /&gt;
| Fetch&lt;br /&gt;
| Dwarf&lt;br /&gt;
| dt_fol_fetch&lt;br /&gt;
|-&lt;br /&gt;
| Marukhan&lt;br /&gt;
| Werewolf&lt;br /&gt;
| dt_fol_marukhan&lt;br /&gt;
|-&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragonling&lt;br /&gt;
| dt_fol_dragon_i&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Valeria Addon&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Race&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Tag&lt;br /&gt;
|-&lt;br /&gt;
| Valeria&lt;br /&gt;
| Human&lt;br /&gt;
| valeria_npc&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13757</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13757"/>
				<updated>2010-09-26T21:33:20Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Common Core Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues) &lt;br /&gt;
&lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda) [included only so that stature and animations can be altered]&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
'''Valeria Addon:'''&lt;br /&gt;
:Valeria (human) valeria_npc&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=13756</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=13756"/>
				<updated>2010-09-26T21:12:58Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists links to step-by-step tutorials, both on this wiki and on external sites.&lt;br /&gt;
&lt;br /&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;
{|align=right&lt;br /&gt;
|{{TutorialRef|&amp;lt;nowiki&amp;gt;Boxes like these contain links,&amp;lt;/nowiki&amp;gt;|&amp;lt;nowiki&amp;gt;to topics taking you to further information&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
|&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;
&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;
**[[Useful Scripts]] &amp;lt;!-- for anyone not familar with scripts, this will be very helpful. However i extracted this from the Overview page which seemes inappropriate --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Various small Tutorials, in a unsorted manner. &lt;br /&gt;
*[[How-tos]]&lt;br /&gt;
*[[VFX 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: Using DLC areas in your mods]]&lt;br /&gt;
*[[Tutorial: Adding custom items to custom modules]]&lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Creating a custom placeable from a model]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
*[[Tutorial: Creating recolors of existing items]]&lt;br /&gt;
*[[Tutorial: Understanding Tints: Overriding Defaults &amp;amp; Creating New Ones]]&lt;br /&gt;
*[[Tutorial: Adding a New Weapon Type]]&lt;br /&gt;
*[[Tutorial: Adding custom heraldry to a shield]]&lt;br /&gt;
*[[Adding a New Spell Tutorial]]&lt;br /&gt;
*[[UI Tutorial (draft)]]&lt;br /&gt;
&lt;br /&gt;
== Character generation tutorials ==&lt;br /&gt;
*[[Backgrounds tutorial|Background/Origin Tutorial]]&lt;br /&gt;
*[[Add A New Class Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Companion Tutorials ==&lt;br /&gt;
*[[Follower tutorial]] (Simple and advanced, requires scripting knowledge)&lt;br /&gt;
*[[Follower_tutorial2]] (has copy-and-paste scripts)&lt;br /&gt;
*[[Follower_guidelines]] (contains general guidelines and compatibility information)&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[ToolSet: Area Layouts]]&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
*[[Noob to pro]] (Step by step guide to making a new standalone campaign)&lt;br /&gt;
*[[Module Priority Tutorial]] How to set module. Priority for multiple mods with similar files, so they don't interfere&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/updating 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;
*[http://social.bioware.com/project/527/ Video Tutorials by SilentCid] Multiple in-depth video tutorials of the DA Toolset&lt;br /&gt;
*[http://www.youtube.com/view_play_list?p=EF29DD1AACEBA92A Qkrch's Video Tutorials] Toolset tutorial complete series for the experienced builder (Spanish &amp;amp; English)&lt;br /&gt;
*[http://www.theengineeringguild.co.uk/da-new-campaign-location-tutorial World Editing and Area Creation] Tutorial by [http://social.bioware.com/profile/7848 giskard44] where he walks you through a module creation process for an single player addin.&lt;br /&gt;
*[http://social.bioware.com/203442/blog/1352/ Custom Item Materials] by [http://social.bioware.com/203442/ Chains-Gore].&lt;br /&gt;
*[http://bg2redux.student.utwente.nl/trac/wiki/TutorialLightmapping Lighting Tutorial with Troubleshooting section] (aimed at beginners)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*[[Compatibility]]&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13755</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13755"/>
				<updated>2010-09-26T20:36:04Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Companion Names, Races, &amp;amp; Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues) &lt;br /&gt;
&lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
'''Valeria Addon:'''&lt;br /&gt;
:Valeria (human) valeria_npc&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13754</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13754"/>
				<updated>2010-09-26T20:31:37Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Party Camp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues) &lt;br /&gt;
&lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
:(Please note that they stand next to each other, sharing a common reference point.)&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13753</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13753"/>
				<updated>2010-09-26T20:30:51Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Basic Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
7. Add your information to this page!&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues) &lt;br /&gt;
&lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
Please note that they stand next to each other, sharing a common reference point.&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13752</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13752"/>
				<updated>2010-09-26T20:27:55Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Common Core Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues) &lt;br /&gt;
&lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
Please note that they stand next to each other, sharing a common reference point.&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13751</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13751"/>
				<updated>2010-09-26T20:27:40Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Common Core Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues) &lt;br /&gt;
&lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
Please note that they stand next to each other, sharing a common reference point.&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13750</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13750"/>
				<updated>2010-09-26T20:27:22Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Common Core Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
- cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
- party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues) &lt;br /&gt;
- char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
- partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
- party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
- there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
Please note that they stand next to each other, sharing a common reference point.&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13749</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13749"/>
				<updated>2010-09-26T20:26:52Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Basic Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
 - cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
 - party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
 - char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
 - partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
 - party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
 - there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
Please note that they stand next to each other, sharing a common reference point.&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13748</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13748"/>
				<updated>2010-09-26T20:26:40Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* General Tips for Companion Mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
 - cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
 - party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
 - char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
 - partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
 - party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
 - there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
Please note that they stand next to each other, sharing a common reference point.&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13747</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13747"/>
				<updated>2010-09-26T20:26:04Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Tips for Companion Mods ==&lt;br /&gt;
1. Permanent companions should have many dialogue options available. If you do not intend to write extensive dialogue for your companion, please consider making him/her a temporary companion instead.&lt;br /&gt;
2. ALWAYS include a way for the player to fire the companion.&lt;br /&gt;
3. ALWAYS include an approval bar. Romance is not necessary, but approval is.&lt;br /&gt;
4. Your mod should be lore-friendly. Do some research beforehand.&lt;br /&gt;
5. Companions should have a unique personality, head morph, and history.&lt;br /&gt;
6. Try to make the companion's race, gender, specialization, and skill set different than those of the currently available companions. (Obviously if you plan to use characters already existing in the game, this may be difficult, but for new companions, this is a must.)&lt;br /&gt;
7. Dialogue (including that for your companion) should have multiple lines available for the player to choose from. Generally the pathways are good/nice, evil/greedy, and neutral. The different pathways should have different effects on approval, depending on the personality and motivation of the companion.&lt;br /&gt;
8. Design your mod with compatibility in mind! (See below)&lt;br /&gt;
&lt;br /&gt;
== Making Your Companion Mod Compatible == &lt;br /&gt;
&lt;br /&gt;
=== Basic Tips ===&lt;br /&gt;
1. Incorporate the changes other mods make to the common core resources into your mod.&lt;br /&gt;
2. Minimize the number of core resources you have to overwrite.&lt;br /&gt;
3. Use the same naming scheme as Bioware, except add a unique prefix or suffix.&lt;br /&gt;
4. Make sure your char_stage and partypicker 2das include the companion tags listed below.&lt;br /&gt;
5. Make sure that your party_events.dlg and cutscene_slideshow.dlg contain the additional lines for the other companion mods listed below.&lt;br /&gt;
6. Do not place your companion in any of the occupied locations listed below.&lt;br /&gt;
&lt;br /&gt;
=== Common Core Resources === &lt;br /&gt;
Most companion mods must overwrite or overlay certain core files. A list of these commonly altered files is below:&lt;br /&gt;
 - cutscene_slideshow.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
 - party_events.dlg (Ser Gilmore, Karma's Companions, ... add lines to these dialogues)&lt;br /&gt;
 - char_stage.are (or xxx_char_stage.are)&lt;br /&gt;
 - partypicker.gda (or partypicker_xxx.gda)&lt;br /&gt;
 - party_picker.gda (or party_picker_xxx.gda)&lt;br /&gt;
 - there are others that are less commonly overwritten!&lt;br /&gt;
&lt;br /&gt;
At some point, the [http://social.bioware.com/group/935/ Custom class and Companion Core Group] will upload a Builder-to-Builder package containing the up-to-date [http://social.bioware.com/project/3137/ Common Core Resources] listed above. If you alter any of these files, please send them a Builder-to-Builder package of any core resources you alter so that they can update the package.&lt;br /&gt;
&lt;br /&gt;
=== Companion Names, Races, &amp;amp; Tags ===&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1617 Karma's Companions]:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=851 Immortality's Ser Gilmore]:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1690 Lady Desire's Tevinter Wardens]:'''&lt;br /&gt;
:Lealion (human) gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna (human)	gen00fl_lanna&lt;br /&gt;
:Marric (elf)	gen00fl_marric&lt;br /&gt;
:Martin (human)	gen00fl_martin&lt;br /&gt;
:Willam (human)	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1716 Cena's Qunari Companions]:'''&lt;br /&gt;
:Saarebas (qunari) gen00fl_saarebas&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1432 Return to Korcari Wilds]:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''[http://dragonagenexus.com/downloads/file.php?id=1397 The Bloodworks]:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe (human) dt_fol_lethe_demon&lt;br /&gt;
:Lethe (human) dt_fol_lethe_human&lt;br /&gt;
:Thazulok (elf) dt_fol_thazulok&lt;br /&gt;
:Myrdo (human) dt_fol_myrdo&lt;br /&gt;
:Fetch (dwarf) dt_fol_fetch&lt;br /&gt;
:Marukhan (werewolf) dt_fol_marukhan&lt;br /&gt;
:Dragon (dragon) dt_fol_dragon_i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Occupied Locations === &lt;br /&gt;
==== Party Camp ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Cena's Qunari Companions:'''&lt;br /&gt;
:Saarebas's position: 135.252625, 118.686562, -0.274021&lt;br /&gt;
&lt;br /&gt;
'''Return to Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Lealion the Mage:'''&lt;br /&gt;
:Lealion's position: 135.252625f, 113.905f, -0.274021f&lt;br /&gt;
:Legion's position: 135.252625f, 113.905f, -0.274021f &lt;br /&gt;
Please note that they stand next to each other, sharing a common reference point.&lt;br /&gt;
&lt;br /&gt;
==== Denerim Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
==== Redcliffe Castle ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
==== Post-Coronation ====&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13728</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13728"/>
				<updated>2010-09-23T01:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Occupied Party Camp Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Return to the Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
== Occupied Denerim Castle Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
== Occupied Redcliffe Castle Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
== Occupied Post-Coronation Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 15.0103f, 4.66715f, 0.022839f&lt;br /&gt;
:Jowan's position: -1.93367f, -3.92452f, 0.022839f&lt;br /&gt;
:Gorim's position: 12.3308f, -5.61697f, 0.022839f&lt;br /&gt;
:Gilmore's position: 16.5714f, -4.42749f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
== Companion Names, Races, &amp;amp; Tags ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''Immortality's Ser Gilmore:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Tevinter Wardens:'''&lt;br /&gt;
:Lealion	gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna	gen00fl_lanna&lt;br /&gt;
:Marric	gen00fl_marric&lt;br /&gt;
:Martin	gen00fl_martin&lt;br /&gt;
:Willam	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''Return to the Korcari Wilds:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''Bloodworks:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe dt_fol_lethe_demon&lt;br /&gt;
:Lethe dt_fol_lethe_human&lt;br /&gt;
:Thazulok dt_fol_thazulok&lt;br /&gt;
:Myrdo dt_fol_myrdo&lt;br /&gt;
:Fetch dt_fol_fetch&lt;br /&gt;
:Marukhan dt_fol_marukhan&lt;br /&gt;
:Dragon dt_fol_dragon_i&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13727</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13727"/>
				<updated>2010-09-23T01:54:58Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Companion Names, Races, &amp;amp; Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Occupied Party Camp Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Return to the Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
== Occupied Denerim Castle Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
== Occupied Redcliffe Castle Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
== Companion Names, Races, &amp;amp; Tags ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''Immortality's Ser Gilmore:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Tevinter Wardens:'''&lt;br /&gt;
:Lealion	gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna	gen00fl_lanna&lt;br /&gt;
:Marric	gen00fl_marric&lt;br /&gt;
:Martin	gen00fl_martin&lt;br /&gt;
:Willam	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''Return to the Korcari Wilds:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''Bloodworks:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''Dark Times: The Confederacy of Malkuth:'''&lt;br /&gt;
:Lethe dt_fol_lethe_demon&lt;br /&gt;
:Lethe dt_fol_lethe_human&lt;br /&gt;
:Thazulok dt_fol_thazulok&lt;br /&gt;
:Myrdo dt_fol_myrdo&lt;br /&gt;
:Fetch dt_fol_fetch&lt;br /&gt;
:Marukhan dt_fol_marukhan&lt;br /&gt;
:Dragon dt_fol_dragon_i&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=13726</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=13726"/>
				<updated>2010-09-23T01:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Other Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists links to step-by-step tutorials, both on this wiki and on external sites.&lt;br /&gt;
&lt;br /&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;
{|align=right&lt;br /&gt;
|{{TutorialRef|&amp;lt;nowiki&amp;gt;Boxes like these contain links,&amp;lt;/nowiki&amp;gt;|&amp;lt;nowiki&amp;gt;to topics taking you to further information&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
|&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;
&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;
**[[Useful Scripts]] &amp;lt;!-- for anyone not familar with scripts, this will be very helpful. However i extracted this from the Overview page which seemes inappropriate --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Various small Tutorials, in a unsorted manner. &lt;br /&gt;
*[[How-tos]]&lt;br /&gt;
*[[VFX 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: Using DLC areas in your mods]]&lt;br /&gt;
*[[Tutorial: Adding custom items to custom modules]]&lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Creating a custom placeable from a model]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
*[[Tutorial: Creating recolors of existing items]]&lt;br /&gt;
*[[Tutorial: Understanding Tints: Overriding Defaults &amp;amp; Creating New Ones]]&lt;br /&gt;
*[[Tutorial: Adding a New Weapon Type]]&lt;br /&gt;
*[[Tutorial: Adding custom heraldry to a shield]]&lt;br /&gt;
*[[Adding a New Spell Tutorial]]&lt;br /&gt;
*[[UI Tutorial (draft)]]&lt;br /&gt;
&lt;br /&gt;
== Character generation tutorials ==&lt;br /&gt;
*[[Backgrounds tutorial|Background/Origin Tutorial]]&lt;br /&gt;
*[[Add A New Class Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[ToolSet: Area Layouts]]&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
*[[Follower tutorial]] (Simple and advanced, requires scripting knowledge)&lt;br /&gt;
*[[Follower_tutorial2]] (has copy-and-paste scripts)&lt;br /&gt;
*[[Follower_guidelines]] (contains companion tags and in-use locations)&lt;br /&gt;
*[[Noob to pro]] (Step by step guide to making a new standalone campaign)&lt;br /&gt;
*[[Module Priority Tutorial]] How to set module. Priority for multiple mods with similar files, so they don't interfere&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/updating 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;
*[http://social.bioware.com/project/527/ Video Tutorials by SilentCid] Multiple in-depth video tutorials of the DA Toolset&lt;br /&gt;
*[http://www.youtube.com/view_play_list?p=EF29DD1AACEBA92A Qkrch's Video Tutorials] Toolset tutorial complete series for the experienced builder (Spanish &amp;amp; English)&lt;br /&gt;
*[http://www.theengineeringguild.co.uk/da-new-campaign-location-tutorial World Editing and Area Creation] Tutorial by [http://social.bioware.com/profile/7848 giskard44] where he walks you through a module creation process for an single player addin.&lt;br /&gt;
*[http://social.bioware.com/203442/blog/1352/ Custom Item Materials] by [http://social.bioware.com/203442/ Chains-Gore].&lt;br /&gt;
*[http://bg2redux.student.utwente.nl/trac/wiki/TutorialLightmapping Lighting Tutorial with Troubleshooting section] (aimed at beginners)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*[[Compatibility]]&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13725</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13725"/>
				<updated>2010-09-23T01:49:50Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Occupied Party Camp Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
:Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Return to the Korcari Wilds:'''&lt;br /&gt;
:Douglas' position: 134.41, 113.905, -0.552629&lt;br /&gt;
:Ser Kenneth's position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
== Occupied Denerim Castle Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
:Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
:Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
:Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
== Occupied Redcliffe Castle Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
:Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
:Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
:Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
== Companion Names, Races, &amp;amp; Tags ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
:Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
:Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
:Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
:Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''Immortality's Ser Gilmore:'''&lt;br /&gt;
:Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Tevinter Wardens:'''&lt;br /&gt;
:Lealion	gen00fl_lealion&lt;br /&gt;
:Legion (dog) gen00fl_legion&lt;br /&gt;
:Lanna	gen00fl_lanna&lt;br /&gt;
:Marric	gen00fl_marric&lt;br /&gt;
:Martin	gen00fl_martin&lt;br /&gt;
:Willam	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''Return to the Korcari Wilds:'''&lt;br /&gt;
:Douglas (human) party_douglas&lt;br /&gt;
:Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''Bloodworks:'''&lt;br /&gt;
:Chris (human) chrischar&lt;br /&gt;
:Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''CoM:'''&lt;br /&gt;
:Lethe dt_fol_lethe_demon&lt;br /&gt;
:Lethe dt_fol_lethe_human&lt;br /&gt;
:Thazulok dt_fol_thazulok&lt;br /&gt;
:Myrdo dt_fol_myrdo&lt;br /&gt;
:Fetch dt_fol_fetch&lt;br /&gt;
:Marukhan dt_fol_marukhan&lt;br /&gt;
:Dragon dt_fol_dragon_i&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13724</id>
		<title>Follower guidelines</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Follower_guidelines&amp;diff=13724"/>
				<updated>2010-09-23T01:46:49Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: Created page with ' == Occupied Party Camp Locations ==  '''Karma's Companions:''' Cullen's position: 138.564f, 111.815f, -1.08586f Jowan's position: 174.687f, 147.589f, -1.33659f Gorim's position:...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Occupied Party Camp Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
'''Karma's Bloodworks Compatibility Plugin:'''&lt;br /&gt;
Lucius' and Chris' position: 167.154f, 139.113f, -1.54743f&lt;br /&gt;
&lt;br /&gt;
'''Return to the Korcari Wilds:'''&lt;br /&gt;
Douglas' Position: 134.41, 113.905, -0.552629&lt;br /&gt;
Ser Kenneth's Position: 137.62, 133.833, 0.629564&lt;br /&gt;
&lt;br /&gt;
== Occupied Denerim Castle Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
Cullen's position: 138.564f, 111.815f, -1.08586f&lt;br /&gt;
Jowan's position: 174.687f, 147.589f, -1.33659f&lt;br /&gt;
Gorim's position: 144.049f, 146.718f, -0.97327f&lt;br /&gt;
Gilmore's position: 125.402f, 116.783f, -0.924384f&lt;br /&gt;
&lt;br /&gt;
== Occupied Redcliffe Castle Locations ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
Cullen's position: 9.62579f, -17.3753f, 0.022839f&lt;br /&gt;
Jowan's position: 7.59896f, -5.17459f, 0.022839f&lt;br /&gt;
Gorim's position: 26.3124f, -8.75641f, 0.022839f&lt;br /&gt;
Gilmore's position: 20.797f, -14.1758f, 0.022839f&lt;br /&gt;
&lt;br /&gt;
== Companion Names, Races, &amp;amp; Tags ==&lt;br /&gt;
&lt;br /&gt;
'''Karma's Companions:'''&lt;br /&gt;
Cullen (human) kc_cir230cr_cullen&lt;br /&gt;
Jowan (human) kc_bhm100cr_jowan&lt;br /&gt;
Gorim (dwarf) kc_bdn120cr_gorim&lt;br /&gt;
Ser Gilmore (human) kc_bhn100cr_gilmore&lt;br /&gt;
&lt;br /&gt;
'''Immortality's Ser Gilmore:'''&lt;br /&gt;
Ser Gilmore (human) ser_gilmore_lbc&lt;br /&gt;
&lt;br /&gt;
'''Lady Desire's Tevinter Wardens:'''&lt;br /&gt;
Lealion	gen00fl_lealion&lt;br /&gt;
Legion (dog) gen00fl_legion&lt;br /&gt;
Lanna	gen00fl_lanna&lt;br /&gt;
Marric	gen00fl_marric&lt;br /&gt;
Martin	gen00fl_martin&lt;br /&gt;
Willam	gen00fl_willam&lt;br /&gt;
&lt;br /&gt;
'''Return to the Korcari Wilds:'''&lt;br /&gt;
Douglas	(human) party_douglas&lt;br /&gt;
Ser Kenneth (human) party_serken&lt;br /&gt;
&lt;br /&gt;
'''Bloodworks:'''&lt;br /&gt;
Chris (human) chrischar&lt;br /&gt;
Lucius (human) luciuschar&lt;br /&gt;
&lt;br /&gt;
'''CoM:'''&lt;br /&gt;
Lethe dt_fol_lethe_demon&lt;br /&gt;
Lethe dt_fol_lethe_human&lt;br /&gt;
Thazulok dt_fol_thazulok&lt;br /&gt;
Myrdo dt_fol_myrdo&lt;br /&gt;
Fetch dt_fol_fetch&lt;br /&gt;
Marukhan dt_fol_marukhan&lt;br /&gt;
Dragon dt_fol_dragon_i&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=13241</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=13241"/>
				<updated>2010-07-27T03:37:08Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Other Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists links to step-by-step tutorials, both on this wiki and on external sites.&lt;br /&gt;
&lt;br /&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;
{|align=right&lt;br /&gt;
|{{TutorialRef|&amp;lt;nowiki&amp;gt;Boxes like these contain links,&amp;lt;/nowiki&amp;gt;|&amp;lt;nowiki&amp;gt;to topics taking you to further information&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
|&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;
&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;
**[[Useful Scripts]] &amp;lt;!-- for anyone not familar with scripts, this will be very helpful. However i extracted this from the Overview page which seemes inappropriate --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Various small Tutorials, in a unsorted manner. &lt;br /&gt;
*[[How-tos]]&lt;br /&gt;
*[[VFX 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: Using DLC areas in your mods]]&lt;br /&gt;
*[[Tutorial: Adding custom items to custom modules]]&lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Creating a custom placeable from a model]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
*[[Tutorial: Creating recolors of existing items]]&lt;br /&gt;
*[[Tutorial: Understanding Tints: Overriding Defaults &amp;amp; Creating New Ones]]&lt;br /&gt;
*[[Tutorial: Adding a New Weapon Type]]&lt;br /&gt;
*[[Tutorial: Adding custom heraldry to a shield]]&lt;br /&gt;
*[[Adding a New Spell Tutorial]]&lt;br /&gt;
*[[UI Tutorial (draft)]]&lt;br /&gt;
&lt;br /&gt;
== Character generation tutorials ==&lt;br /&gt;
*[[Backgrounds tutorial|Background/Origin Tutorial]]&lt;br /&gt;
*[[Add A New Class Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[ToolSet: Area Layouts]]&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
*[[Follower tutorial]] (Simple and advanced, requires scripting knowledge)&lt;br /&gt;
*[[Follower_tutorial2]] (has copy-and-paste scripts)&lt;br /&gt;
*[[Noob to pro]] (Step by step guide to making a new standalone campaign)&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/updating 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;
*[http://social.bioware.com/project/527/ Video Tutorials by SilentCid] Multiple in-depth video tutorials of the DA Toolset&lt;br /&gt;
*[http://www.youtube.com/view_play_list?p=EF29DD1AACEBA92A Qkrch's Video Tutorials] Toolset tutorial complete series for the experienced builder (Spanish &amp;amp; English)&lt;br /&gt;
*[http://www.theengineeringguild.co.uk/da-new-campaign-location-tutorial World Editing and Area Creation] Tutorial by [http://social.bioware.com/profile/7848 giskard44] where he walks you through a module creation process for an single player addin.&lt;br /&gt;
*[http://social.bioware.com/203442/blog/1352/ Custom Item Materials] by [http://social.bioware.com/203442/ Chains-Gore].&lt;br /&gt;
*[http://bg2redux.student.utwente.nl/trac/wiki/TutorialLightmapping Lighting Tutorial with Troubleshooting section] (aimed at beginners)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*[[Compatibility]]&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=13239</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Tutorials&amp;diff=13239"/>
				<updated>2010-07-27T03:31:40Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: /* Other Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists links to step-by-step tutorials, both on this wiki and on external sites.&lt;br /&gt;
&lt;br /&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;
{|align=right&lt;br /&gt;
|{{TutorialRef|&amp;lt;nowiki&amp;gt;Boxes like these contain links,&amp;lt;/nowiki&amp;gt;|&amp;lt;nowiki&amp;gt;to topics taking you to further information&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
|&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;
&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;
**[[Useful Scripts]] &amp;lt;!-- for anyone not familar with scripts, this will be very helpful. However i extracted this from the Overview page which seemes inappropriate --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Various small Tutorials, in a unsorted manner. &lt;br /&gt;
*[[How-tos]]&lt;br /&gt;
*[[VFX 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: Using DLC areas in your mods]]&lt;br /&gt;
*[[Tutorial: Adding custom items to custom modules]]&lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Creating a custom placeable from a model]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
*[[Tutorial: Creating recolors of existing items]]&lt;br /&gt;
*[[Tutorial: Understanding Tints: Overriding Defaults &amp;amp; Creating New Ones]]&lt;br /&gt;
*[[Tutorial: Adding a New Weapon Type]]&lt;br /&gt;
*[[Tutorial: Adding custom heraldry to a shield]]&lt;br /&gt;
*[[Adding a New Spell Tutorial]]&lt;br /&gt;
*[[UI Tutorial (draft)]]&lt;br /&gt;
&lt;br /&gt;
== Character generation tutorials ==&lt;br /&gt;
*[[Backgrounds tutorial|Background/Origin Tutorial]]&lt;br /&gt;
*[[Add A New Class Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Other Tutorials ==&lt;br /&gt;
*[[ToolSet: Area Layouts]]&lt;br /&gt;
*[[Adding a Location to the Single Player Campaign Tutorial]]&lt;br /&gt;
*[[Follower tutorial]] (Simple and advanced, requires scripting knowledge)&lt;br /&gt;
*[[User:Satans_karma]] (Follower Tutorial #2 - more noob-friendly)&lt;br /&gt;
*[[Noob to pro]] (Step by step guide to making a new standalone campaign)&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/updating 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;
*[http://social.bioware.com/project/527/ Video Tutorials by SilentCid] Multiple in-depth video tutorials of the DA Toolset&lt;br /&gt;
*[http://www.youtube.com/view_play_list?p=EF29DD1AACEBA92A Qkrch's Video Tutorials] Toolset tutorial complete series for the experienced builder (Spanish &amp;amp; English)&lt;br /&gt;
*[http://www.theengineeringguild.co.uk/da-new-campaign-location-tutorial World Editing and Area Creation] Tutorial by [http://social.bioware.com/profile/7848 giskard44] where he walks you through a module creation process for an single player addin.&lt;br /&gt;
*[http://social.bioware.com/203442/blog/1352/ Custom Item Materials] by [http://social.bioware.com/203442/ Chains-Gore].&lt;br /&gt;
*[http://bg2redux.student.utwente.nl/trac/wiki/TutorialLightmapping Lighting Tutorial with Troubleshooting section] (aimed at beginners)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*[[Compatibility]]&lt;br /&gt;
[[Category:Tutorials| ]]&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13238</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13238"/>
				<updated>2010-07-27T03:29:55Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 10, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions: ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) four new main flags - CREATURENAME_HIRED, CREATURENAME_IN_PARTY, CREATURENAME_IN_CAMP, and CREATURENAME_FIRED. Replace &amp;quot;CREATURENAME&amp;quot; with your follower's name. Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the module_core script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;CREATURENAME,&amp;quot; and &amp;quot;INSERT CREATURE TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the hiring script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;CREATURENAME,&amp;quot; and &amp;quot;INSERT CREATURE TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the firing script below into this script. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;CREATURENAME,&amp;quot; and &amp;quot;INSERT CREATURE TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste one of the spawn follower in camp scripts into this script. Try the short version first. In theory, it should work, but when I tested it in game, Leliana would sometimes disappear. If you have that problem, replace the short version with the long version. Be sure to change all &amp;quot;xxx,&amp;quot; &amp;quot;CREATURENAME,&amp;quot; and &amp;quot;INSERT CREATURE TAG HERE&amp;quot; bits to the appropriate prefixes, names, and tags. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx. &lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. &lt;br /&gt;
&lt;br /&gt;
11) Go back to your dialogue. In the hiring branch, set the &amp;quot;action&amp;quot; to fire the hiring script. In the firing branch, set the &amp;quot;action&amp;quot; to fire the firing script.&lt;br /&gt;
&lt;br /&gt;
12) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script below using the simple approval script below. You may have to make several copies for varying levels of approval/disapproval. After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripts: ==&lt;br /&gt;
&lt;br /&gt;
=== module_core script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
             SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
             AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT CREATURE TAG HERE.utc&amp;quot;, GetLocation(oHero));&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (short version) - Try using this before trying the long version ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE&amp;quot;);    &lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);    &lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (Long Version) - Only use if Leliana is not appearing in camp as she should ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE HERE&amp;quot;);&lt;br /&gt;
    object oAlistair = GetObjectByTag(&amp;quot;gen00fl_alistair&amp;quot;);&lt;br /&gt;
    object oMorrigan = GetObjectByTag(&amp;quot;gen00fl_morrigan&amp;quot;);&lt;br /&gt;
    object oDog = GetObjectByTag(&amp;quot;gen00fl_dog&amp;quot;);&lt;br /&gt;
    object oWynne = GetObjectByTag(&amp;quot;gen00fl_wynne&amp;quot;);&lt;br /&gt;
    object oShale = GetObjectByTag(&amp;quot;gen00fl_shale&amp;quot;);&lt;br /&gt;
    object oSten = GetObjectByTag(&amp;quot;gen00fl_sten&amp;quot;);&lt;br /&gt;
    object oZevran = GetObjectByTag(&amp;quot;gen00fl_zevran&amp;quot;);&lt;br /&gt;
    object oOghren = GetObjectByTag(&amp;quot;gen00fl_oghren&amp;quot;);&lt;br /&gt;
    object oLeliana = GetObjectByTag(&amp;quot;gen00fl_leliana&amp;quot;);&lt;br /&gt;
    object oLoghain = GetObjectByTag(&amp;quot;gen00fl_loghain&amp;quot;);&lt;br /&gt;
    string sWPA = &amp;quot;wp_camp_gen_fl_alistair&amp;quot;;&lt;br /&gt;
    string sWPM = &amp;quot;wp_camp_gen_fl_morrigan&amp;quot;;&lt;br /&gt;
    string sWPD = &amp;quot;wp_camp_gen_fl_dog&amp;quot;;&lt;br /&gt;
    string sWPW = &amp;quot;wp_camp_gen_fl_wynne&amp;quot;;&lt;br /&gt;
    string sWPSh = &amp;quot;wp_camp_gen_fl_shale&amp;quot;;&lt;br /&gt;
    string sWPS = &amp;quot;wp_camp_gen_fl_sten&amp;quot;;&lt;br /&gt;
    string sWPZ = &amp;quot;wp_camp_gen_fl_zevran&amp;quot;;&lt;br /&gt;
    string sWPO = &amp;quot;wp_camp_gen_fl_oghren&amp;quot;;&lt;br /&gt;
    string sWPL = &amp;quot;wp_camp_gen_fl_leliana&amp;quot;;&lt;br /&gt;
    string sWPLo = &amp;quot;wp_camp_gen_fl_loghain&amp;quot;;&lt;br /&gt;
    object oWPA = GetObjectByTag(sWPA);&lt;br /&gt;
    object oWPM = GetObjectByTag(sWPM);&lt;br /&gt;
    object oWPD = GetObjectByTag(sWPD);&lt;br /&gt;
    object oWPW = GetObjectByTag(sWPW);&lt;br /&gt;
    object oWPSh = GetObjectByTag(sWPSh);&lt;br /&gt;
    object oWPS = GetObjectByTag(sWPS);&lt;br /&gt;
    object oWPZ = GetObjectByTag(sWPZ);&lt;br /&gt;
    object oWPO = GetObjectByTag(sWPO);&lt;br /&gt;
    object oWPL = GetObjectByTag(sWPL);&lt;br /&gt;
    object oWPLo = GetObjectByTag(sWPLo);&lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);&lt;br /&gt;
    // Activating any followers that are in the party    &lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oAlistair, TRUE);&lt;br /&gt;
        SetFollowerState(oAlistair, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oDog, TRUE);&lt;br /&gt;
        SetFollowerState(oDog, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oWynne, TRUE);&lt;br /&gt;
        SetFollowerState(oWynne, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oShale, TRUE);&lt;br /&gt;
        SetFollowerState(oShale, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oSten, TRUE);&lt;br /&gt;
        SetFollowerState(oSten, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oZevran, TRUE);&lt;br /&gt;
        SetFollowerState(oZevran, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oOghren, TRUE);&lt;br /&gt;
        SetFollowerState(oOghren, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oLeliana) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oMorrigan, TRUE);&lt;br /&gt;
        SetFollowerState(oMorrigan, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLoghain, TRUE);&lt;br /&gt;
        SetFollowerState(oLoghain, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13237</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13237"/>
				<updated>2010-07-27T03:26:10Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I tried to create a follower based on the other [[Follower_tutorial]], I had a bit of trouble following along. Most of it was understandable, but the scripts were kind of scattered, duplicated, confusing, and generally not designed for extensions to the single player campaign. So I made a more noob-friendly follower tutorial. Since the other follower tutorial goes into more detail than I do about steps 1, 3, 4, and 10, you may want to look there when you're at those steps. &lt;br /&gt;
&lt;br /&gt;
This is a work-in-progress. The formatting clearly needs some work. If you find something amiss, PM me on Bioware (screen name = satans_karma). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions: ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
   &lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) four new main flags - CREATURENAME_HIRED, CREATURENAME_IN_PARTY, CREATURENAME_IN_CAMP, and CREATURENAME_FIRED. Replace &amp;quot;CREATURENAME&amp;quot; with your follower's name. Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the module_core script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the hiring script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the firing script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste one of the spawn follower in camp scripts into this script. Try the short version first. In theory, it should work, but when I tested it in game, Leliana would sometimes disappear. If you have that problem, replace the short version with the long version. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx. &lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. &lt;br /&gt;
&lt;br /&gt;
11) Go back to your dialogue. In the hiring branch, set the action to fire the hiring script. In the firing branch, set the action to fire the firing script.&lt;br /&gt;
&lt;br /&gt;
12) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script below using the simple approval script below. You may have to make several copies for varying levels of approval/disapproval. After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripts: ==&lt;br /&gt;
&lt;br /&gt;
=== module_core script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
             SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
             AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT CREATURE TAG HERE.utc&amp;quot;, GetLocation(oHero));&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (short version) - Try using this before trying the long version ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE&amp;quot;);    &lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);    &lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (Long Version) - Only use if Leliana is not appearing in camp as she should ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE HERE&amp;quot;);&lt;br /&gt;
    object oAlistair = GetObjectByTag(&amp;quot;gen00fl_alistair&amp;quot;);&lt;br /&gt;
    object oMorrigan = GetObjectByTag(&amp;quot;gen00fl_morrigan&amp;quot;);&lt;br /&gt;
    object oDog = GetObjectByTag(&amp;quot;gen00fl_dog&amp;quot;);&lt;br /&gt;
    object oWynne = GetObjectByTag(&amp;quot;gen00fl_wynne&amp;quot;);&lt;br /&gt;
    object oShale = GetObjectByTag(&amp;quot;gen00fl_shale&amp;quot;);&lt;br /&gt;
    object oSten = GetObjectByTag(&amp;quot;gen00fl_sten&amp;quot;);&lt;br /&gt;
    object oZevran = GetObjectByTag(&amp;quot;gen00fl_zevran&amp;quot;);&lt;br /&gt;
    object oOghren = GetObjectByTag(&amp;quot;gen00fl_oghren&amp;quot;);&lt;br /&gt;
    object oLeliana = GetObjectByTag(&amp;quot;gen00fl_leliana&amp;quot;);&lt;br /&gt;
    object oLoghain = GetObjectByTag(&amp;quot;gen00fl_loghain&amp;quot;);&lt;br /&gt;
    string sWPA = &amp;quot;wp_camp_gen_fl_alistair&amp;quot;;&lt;br /&gt;
    string sWPM = &amp;quot;wp_camp_gen_fl_morrigan&amp;quot;;&lt;br /&gt;
    string sWPD = &amp;quot;wp_camp_gen_fl_dog&amp;quot;;&lt;br /&gt;
    string sWPW = &amp;quot;wp_camp_gen_fl_wynne&amp;quot;;&lt;br /&gt;
    string sWPSh = &amp;quot;wp_camp_gen_fl_shale&amp;quot;;&lt;br /&gt;
    string sWPS = &amp;quot;wp_camp_gen_fl_sten&amp;quot;;&lt;br /&gt;
    string sWPZ = &amp;quot;wp_camp_gen_fl_zevran&amp;quot;;&lt;br /&gt;
    string sWPO = &amp;quot;wp_camp_gen_fl_oghren&amp;quot;;&lt;br /&gt;
    string sWPL = &amp;quot;wp_camp_gen_fl_leliana&amp;quot;;&lt;br /&gt;
    string sWPLo = &amp;quot;wp_camp_gen_fl_loghain&amp;quot;;&lt;br /&gt;
    object oWPA = GetObjectByTag(sWPA);&lt;br /&gt;
    object oWPM = GetObjectByTag(sWPM);&lt;br /&gt;
    object oWPD = GetObjectByTag(sWPD);&lt;br /&gt;
    object oWPW = GetObjectByTag(sWPW);&lt;br /&gt;
    object oWPSh = GetObjectByTag(sWPSh);&lt;br /&gt;
    object oWPS = GetObjectByTag(sWPS);&lt;br /&gt;
    object oWPZ = GetObjectByTag(sWPZ);&lt;br /&gt;
    object oWPO = GetObjectByTag(sWPO);&lt;br /&gt;
    object oWPL = GetObjectByTag(sWPL);&lt;br /&gt;
    object oWPLo = GetObjectByTag(sWPLo);&lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);&lt;br /&gt;
    // Activating any followers that are in the party    &lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oAlistair, TRUE);&lt;br /&gt;
        SetFollowerState(oAlistair, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oDog, TRUE);&lt;br /&gt;
        SetFollowerState(oDog, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oWynne, TRUE);&lt;br /&gt;
        SetFollowerState(oWynne, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oShale, TRUE);&lt;br /&gt;
        SetFollowerState(oShale, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oSten, TRUE);&lt;br /&gt;
        SetFollowerState(oSten, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oZevran, TRUE);&lt;br /&gt;
        SetFollowerState(oZevran, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oOghren, TRUE);&lt;br /&gt;
        SetFollowerState(oOghren, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oLeliana) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oMorrigan, TRUE);&lt;br /&gt;
        SetFollowerState(oMorrigan, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLoghain, TRUE);&lt;br /&gt;
        SetFollowerState(oLoghain, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
NOTE: Change the 5 to whatever you want the approval to increase by. Change to a negative number if you want to decrease approval.&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13236</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13236"/>
				<updated>2010-07-27T03:17:05Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Noob-Friendly Follower Tutorial:'''&lt;br /&gt;
&lt;br /&gt;
NOTE: This is a work-in-progress. If you find something amiss, PM me on Bioware (screenname = satans_karma).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions: ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
   &lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) four new main flags - CREATURENAME_HIRED, CREATURENAME_IN_PARTY, CREATURENAME_IN_CAMP, and CREATURENAME_FIRED. Replace &amp;quot;CREATURENAME&amp;quot; with your follower's name. Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the module_core script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the hiring script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the firing script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste one of the spawn follower in camp scripts into this script. Try the short version first. In theory, it should work, but when I tested it in game, Leliana would sometimes disappear. If you have that problem, replace the short version with the long version. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx. &lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. &lt;br /&gt;
&lt;br /&gt;
11) Go back to your dialogue. In the hiring branch, set the action to fire the hiring script. In the firing branch, set the action to fire the firing script.&lt;br /&gt;
&lt;br /&gt;
12) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script below using the simple approval script below. You may have to make several copies for varying levels of approval/disapproval. After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripts: ==&lt;br /&gt;
&lt;br /&gt;
=== module_core script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
             SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
             AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT CREATURE TAG HERE.utc&amp;quot;, GetLocation(oHero));&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (short version) - Try using this before trying the long version ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE&amp;quot;);    &lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);    &lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (Long Version) - Only use if Leliana is not appearing in camp as she should ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE HERE&amp;quot;);&lt;br /&gt;
    object oAlistair = GetObjectByTag(&amp;quot;gen00fl_alistair&amp;quot;);&lt;br /&gt;
    object oMorrigan = GetObjectByTag(&amp;quot;gen00fl_morrigan&amp;quot;);&lt;br /&gt;
    object oDog = GetObjectByTag(&amp;quot;gen00fl_dog&amp;quot;);&lt;br /&gt;
    object oWynne = GetObjectByTag(&amp;quot;gen00fl_wynne&amp;quot;);&lt;br /&gt;
    object oShale = GetObjectByTag(&amp;quot;gen00fl_shale&amp;quot;);&lt;br /&gt;
    object oSten = GetObjectByTag(&amp;quot;gen00fl_sten&amp;quot;);&lt;br /&gt;
    object oZevran = GetObjectByTag(&amp;quot;gen00fl_zevran&amp;quot;);&lt;br /&gt;
    object oOghren = GetObjectByTag(&amp;quot;gen00fl_oghren&amp;quot;);&lt;br /&gt;
    object oLeliana = GetObjectByTag(&amp;quot;gen00fl_leliana&amp;quot;);&lt;br /&gt;
    object oLoghain = GetObjectByTag(&amp;quot;gen00fl_loghain&amp;quot;);&lt;br /&gt;
    string sWPA = &amp;quot;wp_camp_gen_fl_alistair&amp;quot;;&lt;br /&gt;
    string sWPM = &amp;quot;wp_camp_gen_fl_morrigan&amp;quot;;&lt;br /&gt;
    string sWPD = &amp;quot;wp_camp_gen_fl_dog&amp;quot;;&lt;br /&gt;
    string sWPW = &amp;quot;wp_camp_gen_fl_wynne&amp;quot;;&lt;br /&gt;
    string sWPSh = &amp;quot;wp_camp_gen_fl_shale&amp;quot;;&lt;br /&gt;
    string sWPS = &amp;quot;wp_camp_gen_fl_sten&amp;quot;;&lt;br /&gt;
    string sWPZ = &amp;quot;wp_camp_gen_fl_zevran&amp;quot;;&lt;br /&gt;
    string sWPO = &amp;quot;wp_camp_gen_fl_oghren&amp;quot;;&lt;br /&gt;
    string sWPL = &amp;quot;wp_camp_gen_fl_leliana&amp;quot;;&lt;br /&gt;
    string sWPLo = &amp;quot;wp_camp_gen_fl_loghain&amp;quot;;&lt;br /&gt;
    object oWPA = GetObjectByTag(sWPA);&lt;br /&gt;
    object oWPM = GetObjectByTag(sWPM);&lt;br /&gt;
    object oWPD = GetObjectByTag(sWPD);&lt;br /&gt;
    object oWPW = GetObjectByTag(sWPW);&lt;br /&gt;
    object oWPSh = GetObjectByTag(sWPSh);&lt;br /&gt;
    object oWPS = GetObjectByTag(sWPS);&lt;br /&gt;
    object oWPZ = GetObjectByTag(sWPZ);&lt;br /&gt;
    object oWPO = GetObjectByTag(sWPO);&lt;br /&gt;
    object oWPL = GetObjectByTag(sWPL);&lt;br /&gt;
    object oWPLo = GetObjectByTag(sWPLo);&lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);&lt;br /&gt;
    // Activating any followers that are in the party    &lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oAlistair, TRUE);&lt;br /&gt;
        SetFollowerState(oAlistair, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oDog, TRUE);&lt;br /&gt;
        SetFollowerState(oDog, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oWynne, TRUE);&lt;br /&gt;
        SetFollowerState(oWynne, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oShale, TRUE);&lt;br /&gt;
        SetFollowerState(oShale, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oSten, TRUE);&lt;br /&gt;
        SetFollowerState(oSten, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oZevran, TRUE);&lt;br /&gt;
        SetFollowerState(oZevran, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oOghren, TRUE);&lt;br /&gt;
        SetFollowerState(oOghren, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oLeliana) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oMorrigan, TRUE);&lt;br /&gt;
        SetFollowerState(oMorrigan, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLoghain, TRUE);&lt;br /&gt;
        SetFollowerState(oLoghain, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); &lt;br /&gt;
/*change the 5 to whatever you want to increase approval by. Change to negative number to decrease approval*/&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13235</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13235"/>
				<updated>2010-07-27T03:16:17Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Noob-Friendly Follower Tutorial:'''&lt;br /&gt;
&lt;br /&gt;
NOTE: This is a work-in-progress. If you find something amiss, PM me on Bioware (screenname = satans_karma).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. [[Making_a_new,_playable_module#Creating_a_Module]]&lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first. [[Conversation_tutorial]]&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first. [[Creature_tutorial]]&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first. [[Area_tutorial#Setting_the_start_point]]&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first. [[Plot#Journal_entries]]&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension). If not, read through the tutorial on how to compile 2DAs first. [[Compiling_2DAs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions: ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
   &lt;br /&gt;
:a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;)  &lt;br /&gt;
:b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)   &lt;br /&gt;
:c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)  &lt;br /&gt;
:d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other [[Follower_tutorial]] has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) four new main flags - CREATURENAME_HIRED, CREATURENAME_IN_PARTY, CREATURENAME_IN_CAMP, and CREATURENAME_FIRED. Replace &amp;quot;CREATURENAME&amp;quot; with your follower's name. Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the module_core script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the hiring script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the firing script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste one of the spawn follower in camp scripts into this script. Try the short version first. In theory, it should work, but when I tested it in game, Leliana would sometimes disappear. If you have that problem, replace the short version with the long version. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx. &lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. &lt;br /&gt;
&lt;br /&gt;
11) Go back to your dialogue. In the hiring branch, set the action to fire the hiring script. In the firing branch, set the action to fire the firing script.&lt;br /&gt;
&lt;br /&gt;
12) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script below using the simple approval script below. You may have to make several copies for varying levels of approval/disapproval. After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripts: ==&lt;br /&gt;
&lt;br /&gt;
=== module_core script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
             SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
             AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;core_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT CREATURE TAG HERE.utc&amp;quot;, GetLocation(oHero));&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_FIRED, TRUE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (short version) - Try using this before trying the long version ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE&amp;quot;);    &lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);    &lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (Long Version) - Only use if Leliana is not appearing in camp as she should ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;party_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
 #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE HERE&amp;quot;);&lt;br /&gt;
    object oAlistair = GetObjectByTag(&amp;quot;gen00fl_alistair&amp;quot;);&lt;br /&gt;
    object oMorrigan = GetObjectByTag(&amp;quot;gen00fl_morrigan&amp;quot;);&lt;br /&gt;
    object oDog = GetObjectByTag(&amp;quot;gen00fl_dog&amp;quot;);&lt;br /&gt;
    object oWynne = GetObjectByTag(&amp;quot;gen00fl_wynne&amp;quot;);&lt;br /&gt;
    object oShale = GetObjectByTag(&amp;quot;gen00fl_shale&amp;quot;);&lt;br /&gt;
    object oSten = GetObjectByTag(&amp;quot;gen00fl_sten&amp;quot;);&lt;br /&gt;
    object oZevran = GetObjectByTag(&amp;quot;gen00fl_zevran&amp;quot;);&lt;br /&gt;
    object oOghren = GetObjectByTag(&amp;quot;gen00fl_oghren&amp;quot;);&lt;br /&gt;
    object oLeliana = GetObjectByTag(&amp;quot;gen00fl_leliana&amp;quot;);&lt;br /&gt;
    object oLoghain = GetObjectByTag(&amp;quot;gen00fl_loghain&amp;quot;);&lt;br /&gt;
    string sWPA = &amp;quot;wp_camp_gen_fl_alistair&amp;quot;;&lt;br /&gt;
    string sWPM = &amp;quot;wp_camp_gen_fl_morrigan&amp;quot;;&lt;br /&gt;
    string sWPD = &amp;quot;wp_camp_gen_fl_dog&amp;quot;;&lt;br /&gt;
    string sWPW = &amp;quot;wp_camp_gen_fl_wynne&amp;quot;;&lt;br /&gt;
    string sWPSh = &amp;quot;wp_camp_gen_fl_shale&amp;quot;;&lt;br /&gt;
    string sWPS = &amp;quot;wp_camp_gen_fl_sten&amp;quot;;&lt;br /&gt;
    string sWPZ = &amp;quot;wp_camp_gen_fl_zevran&amp;quot;;&lt;br /&gt;
    string sWPO = &amp;quot;wp_camp_gen_fl_oghren&amp;quot;;&lt;br /&gt;
    string sWPL = &amp;quot;wp_camp_gen_fl_leliana&amp;quot;;&lt;br /&gt;
    string sWPLo = &amp;quot;wp_camp_gen_fl_loghain&amp;quot;;&lt;br /&gt;
    object oWPA = GetObjectByTag(sWPA);&lt;br /&gt;
    object oWPM = GetObjectByTag(sWPM);&lt;br /&gt;
    object oWPD = GetObjectByTag(sWPD);&lt;br /&gt;
    object oWPW = GetObjectByTag(sWPW);&lt;br /&gt;
    object oWPSh = GetObjectByTag(sWPSh);&lt;br /&gt;
    object oWPS = GetObjectByTag(sWPS);&lt;br /&gt;
    object oWPZ = GetObjectByTag(sWPZ);&lt;br /&gt;
    object oWPO = GetObjectByTag(sWPO);&lt;br /&gt;
    object oWPL = GetObjectByTag(sWPL);&lt;br /&gt;
    object oWPLo = GetObjectByTag(sWPLo);&lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);&lt;br /&gt;
    // Activating any followers that are in the party    &lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oAlistair, TRUE);&lt;br /&gt;
        SetFollowerState(oAlistair, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oDog, TRUE);&lt;br /&gt;
        SetFollowerState(oDog, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oWynne, TRUE);&lt;br /&gt;
        SetFollowerState(oWynne, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oShale, TRUE);&lt;br /&gt;
        SetFollowerState(oShale, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oSten, TRUE);&lt;br /&gt;
        SetFollowerState(oSten, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oZevran, TRUE);&lt;br /&gt;
        SetFollowerState(oZevran, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oOghren, TRUE);&lt;br /&gt;
        SetFollowerState(oOghren, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oLeliana) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oMorrigan, TRUE);&lt;br /&gt;
        SetFollowerState(oMorrigan, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLoghain, TRUE);&lt;br /&gt;
        SetFollowerState(oLoghain, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); /*change the 7 to whatever you want to increase approval by. change to negative number to decrease approval*/&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13234</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13234"/>
				<updated>2010-07-27T02:55:11Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Noob-Friendly Follower Tutorial:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. &lt;br /&gt;
&lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first.&lt;br /&gt;
&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first.&lt;br /&gt;
&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first.&lt;br /&gt;
&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first.&lt;br /&gt;
&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions: ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
   &lt;br /&gt;
:::a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;)&lt;br /&gt;
   &lt;br /&gt;
:::b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)&lt;br /&gt;
   &lt;br /&gt;
:::c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)&lt;br /&gt;
   &lt;br /&gt;
:::d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other follower tutorial has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) four new main flags - CREATURENAME_HIRED, CREATURENAME_IN_PARTY, CREATURENAME_IN_CAMP, and CREATURENAME_FIRED. Replace &amp;quot;CREATURENAME&amp;quot; with your follower's name. Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the module_core script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the hiring script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the firing script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste one of the spawn follower in camp scripts into this script. Try the short version first. In theory, it should work, but when I tested it in game, Leliana would sometimes disappear. If you have that problem, replace the short version with the long version. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx. &lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. &lt;br /&gt;
&lt;br /&gt;
11) Go back to your dialogue. In the hiring branch, set the action to fire the hiring script. In the firing branch, set the action to fire the firing script.&lt;br /&gt;
&lt;br /&gt;
12) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script below using the simple approval script below. You may have to make several copies for varying levels of approval/disapproval. After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripts: ==&lt;br /&gt;
&lt;br /&gt;
=== module_core script ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;events_h&amp;quot;&lt;br /&gt;
    #include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
    #include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
    #include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
    void main()&lt;br /&gt;
    {&lt;br /&gt;
       event ev = GetCurrentEvent();&lt;br /&gt;
       int nEventType = GetEventType(ev);&lt;br /&gt;
       object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
       object oHero = GetHero();&lt;br /&gt;
       object oParty = GetParty(oHero);&lt;br /&gt;
       int nEventHandled = FALSE;&lt;br /&gt;
       switch(nEventType)&lt;br /&gt;
       {&lt;br /&gt;
          case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
          {&lt;br /&gt;
             SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
             SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
             AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
          {&lt;br /&gt;
             object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
             if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
             {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
             }&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hiring script ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
#include &amp;quot;party_h&amp;quot;&lt;br /&gt;
#include &amp;quot;events_h&amp;quot;&lt;br /&gt;
#include &amp;quot;core_h&amp;quot;&lt;br /&gt;
#include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
#include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
#include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
#include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT CREATURE TAG HERE.utc&amp;quot;, GetLocation(oHero));&lt;br /&gt;
&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firing Script ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;events_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_FIRED, TRUE);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (short version) - Try using this before trying the long version ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);    &lt;br /&gt;
&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spawn Follower in Camp Script (Long Version) - Only use if Leliana is not appearing in camp as she should ===&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;party_h&amp;quot;&lt;br /&gt;
#include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE HERE&amp;quot;);&lt;br /&gt;
    object oAlistair = GetObjectByTag(&amp;quot;gen00fl_alistair&amp;quot;);&lt;br /&gt;
    object oMorrigan = GetObjectByTag(&amp;quot;gen00fl_morrigan&amp;quot;);&lt;br /&gt;
    object oDog = GetObjectByTag(&amp;quot;gen00fl_dog&amp;quot;);&lt;br /&gt;
    object oWynne = GetObjectByTag(&amp;quot;gen00fl_wynne&amp;quot;);&lt;br /&gt;
    object oShale = GetObjectByTag(&amp;quot;gen00fl_shale&amp;quot;);&lt;br /&gt;
    object oSten = GetObjectByTag(&amp;quot;gen00fl_sten&amp;quot;);&lt;br /&gt;
    object oZevran = GetObjectByTag(&amp;quot;gen00fl_zevran&amp;quot;);&lt;br /&gt;
    object oOghren = GetObjectByTag(&amp;quot;gen00fl_oghren&amp;quot;);&lt;br /&gt;
    object oLeliana = GetObjectByTag(&amp;quot;gen00fl_leliana&amp;quot;);&lt;br /&gt;
    object oLoghain = GetObjectByTag(&amp;quot;gen00fl_loghain&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    string sWPA = &amp;quot;wp_camp_gen_fl_alistair&amp;quot;;&lt;br /&gt;
    string sWPM = &amp;quot;wp_camp_gen_fl_morrigan&amp;quot;;&lt;br /&gt;
    string sWPD = &amp;quot;wp_camp_gen_fl_dog&amp;quot;;&lt;br /&gt;
    string sWPW = &amp;quot;wp_camp_gen_fl_wynne&amp;quot;;&lt;br /&gt;
    string sWPSh = &amp;quot;wp_camp_gen_fl_shale&amp;quot;;&lt;br /&gt;
    string sWPS = &amp;quot;wp_camp_gen_fl_sten&amp;quot;;&lt;br /&gt;
    string sWPZ = &amp;quot;wp_camp_gen_fl_zevran&amp;quot;;&lt;br /&gt;
    string sWPO = &amp;quot;wp_camp_gen_fl_oghren&amp;quot;;&lt;br /&gt;
    string sWPL = &amp;quot;wp_camp_gen_fl_leliana&amp;quot;;&lt;br /&gt;
    string sWPLo = &amp;quot;wp_camp_gen_fl_loghain&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    object oWPA = GetObjectByTag(sWPA);&lt;br /&gt;
    object oWPM = GetObjectByTag(sWPM);&lt;br /&gt;
    object oWPD = GetObjectByTag(sWPD);&lt;br /&gt;
    object oWPW = GetObjectByTag(sWPW);&lt;br /&gt;
    object oWPSh = GetObjectByTag(sWPSh);&lt;br /&gt;
    object oWPS = GetObjectByTag(sWPS);&lt;br /&gt;
    object oWPZ = GetObjectByTag(sWPZ);&lt;br /&gt;
    object oWPO = GetObjectByTag(sWPO);&lt;br /&gt;
    object oWPL = GetObjectByTag(sWPL);&lt;br /&gt;
    object oWPLo = GetObjectByTag(sWPLo);&lt;br /&gt;
&lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);&lt;br /&gt;
&lt;br /&gt;
    // Activating any followers that are in the party&lt;br /&gt;
    &lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oAlistair, TRUE);&lt;br /&gt;
        SetFollowerState(oAlistair, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oDog, TRUE);&lt;br /&gt;
        SetFollowerState(oDog, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oWynne, TRUE);&lt;br /&gt;
        SetFollowerState(oWynne, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oShale, TRUE);&lt;br /&gt;
        SetFollowerState(oShale, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oSten, TRUE);&lt;br /&gt;
        SetFollowerState(oSten, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oZevran, TRUE);&lt;br /&gt;
        SetFollowerState(oZevran, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oOghren, TRUE);&lt;br /&gt;
        SetFollowerState(oOghren, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oLeliana) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
    }&lt;br /&gt;
    if (GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oMorrigan, TRUE);&lt;br /&gt;
        SetFollowerState(oMorrigan, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLoghain, TRUE);&lt;br /&gt;
        SetFollowerState(oLoghain, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple Approval Script ===&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); /*change the 7 to whatever you want to increase approval by. change to negative number to decrease approval*/&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13233</id>
		<title>User:Satans karma</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=User:Satans_karma&amp;diff=13233"/>
				<updated>2010-07-27T02:36:27Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: A noob-friendly follower tutorial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Noob-Friendly Follower Tutorial:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
1) You know how to create a new module. If not, read through the module tutorial first. &lt;br /&gt;
2) You know how to create a basic dialogue. If not, read through the conversation tutorial first.&lt;br /&gt;
3) You know how to make a creature. If not, read through the creature tutorial first.&lt;br /&gt;
4) You know how to add waypoints to an area. If not, read through the area tutorial first.&lt;br /&gt;
5) You know how to create a plot. If not, read through the plot tutorial first.&lt;br /&gt;
6) You know how to create a blank script and can copy-and-paste.&lt;br /&gt;
7) You know how to turn an Excel document (.xls extension) into a 2DA file (.gda extension).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directions: ==&lt;br /&gt;
&lt;br /&gt;
1) Create a new module. Make sure that &amp;quot;Extended Module&amp;quot; option in the &amp;quot;Properties&amp;quot; section is set to &amp;quot;Single Player.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Create a dialogue that has conversation branches that:&lt;br /&gt;
   a. allows you to hire the follower (e.g. &amp;quot;Can I join your party?&amp;quot; --&amp;gt; &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;)&lt;br /&gt;
   b. allows you to fire the follower (e.g. &amp;quot;I want you to leave&amp;quot;)&lt;br /&gt;
   c. allows you to back out of the conversation (e.g. &amp;quot;Nevermind. I didn't mean to bother you.&amp;quot;)&lt;br /&gt;
   d. any other optional dialogue lines&lt;br /&gt;
&lt;br /&gt;
3) Create your follower. Be sure to list the dialogue you created in the &amp;quot;Conversation&amp;quot; option. Make sure you give the creature/follower a UNIQUE tag (usually only an issue if you are duplicating an existing NPC). Save and check in.&lt;br /&gt;
&lt;br /&gt;
4) Find the area called &amp;quot;char_stage.&amp;quot; Duplicate it. When you name it, add a prefix to char_stage (so it'll be called something like &amp;quot;xxx_char_stage&amp;quot;). The Folder, Module, and Owner Module should all be your module. Add a waypoint to the area. The tag of the waypoint should be your creature's unique tag with a &amp;quot;char_&amp;quot; prefix (so it'll be called something like &amp;quot;char_YourUniqueCreatureTag&amp;quot;). Save and check in the area. [The other follower tutorial has some nice images that might help you with this. You should check them out.]&lt;br /&gt;
&lt;br /&gt;
5) Create a new plot. Call it something like gen00pt_party_xxx. Insert (at minimum) four new main flags - CREATURENAME_HIRED, CREATURENAME_IN_PARTY, CREATURENAME_IN_CAMP, and CREATURENAME_FIRED. Replace &amp;quot;CREATURENAME&amp;quot; with your follower's name. Save and check in.&lt;br /&gt;
&lt;br /&gt;
6) Create a new script. Name it something like xxx_module_core. Copy and paste the module_core script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
7) Create a new script. Name it something like xxx_hire_creaturename. Copy and paste the hiring script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
8) Create a new script. Name it something like xxx_fire_creaturename. Copy and paste the firing script below into this script. Save and check in.&lt;br /&gt;
&lt;br /&gt;
9) Create a new script. Name it something like xxx_spawn_camp. Copy and paste one of the spawn follower in camp scripts into this script. Try the short version first. In theory, it should work, but when I tested it in game, Leliana would sometimes disappear. If you have that problem, replace the short version with the long version. Save and check in.&lt;br /&gt;
&lt;br /&gt;
10) Open a new excel document. It doesn't matter what it's called. Rename the Sheet1, Sheet2, and Sheet3 tabs at the bottom to partypicker_xxx, party_picker_xxx, and PRCSCR_xxx. &lt;br /&gt;
&lt;br /&gt;
In partypicker_xxx, create columns like those below. Replace ### with a very large number, and add in your creature's tag and name.&lt;br /&gt;
[[File:partypicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In party_picker_xxx, create columns like those below. Replace ### with the same very large number you used above, and add in your creature's tag.&lt;br /&gt;
[[File:party_picker.jpg]]&lt;br /&gt;
&lt;br /&gt;
In PRCSCR_xxx, create columns like those below. Replace ### with a very large number, and change the script to whatever you called the spawn follower in camp script (probably something like xxx_spawn_camp).&lt;br /&gt;
[[File:spawn_camp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Convert the excel document into a 2DA. &lt;br /&gt;
&lt;br /&gt;
11) Go back to your dialogue. In the hiring branch, set the action to fire the hiring script. In the firing branch, set the action to fire the firing script.&lt;br /&gt;
&lt;br /&gt;
12) OPTIONAL: If you want to increase/decrease approval with your dialogue, you can create a new script below using the simple approval script. You may have to make several copies for varying levels of approval/disapproval. After you have saved and checked in the approval scripts, you can set your conversation to fire these scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== module_core script ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;events_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    event ev = GetCurrentEvent();&lt;br /&gt;
    int nEventType = GetEventType(ev);&lt;br /&gt;
    object oEventCreator = GetEventCreator(ev);&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oParty = GetParty(oHero);&lt;br /&gt;
    int nEventHandled = FALSE;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    switch(nEventType)&lt;br /&gt;
    {&lt;br /&gt;
        case EVENT_TYPE_MODULE_GETCHARSTAGE:&lt;br /&gt;
        {&lt;br /&gt;
            SetPartyPickerStage(&amp;quot;xxx_char_stage&amp;quot;, &amp;quot;partypicker&amp;quot;);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        case EVENT_TYPE_PARTYMEMBER_ADDED:&lt;br /&gt;
        {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
            SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
            AddCommand(oFollower, CommandJumpToLocation(GetLocation(GetHero())));&lt;br /&gt;
&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, FALSE, FALSE);&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        case EVENT_TYPE_PARTYMEMBER_DROPPED:&lt;br /&gt;
        {&lt;br /&gt;
            object oFollower = GetEventObject(ev, 0);&lt;br /&gt;
            if (GetTag(oFollower) == &amp;quot;INSERT CREATURE TAG HERE&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
                WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Hiring script ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plot_h&amp;quot;&lt;br /&gt;
#include &amp;quot;party_h&amp;quot;&lt;br /&gt;
#include &amp;quot;events_h&amp;quot;&lt;br /&gt;
#include &amp;quot;core_h&amp;quot;&lt;br /&gt;
#include &amp;quot;global_objects_h&amp;quot;&lt;br /&gt;
#include &amp;quot;sys_autolevelup_h&amp;quot;&lt;br /&gt;
#include &amp;quot;sys_chargen_h&amp;quot;&lt;br /&gt;
#include &amp;quot;sys_rewards_h&amp;quot;&lt;br /&gt;
#include &amp;quot;approval_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oHero = GetHero();&lt;br /&gt;
    object oFollower = CreateObject(OBJECT_TYPE_CREATURE, R&amp;quot;INSERT CREATURE TAG HERE.utc&amp;quot;, GetLocation(oHero));&lt;br /&gt;
&lt;br /&gt;
    UT_HireFollower(oFollower, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_HIRED, TRUE, FALSE);&lt;br /&gt;
    SetLocalInt(oFollower, CREATURE_REWARD_FLAGS, 0);&lt;br /&gt;
    SetGroupId(oFollower, GetGroupId(oHero));&lt;br /&gt;
    SetFollowerApprovalEnabled(oFollower, TRUE);&lt;br /&gt;
    SetFollowerApprovalDescription(oFollower, 371487);&lt;br /&gt;
    SetPartyPickerGUIStatus(2);&lt;br /&gt;
    ShowPartyPickerGUI();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Firing Script ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;events_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    UT_FireFollower(oFollower, TRUE, TRUE);&lt;br /&gt;
    DestroyObject(oFollower);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_FIRED, TRUE);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Spawn Follower in Camp Script (short version) - Try using this before trying the long version ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);    &lt;br /&gt;
&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Spawn Follower in Camp Script (Long Version) - Only use if Leliana is not appearing in camp as she should ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;party_h&amp;quot;&lt;br /&gt;
#include &amp;quot;camp_functions_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;plt_gen00pt_party_xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT TAG OF CREATURE HERE&amp;quot;);&lt;br /&gt;
    object oAlistair = GetObjectByTag(&amp;quot;gen00fl_alistair&amp;quot;);&lt;br /&gt;
    object oMorrigan = GetObjectByTag(&amp;quot;gen00fl_morrigan&amp;quot;);&lt;br /&gt;
    object oDog = GetObjectByTag(&amp;quot;gen00fl_dog&amp;quot;);&lt;br /&gt;
    object oWynne = GetObjectByTag(&amp;quot;gen00fl_wynne&amp;quot;);&lt;br /&gt;
    object oShale = GetObjectByTag(&amp;quot;gen00fl_shale&amp;quot;);&lt;br /&gt;
    object oSten = GetObjectByTag(&amp;quot;gen00fl_sten&amp;quot;);&lt;br /&gt;
    object oZevran = GetObjectByTag(&amp;quot;gen00fl_zevran&amp;quot;);&lt;br /&gt;
    object oOghren = GetObjectByTag(&amp;quot;gen00fl_oghren&amp;quot;);&lt;br /&gt;
    object oLeliana = GetObjectByTag(&amp;quot;gen00fl_leliana&amp;quot;);&lt;br /&gt;
    object oLoghain = GetObjectByTag(&amp;quot;gen00fl_loghain&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    string sWPA = &amp;quot;wp_camp_gen_fl_alistair&amp;quot;;&lt;br /&gt;
    string sWPM = &amp;quot;wp_camp_gen_fl_morrigan&amp;quot;;&lt;br /&gt;
    string sWPD = &amp;quot;wp_camp_gen_fl_dog&amp;quot;;&lt;br /&gt;
    string sWPW = &amp;quot;wp_camp_gen_fl_wynne&amp;quot;;&lt;br /&gt;
    string sWPSh = &amp;quot;wp_camp_gen_fl_shale&amp;quot;;&lt;br /&gt;
    string sWPS = &amp;quot;wp_camp_gen_fl_sten&amp;quot;;&lt;br /&gt;
    string sWPZ = &amp;quot;wp_camp_gen_fl_zevran&amp;quot;;&lt;br /&gt;
    string sWPO = &amp;quot;wp_camp_gen_fl_oghren&amp;quot;;&lt;br /&gt;
    string sWPL = &amp;quot;wp_camp_gen_fl_leliana&amp;quot;;&lt;br /&gt;
    string sWPLo = &amp;quot;wp_camp_gen_fl_loghain&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    object oWPA = GetObjectByTag(sWPA);&lt;br /&gt;
    object oWPM = GetObjectByTag(sWPM);&lt;br /&gt;
    object oWPD = GetObjectByTag(sWPD);&lt;br /&gt;
    object oWPW = GetObjectByTag(sWPW);&lt;br /&gt;
    object oWPSh = GetObjectByTag(sWPSh);&lt;br /&gt;
    object oWPS = GetObjectByTag(sWPS);&lt;br /&gt;
    object oWPZ = GetObjectByTag(sWPZ);&lt;br /&gt;
    object oWPO = GetObjectByTag(sWPO);&lt;br /&gt;
    object oWPL = GetObjectByTag(sWPL);&lt;br /&gt;
    object oWPLo = GetObjectByTag(sWPLo);&lt;br /&gt;
&lt;br /&gt;
    //Follower's position (currently by one of tents; change vector coordinates if you don't like the positioning)&lt;br /&gt;
    vector vTent = Vector(138.564f, 111.815f, -1.08586f);&lt;br /&gt;
    location lTent = Location(GetArea(GetHero()), vTent,  180.0f);&lt;br /&gt;
    command cMove = CommandJumpToLocation(lTent);&lt;br /&gt;
&lt;br /&gt;
    // Activating any followers that are in the party&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ALISTAIR_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oAlistair, TRUE);&lt;br /&gt;
        SetFollowerState(oAlistair, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_DOG_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oDog, TRUE);&lt;br /&gt;
        SetFollowerState(oDog, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_WYNNE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oWynne, TRUE);&lt;br /&gt;
        SetFollowerState(oWynne, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_SHALE_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oShale, TRUE);&lt;br /&gt;
        SetFollowerState(oShale, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_STEN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oSten, TRUE);&lt;br /&gt;
        SetFollowerState(oSten, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_ZEVRAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oZevran, TRUE);&lt;br /&gt;
        SetFollowerState(oZevran, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_OGHREN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oOghren, TRUE);&lt;br /&gt;
        SetFollowerState(oOghren, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LELIANA_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (GetFollowerState(oLeliana) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (GetFollowerState(oFollower) == FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLeliana, TRUE);&lt;br /&gt;
        Rubber_SetHome(oLeliana, oWPL);&lt;br /&gt;
        Rubber_JumpHome(oLeliana);&lt;br /&gt;
        SetFollowerState(oLeliana, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_MORRIGAN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oMorrigan, TRUE);&lt;br /&gt;
        SetFollowerState(oMorrigan, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_GEN00PT_PARTY, GEN_LOGHAIN_RECRUITED))&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetObjectActive(oLoghain, TRUE);&lt;br /&gt;
        SetFollowerState(oLoghain, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(GetFollowerState(oFollower) != FOLLOWER_STATE_ACTIVE)&lt;br /&gt;
    {&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_ACTIVE);&lt;br /&gt;
        SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
        AddCommand(oFollower, cMove);&lt;br /&gt;
        WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
        WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    SetFollowerState(oFollower, FOLLOWER_STATE_AVAILABLE);&lt;br /&gt;
    AddCommand(oFollower, cMove);&lt;br /&gt;
    WR_SetObjectActive(oFollower, TRUE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_PARTY, FALSE, FALSE);&lt;br /&gt;
    WR_SetPlotFlag(PLT_GEN00PT_PARTY_XXX, CREATURENAME_IN_CAMP, TRUE, FALSE);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Simple Approval Script ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oFollower = GetObjectByTag(&amp;quot;INSERT CREATURE TAG HERE&amp;quot;);&lt;br /&gt;
    AdjustFollowerApproval(oFollower, 5, TRUE); /*change the 7 to whatever you want to increase approval by. change to negative number to decrease approval*/&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=File:Spawn_camp.jpg&amp;diff=13232</id>
		<title>File:Spawn camp.jpg</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=File:Spawn_camp.jpg&amp;diff=13232"/>
				<updated>2010-07-27T02:34:58Z</updated>
		
		<summary type="html">&lt;p&gt;Satans karma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Satans karma</name></author>	</entry>

	</feed>