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

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Compatibility&amp;diff=13480</id>
		<title>Compatibility</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Compatibility&amp;diff=13480"/>
				<updated>2010-09-09T07:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: adding existing content PRCSCR section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DAO has an active modding community. Over time, players will accumulate many new campaigns and game mods. So, as a courtesy to players and other builders, it's helpful to try to make our mods mutually compatible. &lt;br /&gt;
&lt;br /&gt;
From time to time, Bioware may well issue new releases, so it's good to reduce the risk of conflict in that respect, too. &lt;br /&gt;
&lt;br /&gt;
Since we can't be sure that all authors will respect compatibility considerations, the emphasis here is on techniques that reduce the risk of conflict, regardless of what other people do (though not all are foolproof).&lt;br /&gt;
&lt;br /&gt;
Obviously, there are some conflicts with no win-win (hurlocks can't be both green and purple at the same time), but that doesn't stop us trying to avoid unnecessary win-lose or corruption.&lt;br /&gt;
&lt;br /&gt;
== Disable Add-Ins : Suggested Disclaimer ==&lt;br /&gt;
&lt;br /&gt;
If the player disables all other add-ins on the in game DLC screen, no conflict should occur between them. Tedious, but effective.&lt;br /&gt;
&lt;br /&gt;
This should rarely be necessary if the compatibility guidelines listed here are observed.&lt;br /&gt;
&lt;br /&gt;
Exception : there is a [[Bug:_export_creates_unnecessary_core_override | toolset bug]] which produces content that persists in game, even when the add-in is disabled, unless the builder cleans it out before making the Builder-to-Player file. The same problem can occur if a builder has intentionally placed content in the packages\override folder (which should normally be avoided, as it is very rarely necessary).&lt;br /&gt;
&lt;br /&gt;
Mod authors can work together to set player expectations in this respect. For example, the installation instructions might say &lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;Reasonable steps have been taken to make this mod compatible. &lt;br /&gt;
Obviously, the author has no control over the quality of other mods you may have installed. &lt;br /&gt;
So, to reduce the risk of conflict, you are are strongly advised to move all files out of your &lt;br /&gt;
packages\override folders, and consider disabling unnecessary community mods on your in-game &lt;br /&gt;
DLC screen, before playing.&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Module Scope ==&lt;br /&gt;
&lt;br /&gt;
Setting the Extended Module in Module properties to &amp;quot;Core Game Resources&amp;quot; means that the add-in will change every campaign in game. If that's not intended, select the campaign you're trying to extend e.g. Single Player for the official campaign, (None) for a new standalone campaign.&lt;br /&gt;
&lt;br /&gt;
[[Compatibility#What_if_my_mod_extends_both_Single_Player_and_Awakening.3F | What if my mod extends both Single Player and Awakening?]]&lt;br /&gt;
&lt;br /&gt;
== Resource Scope ==&lt;br /&gt;
&lt;br /&gt;
The Owner Module resource property has a similar effect on individual design resources. It's easy to make a new core resource accidentally when copy-editing an official core resource, because the Owner Module defaults to core. This isn't obvious, but the resource will export to your module's core folder, where it will impact every campaign in game.&lt;br /&gt;
&lt;br /&gt;
Normally, it's not a good idea to make new core resources. &lt;br /&gt;
&lt;br /&gt;
Exception : items cannot be imported to a new campaign with the player character unless the template is included in both campaigns. One way of doing that is to make it a core resource - but that affects all campaigns, of course.   &lt;br /&gt;
&lt;br /&gt;
Placing resources in the packages folder should be avoided (unless you have a very good reason), because once a player has installed those resources, they persist, even when your add-in is disabled. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, the packages folder has to be used for resources that won't load from the addins folder, namely &lt;br /&gt;
&lt;br /&gt;
* Tintmaps&lt;br /&gt;
* Resources which are required for the standalone Character Creator program &lt;br /&gt;
&lt;br /&gt;
Art resources posted to local are always sent to the module's core folder.&lt;br /&gt;
&lt;br /&gt;
== Resource Conflict ==&lt;br /&gt;
&lt;br /&gt;
Resource names need to be unique within type. For example, genpt_party.plt and genpt_party.nss are different resources, becasue the type is different. However, if two modules both have resources called genpt_party.plt, only one will load in game, following the [[Source directory priorities]]. &lt;br /&gt;
&lt;br /&gt;
Within the toolset database, duplicate resource names are forbidden, but there's nothing to stop different builders making resources which accidentally conflict, so it's wise to choose a unique range of names. Each builder can register the prefix they require. See [[Naming_conventions#Resource_Naming_Convention | Resource Naming Convention]] and especially [[Prefixes in use]].&lt;br /&gt;
&lt;br /&gt;
It is possible to override a core resource intentionally, by editing a copy, exporting it, and renaming it in the export folder to the same name as the original. However, almost invariably there is a cleaner way of doing this - for example, by changing the 2DA which identifies which resource to use.&lt;br /&gt;
 &lt;br /&gt;
== Existing Content Modification ==&lt;br /&gt;
&lt;br /&gt;
When adding new content or content hooks to existing areas, do not modify the area directly and deploy the modified area as an override with your mod. This is incompatible with other mods trying to edit the same area since only one modified version of the area will &amp;quot;win&amp;quot;, and changes made by other mods to that area will not be available. Instead, use the [[PRCSCR]] system to add new content to existing areas.&lt;br /&gt;
&lt;br /&gt;
== 2DA Conflict ==&lt;br /&gt;
&lt;br /&gt;
Conflict between 2DA mods can be reduced using the [[2DA#Extending_the_game_via_M2DAs | M2DA]] mechanism and [[2DA#Reserved_ID_Ranges_and_overriding_existing_rows | reserving ID ranges]].&lt;br /&gt;
&lt;br /&gt;
2DA mods should normally be placed in the add-in's module folder. Exception : if they are meant to be universally applied to all campaigns, they should be in the addin/core/override folder. The packages override folder should normally be avoided (because that removes control from the player, by forcing the 2DA to load even if the player has disabled the add-in).&lt;br /&gt;
&lt;br /&gt;
== String Conflict ==&lt;br /&gt;
&lt;br /&gt;
When a new module is created, its properties include a [[String ID]] range which starts at a very large random number. This makes it very unlikely that text created by one add-in will override another.&lt;br /&gt;
&lt;br /&gt;
See [[String ID]] main article for a discussion of how this impacts sharing between Builders.&lt;br /&gt;
&lt;br /&gt;
== Event Handling Conflict ==&lt;br /&gt;
&lt;br /&gt;
Bear in mind that an add-in which impacts all campaigns could have undesirable consequences if it changes scripts or event-handling, given that custom campaigns may well have made changes of their own. If in doubt, consider modding the Single Player campaign only.&lt;br /&gt;
&lt;br /&gt;
See [[Event_override | event override]] for recommended methods of intercepting events.&lt;br /&gt;
&lt;br /&gt;
Note that script resources are never overwritten in these methods. Conceptually, the event is intercepted by a custom script, then passed on (unless the event has been handled successfully and further processing would be harmful). In this way, mods try not to interfere unnecessarily with other scripts.&lt;br /&gt;
&lt;br /&gt;
Given the variety of actions that can be taken in a script, and that fact that one mod can't know what other mods are trying to do, we can't guarantee that this approach will be entirely free of logical problems, but the Perfect is the enemy of the Good. &lt;br /&gt;
&lt;br /&gt;
The simplest and safest method is to assign a custom event script to a resource. This is likely to be used by custom campaigns, and also by Single Player mods to specific resources, as it is the approach that Bioware devs have often recommended.  &lt;br /&gt;
&lt;br /&gt;
Mods which aim to impact all campaigns globally are better advised to use the second method, i.e. overriding [[Event_(dascript_type) | event]] handling using an Events M2DA. As illustrated in the example script, if possible the event should be passed on to the default handler of the event's target object (which might be a custom event script). In this way, a global mod can be compatible with custom campaigns and specific resource mods. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, if two mods simply try to override the same event with an M2DA, they will be incompatible.&lt;br /&gt;
&lt;br /&gt;
The best solution to override, partially override, or just listen for events via M2DA at this point would be to use a system such as [http://social.bioware.com/project/1907/#details Event Manager], though to ensure compatibility all modules overriding or listening for events should also be using the same system.&lt;br /&gt;
&lt;br /&gt;
In the case of modules trying to totally override an event, only one module that does so will ultimately &amp;quot;win&amp;quot; (no such modules can ever truly be compatible with one another short of merging their functionality into one unified module as possible), but utilizing a system such as Event Manager will allow modules to partially override an event (i.e. only handle the event in certain situations), and will allow any module to listen for an event (without handling it) before or after the event is handled.&lt;br /&gt;
&lt;br /&gt;
== Plot Property ==&lt;br /&gt;
&lt;br /&gt;
Scripts that impact all campaigns should respect the plot property on resources. For example, if a campaign author has flagged an NPC as plot, it might not be helpful to change the creature AI.&lt;br /&gt;
&lt;br /&gt;
== Open Source ==&lt;br /&gt;
&lt;br /&gt;
If mod authors choose to publish their source code, with no restrictions on re-deployment, other builders can work around any residual incompatibilities (either by understanding the conflict more clearly, or by integrating the mod into their own work).&lt;br /&gt;
&lt;br /&gt;
This technical wiki is not the place to discuss any legal or ethical considerations.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== What if my mod extends both Single Player and Awakening? ===&lt;br /&gt;
&lt;br /&gt;
Just create two dazips for your module. Name one yourprefix_yourmodule_version and the other yourprefix_yourmodule_EP1_version.&lt;br /&gt;
&lt;br /&gt;
Edit the Manifest.xml file inside  yourprefix_yourmodule_EP_1_version.dazip.&lt;br /&gt;
Change the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;AddInItem UID=&amp;quot;yourprefix_yourmodule&amp;quot; Name=&amp;quot;Your Module Name&amp;quot; ExtendedModuleUID=&amp;quot;Single Player&amp;quot; Priority=&amp;quot;100&amp;quot; Enabled=&amp;quot;1&amp;quot; State=&amp;quot;2&amp;quot; Format=&amp;quot;1&amp;quot;&amp;gt; to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;AddInItem UID=&amp;quot;yourprefix_yourmodule_EP_1&amp;quot; Name=&amp;quot;Your Module Name&amp;quot; ExtendedModuleUID=&amp;quot;DAO_PRC_EP_1&amp;quot; Priority=&amp;quot;200&amp;quot; Enabled=&amp;quot;1&amp;quot; State=&amp;quot;2&amp;quot; Format=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [[Talk:Compatibility | Discussion]]&lt;br /&gt;
&lt;br /&gt;
=== How can I import an item with my existing character to a new campaign? ===&lt;br /&gt;
&lt;br /&gt;
The Awakening expansion allows an existing character to be imported from one campaign to another.&lt;br /&gt;
&lt;br /&gt;
There are two methods of ensuring that an item in the player's inventory is imported successfully:&lt;br /&gt;
&lt;br /&gt;
* Make the item a core resource&lt;br /&gt;
* Include the item template in separate add-ins to both campaigns (see Awakening example above)&lt;br /&gt;
&lt;br /&gt;
=== How can I stop items being imported into my campaign? ===&lt;br /&gt;
&lt;br /&gt;
Assuming your campaign allows existing characters to be imported during Character Generation, you might want to clear the player's inventory before adding your starting equipment. Imported equipment might upset the balance of your campaign.&lt;br /&gt;
&lt;br /&gt;
If you decide to do this, it's a good idea to warn players, so that they understand what's happening.&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR&amp;diff=13479</id>
		<title>PRCSCR</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR&amp;diff=13479"/>
				<updated>2010-09-09T07:23:46Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PRCSCR system enables a modder to add content into existing campaign areas in a fully compatible manner.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
PRCSCR (Post Release Content Script) is a sytem that executes custom scripts on entry into a game area in a manner that is fully [[Compatibility|compatible]] with existing campaign resources and 3rd party mods. The custom script can add the necessary hooks for new content to the existing area; placing items on vendors/in containers, adding map waypoints, spawning NPCs, adding doors/transitions to new areas, etc. This system is used by Bioware's DLC to add new content hooks, and it is the preferred option for integrating new content because it does not modify or change any existing campaign resources (e.g. it is not necessary to modify and override existing areas, which is not compatible with other mods trying to affect the same area).&lt;br /&gt;
&lt;br /&gt;
== PRCSCR M2DA ==&lt;br /&gt;
&lt;br /&gt;
The system works by using an [[2DA#Extending_the_game_via_M2DAs|M2DA]] to specify a custom script to run when entering an [[area list]] (alternately, the script can be told to run on entering ANY area list). If multiple M2DAs specify a script to run for the same area list, ALL of these defined scripts will be run, preventing any compatibility issues and allowing for everyone's custom scripts to get a chance to run and do their thing.&lt;br /&gt;
&lt;br /&gt;
The M2DA override for the PRCSCR system is [[PRCSCR.xls]].&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
&lt;br /&gt;
The usefulness of PRCSCR is that it can run ANY custom script you want. Anything that you can add to the game via scripting can therefore be compatibly added to an existing area. There is a collection of [[PRCSCR Script Templates]] that provide PRCSCR scripts for several common tasks.&lt;br /&gt;
&lt;br /&gt;
'''Note''': The script will be run every time the player enters the specified area list, so plot flags or similar methods are needed in the script to ensure that changes are only made once to the area.&lt;br /&gt;
&lt;br /&gt;
'''Note''': A limitation on scripts is that you cannot add merchants or stages via scripting. To add a merchant to an area with PRCSCR, a workaround would be necessary (e.g. creating the merchant in a custom area attached to the same area list that is deployed with the mod, then moving the merchant with PRCSCR to the existing area).&lt;br /&gt;
&lt;br /&gt;
== Usage Scenarios ==&lt;br /&gt;
&lt;br /&gt;
'''Where it applies:'''&lt;br /&gt;
&lt;br /&gt;
*You have made a new [[area]] and need to add a door to an existing location that transitions to your new area. With PRCSCR you can spawn an entrance door in an existing area without having to modify the area resources directly.&lt;br /&gt;
&lt;br /&gt;
*You have made a new item. With PRCSCR you can add the new item to an existing vendor or an existing container without having to edit the vendor/container resource or the area that contains that resource.&lt;br /&gt;
&lt;br /&gt;
*You have made a new [[Map_tutorial#Activating_and_deactivating_map_pins|map pin]] on the world map for a new area. With PRCSCR, you can &amp;quot;spawn&amp;quot; the map pin when the player next enters the game, or in response to certain plot or area conditions, including conditions based on main campaign plot flags (e.g. only after Lothering has been destroyed).&lt;br /&gt;
&lt;br /&gt;
'''Where it doesn't apply:'''&lt;br /&gt;
&lt;br /&gt;
*You have made a new interior area and are placing items or NPCs in this area. Because the new area is unique content for your mod, you do not need to use PRCSCR to modify it. However, you would still probably use PRCSCR to provide a link to your new area from an existing area/world map.&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR&amp;diff=13478</id>
		<title>PRCSCR</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR&amp;diff=13478"/>
				<updated>2010-09-09T07:23:10Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: rewriting and cleaning up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PRCSCR system enables a modder to add content into existing campaign areas in a fully compatible manner.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
PRCSCR (Post Release Content Script) is a sytem that executes custom scripts on entry into a game area in a manner that is fully [[Compatibility|compatible]] with existing campaign resources and 3rd party mods. The custom script can then add the necessary hooks for new content to the existing area; placing items on vendors/in containers, adding map waypoints, spawning NPCs, adding doors/transitions to new areas, etc. This system is used by Bioware's DLC to add new content hooks, and it is the preferred option for integrating new content because it does not modify or change any existing campaign resources (e.g. it is not necessary to modify and override existing areas, which is not compatible with other mods trying to affect the same area).&lt;br /&gt;
&lt;br /&gt;
== PRCSCR M2DA ==&lt;br /&gt;
&lt;br /&gt;
The system works by using an [[2DA#Extending_the_game_via_M2DAs|M2DA]] to specify a custom script to run when entering an [[area list]] (alternately, the script can be told to run on entering ANY area list). If multiple M2DAs specify a script to run for the same area list, ALL of these defined scripts will be run, preventing any compatibility issues and allowing for everyone's custom scripts to get a chance to run and do their thing.&lt;br /&gt;
&lt;br /&gt;
The M2DA override for the PRCSCR system is [[PRCSCR.xls]].&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
&lt;br /&gt;
The usefulness of PRCSCR is that it can run ANY custom script you want. Anything that you can add to the game via scripting can therefore be compatibly added to an existing area. There is a collection of [[PRCSCR Script Templates]] that provide PRCSCR scripts for several common tasks.&lt;br /&gt;
&lt;br /&gt;
'''Note''': The script will be run every time the player enters the specified area list, so plot flags or similar methods are needed in the script to ensure that changes are only made once to the area.&lt;br /&gt;
&lt;br /&gt;
'''Note''': A limitation on scripts is that you cannot add merchants or stages via scripting. To add a merchant to an area with PRCSCR, a workaround would be necessary (e.g. creating the merchant in a custom area attached to the same area list that is deployed with the mod, then moving the merchant with PRCSCR to the existing area).&lt;br /&gt;
&lt;br /&gt;
== Usage Scenarios ==&lt;br /&gt;
&lt;br /&gt;
'''Where it applies:'''&lt;br /&gt;
&lt;br /&gt;
*You have made a new [[area]] and need to add a door to an existing location that transitions to your new area. With PRCSCR you can spawn an entrance door in an existing area without having to modify the area resources directly.&lt;br /&gt;
&lt;br /&gt;
*You have made a new item. With PRCSCR you can add the new item to an existing vendor or an existing container without having to edit the vendor/container resource or the area that contains that resource.&lt;br /&gt;
&lt;br /&gt;
*You have made a new [[Map_tutorial#Activating_and_deactivating_map_pins|map pin]] on the world map for a new area. With PRCSCR, you can &amp;quot;spawn&amp;quot; the map pin when the player next enters the game, or in response to certain plot or area conditions, including conditions based on main campaign plot flags (e.g. only after Lothering has been destroyed).&lt;br /&gt;
&lt;br /&gt;
'''Where it doesn't apply:'''&lt;br /&gt;
&lt;br /&gt;
*You have made a new interior area and are placing items or NPCs in this area. Because the new area is unique content for your mod, you do not need to use PRCSCR to modify it. However, you would still probably use PRCSCR to provide a link to your new area from an existing area/world map.&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13477</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13477"/>
				<updated>2010-09-09T06:52:04Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Adding an Item to an existing Vendor or Container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor or Container|5. Adding an Item to an existing Vendor or Container]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor or Container ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Campaign !! Container !! ContainerTag !! AreaListName&lt;br /&gt;
|-&lt;br /&gt;
|Origins || Bodahn || store_camp_bodahn || cam100ar_camp_plains&lt;br /&gt;
|-&lt;br /&gt;
|Origins || daytime King's Camp quartermaster || pre100sr_quartermaster || pre01al_kings_camp&lt;br /&gt;
|-&lt;br /&gt;
|Awakening || Yuriah || store_vgk100cr_merchant || vgk210ar_throne_room&lt;br /&gt;
|-&lt;br /&gt;
|Awakening || Party Chest in Vigil's Keep || vgk210ip_party_chest || vgk210ar_throne_room&lt;br /&gt;
|-&lt;br /&gt;
|Leliana's Song || first Lem encounter || store_lel00cr_lem || lel100ar_market&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
#Create a [[PRCSCR.xls|PRCSCR M2DA override]] using the desired AreaListName from the above table&lt;br /&gt;
#Copy this new PRCSCR M2DA into your module's override folder (AddIns\{YourMod}\core\override)&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oContainer = GetObjectByTag($ContainerTag$);&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oContainer))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oContainer, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [[Plot#Scripting|plot and plot flags]] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#Replace &amp;quot;$ContainerTag$&amp;quot; with the desired container tag from the table in the M2DA setup section.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run when using &amp;quot;cam100ar_camp_plains&amp;quot; as the AreaListName. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13476</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13476"/>
				<updated>2010-09-09T06:42:27Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Adding an Item to an existing Vendor or Container */ table formatting for different containers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor or Container|5. Adding an Item to an existing Vendor or Container]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor or Container ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Campaign !! Container !! ContainerTag !! AreaListName&lt;br /&gt;
|-&lt;br /&gt;
|Origins || Bodahn || store_camp_bodahn || cam100ar_camp_plains&lt;br /&gt;
|-&lt;br /&gt;
|Origins || daytime King's Camp quartermaster || pre100sr_quartermaster || pre01al_kings_camp&lt;br /&gt;
|-&lt;br /&gt;
|Awakening || Yuriah || store_vgk100cr_merchant || vgk210ar_throne_room&lt;br /&gt;
|-&lt;br /&gt;
|Awakening || Party Chest in Vigil's Keep || vgk210ip_party_chest || vgk210ar_throne_room&lt;br /&gt;
|-&lt;br /&gt;
|Leliana's Song || first Lem encounter || store_lel00cr_lem || lel100ar_market&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
#Create a GDA PRCSCR override using the desired AreaListName from the above table&lt;br /&gt;
#Copy the GDA PRCSCR into your module's override folder (AddIns\{YourMod}\core\override)&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oContainer = GetObjectByTag($ContainerTag$);&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oContainer))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oContainer, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [[Plot#Scripting|plot and plot flags]] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#Replace &amp;quot;$ContainerTag$&amp;quot; with the desired container tag from the table in the M2DA setup section.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run when using &amp;quot;cam100ar_camp_plains&amp;quot; as the AreaListName. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13475</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13475"/>
				<updated>2010-09-09T06:30:29Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: minor section title change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor or Container|5. Adding an Item to an existing Vendor or Container]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor or Container ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#Origins (Bodahn) - AreaListName should be &amp;quot;cam100ar_camp_plains&amp;quot;.&lt;br /&gt;
#Origins (daytime King's Camp vendor) - AreaListName should be &amp;quot;pre01al_kings_camp&amp;quot;.&lt;br /&gt;
#Awakening (Yuriah or Personal Chest) - AreaListName should be &amp;quot;vgk210ar_throne_room&amp;quot;.&lt;br /&gt;
#Leliana's Song (first Lem encounter) - AreaListName should be &amp;quot;lel100ar_market&amp;quot;.&lt;br /&gt;
#Copy the GDA into your module's override folder (AddIns\{YourMod}\core\override)&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_camp_bodahn&amp;quot;);        // use this one for Origins/Bodahn&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;pre100sr_quartermaster&amp;quot;);   // use this one for Origins/daytime King's Camp vendor&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_vgk100cr_merchant&amp;quot;);  // use this one for Awakening/Yuriah&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;vgk210ip_party_chest&amp;quot;);     // use this one for Awakening/Peronsal Chest&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_lel00cr_lem&amp;quot;);        // use this one for Leliana's Song/first Lem encounter&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oStore))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oStore, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [[Plot#Scripting|plot and plot flags]] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13474</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13474"/>
				<updated>2010-09-09T06:26:55Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Adding an Item to an existing Vendor */ added more areas and vendors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor|5. Adding an Item to an existing Vendor]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor/Container ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#Origins (Bodahn) - AreaListName should be &amp;quot;cam100ar_camp_plains&amp;quot;.&lt;br /&gt;
#Origins (daytime King's Camp vendor) - AreaListName should be &amp;quot;pre01al_kings_camp&amp;quot;.&lt;br /&gt;
#Awakening (Yuriah or Personal Chest) - AreaListName should be &amp;quot;vgk210ar_throne_room&amp;quot;.&lt;br /&gt;
#Leliana's Song (first Lem encounter) - AreaListName should be &amp;quot;lel100ar_market&amp;quot;.&lt;br /&gt;
#Copy the GDA into your module's override folder (AddIns\{YourMod}\core\override)&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_camp_bodahn&amp;quot;);        // use this one for Origins/Bodahn&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;pre100sr_quartermaster&amp;quot;);   // use this one for Origins/daytime King's Camp vendor&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_vgk100cr_merchant&amp;quot;);  // use this one for Awakening/Yuriah&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;vgk210ip_party_chest&amp;quot;);     // use this one for Awakening/Peronsal Chest&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_lel00cr_lem&amp;quot;);        // use this one for Leliana's Song/first Lem encounter&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oStore))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oStore, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [[Plot#Scripting|plot and plot flags]] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=EVENT_TYPE_UNEQUIP&amp;diff=13350</id>
		<title>EVENT TYPE UNEQUIP</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=EVENT_TYPE_UNEQUIP&amp;diff=13350"/>
				<updated>2010-08-09T10:19:50Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: changed in 1.04&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{event&lt;br /&gt;
|sourcefile=script.ldf&lt;br /&gt;
|when= The current creature has unequipped an item&lt;br /&gt;
|from= [[engine]]&lt;br /&gt;
|to= [[creature]]s&lt;br /&gt;
|tocategory1=creature&lt;br /&gt;
|sortkey=UNEQUIP&lt;br /&gt;
|creatorname=oCreator&lt;br /&gt;
|creatordesc=creature doing the unequipping&lt;br /&gt;
|object0name=oItem&lt;br /&gt;
|object0desc=item being unequipped&lt;br /&gt;
|int0name=nInventorySlot&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Talk:EVENT_TYPE_UNEQUIP&amp;diff=13349</id>
		<title>Talk:EVENT TYPE UNEQUIP</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Talk:EVENT_TYPE_UNEQUIP&amp;diff=13349"/>
				<updated>2010-08-09T10:18:16Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: change in 1.04&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It appears that the behavior of EVENT_TYPE_UNEQUIP has changed in patch 1.04.&lt;br /&gt;
&lt;br /&gt;
Prior to patch 1.04, calling GetEventCreator on this event would return the item being unequipped. Getting the event object at index 0 returned either the item being unequipped or nothing, I'm not sure.&lt;br /&gt;
&lt;br /&gt;
In patch 1.04, calling GetEventCreator on this event now returns the creature doing the unequipping . Getting the event object at index 0 returns the item being unequipped.&lt;br /&gt;
&lt;br /&gt;
[[User:Nezroy|Nezroy]] 10:18, 9 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13183</id>
		<title>Module Resource Script.sql</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13183"/>
				<updated>2010-07-13T19:09:42Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: moving delete commentary to bottom&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script selects all of the resources for a module based on its UID. Change the UID in quotes (in the second line) to your module's UID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
declare @modID int&lt;br /&gt;
set @modID = (select ID from dbo.t_Module as t where t.UID = 'my_module_UID')&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleResRefVersionID (ModuleResRefVersionID = t_ModuleResRefVersion.ID)&lt;br /&gt;
select * from dbo.t_AreaWaypoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaReverbVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaReverbVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObjectVariable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObjectGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaMusicVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaMusicVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaList as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaInstanceAssociations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Area as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AssociatedResource as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Character as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationTagMap as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationLine as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationCinematics as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationAnimations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Conversation as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CreatureAbility as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Creature as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneTrack as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneActionTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneActionFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneAction as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Cutscene as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Inventory as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ItemProperty as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Item as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapTrailPoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapTrail as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapPin as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Map as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MerchantRestrictedItem as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Merchant as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Placeable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_PlotStatus as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_PlotAssist as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Plot as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Role as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Script_Reference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Script as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageObjectReference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Stage as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StringText as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StringVersion as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Trigger as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Variable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
&lt;br /&gt;
-- resource refs&lt;br /&gt;
select * from dbo.t_ResRef as t, dbo.t_ModuleResRef as m where t.ID = m.ResRefId and m.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleID (ModuleID = t_Module.ID)&lt;br /&gt;
select * from dbo.t_ModuleVariable as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRef as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRefVersion as t where t.ModuleID = @modID or t.OwnerModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- module tables&lt;br /&gt;
select * from dbo.t_ModuleAssociation as t where t.ChildModuleID = @modID or t.ParentModuleID = @modID&lt;br /&gt;
select * from dbo.t_String as t, dbo.t_Module as m where t.StringTableID = m.StringTableID and m.ID = @modID&lt;br /&gt;
select * from dbo.t_StringTable as t, dbo.t_Module as m where t.ID = m.StringTableID and m.ID = @modID&lt;br /&gt;
select * from dbo.t_Module as t where t.ID = @modID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use this script to delete a module completely from the DB by changing all of the &amp;quot;select * from dbo.t_table&amp;quot; statements to &amp;quot;delete dbo.t_table from dbo.t_table&amp;quot;. Use this is at your own risk, however, as it is not fully tested. It's probably a good idea to back up your DB before trying that. Also, you'll need to add a line near the beginning to null out some of the module scripts to avoid foreign key issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update dbo.t_Module set StartAreaResRefID = NULL, ScriptResRefID = NULL, ClientScriptResRefID = NULL where ID = @modID&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13182</id>
		<title>Module Resource Script.sql</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13182"/>
				<updated>2010-07-13T19:05:02Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: adding string table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script selects all of the resources for a module based on its UID. Change the UID in quotes (in the second line) to your module's UID.&lt;br /&gt;
&lt;br /&gt;
You could also use this script to delete a module completely from the DB by changing all of the &amp;quot;select *&amp;quot; statements to &amp;quot;delete&amp;quot;. Use this is at your own risk, however, as it is not fully tested. It's probably a good idea to back up your DB before trying that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
declare @modID int&lt;br /&gt;
set @modID = (select ID from dbo.t_Module as t where t.UID = 'nez_shdwrdncmdr')&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleResRefVersionID (ModuleResRefVersionID = t_ModuleResRefVersion.ID)&lt;br /&gt;
select * from dbo.t_AreaWaypoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaReverbVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaReverbVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObjectVariable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObjectGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaMusicVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaMusicVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaList as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaInstanceAssociations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Area as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AssociatedResource as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Character as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationTagMap as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationLine as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationCinematics as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationAnimations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Conversation as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CreatureAbility as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Creature as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneTrack as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneActionTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneActionFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneAction as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Cutscene as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Inventory as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ItemProperty as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Item as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapTrailPoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapTrail as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapPin as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Map as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MerchantRestrictedItem as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Merchant as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Placeable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_PlotStatus as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_PlotAssist as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Plot as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Role as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Script_Reference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Script as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageObjectReference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Stage as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StringText as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StringVersion as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Trigger as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Variable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
&lt;br /&gt;
-- resource refs&lt;br /&gt;
select * from dbo.t_ResRef as t, dbo.t_ModuleResRef as m where t.ID = m.ResRefId and m.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleID (ModuleID = t_Module.ID)&lt;br /&gt;
select * from dbo.t_ModuleVariable as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRef as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRefVersion as t where t.ModuleID = @modID or t.OwnerModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- module tables&lt;br /&gt;
select * from dbo.t_ModuleAssociation as t where t.ChildModuleID = @modID or t.ParentModuleID = @modID&lt;br /&gt;
select * from dbo.t_String as t, dbo.t_Module as m where t.StringTableID = m.StringTableID and m.ID = @modID&lt;br /&gt;
select * from dbo.t_StringTable as t, dbo.t_Module as m where t.ID = m.StringTableID and m.ID = @modID&lt;br /&gt;
select * from dbo.t_Module as t where t.ID = @modID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13181</id>
		<title>Module Resource Script.sql</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13181"/>
				<updated>2010-07-13T19:02:55Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: including ownermoduleid in resref lookup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script selects all of the resources for a module based on its UID. Change the UID in quotes (in the second line) to your module's UID.&lt;br /&gt;
&lt;br /&gt;
You could also use this script to delete a module completely from the DB by changing all of the &amp;quot;select *&amp;quot; statements to &amp;quot;delete&amp;quot;. Use this is at your own risk, however, as it is not fully tested. It's probably a good idea to back up your DB before trying that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
declare @modID int&lt;br /&gt;
set @modID = (select ID from dbo.t_Module as t where t.UID = 'nez_shdwrdncmdr')&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleResRefVersionID (ModuleResRefVersionID = t_ModuleResRefVersion.ID)&lt;br /&gt;
select * from dbo.t_AreaWaypoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaReverbVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaReverbVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObjectVariable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObjectGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaMusicVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaMusicVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaList as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaInstanceAssociations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Area as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_AssociatedResource as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Character as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationTagMap as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationLine as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationCinematics as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ConversationAnimations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Conversation as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CreatureAbility as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Creature as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneTrack as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneActionTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneActionFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_CutsceneAction as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Cutscene as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Inventory as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_ItemProperty as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Item as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapTrailPoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapTrail as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MapPin as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Map as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_MerchantRestrictedItem as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Merchant as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Placeable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_PlotStatus as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_PlotAssist as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Plot as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Role as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Script_Reference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Script as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageObjectReference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StageFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Stage as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StringText as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_StringVersion as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Trigger as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
select * from dbo.t_Variable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and (m.ModuleID = @modID or m.OwnerModuleID = @modID)&lt;br /&gt;
&lt;br /&gt;
-- resource refs&lt;br /&gt;
select * from dbo.t_ResRef as t, dbo.t_ModuleResRef as m where t.ID = m.ResRefId and m.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleID (ModuleID = t_Module.ID)&lt;br /&gt;
select * from dbo.t_ModuleVariable as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRef as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRefVersion as t where t.ModuleID = @modID or t.OwnerModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- module tables&lt;br /&gt;
select * from dbo.t_ModuleAssociation as t where t.ChildModuleID = @modID or t.ParentModuleID = @modID&lt;br /&gt;
select * from dbo.t_String as t, dbo.t_Module as m where t.StringTableID = m.StringTableID and m.ID = @modID&lt;br /&gt;
select * from dbo.t_Module as t where t.ID = @modID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Feature_request:_Deleting_a_module&amp;diff=13180</id>
		<title>Feature request: Deleting a module</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Feature_request:_Deleting_a_module&amp;diff=13180"/>
				<updated>2010-07-13T18:43:04Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Deleting a Module from the Toolset */ alternate SQL to avoid orphans&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The current toolset does not allow for the deletion of a module that has been created.&lt;br /&gt;
Users typically initially create a bunch of test modules that cannot be removed, and forever after clutter up the list of modules.&lt;br /&gt;
&lt;br /&gt;
There is a hacky workaround of deleting the module name manually from the database, but it just orphans all the modules resources without removing them from the database.&lt;br /&gt;
&lt;br /&gt;
{{EV|210854|[[User:Allan Smith|Allan Smith]]}}&lt;br /&gt;
&lt;br /&gt;
Beware, this is by no means a clean and easy solution.&lt;br /&gt;
&lt;br /&gt;
== Deleting a Module from the Toolset ==&lt;br /&gt;
&lt;br /&gt;
Setup:&lt;br /&gt;
I created a module called Meep with a unique id of rcfMeep, added in one area with a waypoint, configured the starting area/waypoint info, and exported it with dependencies.  And now I want to strip it out.&lt;br /&gt;
&lt;br /&gt;
Step 1: Removing it from the game&lt;br /&gt;
&lt;br /&gt;
* Navigate to My Documents\Bioware\AddIns&lt;br /&gt;
* Delete the folder called rcfMeep&lt;br /&gt;
* Done&lt;br /&gt;
&lt;br /&gt;
Removing from the game is fairly easy.  The toolset?  Not so much.  The reason for this is that the information is stored in the SQL Database.  Now if you just want to remove the module from the Manage Modules list, that is easy.&lt;br /&gt;
&lt;br /&gt;
* Open Sql Server Management Studio Express.  I'm not sure if the default installation installs this or not.  If not, it can be downloaded from Microsoft.&lt;br /&gt;
* Connect to the BWDATOOLSET server, assuming that you kept the default options.&lt;br /&gt;
* Expand Databases&lt;br /&gt;
* Expand bw_dragonage_content&lt;br /&gt;
* Expand Tables&lt;br /&gt;
* Right click and select open table on the dbo.Module table&lt;br /&gt;
* This will bring up an excell-like window.  Find your module, right-click on the row, and select delete.  Say ok to the confirmation.&lt;br /&gt;
* Module is now PERMANENTLY removed.  Absolutely no way of recovering it.&lt;br /&gt;
&lt;br /&gt;
Now depending on the size of the Module, you just orphaned a bunch of resources.  Areas, placables, conversations, they all get placed into the database.  And once you remove the module ID, you just lost your ability to remove these resources.  Now do keep in mind that 95% of this junk is just text, so it hardly takes up any room.  It's not really a major issue.  However if you delete out the resources within the toolset before you remove the module reference you should avoid this.&lt;br /&gt;
&lt;br /&gt;
=== Alternate SQL to Avoid Orphans ===&lt;br /&gt;
&lt;br /&gt;
Instead of removing only the entry from the dbo.t_Module table as described above, you can modify the [[Module_Resource_Script.sql|module resource SQL script]] to delete instead of select. This should clean up all of your module resources cleanly, but is a higher risk approach since you could accidentally delete more than you intended.&lt;br /&gt;
&lt;br /&gt;
[[Category:Feature requests]]&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13179</id>
		<title>Module Resource Script.sql</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13179"/>
				<updated>2010-07-13T18:39:37Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: changing default mod UID for clarity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script selects all of the resources for a module based on its UID. Change the UID in quotes (in the second line) to your module's UID.&lt;br /&gt;
&lt;br /&gt;
You could also use this script to delete a module completely from the DB by changing all of the &amp;quot;select *&amp;quot; statements to &amp;quot;delete&amp;quot;. Use this is at your own risk, however, as it is not fully tested. It's probably a good idea to back up your DB before trying that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
declare @modID int&lt;br /&gt;
set @modID = (select ID from dbo.t_Module as t where t.UID = 'my_module_UID')&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleResRefVersionID (ModuleResRefVersionID = t_ModuleResRefVersion.ID)&lt;br /&gt;
select * from dbo.t_Area as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaAudioVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaInstanceAssociations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaList as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaMusicVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaMusicVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaObjectGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaObjectVariable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaReverbVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaReverbVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaWaypoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AssociatedResource as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Character as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Conversation as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationAnimations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationCinematics as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationLine as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationTagMap as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Creature as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CreatureAbility as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Cutscene as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneAction as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneActionFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneActionTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneTrack as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Inventory as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Item as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ItemProperty as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Map as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_MapPin as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_MapTrail as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_MapTrailPoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Merchant as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_MerchantRestrictedItem as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Placeable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Plot as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_PlotAssist as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_PlotStatus as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Role as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Script as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Script_Reference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Stage as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StageFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StageObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StageObjectReference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StringText as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StringVersion as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Trigger as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Variable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- resource refs&lt;br /&gt;
select * from dbo.t_ResRef as t, dbo.t_ModuleResRef as m where t.ID = m.ResRefId and m.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleID (ModuleID = t_Module.ID)&lt;br /&gt;
select * from dbo.t_ModuleVariable as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRef as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRefVersion as t where t.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- module tables&lt;br /&gt;
select * from dbo.t_ModuleAssociation as t where t.ChildModuleID = @modID or t.ParentModuleID = @modID&lt;br /&gt;
select * from dbo.t_String as t, dbo.t_Module as m where t.StringTableID = m.StringTableID and m.ID = @modID&lt;br /&gt;
select * from dbo.t_Module as t where t.ID = @modID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13178</id>
		<title>Module Resource Script.sql</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Module_Resource_Script.sql&amp;diff=13178"/>
				<updated>2010-07-13T18:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: SQL script for selecting all module content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script selects all of the resources for a module based on its UID. Change the UID in quotes (in the second line) to your module's UID.&lt;br /&gt;
&lt;br /&gt;
You could also use this script to delete a module completely from the DB by changing all of the &amp;quot;select *&amp;quot; statements to &amp;quot;delete&amp;quot;. Use this is at your own risk, however, as it is not fully tested. It's probably a good idea to back up your DB before trying that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
declare @modID int&lt;br /&gt;
set @modID = (select ID from dbo.t_Module as t where t.UID = 'nez_shdwrdncmdr')&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleResRefVersionID (ModuleResRefVersionID = t_ModuleResRefVersion.ID)&lt;br /&gt;
select * from dbo.t_Area as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaAudioVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaAudioVolumeSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaInstanceAssociations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaList as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaMusicVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaMusicVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaObjectGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaObjectVariable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaReverbVolume as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaReverbVolumeGeometry as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaSound as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AreaWaypoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_AssociatedResource as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Character as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Conversation as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationAnimations as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationCinematics as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationLine as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationTagMap as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ConversationTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Creature as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CreatureAbility as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Cutscene as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneAction as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneActionFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneActionTransition as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_CutsceneTrack as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Inventory as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Item as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ItemProperty as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Map as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_MapPin as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_MapTrail as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_MapTrailPoint as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Merchant as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_MerchantRestrictedItem as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Placeable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Plot as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_PlotAssist as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_PlotStatus as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Role as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Script as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Script_Reference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Stage as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StageFBEParameter as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StageObject as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StageObjectReference as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StringText as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_StringVersion as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Trigger as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_Variable as t, dbo.t_ModuleResRefVersion as m where t.ModuleResRefVersionID = m.ID and m.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- resource refs&lt;br /&gt;
select * from dbo.t_ResRef as t, dbo.t_ModuleResRef as m where t.ID = m.ResRefId and m.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- tables using ModuleID (ModuleID = t_Module.ID)&lt;br /&gt;
select * from dbo.t_ModuleVariable as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRef as t where t.ModuleID = @modID&lt;br /&gt;
select * from dbo.t_ModuleResRefVersion as t where t.ModuleID = @modID&lt;br /&gt;
&lt;br /&gt;
-- module tables&lt;br /&gt;
select * from dbo.t_ModuleAssociation as t where t.ChildModuleID = @modID or t.ParentModuleID = @modID&lt;br /&gt;
select * from dbo.t_String as t, dbo.t_Module as m where t.StringTableID = m.StringTableID and m.ID = @modID&lt;br /&gt;
select * from dbo.t_Module as t where t.ID = @modID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13048</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=13048"/>
				<updated>2010-06-17T22:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Adding an Item to an existing Vendor */ clarifying where the GDA goes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor|5. Adding an Item to an existing Vendor]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#Origins (Bodahn) - AreaListName should be &amp;quot;cam100ar_camp_plains&amp;quot;.&lt;br /&gt;
#Awakening (Yuriah) - AreaListName should be &amp;quot;vgk210ar_throne_room&amp;quot;.&lt;br /&gt;
#Copy the GDA into your module's override folder (AddIns\{YourMod}\core\override)&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_camp_bodahn&amp;quot;);        // use this one for Bodahn/Origins&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_vgk100cr_merchant&amp;quot;);  // use this one for Yuriah/Awakening&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oStore))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oStore, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [[Plot#Scripting|plot and plot flags]] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=DDS_Export_Settings&amp;diff=13043</id>
		<title>DDS Export Settings</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=DDS_Export_Settings&amp;diff=13043"/>
				<updated>2010-06-15T19:41:30Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nvdxt.exe ==&lt;br /&gt;
&lt;br /&gt;
The toolset comes with a copy of the NVidia command line tool nvdxt.exe. This tool converts TGA files into DDS files, and can be found at &amp;quot;Dragon Age Origins\tools\ResourceBuild\Processors\nvdxt.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A typical nvdxt.exe call looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nvdxt.exe [format] -quality_highest -file input.tga -output output.dds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [format] portion would be replaced by options that depend on the specific texture types.&lt;br /&gt;
&lt;br /&gt;
=== For Icons ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-u8888 -nomipmap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Diffuse Textures ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-dxt1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Specular/Tint/Normal Textures ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-dxt5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: &amp;lt;code&amp;gt;-dxt3&amp;lt;/code&amp;gt; should also work, and may produce better quality textures under certain conditions.&lt;br /&gt;
&lt;br /&gt;
=== LOD/prescale ===&lt;br /&gt;
&lt;br /&gt;
Another useful option is &amp;lt;code&amp;gt;-prescale x y&amp;lt;/code&amp;gt;, with x and y specifying pixel dimensions. This resizes the texture to the specified size before generating the DDS. This can be very useful for creating the necessary multiple LOD textures from a single large source TGA.&lt;br /&gt;
&lt;br /&gt;
== Photoshop Plugin ==&lt;br /&gt;
&lt;br /&gt;
(compiled from http://social.bioware.com/forum/1/topic/8/index/599061/1#604952)&lt;br /&gt;
&lt;br /&gt;
=== For Icons ===&lt;br /&gt;
According to [http://social.bioware.com/10507/ Ketaros]&amp;lt;br /&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Format: &amp;quot;X.8.8.8 XRGB 32 bpp | unsigned&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Type: &amp;quot;2D Texture&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Choose: &amp;quot;No MIP maps&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/112329/ tmp7704&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;The icons i've extracted from original files were saved in ARGB fromat with fully opaque Alpha channel. Saving the data in XRGB format theoretically skips the alpha channel data altogether and supplies one unused channel instead, no idea if that makes any difference for the game engine.&amp;quot; &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/737222/ theBigMuh]&amp;lt;br /&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Format 8.8.8.8 ARGB&amp;lt;br /&amp;gt;&lt;br /&gt;
Type: &amp;quot;2D Texture&amp;quot; (not qouted but assumed)&amp;lt;br /&amp;gt;&lt;br /&gt;
Choose: &amp;quot;No mip maps&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Textures ===&lt;br /&gt;
According to [http://social.bioware.com/737222/ theBigMuh]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;For textures, use DXT1 for diffuse\\specular\\tint, and DXT3 (NOT DXT5) for normal maps. The interpolated alpha of DXT5 makes for horrible horrible bump mapping artifacts. Check generate mip maps, too. Put the high resolution variation into AddIns\\&amp;lt;youraddin&amp;gt;\\core\\textures\\high, and a 50% downscaled version into AddIns\\&amp;lt;youraddin&amp;gt;\\core\\textures\\medium.&amp;quot; &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/112329/ tmp7704]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;The 1-bit alpha channel in DXT1 compression is often going to mess things up or be simply insufficient.&lt;br /&gt;
&lt;br /&gt;
The native tint maps seem to use unsigned 16-bit format (a4r4g4b4) which  works for them since they don't use any real gradients to speak of.&lt;br /&gt;
&lt;br /&gt;
The choice between DXT3 and DXT5 for the normal maps would depend on what sort of data is put in the alpha channel. If it has smooth gradients DXT5 is better suited for it. For sharp transitions DXT3 may be a better choice (the limitation of DXT3 compression is it can only record 16 brightness steps rather than 256. While DXT5 is similar to it in the worst possible case, it can offer better fidelity when your alpha channel doesn't cover full 0-255 brightness range)&amp;quot;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[DDS]]&lt;br /&gt;
&lt;br /&gt;
[[Texture Formats]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=DDS_Export_Settings&amp;diff=13042</id>
		<title>DDS Export Settings</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=DDS_Export_Settings&amp;diff=13042"/>
				<updated>2010-06-15T19:40:49Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: relocating thread link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nvdxt.exe ==&lt;br /&gt;
&lt;br /&gt;
The toolset comes with a copy of the NVidia command line tool nvdxt.exe. This tool converts TGA files into DDS files, and can be found at &amp;quot;Dragon Age Origins\tools\ResourceBuild\Processors\nvdxt.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A typical nvdxt.exe call looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nvdxt.exe [format] -quality_highest -file input.tga -output output.dds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [format] portion would be replaced by options that depend on the specific texture types.&lt;br /&gt;
&lt;br /&gt;
=== For Icons ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-u8888 -nomipmap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Diffuse Textures ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-dxt1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Specular/Tint Textures ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-dxt5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: &amp;lt;code&amp;gt;-dxt3&amp;lt;/code&amp;gt; should also work, and may produce better quality textures under certain conditions.&lt;br /&gt;
&lt;br /&gt;
=== LOD/prescale ===&lt;br /&gt;
&lt;br /&gt;
Another useful option is &amp;lt;code&amp;gt;-prescale x y&amp;lt;/code&amp;gt;, with x and y specifying pixel dimensions. This resizes the texture to the specified size before generating the DDS. This can be very useful for creating the necessary multiple LOD textures from a single large source TGA.&lt;br /&gt;
&lt;br /&gt;
== Photoshop Plugin ==&lt;br /&gt;
&lt;br /&gt;
(compiled from http://social.bioware.com/forum/1/topic/8/index/599061/1#604952)&lt;br /&gt;
&lt;br /&gt;
=== For Icons ===&lt;br /&gt;
According to [http://social.bioware.com/10507/ Ketaros]&amp;lt;br /&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Format: &amp;quot;X.8.8.8 XRGB 32 bpp | unsigned&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Type: &amp;quot;2D Texture&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Choose: &amp;quot;No MIP maps&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/112329/ tmp7704&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;The icons i've extracted from original files were saved in ARGB fromat with fully opaque Alpha channel. Saving the data in XRGB format theoretically skips the alpha channel data altogether and supplies one unused channel instead, no idea if that makes any difference for the game engine.&amp;quot; &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/737222/ theBigMuh]&amp;lt;br /&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Format 8.8.8.8 ARGB&amp;lt;br /&amp;gt;&lt;br /&gt;
Type: &amp;quot;2D Texture&amp;quot; (not qouted but assumed)&amp;lt;br /&amp;gt;&lt;br /&gt;
Choose: &amp;quot;No mip maps&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Textures ===&lt;br /&gt;
According to [http://social.bioware.com/737222/ theBigMuh]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;For textures, use DXT1 for diffuse\\specular\\tint, and DXT3 (NOT DXT5) for normal maps. The interpolated alpha of DXT5 makes for horrible horrible bump mapping artifacts. Check generate mip maps, too. Put the high resolution variation into AddIns\\&amp;lt;youraddin&amp;gt;\\core\\textures\\high, and a 50% downscaled version into AddIns\\&amp;lt;youraddin&amp;gt;\\core\\textures\\medium.&amp;quot; &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/112329/ tmp7704]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;The 1-bit alpha channel in DXT1 compression is often going to mess things up or be simply insufficient.&lt;br /&gt;
&lt;br /&gt;
The native tint maps seem to use unsigned 16-bit format (a4r4g4b4) which  works for them since they don't use any real gradients to speak of.&lt;br /&gt;
&lt;br /&gt;
The choice between DXT3 and DXT5 for the normal maps would depend on what sort of data is put in the alpha channel. If it has smooth gradients DXT5 is better suited for it. For sharp transitions DXT3 may be a better choice (the limitation of DXT3 compression is it can only record 16 brightness steps rather than 256. While DXT5 is similar to it in the worst possible case, it can offer better fidelity when your alpha channel doesn't cover full 0-255 brightness range)&amp;quot;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[DDS]]&lt;br /&gt;
&lt;br /&gt;
[[Texture Formats]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=DDS_Export_Settings&amp;diff=13041</id>
		<title>DDS Export Settings</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=DDS_Export_Settings&amp;diff=13041"/>
				<updated>2010-06-15T19:39:17Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: adding nvdxt.exe settings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;According to http://social.bioware.com/forum/1/topic/8/index/599061/1#604952 these are the DDS export settings one should use.&lt;br /&gt;
&lt;br /&gt;
== nvdxt.exe ==&lt;br /&gt;
&lt;br /&gt;
The toolset comes with a copy of the NVidia command line tool nvdxt.exe. This tool converts TGA files into DDS files, and can be found at &amp;quot;Dragon Age Origins\tools\ResourceBuild\Processors\nvdxt.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A typical nvdxt.exe call looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nvdxt.exe [format] -quality_highest -file input.tga -output output.dds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [format] portion would be replaced by options that depend on the specific texture types.&lt;br /&gt;
&lt;br /&gt;
=== For Icons ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-u8888 -nomipmap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Diffuse Textures ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-dxt1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Specular/Tint Textures ===&lt;br /&gt;
&lt;br /&gt;
Replace [format] with: &amp;lt;code&amp;gt;-dxt5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: &amp;lt;code&amp;gt;-dxt3&amp;lt;/code&amp;gt; should also work, and may produce better quality textures under certain conditions.&lt;br /&gt;
&lt;br /&gt;
=== LOD/prescale ===&lt;br /&gt;
&lt;br /&gt;
Another useful option is &amp;lt;code&amp;gt;-prescale x y&amp;lt;/code&amp;gt;, with x and y specifying pixel dimensions. This resizes the texture to the specified size before generating the DDS. This can be very useful for creating the necessary multiple LOD textures from a single large source TGA.&lt;br /&gt;
&lt;br /&gt;
== Photoshop Plugin ==&lt;br /&gt;
&lt;br /&gt;
=== For Icons ===&lt;br /&gt;
According to [http://social.bioware.com/10507/ Ketaros]&amp;lt;br /&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Format: &amp;quot;X.8.8.8 XRGB 32 bpp | unsigned&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Type: &amp;quot;2D Texture&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Choose: &amp;quot;No MIP maps&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/112329/ tmp7704&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;The icons i've extracted from original files were saved in ARGB fromat with fully opaque Alpha channel. Saving the data in XRGB format theoretically skips the alpha channel data altogether and supplies one unused channel instead, no idea if that makes any difference for the game engine.&amp;quot; &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/737222/ theBigMuh]&amp;lt;br /&amp;gt;&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Format 8.8.8.8 ARGB&amp;lt;br /&amp;gt;&lt;br /&gt;
Type: &amp;quot;2D Texture&amp;quot; (not qouted but assumed)&amp;lt;br /&amp;gt;&lt;br /&gt;
Choose: &amp;quot;No mip maps&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For Textures ===&lt;br /&gt;
According to [http://social.bioware.com/737222/ theBigMuh]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;For textures, use DXT1 for diffuse\\specular\\tint, and DXT3 (NOT DXT5) for normal maps. The interpolated alpha of DXT5 makes for horrible horrible bump mapping artifacts. Check generate mip maps, too. Put the high resolution variation into AddIns\\&amp;lt;youraddin&amp;gt;\\core\\textures\\high, and a 50% downscaled version into AddIns\\&amp;lt;youraddin&amp;gt;\\core\\textures\\medium.&amp;quot; &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
According to [http://social.bioware.com/112329/ tmp7704]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;The 1-bit alpha channel in DXT1 compression is often going to mess things up or be simply insufficient.&lt;br /&gt;
&lt;br /&gt;
The native tint maps seem to use unsigned 16-bit format (a4r4g4b4) which  works for them since they don't use any real gradients to speak of.&lt;br /&gt;
&lt;br /&gt;
The choice between DXT3 and DXT5 for the normal maps would depend on what sort of data is put in the alpha channel. If it has smooth gradients DXT5 is better suited for it. For sharp transitions DXT3 may be a better choice (the limitation of DXT3 compression is it can only record 16 brightness steps rather than 256. While DXT5 is similar to it in the worst possible case, it can offer better fidelity when your alpha channel doesn't cover full 0-255 brightness range)&amp;quot;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[DDS]]&lt;br /&gt;
&lt;br /&gt;
[[Texture Formats]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12968</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12968"/>
				<updated>2010-05-27T17:10:11Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Adding an Item to an existing Vendor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor|5. Adding an Item to an existing Vendor]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#Origins (Bodahn) - AreaListName should be &amp;quot;cam100ar_camp_plains&amp;quot;.&lt;br /&gt;
#Awakening (Yuriah) - AreaListName should be &amp;quot;vgk210ar_throne_room&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_camp_bodahn&amp;quot;);        // use this one for Bodahn/Origins&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_vgk100cr_merchant&amp;quot;);  // use this one for Yuriah/Awakening&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oStore))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oStore, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [[Plot#Scripting|plot and plot flags]] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12967</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12967"/>
				<updated>2010-05-27T15:46:05Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Adding an Item to an existing Vendor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor|5. Adding an Item to an existing Vendor]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#Origins (Bodahn) - AreaListName should be &amp;quot;cam100ar_camp_plains&amp;quot;.&lt;br /&gt;
#Awakening (Yuriah) - AreaListName should be &amp;quot;vgk210ar_throne_room&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_camp_bodahn&amp;quot;);        // use this one for Bodahn/Origins&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_vgk100cr_merchant&amp;quot;);  // use this one for Yuriah/Awakening&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oStore))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oStore, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [[Plot#Scripting|plot and plot flags]] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12966</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12966"/>
				<updated>2010-05-27T15:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Adding an Item to an existing Vendor */ fixing plot flags link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor|5. Adding an Item to an existing Vendor]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#Origins (Bodahn) - AreaListName should be &amp;quot;cam100ar_camp_plains&amp;quot;.&lt;br /&gt;
#Awakening (Yuriah) - AreaListName should be &amp;quot;vgk210ar_throne_room&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_camp_bodahn&amp;quot;);        // use this one for Bodahn/Origins&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_vgk100cr_merchant&amp;quot;);  // use this one for Yuriah/Awakening&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oStore))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oStore, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [[Plot#Plot_event_scripts|plot and plot flags]] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12965</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12965"/>
				<updated>2010-05-27T15:43:13Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: toc to new script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item to an existing Vendor|5. Adding an Item to an existing Vendor]]&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#Origins (Bodahn) - AreaListName should be &amp;quot;cam100ar_camp_plains&amp;quot;.&lt;br /&gt;
#Awakening (Yuriah) - AreaListName should be &amp;quot;vgk210ar_throne_room&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_camp_bodahn&amp;quot;);        // use this one for Bodahn/Origins&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_vgk100cr_merchant&amp;quot;);  // use this one for Yuriah/Awakening&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oStore))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oStore, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [Plot#Plot_event_scripts plot and plot flags] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12964</id>
		<title>PRCSCR Script Templates</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=PRCSCR_Script_Templates&amp;diff=12964"/>
				<updated>2010-05-27T15:42:20Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Adding an Item to an existing Vendor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves as a repository for ready to use M2DA's and Scripts to use in conjunction with [[PRCSCR]] M2DA's when adding custom content to the game. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*See Main Article: ''[[PRCSCR]]''&lt;br /&gt;
*See ''[[PRCSCR.xls]]'' for details about that M2DA, or ''[[2DA]]'' for an explanation of 2DA's as a whole&lt;br /&gt;
*To create a Script, right click in the Resourcepalette and select &amp;quot;New/Script&amp;quot; , or see ''[[Designer Resources]]'' for such Resources as a whole.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No Table of contents... but a neat custom one --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Contents:'''&lt;br /&gt;
{| style=&amp;quot;background-color:#eeeeee; border:2px #999999 solid; padding:4px; margin:4px&amp;quot; border=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=300 |[[PRCSCR Script Templates#Adding a placeable into an existing Area|1. Adding a placeable into an existing Area]]&lt;br /&gt;
| width=800 |This Script serves to add a placeable of your choice into an Area of choice. ''(non removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding a NPC into an existing Area|2. Adding a NPC into an existing Area]]&lt;br /&gt;
| This Script serves to any custom NPC or Creature to a Area of choice. ''(removable)''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Activating a Waypoint on the Worldmap|3. Activating a Waypoint on the Worldmap]]&lt;br /&gt;
| This Script serves to activate a custom Waypoint (Map Pin) of choice ,when leaving Lothering or at any other time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRCSCR Script Templates#Adding an Item into the Players Inventory|4. Adding an Item into the Players Inventory]]&lt;br /&gt;
| This Script serves to instantly add an Item into the Players Inventory.&lt;br /&gt;
|-&lt;br /&gt;
| 5. Adding an Item to an existing Vendor&lt;br /&gt;
| This Script serves to add any Item into a existing Vendors Inventory, as long the Vendor exists.&lt;br /&gt;
|-&lt;br /&gt;
| 6. Adding a Working Door into an existing Area&lt;br /&gt;
| This Script serves to add a custom Door into a existing Area, that the Player can enter into a custom Area.&lt;br /&gt;
|-&lt;br /&gt;
| 7. Adding a Quest to an existing Chanters Board&lt;br /&gt;
| This Script serves to add a new Quest to a existing Chanters Board, at any chosen time into the Game.&lt;br /&gt;
|-&lt;br /&gt;
| 8. ...&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a placeable into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must not be &amp;quot;any&amp;quot;. Chose a specific one.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:''' (As taken from the Storage Chest mod a kind Bioware employee made :o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//const string TAL_STORAGE_CHEST_SPAWNED = &amp;quot;TAL_STORAGE_CHEST_SPAWNED&amp;quot;;&lt;br /&gt;
const string TAL_IP_STORAGE_CHEST = &amp;quot;tal_ip_storage_chest&amp;quot;;&lt;br /&gt;
const resource TAL_RESOURCE_IP_STORAGE_CHEST = R&amp;quot;tal_ip_storage_chest.utp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    object oMainControlled = GetMainControlled();&lt;br /&gt;
    object oChest = UT_GetNearestObjectByTag(oMainControlled, TAL_IP_STORAGE_CHEST);&lt;br /&gt;
           &lt;br /&gt;
    &lt;br /&gt;
    //DisplayFloatyMessage(oMainControlled, &amp;quot;storage script working&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    &lt;br /&gt;
    if (!IsObjectValid(oChest))&lt;br /&gt;
    {&lt;br /&gt;
        location lSpawn = Location(GetArea(oMainControlled), Vector(148.77, 117.68, -0.94), 0.0);&lt;br /&gt;
        CreateObject(OBJECT_TYPE_PLACEABLE, TAL_RESOURCE_IP_STORAGE_CHEST, lSpawn);          &lt;br /&gt;
        &lt;br /&gt;
        //DisplayFloatyMessage(oMainControlled, &amp;quot;storage chest created&amp;quot;, FLOATY_MESSAGE, 16777215, 30.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest&amp;quot; in the 2nd line with the &amp;quot;Tag&amp;quot; of your own placeable. (only small letters allowed)&lt;br /&gt;
#Replace &amp;quot;tal_ip_storage_chest.utp&amp;quot; in 3rd line with the Resources Filename of your placable.&lt;br /&gt;
#Exchange the (4) numbers after it sais &amp;quot;Vector&amp;quot; ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the placeable until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the placeable ,and start the game. When you arrive at the specific Area in game, the Placeable will be there.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This method prevents removal of the placable. Check out a Plot driven method.&lt;br /&gt;
&lt;br /&gt;
== Adding a NPC into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. This Script is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
// this is the name of a precreated plot file &amp;quot;joblos_quest&amp;quot; prefixed with the special &amp;quot;plt_&amp;quot;&lt;br /&gt;
// &amp;quot;plt_&amp;quot; + quest name allows you to reference the flag names as constants.&lt;br /&gt;
#include &amp;quot;plt_joblos_quest&amp;quot; &lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    //Check whether we've added Joblo already.&lt;br /&gt;
    if (WR_GetPlotFlag(PLT_JOBLOS_QUEST, JOBLO_ADDED_TO_TOWN) == FALSE)&lt;br /&gt;
    {&lt;br /&gt;
        object oTown = GetObjectByTag(&amp;quot;lot100ar_lothering&amp;quot;); //An area's tag is the same as its resource name&lt;br /&gt;
        vector vJobloLocation = Vector(126.745f, 120.724f, 0.460568f); // See below for how to get these coordinates&lt;br /&gt;
&lt;br /&gt;
        CreateObject(&lt;br /&gt;
            OBJECT_TYPE_CREATURE,&lt;br /&gt;
            R&amp;quot;joblo.utc&amp;quot;,&lt;br /&gt;
            Location(oTown, vJobloLocation, 180.0f) //See below for how to get the value for orientation&lt;br /&gt;
        ); //this semicolom was missing and caused errors &lt;br /&gt;
&lt;br /&gt;
        WR_SetPlotFlag(&amp;quot;joblos_quest&amp;quot;, JOBLO_ADDED_TO_TOWN, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;joblos_quest&amp;quot; (3x) with the name of your Plot.&lt;br /&gt;
#Replace &amp;quot;JOBLO_ADDED_TO_TOWN&amp;quot; (2x) with a custom Flag you create in your Plot.&lt;br /&gt;
#Replace &amp;quot;lot100ar_lothering&amp;quot; with the Tag of an Area ,the NPC should spawn in.&lt;br /&gt;
#Replace &amp;quot;joblo.utc&amp;quot; with the filename of your [[Creature]].&lt;br /&gt;
#Exchange the (4) numbers ,which should be the location of your placable. How to determine?&lt;br /&gt;
#Create a temporary duplicate of the specific Area, and add the NPC until you see fit. (delete this Area afterwards, do not export)&lt;br /&gt;
#Note down the numbers in the Object Inspector, and get the first 3 numbers of Position, and the 4rth Number from Rotation. (only 1 number, the first)&lt;br /&gt;
#Rotation needs to be recalculated before entering it into the script. For positive angles do (180-angle). For negative angles do (-180-(-angle)).&lt;br /&gt;
&lt;br /&gt;
Export the script, the creature ,and start the game. When you arrive at the specific Area in game, the [[Creature]] (Monsters or NPCs alike) will be there.&lt;br /&gt;
&lt;br /&gt;
== Activating a Waypoint on the Worldmap ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Your module must extend Single Player. &lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#AreaListName must be &amp;quot;any&amp;quot;. Because Waypoint activation should be universal and it is Plot driven.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
const string WML_WOW_Custom = &amp;quot;eshmeswp&amp;quot;;&lt;br /&gt;
#include &amp;quot;plt_mnp000pt_main_events&amp;quot;&lt;br /&gt;
#include &amp;quot;wrappers_h&amp;quot;&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    if(WR_GetPlotFlag( PLT_MNP000PT_MAIN_EVENTS, ARCHDEMON_EVENT_ONE) == TRUE )&lt;br /&gt;
    {&lt;br /&gt;
        WR_SetWorldMapLocationStatus(GetObjectByTag(WML_WOW_Custom), WM_LOCATION_ACTIVE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;eshmeswp&amp;quot; in the 1st line with the &amp;quot;Tag&amp;quot; of your Waypoint (Map Pin) which u created. That Map Pin can be greyed out or inactive or so. Map Pin information can be found at: [[Map]].&lt;br /&gt;
&lt;br /&gt;
Export the script, the Map ,and start the game. The Waypoint will now be activated once you leave Lothering, just like the other main Waypoints. This is to get in line with the Story. However to change the time of it happening..&lt;br /&gt;
&lt;br /&gt;
#Choose which [[Plot]] should activate the Waypoint. The above example uses the Archdemon quest, when your nightmare triggers for example.&lt;br /&gt;
#Exchange &amp;quot;mnp000pt_main_events&amp;quot; in the 2nd and 6th line with the name of that other [[Plot]]. Leaving the &amp;quot;plt_&amp;quot; there.&lt;br /&gt;
#Exchange &amp;quot;ARCHDEMON_EVENT_ONE&amp;quot; with a &amp;quot;Flag&amp;quot; of your choice from that Plot.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;should&amp;quot; work for any plot. Actually, waypoints dont need all this PRCSCR stuff and can be set &amp;quot;Active&amp;quot; in the first place. But the above example is to get in line with the Main Campaign, and potential gamebreaking Plot conflicts if able to leave Lothering too early.&lt;br /&gt;
&lt;br /&gt;
== Adding an Item into the Players Inventory ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
#AreaListName is &amp;quot;any&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
//include utility_h for the UT_AddItemToInventory() function.&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
//include the custom made plot file&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    // If plot flag is TRUE then item already given.&lt;br /&gt;
    // Otherwise add item to inventory.&lt;br /&gt;
    if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == FALSE )&lt;br /&gt;
    {&lt;br /&gt;
        UT_AddItemToInventory(R&amp;quot;$item_file_name$.uti&amp;quot;);&lt;br /&gt;
        //Set the plot flag to TRUE to indicate that the item was given.&lt;br /&gt;
        WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
# Replace everything between and including the $ signs with appropriate names (without the file extensions).&lt;br /&gt;
&lt;br /&gt;
== Adding an Item to an existing Vendor ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
#Origins (Bodahn) - AreaListName should be &amp;quot;cam100ar_camp_plains&amp;quot;.&lt;br /&gt;
#Awakening (Yuriah) - AreaListName should be &amp;quot;vgk210ar_throne_room&amp;quot;.&lt;br /&gt;
#Copy the GDA into your modules override folder.&lt;br /&gt;
&lt;br /&gt;
'''Script:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
#include &amp;quot;utility_h&amp;quot;&lt;br /&gt;
#include &amp;quot;plt_$plot_file_name$&amp;quot;  // include your custom plot&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
  if ( WR_GetPlotFlag( PLT_$plot_file_name$, $check_flag_name$ ) == TRUE ) return;&lt;br /&gt;
&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_camp_bodahn&amp;quot;);        // use this one for Bodahn/Origins&lt;br /&gt;
  object oStore = GetObjectByTag(&amp;quot;store_vgk100cr_merchant&amp;quot;);  // use this one for Yuriah/Awakening&lt;br /&gt;
&lt;br /&gt;
  if (IsObjectValid(oStore))&lt;br /&gt;
  {&lt;br /&gt;
    CreateItemOnObject(R&amp;quot;$resource_name$.uti&amp;quot;, oStore, 1, &amp;quot;&amp;quot;, TRUE); // repeat this for each item&lt;br /&gt;
&lt;br /&gt;
    WR_SetPlotFlag( PLT_$plot_file_name$, $check_flag_name$, TRUE );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Replace &amp;quot;$plot_file_name$&amp;quot; and &amp;quot;$check_flag_name$&amp;quot; with the custom [Plot#Plot_event_scripts plot and plot flags] you create for your module.&lt;br /&gt;
#Replace &amp;quot;$resource_name$&amp;quot; with the resource name of your custom item.&lt;br /&gt;
#The very first time you go to the party camp in Origins (after leaving Lothering) and view the Archdemon cutscene, this script will NOT run. This is because the cutscene version of the camp is actually a different area. In this case you must exit and return to the &amp;quot;normal&amp;quot; (non-cutscene) party camp for the script to run for the first time.&lt;br /&gt;
&lt;br /&gt;
== Adding a Working Door into an existing Area ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== Adding a Quest to an existing Chanters Board ==&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''M2DA Setup:'''&lt;br /&gt;
&lt;br /&gt;
'''Script:''' {{undocumented}}&lt;br /&gt;
&lt;br /&gt;
[[category:tutorials]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Pages with example scripts]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Console&amp;diff=12963</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Console&amp;diff=12963"/>
				<updated>2010-05-27T15:17:28Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: adding link to make console commands visible mod&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up in the View Menu other windows you will see one called &amp;quot;Console&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is where you would enter console commands that allow the toolset to interact with the game engine. It is mostly (if not always) used when you have an area open in the Area Editor.&lt;br /&gt;
&lt;br /&gt;
The console commands were built to work with the game not the toolset but some of them do work with the toolset alone.&lt;br /&gt;
&lt;br /&gt;
Your toolset will crash when using some of them so make sure you save your work before trying them.&lt;br /&gt;
&lt;br /&gt;
== Using the console in-game ==&lt;br /&gt;
&lt;br /&gt;
The in-game console is normally not accessible. To enable it run the game with a command line parameter &amp;quot;-enabledeveloperconsole&amp;quot;. Then, when the game is running, press the tilde key (~) to bring up the console. This is a prompt in the upper left corner of the screen. The console was used extensively in development for debugging and testing purposes, but in the finished version of the game there's only one console command available; &amp;quot;runscript&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The runscript command does exactly as it says - it runs a script, given as a name typed after a space. So for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;runscript killallhostiles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will cause the script named &amp;quot;killallhostiles&amp;quot; to be run.&lt;br /&gt;
&lt;br /&gt;
You can pass the script additional parameters if you like. These parameters will be stored in the [[module]] variable RUNSCRIPT_VAR. RUNSCRIPT_VAR is a simple string, your script will need to parse it itself.&lt;br /&gt;
&lt;br /&gt;
'''Caution:''' Using scripts like killallhostiles may break scripted plot situations, so you should avoid using it outside of custom content testing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;runscript usespecificobject demo100pl_lever&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calls the script &amp;quot;usespecificobject&amp;quot; and puts &amp;quot;demo100pl_lever&amp;quot; into the module RUNSCRIPT_VAR. The script can then call&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
    string sParam = GetLocalString(GetModule(),&amp;quot;RUNSCRIPT_VAR&amp;quot;);&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve it.&lt;br /&gt;
&lt;br /&gt;
If you need more than one parameter, pick a separator (a space is usually most appropriate) and split up the string in RUNSCRIPT_VAR appropriately. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dascript&amp;gt;&lt;br /&gt;
    //parse out first parameter - the object to use.&lt;br /&gt;
    nSpaceLoc = FindSubString(sParam,&amp;quot; &amp;quot;);&lt;br /&gt;
    sTemp = SubString(sParam,0,nSpaceLoc);&lt;br /&gt;
    oDestination = GetObjectByTag(sTemp);&lt;br /&gt;
&amp;lt;/dascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Console text is invisible in some game installs ==&lt;br /&gt;
&lt;br /&gt;
This problem is caused in some systems by the DVD's installer failing to install the fonts.erf file. Fonts.erf is included on the game disk, so you should be able to redo this part of the installation and properly install fonts.erf by running datasetup.exe manually (which is on the game disk in the &amp;quot;data&amp;quot; directory). This should not be an issue for Steam users since a different installer is involved in Steam installations.&lt;br /&gt;
&lt;br /&gt;
If you still have trouble obtaining fonts.erf from your installation, install the [http://social.bioware.com/page/da-character-creator Character Creator] and then copy fonts.erf from ''Dragon Age Origins Character Creator\packages\core\data''.&lt;br /&gt;
&lt;br /&gt;
Alternatively, install the free 7-zip program, right click on ''data\DataSetup.exe'', select ''7-Zip -&amp;gt; Open archive'', and then extract fonts.erf from ''$0&amp;quot;\packages\core\data\&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
You can also get the font from the [http://dragonagenexus.com/downloads/file.php?id=1110 Make CONSOLE commands visible] mod.&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12854</id>
		<title>Ranged Weapons and Ammunition</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12854"/>
				<updated>2010-04-09T22:06:51Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Item and Ammunition Variations and Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains the relationship between ranged weapons and their ammunition types, how default ammo works, and how the weapon and ammunition (quiver) models and variants interrelate. This discussion applies to all four standard ranged weapons in Dragon Age: longbows, shortbows, crossbows, and staffs; and to their associated ammo types: arrows, bolts, and staff projectiles.&lt;br /&gt;
&lt;br /&gt;
== Defining and Linking Weapons and Ammunition ==&lt;br /&gt;
&lt;br /&gt;
Weapon types are defined in the [[BITM_base.xls]] 2da. There are two fields of importance for ranged weapons:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; bows use [[ITEM_TYPE_WEAPON_RANGED]] and staffs use [[ITEM_TYPE_WEAPON_MAGIC]]. (I think this determines the base hit model; ranged weapon types can miss but can also crit, while magic weapon types cannot miss but also cannot crit).&lt;br /&gt;
* Ammo - This is a reference to the ID in [[BITM_base.xls]] of the ammunition type that the weapon uses. For instance, longbows and shortbows use the arrow ammo type, crossbows use the bolt ammo type, and staffs use the staff projectile ammo type.&lt;br /&gt;
&lt;br /&gt;
Ammo types are also defined in the [[BITM_base.xls]] 2da. There are three fields of note for ammunition:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; ammo uses [[ITEM_TYPE_AMMO]].&lt;br /&gt;
* DefaultResource - This is a string that matches the tag of the default ammunition item to use when no ammunition is equipped. The default arrow type is &amp;quot;gen_im_arrow&amp;quot;, the default bolt is &amp;quot;gen_im_bolt&amp;quot;, and the default staff projectile is &amp;quot;gen_im_staff_projectile&amp;quot;. These default ammo items can all be found in the _Global/HOLDING item folder in the toolset.&lt;br /&gt;
* Projectile - This is the ID of an entry in the [[PRJ_base.xls]] 2da, which defines the projectile model/animation to use for the ammo as well as base modifiers to damage. The value defined here can be changed for a specific item by setting the PROJECTILE_OVERRIDE variable on that item's UTI definition to a different projectile ID. This variable should be set on the weapon that uses the ammo, not the ammo item itself.&lt;br /&gt;
&lt;br /&gt;
When a ranged or magic weapon is equipped, the player's ammunition slot is automatically populated with an instance of the ammo's default resource. This item cannot be unequipped and is never consumed, which is how the infinite default arrow/bolt/staff projectiles work.&lt;br /&gt;
&lt;br /&gt;
== Item and Ammunition Variations and Models ==&lt;br /&gt;
&lt;br /&gt;
The model that is displayed for ammunition is independent of the model displayed for the weapon itself. In the case of arrows and bolts, the quiver models are shown whenever arrows or bolts are equipped, even if no weapon is equipped. This can be verified by equipping special ammo types like Ice Arrows with no weapon equipped.&lt;br /&gt;
&lt;br /&gt;
However, when equipping an ammo using weapon, like a bow, the infinite default resource ammunition item is automatically created/equipped as well, so the quiver displays even when no specific arrows are equipped. The game is behaving as though a gen_im_arrow item is equipped, and displaying its model.&lt;br /&gt;
&lt;br /&gt;
You can create new arrow and bolt variations using the [[ItemVariations.xls]] 2da, which are actually variants of the quiver model shown on the back. (TODO - I'm not sure how the location/attachment point of the quiver model is defined for arrows/bolts, and why it's not defined for staff projectiles, other than that arrows/bolts have item variation worksheets and staff projectiles don't). If you were then to create new arrow items in the toolset that use your custom quiver variant, your custom quiver would be shown when that ammo is equipped. (To actually change the arrow/bolt models shown in-flight, you would instead need to create a new projectile type in [[PRJ_base.xls]], then assign that projectile to your ammo or override the projectile for a specific weapon).&lt;br /&gt;
&lt;br /&gt;
The longbow, shortbow, and crossbow item variation 2da's have an extra column called DefaultAmmoVariation that links to an ID in the arrow/bolt variant 2das. The default infinite ammo resource that is created when you equip that weapon will use the variant ID specified here. For example, if you had created a custom arrow variant (quiver), you could then create a custom bow variant that specifies your custom arrow variant ID in this field, and that is the quiver model that will be shown when the bow is equipped with the default infinite ammo.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the limitation is that non-default ammo items like Ice Arrows, Fire Arrows, etc., are actually separate ammo items and do not reflect the DefaultAmmoVariation specified in the weapon variant. These items instead have their variant defined based on their UTI definition, just like any other item. This means that when one of these ammo types is equipped, the custom quiver variant being displayed for the default ammo will disappear and the ammo item will display the generic quiver since that is the variant it uses.&lt;br /&gt;
&lt;br /&gt;
There is no perfectly clean solution for handling this. You can override the item variant for all of the non-default ammo items, but that will cause your custom quiver variant to display when that ammo is equipped on any PC/NPC, regardless of the bow they are using.&lt;br /&gt;
&lt;br /&gt;
Another option is to create duplicate versions of all the ammo items and change those duplicates to use your custom ammo variant. If you used these items instead of the normal ammo items, you would then see the custom quiver. Of course this has its own problems; you have to continually produce a supply of these duplicate items for yourself (since ammo is consumed), and will not be able to use &amp;quot;found&amp;quot; ammo items since they will still be of the original item type with the default variant. This option can be expanded by providing some mechanism for converting the standard types to your custom duplicate types; e.g. you could hook the [[EVENT_TYPE_EQUIP]] event and have a script that converts ammo from the vanilla version to your duplicate custom variant version when your custom weapon is also equipped.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projectiles]]&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Rules]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12853</id>
		<title>Ranged Weapons and Ammunition</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12853"/>
				<updated>2010-04-09T22:05:46Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Item and Ammunition Variations and Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains the relationship between ranged weapons and their ammunition types, how default ammo works, and how the weapon and ammunition (quiver) models and variants interrelate. This discussion applies to all four standard ranged weapons in Dragon Age: longbows, shortbows, crossbows, and staffs; and to their associated ammo types: arrows, bolts, and staff projectiles.&lt;br /&gt;
&lt;br /&gt;
== Defining and Linking Weapons and Ammunition ==&lt;br /&gt;
&lt;br /&gt;
Weapon types are defined in the [[BITM_base.xls]] 2da. There are two fields of importance for ranged weapons:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; bows use [[ITEM_TYPE_WEAPON_RANGED]] and staffs use [[ITEM_TYPE_WEAPON_MAGIC]]. (I think this determines the base hit model; ranged weapon types can miss but can also crit, while magic weapon types cannot miss but also cannot crit).&lt;br /&gt;
* Ammo - This is a reference to the ID in [[BITM_base.xls]] of the ammunition type that the weapon uses. For instance, longbows and shortbows use the arrow ammo type, crossbows use the bolt ammo type, and staffs use the staff projectile ammo type.&lt;br /&gt;
&lt;br /&gt;
Ammo types are also defined in the [[BITM_base.xls]] 2da. There are three fields of note for ammunition:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; ammo uses [[ITEM_TYPE_AMMO]].&lt;br /&gt;
* DefaultResource - This is a string that matches the tag of the default ammunition item to use when no ammunition is equipped. The default arrow type is &amp;quot;gen_im_arrow&amp;quot;, the default bolt is &amp;quot;gen_im_bolt&amp;quot;, and the default staff projectile is &amp;quot;gen_im_staff_projectile&amp;quot;. These default ammo items can all be found in the _Global/HOLDING item folder in the toolset.&lt;br /&gt;
* Projectile - This is the ID of an entry in the [[PRJ_base.xls]] 2da, which defines the projectile model/animation to use for the ammo as well as base modifiers to damage. The value defined here can be changed for a specific item by setting the PROJECTILE_OVERRIDE variable on that item's UTI definition to a different projectile ID. This variable should be set on the weapon that uses the ammo, not the ammo item itself.&lt;br /&gt;
&lt;br /&gt;
When a ranged or magic weapon is equipped, the player's ammunition slot is automatically populated with an instance of the ammo's default resource. This item cannot be unequipped and is never consumed, which is how the infinite default arrow/bolt/staff projectiles work.&lt;br /&gt;
&lt;br /&gt;
== Item and Ammunition Variations and Models ==&lt;br /&gt;
&lt;br /&gt;
The model that is displayed for ammunition is independent of the model displayed for the weapon itself. In the case of arrows and bolts, the quiver models are shown whenever arrows or bolts are equipped, even if no weapon is equipped. This can be verified by equipping special ammo types like Ice Arrows with no weapon equipped.&lt;br /&gt;
&lt;br /&gt;
However, when equipping an ammo using weapon, like a bow, the infinite default resource ammunition item is automatically created/equipped as well, so the quiver displays even when no specific arrows are equipped. The game is behaving as though a gen_im_arrow item is equipped, and displaying its model.&lt;br /&gt;
&lt;br /&gt;
You can create new arrow and bolt variations using the [[ItemVariations.xls]] 2da, which are actually variants of the quiver model shown on the back. (TODO - I'm not sure how the location/attachment point of the quiver model is defined for arrows/bolts, and why it's not defined for staff projectiles, other than that arrows/bolts have item variation worksheets and staff projectiles don't). If you were then to create new arrow items in the toolset that use your custom quiver variant, your custom quiver would be shown when that ammo is equipped. (To actually change the arrow/bolt models shown in-flight, you would instead need to create a new projectile type in [[PRJ_base.xls]], then assign that projectile to your ammo or override the projectile for a specific weapon).&lt;br /&gt;
&lt;br /&gt;
The longbow, shortbow, and crossbow item variation 2da's have an extra column called DefaultAmmoVariation that links to an ID in the arrow/bolt variant 2das. The default infinite ammo resource that is created when you equip that weapon will use the variant ID specified here. For example, if you had created a custom arrow variant (quiver), you could then create a custom bow variant that specifies your custom arrow variant ID in this field, and that is the quiver model that will be shown when the bow is equipped with the default infinite ammo.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the limitation is that non-default ammo items like Ice Arrows, Fire Arrows, etc., are actually separate ammo items and do not reflect the DefaultAmmoVariation specified in the weapon variant. These items instead have their variant defined based on their UTI definition, just like any other item. This means that when one of these ammo types is equipped, the custom quiver variant being displayed for the default ammo will disappear and the ammo item will display the generic quiver since that is the variant it uses.&lt;br /&gt;
&lt;br /&gt;
There is no perfectly clean solution for handling this. You can override the item variant for all of the non-default ammo items, but that will cause your custom quiver variant to display when that ammo is equipped on any PC/NPC, regardless of the bow they are using.&lt;br /&gt;
&lt;br /&gt;
Another option is to create duplicate versions of all the ammo items and change those duplicates to use your custom ammo variant. If you used these items instead of the normal ammo items, you would then see the custom quiver. Of course this has its own problems; you have to continually produce a supply of these duplicate items for yourself (since ammo is consumed), and will not be able to use &amp;quot;found&amp;quot; ammo items since they will still be off the original item type with the default variant. This option can be expanded by providing some mechanism for converting the standard types to your custom duplicate types; e.g. you could hook the [[EVENT_TYPE_EQUIP]] event and have a script that converts ammo from the vanilla version to your duplicate custom variant version when your custom weapon is also equipped.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projectiles]]&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Rules]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12852</id>
		<title>Ranged Weapons and Ammunition</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12852"/>
				<updated>2010-04-09T22:03:21Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Defining and Linking Weapons and Ammunition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains the relationship between ranged weapons and their ammunition types, how default ammo works, and how the weapon and ammunition (quiver) models and variants interrelate. This discussion applies to all four standard ranged weapons in Dragon Age: longbows, shortbows, crossbows, and staffs; and to their associated ammo types: arrows, bolts, and staff projectiles.&lt;br /&gt;
&lt;br /&gt;
== Defining and Linking Weapons and Ammunition ==&lt;br /&gt;
&lt;br /&gt;
Weapon types are defined in the [[BITM_base.xls]] 2da. There are two fields of importance for ranged weapons:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; bows use [[ITEM_TYPE_WEAPON_RANGED]] and staffs use [[ITEM_TYPE_WEAPON_MAGIC]]. (I think this determines the base hit model; ranged weapon types can miss but can also crit, while magic weapon types cannot miss but also cannot crit).&lt;br /&gt;
* Ammo - This is a reference to the ID in [[BITM_base.xls]] of the ammunition type that the weapon uses. For instance, longbows and shortbows use the arrow ammo type, crossbows use the bolt ammo type, and staffs use the staff projectile ammo type.&lt;br /&gt;
&lt;br /&gt;
Ammo types are also defined in the [[BITM_base.xls]] 2da. There are three fields of note for ammunition:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; ammo uses [[ITEM_TYPE_AMMO]].&lt;br /&gt;
* DefaultResource - This is a string that matches the tag of the default ammunition item to use when no ammunition is equipped. The default arrow type is &amp;quot;gen_im_arrow&amp;quot;, the default bolt is &amp;quot;gen_im_bolt&amp;quot;, and the default staff projectile is &amp;quot;gen_im_staff_projectile&amp;quot;. These default ammo items can all be found in the _Global/HOLDING item folder in the toolset.&lt;br /&gt;
* Projectile - This is the ID of an entry in the [[PRJ_base.xls]] 2da, which defines the projectile model/animation to use for the ammo as well as base modifiers to damage. The value defined here can be changed for a specific item by setting the PROJECTILE_OVERRIDE variable on that item's UTI definition to a different projectile ID. This variable should be set on the weapon that uses the ammo, not the ammo item itself.&lt;br /&gt;
&lt;br /&gt;
When a ranged or magic weapon is equipped, the player's ammunition slot is automatically populated with an instance of the ammo's default resource. This item cannot be unequipped and is never consumed, which is how the infinite default arrow/bolt/staff projectiles work.&lt;br /&gt;
&lt;br /&gt;
== Item and Ammunition Variations and Models ==&lt;br /&gt;
&lt;br /&gt;
The model that is displayed for ammunition is independent of the model displayed for the weapon itself. In the case of arrows and bolts, the quiver models are shown whenever arrows or bolts are equipped, even if no weapon is equipped. This can be verified by equipping special ammo types like Ice Arrows with no weapon equipped.&lt;br /&gt;
&lt;br /&gt;
However, when equipping an ammo using weapon, like a bow, the infinite default resource ammunition item is automatically created/equipped as well, so the quiver displays even when no specific arrows are equipped. The game is behaving as though a gen_im_arrow item is equipped, and displaying its model.&lt;br /&gt;
&lt;br /&gt;
You can create new arrow and bolt variations using the [[ItemVariations.xls]] 2da, which are actually variants of the quiver model shown on the back. (TODO - I'm not sure how the location/attachment point of the quiver model is defined for arrows/bolts, and why it's not defined for staff projectiles, other than that arrows/bolts have item variation worksheets and staff projectiles don't). If you were then to create new arrow items in the toolset that use your custom quiver variant, your custom quiver would be shown when that ammo is equipped. (To actually change the arrow/bolt models shown in-flight, you would instead need to create a new projectile type in [[PRJ_base.xls]], then assign that projectile to your ammo or override the projectile for a specific weapon).&lt;br /&gt;
&lt;br /&gt;
The longbow, shortbow, and crossbow item variation 2da's have an extra column called DefaultAmmoVariation that links to an ID in the arrow/bolt variant 2das. The default infinite ammo resource that is created when you equip that weapon will use the variant ID specified here. For example, if you had create a custom arrow variant (quiver), you could then create a custom bow variant that specifies your custom arrow variant ID in this field, and that is the quiver model that will be shown when the bow is equipped with the default infinite ammo.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the limitation is that non-default ammo items like Ice Arrows, Fire Arrows, etc., are actually separate ammo items and do not reflect the DefaultAmmoVariation specified in the weapon variant. These items instead have their variant defined based on their UTI definition, just like any other item. This means that when one of these ammo types is equipped, the custom quiver variant being displayed for the default ammo will disappear and the ammo item will display the generic quiver since that is the variant it uses.&lt;br /&gt;
&lt;br /&gt;
There is no perfectly clean solution for handling this. You can override the item variant for all of the non-default ammo items, but that will cause your custom quiver variant to display when that ammo is equipped on any PC/NPC, regardless of the bow they are using.&lt;br /&gt;
&lt;br /&gt;
Another option is to create duplicate versions of all the ammo items and change those duplicates to use your custom ammo variant. If you used these items instead of the normal ammo items, you would then see the custom quiver. Of course this has its own problems; you have to continually produce a supply of these duplicate items for yourself (since ammo is consumed), and will not be able to use &amp;quot;found&amp;quot; ammo items since they will still be off the original item type with the default variant. This option can be expanded by providing some mechanism for converting the standard types to your custom duplicate types; e.g. you could hook the [[EVENT_TYPE_EQUIP]] event and have a script that converts ammo from the vanilla version to your duplicate custom variant version when your custom weapon is also equipped.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projectiles]]&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Rules]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12851</id>
		<title>Ranged Weapons and Ammunition</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12851"/>
				<updated>2010-04-09T22:02:46Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: /* Defining and Linking Weapons and Ammunition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains the relationship between ranged weapons and their ammunition types, how default ammo works, and how the weapon and ammunition (quiver) models and variants interrelate. This discussion applies to all four standard ranged weapons in Dragon Age: longbows, shortbows, crossbows, and staffs; and to their associated ammo types: arrows, bolts, and staff projectiles.&lt;br /&gt;
&lt;br /&gt;
== Defining and Linking Weapons and Ammunition ==&lt;br /&gt;
&lt;br /&gt;
Weapon types are defined in the [[BITM_base.xls]] 2da. There are two fields of importance for ranged weapons:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; bows use [[ITEM_TYPE_WEAPON_RANGED]] and staffs use [[ITEM_TYPE_WEAPON_MAGIC]]. (I think this determines the base hit model; ranged weapon types can miss but can also crit, while magic weapon types cannot miss but also cannot crit).&lt;br /&gt;
* Ammo - This is a reference to the ID in [[BITM_base.xls]] of the ammunition type that the weapon uses. For instance, longbows and shortbows use the arrow ammo type, crossbows use the bolt ammo type, and staffs use the staff projectile ammo type.&lt;br /&gt;
&lt;br /&gt;
Ammo types are also defined in the [[BITM_base.xls]] 2da. There are three fields of note for ammunition:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; ammo uses [[ITEM_TYPE_AMMO]].&lt;br /&gt;
* DefaultResource - This is a string that matches the tag of the default ammunition item to use when no ammunition is equipped. The default arrow type is &amp;quot;gen_im_arrow&amp;quot;, the default bolt is &amp;quot;gen_im_bolt&amp;quot;, and the default staff projectile is &amp;quot;gen_im_staff_projectile&amp;quot;. These default ammo items can all be found in the item _Global/HOLDING folder in the toolset.&lt;br /&gt;
* Projectile - This is the ID of an entry in the [[PRJ_base.xls]], which defines the projectile model/animation to use for the ammo as well as base modifiers to damage. The value defined here can be changed for a specific item by setting the PROJECTILE_OVERRIDE variable on that item's UTI definition to a different projectile ID. This variable should be set on the weapon that uses the ammo, not the ammo item itself.&lt;br /&gt;
&lt;br /&gt;
When a ranged or magic weapon is equipped, the player's ammunition slot is automatically populated with an instance of the ammo's default resource. This item cannot be unequipped and is never consumed, which is how the infinite default arrow/bolt/staff projectiles work.&lt;br /&gt;
&lt;br /&gt;
== Item and Ammunition Variations and Models ==&lt;br /&gt;
&lt;br /&gt;
The model that is displayed for ammunition is independent of the model displayed for the weapon itself. In the case of arrows and bolts, the quiver models are shown whenever arrows or bolts are equipped, even if no weapon is equipped. This can be verified by equipping special ammo types like Ice Arrows with no weapon equipped.&lt;br /&gt;
&lt;br /&gt;
However, when equipping an ammo using weapon, like a bow, the infinite default resource ammunition item is automatically created/equipped as well, so the quiver displays even when no specific arrows are equipped. The game is behaving as though a gen_im_arrow item is equipped, and displaying its model.&lt;br /&gt;
&lt;br /&gt;
You can create new arrow and bolt variations using the [[ItemVariations.xls]] 2da, which are actually variants of the quiver model shown on the back. (TODO - I'm not sure how the location/attachment point of the quiver model is defined for arrows/bolts, and why it's not defined for staff projectiles, other than that arrows/bolts have item variation worksheets and staff projectiles don't). If you were then to create new arrow items in the toolset that use your custom quiver variant, your custom quiver would be shown when that ammo is equipped. (To actually change the arrow/bolt models shown in-flight, you would instead need to create a new projectile type in [[PRJ_base.xls]], then assign that projectile to your ammo or override the projectile for a specific weapon).&lt;br /&gt;
&lt;br /&gt;
The longbow, shortbow, and crossbow item variation 2da's have an extra column called DefaultAmmoVariation that links to an ID in the arrow/bolt variant 2das. The default infinite ammo resource that is created when you equip that weapon will use the variant ID specified here. For example, if you had create a custom arrow variant (quiver), you could then create a custom bow variant that specifies your custom arrow variant ID in this field, and that is the quiver model that will be shown when the bow is equipped with the default infinite ammo.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the limitation is that non-default ammo items like Ice Arrows, Fire Arrows, etc., are actually separate ammo items and do not reflect the DefaultAmmoVariation specified in the weapon variant. These items instead have their variant defined based on their UTI definition, just like any other item. This means that when one of these ammo types is equipped, the custom quiver variant being displayed for the default ammo will disappear and the ammo item will display the generic quiver since that is the variant it uses.&lt;br /&gt;
&lt;br /&gt;
There is no perfectly clean solution for handling this. You can override the item variant for all of the non-default ammo items, but that will cause your custom quiver variant to display when that ammo is equipped on any PC/NPC, regardless of the bow they are using.&lt;br /&gt;
&lt;br /&gt;
Another option is to create duplicate versions of all the ammo items and change those duplicates to use your custom ammo variant. If you used these items instead of the normal ammo items, you would then see the custom quiver. Of course this has its own problems; you have to continually produce a supply of these duplicate items for yourself (since ammo is consumed), and will not be able to use &amp;quot;found&amp;quot; ammo items since they will still be off the original item type with the default variant. This option can be expanded by providing some mechanism for converting the standard types to your custom duplicate types; e.g. you could hook the [[EVENT_TYPE_EQUIP]] event and have a script that converts ammo from the vanilla version to your duplicate custom variant version when your custom weapon is also equipped.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projectiles]]&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Rules]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12850</id>
		<title>Ranged Weapons and Ammunition</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12850"/>
				<updated>2010-04-09T22:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains the relationship between ranged weapons and their ammunition types, how default ammo works, and how the weapon and ammunition (quiver) models and variants interrelate. This discussion applies to all four standard ranged weapons in Dragon Age: longbows, shortbows, crossbows, and staffs; and to their associated ammo types: arrows, bolts, and staff projectiles.&lt;br /&gt;
&lt;br /&gt;
== Defining and Linking Weapons and Ammunition ==&lt;br /&gt;
&lt;br /&gt;
Weapon types are defined in the [[BITM_base.xls]] 2da. There are two fields of importance for ranged weapons:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; bows use [[ITEM_TYPE_WEAPON_RANGED]] and staffs use [[ITEM_TYPE_WEAPON_MAGIC]]. (I think this determines the base hit model; ranged weapon types can miss but can also crit, while magic weapon types cannot miss but also cannot crit).&lt;br /&gt;
* Ammo - This is a reference to the ID in [[BITM_base.xls]] of the ammunition type that the weapon uses. For instance, longbows and shortbows use the arrow ammo type, crossbows use the bolt ammo type, and staffs use the staff projectile ammo type.&lt;br /&gt;
&lt;br /&gt;
Ammo types are also defined in the [[BITM_base.xls]] 2da. There are three fields of note for ammunition:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; ammo uses [[ITEM_TYPE_AMMO]].&lt;br /&gt;
* DefaultResource - This is a string that matches the tag of the default ammunition item to use when no ammunition is equipped (for ranged weapon types) or specified in the item UTI (for magic weapon types). The default arrow type is &amp;quot;gen_im_arrow&amp;quot;, the default bolt is &amp;quot;gen_im_bolt&amp;quot;, and the default staff projectile is &amp;quot;gen_im_staff_projectile&amp;quot;. These default ammo items can all be found in the item _Global/HOLDING folder in the toolset.&lt;br /&gt;
* Projectile - This is the ID of an entry in the [[PRJ_base.xls]], which defines the projectile model/animation to use for the ammo as well as base modifiers to damage. The value defined here can be changed for a specific item by setting the PROJECTILE_OVERRIDE variable on that item's UTI definition to a different projectile ID. This variable should be set on the weapon that uses the ammo, not the ammo item itself.&lt;br /&gt;
&lt;br /&gt;
When a ranged or magic weapon is equipped, the player's ammunition slot is automatically populated with an instance of the ammo's default resource. This item cannot be unequipped and is never consumed, which is how the infinite default arrow/bolt/staff projectiles work.&lt;br /&gt;
&lt;br /&gt;
== Item and Ammunition Variations and Models ==&lt;br /&gt;
&lt;br /&gt;
The model that is displayed for ammunition is independent of the model displayed for the weapon itself. In the case of arrows and bolts, the quiver models are shown whenever arrows or bolts are equipped, even if no weapon is equipped. This can be verified by equipping special ammo types like Ice Arrows with no weapon equipped.&lt;br /&gt;
&lt;br /&gt;
However, when equipping an ammo using weapon, like a bow, the infinite default resource ammunition item is automatically created/equipped as well, so the quiver displays even when no specific arrows are equipped. The game is behaving as though a gen_im_arrow item is equipped, and displaying its model.&lt;br /&gt;
&lt;br /&gt;
You can create new arrow and bolt variations using the [[ItemVariations.xls]] 2da, which are actually variants of the quiver model shown on the back. (TODO - I'm not sure how the location/attachment point of the quiver model is defined for arrows/bolts, and why it's not defined for staff projectiles, other than that arrows/bolts have item variation worksheets and staff projectiles don't). If you were then to create new arrow items in the toolset that use your custom quiver variant, your custom quiver would be shown when that ammo is equipped. (To actually change the arrow/bolt models shown in-flight, you would instead need to create a new projectile type in [[PRJ_base.xls]], then assign that projectile to your ammo or override the projectile for a specific weapon).&lt;br /&gt;
&lt;br /&gt;
The longbow, shortbow, and crossbow item variation 2da's have an extra column called DefaultAmmoVariation that links to an ID in the arrow/bolt variant 2das. The default infinite ammo resource that is created when you equip that weapon will use the variant ID specified here. For example, if you had create a custom arrow variant (quiver), you could then create a custom bow variant that specifies your custom arrow variant ID in this field, and that is the quiver model that will be shown when the bow is equipped with the default infinite ammo.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the limitation is that non-default ammo items like Ice Arrows, Fire Arrows, etc., are actually separate ammo items and do not reflect the DefaultAmmoVariation specified in the weapon variant. These items instead have their variant defined based on their UTI definition, just like any other item. This means that when one of these ammo types is equipped, the custom quiver variant being displayed for the default ammo will disappear and the ammo item will display the generic quiver since that is the variant it uses.&lt;br /&gt;
&lt;br /&gt;
There is no perfectly clean solution for handling this. You can override the item variant for all of the non-default ammo items, but that will cause your custom quiver variant to display when that ammo is equipped on any PC/NPC, regardless of the bow they are using.&lt;br /&gt;
&lt;br /&gt;
Another option is to create duplicate versions of all the ammo items and change those duplicates to use your custom ammo variant. If you used these items instead of the normal ammo items, you would then see the custom quiver. Of course this has its own problems; you have to continually produce a supply of these duplicate items for yourself (since ammo is consumed), and will not be able to use &amp;quot;found&amp;quot; ammo items since they will still be off the original item type with the default variant. This option can be expanded by providing some mechanism for converting the standard types to your custom duplicate types; e.g. you could hook the [[EVENT_TYPE_EQUIP]] event and have a script that converts ammo from the vanilla version to your duplicate custom variant version when your custom weapon is also equipped.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projectiles]]&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Rules]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12849</id>
		<title>Ranged Weapons and Ammunition</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12849"/>
				<updated>2010-04-09T21:01:29Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains the relationship between ranged weapons and their ammunition types, how default ammo works, and how the weapon and ammunition models and variants interrelate. Understanding these relations is essential for making customizing the default ranged weapons or adding new ranged weapons. This discussion applies to all four standard ranged weapons in Dragon Age: longbows, shortbows, crossbows, and staffs; and to their associated ammo types: arrows, bolts, and staff projectiles.&lt;br /&gt;
&lt;br /&gt;
== Defining and Linking Weapons and Ammunition ==&lt;br /&gt;
&lt;br /&gt;
Weapon types are defined in the [[BITM_base.xls]] 2da. There are two fields of importance for ranged weapons:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; bows use [[ITEM_TYPE_WEAPON_RANGED]] and staffs use [[ITEM_TYPE_WEAPON_MAGIC]]. (I think this determines the base hit model; ranged weapon types can miss but can also crit, while magic weapon types cannot miss but also cannot crit).&lt;br /&gt;
* Ammo - This is a reference to the ID in [[BITM_base.xls]] of the ammunition type that the weapon uses. For instance, longbows and shortbows use the arrow ammo type, crossbows use the bolt ammo type, and staffs use the staff projectile ammo type.&lt;br /&gt;
&lt;br /&gt;
Ammo types are also defined in the [[BITM_base.xls]] 2da. There are three fields of note for ammunition:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; ammo uses [[ITEM_TYPE_AMMO]].&lt;br /&gt;
* DefaultResource - This is a string that matches the tag of the default ammunition item to use when no ammunition is equipped (for ranged weapon types) or specified in the item UTI (for magic weapon types). The default arrow type is &amp;quot;gen_im_arrow&amp;quot;, the default bolt is &amp;quot;gen_im_bolt&amp;quot;, and the default staff projectile is &amp;quot;gen_im_staff_projectile&amp;quot;. These default ammo items can all be found in the item _Global/HOLDING folder in the toolset.&lt;br /&gt;
* Projectile - This is the ID of an entry in the [[PRJ_base.xls]], which defines the projectile model/animation to use for the ammo as well as base modifiers to damage. The value defined here can be changed for a specific item by setting the PROJECTILE_OVERRIDE variable on that item's UTI definition to a different projectile ID. This variable should be set on the weapon that uses the ammo, not the ammo item itself.&lt;br /&gt;
&lt;br /&gt;
When a ranged or magic weapon is equipped, the player's ammunition slot is automatically populated with an instance of the ammo's default resource. This item cannot be unequipped and is never consumed, which is how the infinite default arrow/bolt/staff projectiles work.&lt;br /&gt;
&lt;br /&gt;
== Item and Ammunition Variations and Models ==&lt;br /&gt;
&lt;br /&gt;
The model that is displayed for ammunition is independent of the model displayed for the weapon itself. In the case of arrows and bolts, the quiver models are shown whenever arrows or bolts are equipped, even if no weapon is equipped. This can be verified by equipping special ammo types like Ice Arrows with no weapon equipped.&lt;br /&gt;
&lt;br /&gt;
However, when equipping an ammo using weapon, like a bow, the infinite default resource ammunition item is automatically created/equipped as well, so the quiver displays even when no specific arrows are equipped. The game is behaving as though a gen_im_arrow item is equipped, and displaying its model.&lt;br /&gt;
&lt;br /&gt;
You can create new arrow and bolt variations using the [[ItemVariations.xls]] 2da, which are actually variants of the quiver model shown on the back. (TODO - I'm not sure how the location/attachment point of the quiver model is defined for arrows/bolts, and why it's not defined for staff projectiles, other than that arrows/bolts have item variation worksheets and staff projectiles don't). If you were then to create new arrow items in the toolset that use your custom quiver variant, your custom quiver would be shown when that ammo is equipped. (To actually change the arrow/bolt models shown in-flight, you would instead need to create a new projectile type in [[PRJ_base.xls]], then assign that projectile to your ammo or override the projectile for a specific weapon).&lt;br /&gt;
&lt;br /&gt;
The longbow, shortbow, and crossbow item variation 2da's have an extra column called DefaultAmmoVariation that links to an ID in the arrow/bolt variant 2das. The default infinite ammo resource that is created when you equip that weapon will use the variant ID specified here. For example, if you had create a custom arrow variant (quiver), you could then create a custom bow variant that specifies your custom arrow variant ID in this field, and that is the quiver model that will be shown when the bow is equipped with the default infinite ammo.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the limitation is that non-default ammo items like Ice Arrows, Fire Arrows, etc., are actually separate ammo items and do not reflect the DefaultAmmoVariation specified in the weapon variant. These items instead have their variant defined based on their UTI definition, just like any other item. This means that when one of these ammo types is equipped, the custom quiver variant being displayed for the default ammo will disappear and the ammo item will display the generic quiver since that is the variant it uses.&lt;br /&gt;
&lt;br /&gt;
There is no perfectly clean solution for handling this. You can override the item variant for all of the non-default ammo items, but that will cause your custom quiver variant to display when that ammo is equipped on any PC/NPC, regardless of the bow they are using.&lt;br /&gt;
&lt;br /&gt;
Another option is to create duplicate versions of all the ammo items and change those duplicates to use your custom ammo variant. If you used these items instead of the normal ammo items, you would then see the custom quiver. Of course this has its own problems; you have to continually produce a supply of these duplicate items for yourself (since ammo is consumed), and will not be able to use &amp;quot;found&amp;quot; ammo items since they will still be off the original item type with the default variant. This option can be expanded by providing some mechanism for converting the standard types to your custom duplicate types; e.g. you could hook the [[EVENT_TYPE_EQUIP]] event and have a script that converts ammo from the vanilla version to your duplicate custom variant version when your custom weapon is also equipped.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projectiles]]&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Rules]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12848</id>
		<title>Ranged Weapons and Ammunition</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Ranged_Weapons_and_Ammunition&amp;diff=12848"/>
				<updated>2010-04-09T21:01:16Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: a new article describing ranged weapons and how they work with ammunition&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ranged Weapons and Ammunition =&lt;br /&gt;
&lt;br /&gt;
This article explains the relationship between ranged weapons and their ammunition types, how default ammo works, and how the weapon and ammunition models and variants interrelate. Understanding these relations is essential for making customizing the default ranged weapons or adding new ranged weapons. This discussion applies to all four standard ranged weapons in Dragon Age: longbows, shortbows, crossbows, and staffs; and to their associated ammo types: arrows, bolts, and staff projectiles.&lt;br /&gt;
&lt;br /&gt;
== Defining and Linking Weapons and Ammunition ==&lt;br /&gt;
&lt;br /&gt;
Weapon types are defined in the [[BITM_base.xls]] 2da. There are two fields of importance for ranged weapons:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; bows use [[ITEM_TYPE_WEAPON_RANGED]] and staffs use [[ITEM_TYPE_WEAPON_MAGIC]]. (I think this determines the base hit model; ranged weapon types can miss but can also crit, while magic weapon types cannot miss but also cannot crit).&lt;br /&gt;
* Ammo - This is a reference to the ID in [[BITM_base.xls]] of the ammunition type that the weapon uses. For instance, longbows and shortbows use the arrow ammo type, crossbows use the bolt ammo type, and staffs use the staff projectile ammo type.&lt;br /&gt;
&lt;br /&gt;
Ammo types are also defined in the [[BITM_base.xls]] 2da. There are three fields of note for ammunition:&lt;br /&gt;
&lt;br /&gt;
* Type - This is a value from the _ItemTypes worksheet; ammo uses [[ITEM_TYPE_AMMO]].&lt;br /&gt;
* DefaultResource - This is a string that matches the tag of the default ammunition item to use when no ammunition is equipped (for ranged weapon types) or specified in the item UTI (for magic weapon types). The default arrow type is &amp;quot;gen_im_arrow&amp;quot;, the default bolt is &amp;quot;gen_im_bolt&amp;quot;, and the default staff projectile is &amp;quot;gen_im_staff_projectile&amp;quot;. These default ammo items can all be found in the item _Global/HOLDING folder in the toolset.&lt;br /&gt;
* Projectile - This is the ID of an entry in the [[PRJ_base.xls]], which defines the projectile model/animation to use for the ammo as well as base modifiers to damage. The value defined here can be changed for a specific item by setting the PROJECTILE_OVERRIDE variable on that item's UTI definition to a different projectile ID. This variable should be set on the weapon that uses the ammo, not the ammo item itself.&lt;br /&gt;
&lt;br /&gt;
When a ranged or magic weapon is equipped, the player's ammunition slot is automatically populated with an instance of the ammo's default resource. This item cannot be unequipped and is never consumed, which is how the infinite default arrow/bolt/staff projectiles work.&lt;br /&gt;
&lt;br /&gt;
== Item and Ammunition Variations and Models ==&lt;br /&gt;
&lt;br /&gt;
The model that is displayed for ammunition is independent of the model displayed for the weapon itself. In the case of arrows and bolts, the quiver models are shown whenever arrows or bolts are equipped, even if no weapon is equipped. This can be verified by equipping special ammo types like Ice Arrows with no weapon equipped.&lt;br /&gt;
&lt;br /&gt;
However, when equipping an ammo using weapon, like a bow, the infinite default resource ammunition item is automatically created/equipped as well, so the quiver displays even when no specific arrows are equipped. The game is behaving as though a gen_im_arrow item is equipped, and displaying its model.&lt;br /&gt;
&lt;br /&gt;
You can create new arrow and bolt variations using the [[ItemVariations.xls]] 2da, which are actually variants of the quiver model shown on the back. (TODO - I'm not sure how the location/attachment point of the quiver model is defined for arrows/bolts, and why it's not defined for staff projectiles, other than that arrows/bolts have item variation worksheets and staff projectiles don't). If you were then to create new arrow items in the toolset that use your custom quiver variant, your custom quiver would be shown when that ammo is equipped. (To actually change the arrow/bolt models shown in-flight, you would instead need to create a new projectile type in [[PRJ_base.xls]], then assign that projectile to your ammo or override the projectile for a specific weapon).&lt;br /&gt;
&lt;br /&gt;
The longbow, shortbow, and crossbow item variation 2da's have an extra column called DefaultAmmoVariation that links to an ID in the arrow/bolt variant 2das. The default infinite ammo resource that is created when you equip that weapon will use the variant ID specified here. For example, if you had create a custom arrow variant (quiver), you could then create a custom bow variant that specifies your custom arrow variant ID in this field, and that is the quiver model that will be shown when the bow is equipped with the default infinite ammo.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the limitation is that non-default ammo items like Ice Arrows, Fire Arrows, etc., are actually separate ammo items and do not reflect the DefaultAmmoVariation specified in the weapon variant. These items instead have their variant defined based on their UTI definition, just like any other item. This means that when one of these ammo types is equipped, the custom quiver variant being displayed for the default ammo will disappear and the ammo item will display the generic quiver since that is the variant it uses.&lt;br /&gt;
&lt;br /&gt;
There is no perfectly clean solution for handling this. You can override the item variant for all of the non-default ammo items, but that will cause your custom quiver variant to display when that ammo is equipped on any PC/NPC, regardless of the bow they are using.&lt;br /&gt;
&lt;br /&gt;
Another option is to create duplicate versions of all the ammo items and change those duplicates to use your custom ammo variant. If you used these items instead of the normal ammo items, you would then see the custom quiver. Of course this has its own problems; you have to continually produce a supply of these duplicate items for yourself (since ammo is consumed), and will not be able to use &amp;quot;found&amp;quot; ammo items since they will still be off the original item type with the default variant. This option can be expanded by providing some mechanism for converting the standard types to your custom duplicate types; e.g. you could hook the [[EVENT_TYPE_EQUIP]] event and have a script that converts ammo from the vanilla version to your duplicate custom variant version when your custom weapon is also equipped.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projectiles]]&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Rules]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Talk:Texture_Formats&amp;diff=12779</id>
		<title>Talk:Texture Formats</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Talk:Texture_Formats&amp;diff=12779"/>
				<updated>2010-03-26T15:40:53Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To be clear. &lt;br /&gt;
A 'black and white normal map' is actually a 'displacement map.' I think it's confusing that you call a b&amp;amp;w texture, that fakes geometry height, a 'normal map' and&lt;br /&gt;
a RGB texture, that fakes geometry height and position, a 'RGB normal map'. B&amp;amp;W = displacement. RGB = normal  ''-Freebeers''&lt;br /&gt;
&lt;br /&gt;
*No its actually a normal map too. Its a normal map because it stores normals. That some are colorful, others are not is of no matter. Its just grey because of different channel assignment. I think the descriptions RGB and B&amp;amp;W could get a workover. RGB is the standard format. B&amp;amp;W is the Bioware format. [[User:Eshme|Eshme]] 06:09, 8 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Specular Maps ==&lt;br /&gt;
&lt;br /&gt;
It appears to me that the specular map RGB channels are not 3 unrelated maps as implied by the 4 packed-maps descriptin, but instead simply control the color of the specular highlight. The alpha seems to control the intensity of the highlight. Can anyone else confirm or rebuke that based on their experience/experiments? [[User:Nezroy|Nezroy]] 15:40, 26 March 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Talk:Texture_Formats&amp;diff=12778</id>
		<title>Talk:Texture Formats</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Talk:Texture_Formats&amp;diff=12778"/>
				<updated>2010-03-26T15:40:36Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: specular map discussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To be clear. &lt;br /&gt;
A 'black and white normal map' is actually a 'displacement map.' I think it's confusing that you call a b&amp;amp;w texture, that fakes geometry height, a 'normal map' and&lt;br /&gt;
a RGB texture, that fakes geometry height and position, a 'RGB normal map'. B&amp;amp;W = displacement. RGB = normal  ''-Freebeers''&lt;br /&gt;
&lt;br /&gt;
*No its actually a normal map too. Its a normal map because it stores normals. That some are colorful, others are not is of no matter. Its just grey because of different channel assignment. I think the descriptions RGB and B&amp;amp;W could get a workover. RGB is the standard format. B&amp;amp;W is the Bioware format. [[User:Eshme|Eshme]] 06:09, 8 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Specular Maps ===&lt;br /&gt;
&lt;br /&gt;
It appears to me that the specular map RGB channels are not 3 unrelated maps as implied by the 4 packed-maps descriptin, but instead simply control the color of the specular highlight. The alpha seems to control the intensity of the highlight. Can anyone else confirm or rebuke that based on their experience/experiments? [[User:Nezroy|Nezroy]] 15:40, 26 March 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Prefixes_in_use&amp;diff=12253</id>
		<title>Prefixes in use</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Prefixes_in_use&amp;diff=12253"/>
				<updated>2010-03-01T17:42:03Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: alphabetization FTW&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Potential conflict between add-ins can be reduced by using a unique prefix for resource names (and a similar suffix for M2DA tables).&lt;br /&gt;
&lt;br /&gt;
We don't know for sure which prefixes Bioware may need to use in future, but we can reduce conflict between community offerings by registering our intentions here.&lt;br /&gt;
&lt;br /&gt;
WARNING - no doubt Bioware has already allocated additional prefixes for DLC and future releases, so registering here does not guarantee that your prefix is unique.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Prefix&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| APL&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BDC&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BDN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BEC&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BED&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BHM&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BHN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| CAM&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| CIR&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| COC&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| DEN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| EPI&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| GEN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| LOT&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| NEZ&lt;br /&gt;
| All of [http://social.bioware.com/profile/20696#bw_projects nezroy's projects].&lt;br /&gt;
|-&lt;br /&gt;
| NTB&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| ORZ&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| PRE&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| RAN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| URN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| VWK&lt;br /&gt;
| Magic - [http://social.bioware.com/project/1429/ Void Walker]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Prefixes_in_use&amp;diff=12252</id>
		<title>Prefixes in use</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Prefixes_in_use&amp;diff=12252"/>
				<updated>2010-03-01T17:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: adding nez for nezroy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Potential conflict between add-ins can be reduced by using a unique prefix for resource names (and a similar suffix for M2DA tables).&lt;br /&gt;
&lt;br /&gt;
We don't know for sure which prefixes Bioware may need to use in future, but we can reduce conflict between community offerings by registering our intentions here.&lt;br /&gt;
&lt;br /&gt;
WARNING - no doubt Bioware has already allocated additional prefixes for DLC and future releases, so registering here does not guarantee that your prefix is unique.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Prefix&lt;br /&gt;
! Used by&lt;br /&gt;
|-&lt;br /&gt;
| APL&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BDC&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BDN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BEC&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BED&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BHM&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| BHN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| CAM&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| CIR&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| COC&lt;br /&gt;
| [http://social.bioware.com/project/178/ Crown of Creation]&lt;br /&gt;
|-&lt;br /&gt;
| DEN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| EPI&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| GEN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| LOT&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| NTB&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| ORZ&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| PRE&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| RAN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| URN&lt;br /&gt;
| BIOWARE&lt;br /&gt;
|-&lt;br /&gt;
| VWK&lt;br /&gt;
| Magic - [http://social.bioware.com/project/1429/ Void Walker]&lt;br /&gt;
|-&lt;br /&gt;
| NEZ&lt;br /&gt;
| All of [http://social.bioware.com/profile/20696#bw_projects nezroy's projects].&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Talk:Reskinning_an_item_tutorial&amp;diff=12199</id>
		<title>Talk:Reskinning an item tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Talk:Reskinning_an_item_tutorial&amp;diff=12199"/>
				<updated>2010-02-26T18:01:33Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: addressing q about ERFs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thanks for the tutorial on reskinning an item!&lt;br /&gt;
&lt;br /&gt;
One question:  How do I ''recolor'' a texture?  The colors that the characters are wearing in-game seem to have nothing to do with the colors of the textures in the .dds files.&lt;br /&gt;
&lt;br /&gt;
The main mage robe texture file, pf_rob_appb_0dl2.dds, has very little color, and if I recolor it, as you'd expect, nothing happens.  And if I look at pf_rob_appb_0t.dds, it's intense shades of red, blue, and green, which seem designed to tell the game where to put various colors, rather than which colors those are.  So where do the specific colors come from?&lt;br /&gt;
&lt;br /&gt;
I've recolored a lot of files for ''The Witcher,'' so I know how to recolor a .dds file.  But in ''The Witcher,'' you get whatever color you've made the texture.  Where are the colors stored for ''Dragon Age''?&lt;br /&gt;
&lt;br /&gt;
My mage has an orange-and-green set of robes, and I'd like a different color scheme. &lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Corylea&lt;br /&gt;
:You'll want to read up on the [[Material Tint System]] and check out [[Tutorial:_Creating_recolors_of_existing_items|this tutorial]] and [[Tutorial:_Understanding_Tints:_Overriding_Defaults_&amp;amp;_Creating_New_Ones|this tutorial]] on tinting. [[User:Nezroy|Nezroy]] 18:00, 26 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Where are the files for the Blood Dragon Armor called?&lt;br /&gt;
&lt;br /&gt;
What program do you use to open the ERFs?&lt;br /&gt;
---Skyintheeye&lt;br /&gt;
:The toolset can open ERFs. Just use the File-&amp;gt;Open command and locate the ERF to open. Then right-click on a file in the list and select &amp;quot;Extract Resource&amp;quot; (or alternatively you can use &amp;quot;Extract All Resources&amp;quot; to dump the contents of the entire ERF somewhere). [[User:Nezroy|Nezroy]] 18:01, 26 February 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Talk:Reskinning_an_item_tutorial&amp;diff=12198</id>
		<title>Talk:Reskinning an item tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Talk:Reskinning_an_item_tutorial&amp;diff=12198"/>
				<updated>2010-02-26T18:00:18Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: addressing corylea question about tints/colors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thanks for the tutorial on reskinning an item!&lt;br /&gt;
&lt;br /&gt;
One question:  How do I ''recolor'' a texture?  The colors that the characters are wearing in-game seem to have nothing to do with the colors of the textures in the .dds files.&lt;br /&gt;
&lt;br /&gt;
The main mage robe texture file, pf_rob_appb_0dl2.dds, has very little color, and if I recolor it, as you'd expect, nothing happens.  And if I look at pf_rob_appb_0t.dds, it's intense shades of red, blue, and green, which seem designed to tell the game where to put various colors, rather than which colors those are.  So where do the specific colors come from?&lt;br /&gt;
&lt;br /&gt;
I've recolored a lot of files for ''The Witcher,'' so I know how to recolor a .dds file.  But in ''The Witcher,'' you get whatever color you've made the texture.  Where are the colors stored for ''Dragon Age''?&lt;br /&gt;
&lt;br /&gt;
My mage has an orange-and-green set of robes, and I'd like a different color scheme. &lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Corylea&lt;br /&gt;
:You'll want to read up on the [[Material Tint System]] and check out [[Tutorial:_Creating_recolors_of_existing_items|this tutorial]] and [[Tutorial:_Understanding_Tints:_Overriding_Defaults_&amp;amp;_Creating_New_Ones|this tutorial]] on tinting. [[User:Nezroy|Nezroy]] 18:00, 26 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Where are the files for the Blood Dragon Armor called?&lt;br /&gt;
&lt;br /&gt;
What program do you use to open the ERFs?&lt;br /&gt;
---Skyintheeye&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=12152</id>
		<title>2DA ranges in use</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=12152"/>
				<updated>2010-02-25T10:30:03Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: fixing ts_material spacing&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. 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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
== 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;
| 65000 - 65001&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&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;
== 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;
| 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;
== 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 - 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;
&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;
== 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;
| 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;
&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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
| 536873321 - 536873322&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&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;
| 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;
== 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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
| 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;
| 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;
| 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;
| 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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680199&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;
== 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;
&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;
| 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;
| 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;
| 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;
&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;
| 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;
| 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;
| 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;
== 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;
| 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;
== 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;
== 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;
| 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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:2DAs]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=Talk:2DA_ranges_in_use&amp;diff=12151</id>
		<title>Talk:2DA ranges in use</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=Talk:2DA_ranges_in_use&amp;diff=12151"/>
				<updated>2010-02-25T10:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: variant id ranges?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Are we not bothering with reserving variant ranges until the &amp;gt;255 bug is fixed? Or should we start a land grab for this valuable space? I've been using variant IDs of 137-140 in my current stuff. [[User:Nezroy|Nezroy]] 10:28, 25 February 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=12150</id>
		<title>2DA ranges in use</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=12150"/>
				<updated>2010-02-25T10:26:26Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: added ts_material table, and some reserved ranges for me&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. 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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
== 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;
| 65000 - 65001&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&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;
== 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;
| 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;
== 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 - 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;
&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;
== 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;
| 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;
&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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
| 536873321 - 536873322&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&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;
| 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;
== 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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
| 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;
| 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;
| 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;
| 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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680199&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;
== 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;
&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;
| 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;
| 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;
| 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;
&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;
| 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;
| 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;
| 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;
== 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;
| 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;
== 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;
== 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;
| 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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:2DAs]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	<entry>
		<id>http://www.datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=11994</id>
		<title>2DA ranges in use</title>
		<link rel="alternate" type="text/html" href="http://www.datoolset.net/mw/index.php?title=2DA_ranges_in_use&amp;diff=11994"/>
				<updated>2010-02-21T09:01:01Z</updated>
		
		<summary type="html">&lt;p&gt;Nezroy: adding nezroy project id ranges&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. 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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
== 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;
| 65000 - 65001&lt;br /&gt;
| BioSpirit's [http://social.bioware.com/project/1647/ Hilltop Under Siege]&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;
== 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;
| 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;
== 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 - 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;
&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;
== 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;
| 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;
&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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
| 536873321 - 536873322&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&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;
| 1405261000 - 1405261999&lt;br /&gt;
| nezroy - [http://social.bioware.com/project/1834/ Warden Shields]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&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;
| 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;
| 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;
| 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;
| 536873321 - 536873323&lt;br /&gt;
| Elys' [http://social.bioware.com/project/522/ Mysterious Gifts]&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;
| 30000000-40000000&lt;br /&gt;
| MCC's Senderfall: The Last Bastion (To author: unreasonable range, please correct)&lt;br /&gt;
|-&lt;br /&gt;
| 5680000 - 5680199&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]&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;
&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;
| 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;
| 10100100-10100110&lt;br /&gt;
| Eshme's [http://social.bioware.com/project/1929/ Sleeping Tent]&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;
| 6000000 - 6000050&lt;br /&gt;
| TreDawn - [http://social.bioware.com/project/1750/ Nesiara Companion]&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]&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;
| 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;
| 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;
| 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;
== 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;
| 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;
== 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;
| 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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:2DAs]]&lt;/div&gt;</summary>
		<author><name>Nezroy</name></author>	</entry>

	</feed>