<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.alandfaraway.info/Wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wynna</id>
		<title>ALFA - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.alandfaraway.info/Wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wynna"/>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/wiki/Special:Contributions/Wynna"/>
		<updated>2026-04-04T10:05:53Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=ACR_Spawn&amp;diff=3986</id>
		<title>ACR Spawn</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=ACR_Spawn&amp;diff=3986"/>
				<updated>2023-02-01T14:29:25Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Current Paramters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ACR Systems]]&lt;br /&gt;
The following is a complete list of features in the [[ALFA Core Rules|ACR]]'s spawn system.&lt;br /&gt;
&lt;br /&gt;
== Waypoints ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
Just like [http://nwvault.ign.com/View.php?view=nwn2scripts.detail&amp;amp;id=181 NESS] and other spawn systems, the ACR's spawn system uses [[Waypoint|waypoints]] as spawn points. These waypoints have a great deal of options on them, in the form of local variables which the builder can change to suit his needs. You'll find a base, blank template for a spawn waypoint in the [[ALFA Campaign Folder]].&lt;br /&gt;
&lt;br /&gt;
It is important to note that ACR Spawn waypoints must be tagged as ''ACR_SPAWN_WP''.&lt;br /&gt;
&lt;br /&gt;
== Array Parameters ==&lt;br /&gt;
In computer lingo, an [http://en.wikipedia.org/wiki/Array array] is simply a list of some sort of data of the same type. The spawn system uses arrays to list the &amp;quot;resource names&amp;quot; of creatures or objects you want to spawn, and the scripts you may wish to attach to these creatures. Since the spawn system depends on local variables for configuration, the arrays are lists of local variables. For example, ACR_SPAWN_RESNAME_ is a local string which lists the resrefs of the creatures spawned. So ACR_SPAWN_RESNAME_1 would be the name of the local variable for the first resref, ACR_SPAWN_RESNAME_2 the second, ACR_SPAWN_RESNAME_3 the third, and so on. Never skip a entry in an array. If you do, the spawn system will think the array has stopped at the missing entry. Also, always start at 1, not 0.&lt;br /&gt;
&lt;br /&gt;
== Current Parameters ==&lt;br /&gt;
; ACR_SPAWN_TYPE (integer) : This indicates the type of object which is being spawned. The default is 0, for a creature, but other types are available, as listed below:&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard boldFirstColumn&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Creatures&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Placeables&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Items&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Store&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Waypoint&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Triggers&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Encounters&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Lights&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Trap&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RESNAME_* (string array) : This array lists Resource Names of objects which are always spawned by the spawn point. If the spawn point is activated, all the Resource Names in this array will be spawned. Resource Names listed more than once are spawned more than once. &lt;br /&gt;
:: ''Example: Leading to 2 badgers and a chicken each time: ACR_SPAWN_RESNAME_1 = &amp;quot;c_badger&amp;quot;; ACR_SPAWN_RESNAME_2 = &amp;quot;c_badger&amp;quot;; ACR_SPAWN_RESNAME_3 = &amp;quot;c_chicken&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RANDOM_RESNAME_* (string array) : This array lists Resource Names of objects which are chosen at random to be spawned. The number of chosen Resource Names depends on the ACR_SPAWN_RESNAMES_MIN/MAX settings, see below. This array can have no more than 31 entries. Each time the spawns are chosen randomly from this list.&lt;br /&gt;
:: ''Example: Leading to 67% chicken and 33% badger: ACR_SPAWN_RANDOM_RESNAME_1 = &amp;quot;c_badger&amp;quot;; ACR_SPAWN_RANDOM_RESNAME_2 = &amp;quot;c_chicken&amp;quot;; ACR_SPAWN_RANDOM_RESNAME_3 = &amp;quot;c_chicken&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RESNAMES_MIN (integer)&lt;br /&gt;
; ACR_SPAWN_RESNAMES_MAX (integer) : These are the maximum and minimum numbers of Resource Names spawned from the ACR_SPAWN_RANDOM_RESNAME_ array. The actual number spawned is determined randomly between these values. They can range between 0 and 31. To keep this value from being random, set both the min and max equal. Each one will be an independent pull from the RANDOM_RESNAME array described above, so if these are &amp;gt;1, you may end up with multiples of Resource Names from the RANDOM_RESNAME array: best to leave uniques like bosses to their own waypoint, or use the ACR_SPAWN_RESNAME_# option above for them.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RESPAWN_COUNT (integer) : This local integer defines the number of times a spawn point will spawn, if all its children have been killed. The default is 1, which indicates a &amp;quot;single-life&amp;quot; spawn. Mod reset or scripts can bring the spawn back, and normal despawning due to time or inactivity will not permanently deactivate the spawn point, only death of all of it's spawned &amp;quot;children&amp;quot;. Note that this relies on the spawned objects having the correct acf_ondeath() scripts in their OnDeath events. A setting of &amp;quot;-1&amp;quot; will lead to an infinitely respawning waypoint, which will always repopulate after being &amp;quot;cleared out&amp;quot;. Similarly, setting this value to &amp;quot;5&amp;quot;, would mean the spawn point would have to be killed off 5 separate times to deactivate &amp;quot;for good&amp;quot;. Note that currently a mod reset still sets this counter back to it's original state, though we may tie this into persistent variables once they become available to us again.&lt;br /&gt;
&lt;br /&gt;
; ACR_RESPAWN_DELAY_MIN (float)&lt;br /&gt;
; ACR_RESPAWN_DELAY_MAX (float) : This is the random period of time a spawn spends &amp;quot;recharging&amp;quot; after its children have all been killed (see above). This value is in game hours, and is chosen randomly between the mininum and maximum. To keep this value from being random, set both the min and max equal. In practical terms, the respawn will happen at the next spawn pseudoheartbest after the timer expires, so the &amp;quot;accuracy&amp;quot; of the respawn delay will be somewhat dependent on the refresh rate of the system. Also note that setting respawn delay to &amp;quot;0.0&amp;quot; means the respawn will still be delayed until the next pseudoheartbeat, so respawns are never instantaneous (though if a spawn is killed just before a heartbeat, it may appear so).&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_CHANCE (float) : This value, from 0 to 100, represents the chance a spawn has of spawning. This chance is computed once every game day. The % chance applies per day for the waypoint collectively, so it is an all-or-nothing situation.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RANDOM_RADIUS (float) : This, if nonzero, specifies a maximum distance from the chosen spawn point location at which the spawn child may appear, in a random direction. This is calculated separately (distance and direction) for each spawned child, so for a multiple spawn, you can imagine it to describe the tightness of the &amp;quot;scatter&amp;quot; of the spawned children around the spawn point target. A small value will give a closely-spaced group, while a large one will give the illusion of entirely separate spawns, even though they are all children of the same waypoint.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RANDOM_RANGE (float) : This, if nonzero, specifies a range (in a random direction) from the actual location of the waypoint to the target/centerpoint of the spawning- 0.0 will always center the spawn right on top of the waypoint, while an arbitrarily large value could place the spawn anywhere in the area. Note that when spawning a single child, this parameter is functionally equivalent to ACR_SPAWN_RANDOM_RADIUS, but when used with multiple children, it can place a mob of creatures, placeables, or items in a less predictable position, either in a closely knit group, or a broad spread.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_VFX (integer) : This integer indicates the [[Visual Effect]] number of a visual effect which is played on every object this spawn point spawns. It is commonly used to represent teleporting or summoned monsters.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_VFX (integer) : This integer indicates the visual effect number of a visual effect which is played on the spawn point itself as it activates. It is commonly used to represent groups of teleporting or summoned monsters.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_SFX (string) : This is the [[Sound Effect]] file which is played on each object spawned at this spawn point.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_SFX (string) : This is the sound effect file which is played on the spawn point itself as it activates.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_ANIMATION (string) : This is the animation performed by all creatures spawned from this spawn point, as they spawn.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_HOUR (integer)&lt;br /&gt;
; ACR_SPAWN_OUT_HOUR (integer) : This is the hour of the day the spawn starts to spawn in and spawns out at. If the current hour is between these values, the spawn can be active. If the two values are equal (such as zero, the default), the hour of the day has no effect on whether or not the spawn activates. Valid values are between 0 and 23. This also works for &amp;quot;circular&amp;quot; cases, such as Night-only spaws.&lt;br /&gt;
:: ''Example: Here for spawning in at 18:00, and spawning back out every 06:00: ACR_SPAWN_IN_HOUR = &amp;quot;18&amp;quot; ACR_SPAWN_OUT_HOUR = &amp;quot;6&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_DAY (integer)&lt;br /&gt;
; ACR_SPAWN_OUT_DAY (integer) : This is the day of the month (28 days in the Fearunian month) in which the spawn will spawn in and spawn out. These should also work in a circular fashion similar to the hours above, though that behaviour has not been stringently tested.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_MONTH (integer)&lt;br /&gt;
; ACR_SPAWN_OUT_MONTH (integer) : This is the month of the year (12 months in the Faerunian year) the spawn starts to spawn in and spawns out at. If the current month is between these values, the spawn can be active. If the two values are equal (such as zero, the default), the month of the year has no effect on whether or not the spawn activates. Valid values are between 1 and 12.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_PC_SIGHT (integer) : If nonzero, the spawn will spawn with a PC in sight of it. This is disabled to keep spawns from suddenly appearing in front of a PC in an OOC fashion.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_ONLY_WHEN_NO_PC_IN_AREA (integer) : If nonzero, this spawn will not respawn or activate at all if a PC is already in the area when it tries to do so. This is used to prevent creatures from re-appearing where they were after a PC just killed them, or something similar.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_WITH_ANIMATION (integer) : If nonzero, this setting makes the spawn appear with its default spawn-in animation. This is usually a &amp;quot;fly-down&amp;quot; effect for most creatures, and a &amp;quot;climb down&amp;quot; effect for spiders.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IS_DISABLED (integer) : If nonzero, this spawn is disabled and will not spawn unless enabled by some other script or DM tool.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RANDOM_FACING (integer) : If nonzero, the spawn's facing is random, instead of facing the direction of the spawn waypoint.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_STEALTH (integer) : If nonzero, the spawn spawns in stealth mode.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_DETECT (integer) : If nonzero, the spawn spawns in detect mode.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_BUFFED (integer) : If nonzero, spawned creatures spawn with all hour per level (or longer) buffs cast on itself in a semi-intelligent fashion (evil creatures cast protection from good, multiple magic vestimates or magic weapons are distributed over different items, etc).&lt;br /&gt;
&lt;br /&gt;
; ACR_COLOR_NAME (string) : Sets the color of the creature's name to the string value. Anything that functions inside of &amp;lt;C=[this spot]&amp;gt;Name&amp;lt;/C&amp;gt; is valid for use.&lt;br /&gt;
:: ''Example: A value of &amp;lt;code&amp;gt;gold&amp;lt;/code&amp;gt; will set the spawned creature's name to a golden color.&lt;br /&gt;
&lt;br /&gt;
== Custom Script Parameters ==&lt;br /&gt;
The spawn system allows custom scripts to be run when a spawn activates, for scripters to use how they wish. In order to use the functions listed here, be sure and include the spawn system's source file with the line: &amp;lt;code&amp;gt;#include &amp;quot;[[acr_spawn_i]]&amp;quot;&amp;lt;/code&amp;gt; at the top of your script.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_SCRIPT_ (string array) : This array defines custom scripts which are run on each object spawned by the spawn point. Each script is executed on each spawned object once, with OBJECT_SELF pointing to the spawned object. These scripts can have any name.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_SCRIPT_ (string array) : This array defines custom scripts which are run on the spawn point after it activates and spawns children. Each script is executed once, with OBJECT_SELF pointing to the spawn waypoint itself. If you wish to spawn additional objects from this script, use the function ACR_SpawnObject(). These scripts can have any name.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IS_ACTIVE_SCRIPT (string) : This variable defines a single custom which is run whenever the spawn system looks at the spawn point and tries to decide whether or not to spawn it. It allows custom logic to be used to decide whether or not the point should spawn, overriding the spawn point's normal behavior. In this script, OBJECT_SELF points to the spawn waypoint itself. If you wish the point to spawn, call ACR_ForceSpawn(). If you wish to keep it from spawning, call ACR_DisallowSpawn(). If you don't call either of these functions, the spawn point behaves as it normally would. If for some reason you call both, ACR_ForceSpawn() takes precedence and the spawn activates. (not yet tested)&lt;br /&gt;
&lt;br /&gt;
== System Configuration ==&lt;br /&gt;
In addition to the options of each spawn point, there are a few settings which you can use to globally configure ALFA's spawn system. These are constants located in the script acf_spawn_i. Like all ACF files (click here for an explaination), it is never updated in an ACR update. So any settings here will always be preserved, though server staff may be asked to add options to this file in the future as the ACR evolves.&lt;br /&gt;
&lt;br /&gt;
; _SPAWN_AREA_DESPAWN_DELAY : This is the delay between when an area becomes empty of PCs, and when the spawn system despawns its children within it. Larger values here may lead to increased CPU usage as more creatures stay spawned at once.&lt;br /&gt;
&lt;br /&gt;
; _SPAWN_REFRESH_DELAY : This is the &amp;quot;heartbeat&amp;quot; of the spawn system. Larger values here reduce CPU usage, but make the spawn system react slower.&lt;br /&gt;
&lt;br /&gt;
; _SPAWN_PRESPAWN_SEAMLESS : This controls whether the spawn system will take cues from PCs entering seamless ATs in adjacent areas. If active, it should ensure all spawns are in place before the PC actually ATs. It may be disabled to keep memory use down, as it may lead to areas being population without PCs actually entering them (if the PC backs out of the AT trigger instead of continuing)&lt;br /&gt;
&lt;br /&gt;
; _SPAWN_PRESPAWN_PREDICTION : This controls whether the spawn system will take into account the predicted arrival point of an ATing PC, when deciding whether to spawn a group intended to be out of sight.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALFA Core Rules}}&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=ACR_Spawn&amp;diff=3985</id>
		<title>ACR Spawn</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=ACR_Spawn&amp;diff=3985"/>
				<updated>2023-02-01T14:29:14Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Current Paramters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ACR Systems]]&lt;br /&gt;
The following is a complete list of features in the [[ALFA Core Rules|ACR]]'s spawn system.&lt;br /&gt;
&lt;br /&gt;
== Waypoints ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
Just like [http://nwvault.ign.com/View.php?view=nwn2scripts.detail&amp;amp;id=181 NESS] and other spawn systems, the ACR's spawn system uses [[Waypoint|waypoints]] as spawn points. These waypoints have a great deal of options on them, in the form of local variables which the builder can change to suit his needs. You'll find a base, blank template for a spawn waypoint in the [[ALFA Campaign Folder]].&lt;br /&gt;
&lt;br /&gt;
It is important to note that ACR Spawn waypoints must be tagged as ''ACR_SPAWN_WP''.&lt;br /&gt;
&lt;br /&gt;
== Array Parameters ==&lt;br /&gt;
In computer lingo, an [http://en.wikipedia.org/wiki/Array array] is simply a list of some sort of data of the same type. The spawn system uses arrays to list the &amp;quot;resource names&amp;quot; of creatures or objects you want to spawn, and the scripts you may wish to attach to these creatures. Since the spawn system depends on local variables for configuration, the arrays are lists of local variables. For example, ACR_SPAWN_RESNAME_ is a local string which lists the resrefs of the creatures spawned. So ACR_SPAWN_RESNAME_1 would be the name of the local variable for the first resref, ACR_SPAWN_RESNAME_2 the second, ACR_SPAWN_RESNAME_3 the third, and so on. Never skip a entry in an array. If you do, the spawn system will think the array has stopped at the missing entry. Also, always start at 1, not 0.&lt;br /&gt;
&lt;br /&gt;
== Current Paramters ==&lt;br /&gt;
; ACR_SPAWN_TYPE (integer) : This indicates the type of object which is being spawned. The default is 0, for a creature, but other types are available, as listed below:&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard boldFirstColumn&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Creatures&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Placeables&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Items&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Store&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Waypoint&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Triggers&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Encounters&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Lights&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Trap&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RESNAME_* (string array) : This array lists Resource Names of objects which are always spawned by the spawn point. If the spawn point is activated, all the Resource Names in this array will be spawned. Resource Names listed more than once are spawned more than once. &lt;br /&gt;
:: ''Example: Leading to 2 badgers and a chicken each time: ACR_SPAWN_RESNAME_1 = &amp;quot;c_badger&amp;quot;; ACR_SPAWN_RESNAME_2 = &amp;quot;c_badger&amp;quot;; ACR_SPAWN_RESNAME_3 = &amp;quot;c_chicken&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RANDOM_RESNAME_* (string array) : This array lists Resource Names of objects which are chosen at random to be spawned. The number of chosen Resource Names depends on the ACR_SPAWN_RESNAMES_MIN/MAX settings, see below. This array can have no more than 31 entries. Each time the spawns are chosen randomly from this list.&lt;br /&gt;
:: ''Example: Leading to 67% chicken and 33% badger: ACR_SPAWN_RANDOM_RESNAME_1 = &amp;quot;c_badger&amp;quot;; ACR_SPAWN_RANDOM_RESNAME_2 = &amp;quot;c_chicken&amp;quot;; ACR_SPAWN_RANDOM_RESNAME_3 = &amp;quot;c_chicken&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RESNAMES_MIN (integer)&lt;br /&gt;
; ACR_SPAWN_RESNAMES_MAX (integer) : These are the maximum and minimum numbers of Resource Names spawned from the ACR_SPAWN_RANDOM_RESNAME_ array. The actual number spawned is determined randomly between these values. They can range between 0 and 31. To keep this value from being random, set both the min and max equal. Each one will be an independent pull from the RANDOM_RESNAME array described above, so if these are &amp;gt;1, you may end up with multiples of Resource Names from the RANDOM_RESNAME array: best to leave uniques like bosses to their own waypoint, or use the ACR_SPAWN_RESNAME_# option above for them.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RESPAWN_COUNT (integer) : This local integer defines the number of times a spawn point will spawn, if all its children have been killed. The default is 1, which indicates a &amp;quot;single-life&amp;quot; spawn. Mod reset or scripts can bring the spawn back, and normal despawning due to time or inactivity will not permanently deactivate the spawn point, only death of all of it's spawned &amp;quot;children&amp;quot;. Note that this relies on the spawned objects having the correct acf_ondeath() scripts in their OnDeath events. A setting of &amp;quot;-1&amp;quot; will lead to an infinitely respawning waypoint, which will always repopulate after being &amp;quot;cleared out&amp;quot;. Similarly, setting this value to &amp;quot;5&amp;quot;, would mean the spawn point would have to be killed off 5 separate times to deactivate &amp;quot;for good&amp;quot;. Note that currently a mod reset still sets this counter back to it's original state, though we may tie this into persistent variables once they become available to us again.&lt;br /&gt;
&lt;br /&gt;
; ACR_RESPAWN_DELAY_MIN (float)&lt;br /&gt;
; ACR_RESPAWN_DELAY_MAX (float) : This is the random period of time a spawn spends &amp;quot;recharging&amp;quot; after its children have all been killed (see above). This value is in game hours, and is chosen randomly between the mininum and maximum. To keep this value from being random, set both the min and max equal. In practical terms, the respawn will happen at the next spawn pseudoheartbest after the timer expires, so the &amp;quot;accuracy&amp;quot; of the respawn delay will be somewhat dependent on the refresh rate of the system. Also note that setting respawn delay to &amp;quot;0.0&amp;quot; means the respawn will still be delayed until the next pseudoheartbeat, so respawns are never instantaneous (though if a spawn is killed just before a heartbeat, it may appear so).&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_CHANCE (float) : This value, from 0 to 100, represents the chance a spawn has of spawning. This chance is computed once every game day. The % chance applies per day for the waypoint collectively, so it is an all-or-nothing situation.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RANDOM_RADIUS (float) : This, if nonzero, specifies a maximum distance from the chosen spawn point location at which the spawn child may appear, in a random direction. This is calculated separately (distance and direction) for each spawned child, so for a multiple spawn, you can imagine it to describe the tightness of the &amp;quot;scatter&amp;quot; of the spawned children around the spawn point target. A small value will give a closely-spaced group, while a large one will give the illusion of entirely separate spawns, even though they are all children of the same waypoint.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RANDOM_RANGE (float) : This, if nonzero, specifies a range (in a random direction) from the actual location of the waypoint to the target/centerpoint of the spawning- 0.0 will always center the spawn right on top of the waypoint, while an arbitrarily large value could place the spawn anywhere in the area. Note that when spawning a single child, this parameter is functionally equivalent to ACR_SPAWN_RANDOM_RADIUS, but when used with multiple children, it can place a mob of creatures, placeables, or items in a less predictable position, either in a closely knit group, or a broad spread.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_VFX (integer) : This integer indicates the [[Visual Effect]] number of a visual effect which is played on every object this spawn point spawns. It is commonly used to represent teleporting or summoned monsters.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_VFX (integer) : This integer indicates the visual effect number of a visual effect which is played on the spawn point itself as it activates. It is commonly used to represent groups of teleporting or summoned monsters.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_SFX (string) : This is the [[Sound Effect]] file which is played on each object spawned at this spawn point.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_SFX (string) : This is the sound effect file which is played on the spawn point itself as it activates.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_ANIMATION (string) : This is the animation performed by all creatures spawned from this spawn point, as they spawn.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_HOUR (integer)&lt;br /&gt;
; ACR_SPAWN_OUT_HOUR (integer) : This is the hour of the day the spawn starts to spawn in and spawns out at. If the current hour is between these values, the spawn can be active. If the two values are equal (such as zero, the default), the hour of the day has no effect on whether or not the spawn activates. Valid values are between 0 and 23. This also works for &amp;quot;circular&amp;quot; cases, such as Night-only spaws.&lt;br /&gt;
:: ''Example: Here for spawning in at 18:00, and spawning back out every 06:00: ACR_SPAWN_IN_HOUR = &amp;quot;18&amp;quot; ACR_SPAWN_OUT_HOUR = &amp;quot;6&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_DAY (integer)&lt;br /&gt;
; ACR_SPAWN_OUT_DAY (integer) : This is the day of the month (28 days in the Fearunian month) in which the spawn will spawn in and spawn out. These should also work in a circular fashion similar to the hours above, though that behaviour has not been stringently tested.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_MONTH (integer)&lt;br /&gt;
; ACR_SPAWN_OUT_MONTH (integer) : This is the month of the year (12 months in the Faerunian year) the spawn starts to spawn in and spawns out at. If the current month is between these values, the spawn can be active. If the two values are equal (such as zero, the default), the month of the year has no effect on whether or not the spawn activates. Valid values are between 1 and 12.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_PC_SIGHT (integer) : If nonzero, the spawn will spawn with a PC in sight of it. This is disabled to keep spawns from suddenly appearing in front of a PC in an OOC fashion.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_ONLY_WHEN_NO_PC_IN_AREA (integer) : If nonzero, this spawn will not respawn or activate at all if a PC is already in the area when it tries to do so. This is used to prevent creatures from re-appearing where they were after a PC just killed them, or something similar.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_WITH_ANIMATION (integer) : If nonzero, this setting makes the spawn appear with its default spawn-in animation. This is usually a &amp;quot;fly-down&amp;quot; effect for most creatures, and a &amp;quot;climb down&amp;quot; effect for spiders.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IS_DISABLED (integer) : If nonzero, this spawn is disabled and will not spawn unless enabled by some other script or DM tool.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_RANDOM_FACING (integer) : If nonzero, the spawn's facing is random, instead of facing the direction of the spawn waypoint.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_STEALTH (integer) : If nonzero, the spawn spawns in stealth mode.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_DETECT (integer) : If nonzero, the spawn spawns in detect mode.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_BUFFED (integer) : If nonzero, spawned creatures spawn with all hour per level (or longer) buffs cast on itself in a semi-intelligent fashion (evil creatures cast protection from good, multiple magic vestimates or magic weapons are distributed over different items, etc).&lt;br /&gt;
&lt;br /&gt;
; ACR_COLOR_NAME (string) : Sets the color of the creature's name to the string value. Anything that functions inside of &amp;lt;C=[this spot]&amp;gt;Name&amp;lt;/C&amp;gt; is valid for use.&lt;br /&gt;
:: ''Example: A value of &amp;lt;code&amp;gt;gold&amp;lt;/code&amp;gt; will set the spawned creature's name to a golden color.&lt;br /&gt;
&lt;br /&gt;
== Custom Script Parameters ==&lt;br /&gt;
The spawn system allows custom scripts to be run when a spawn activates, for scripters to use how they wish. In order to use the functions listed here, be sure and include the spawn system's source file with the line: &amp;lt;code&amp;gt;#include &amp;quot;[[acr_spawn_i]]&amp;quot;&amp;lt;/code&amp;gt; at the top of your script.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IN_SCRIPT_ (string array) : This array defines custom scripts which are run on each object spawned by the spawn point. Each script is executed on each spawned object once, with OBJECT_SELF pointing to the spawned object. These scripts can have any name.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_SCRIPT_ (string array) : This array defines custom scripts which are run on the spawn point after it activates and spawns children. Each script is executed once, with OBJECT_SELF pointing to the spawn waypoint itself. If you wish to spawn additional objects from this script, use the function ACR_SpawnObject(). These scripts can have any name.&lt;br /&gt;
&lt;br /&gt;
; ACR_SPAWN_IS_ACTIVE_SCRIPT (string) : This variable defines a single custom which is run whenever the spawn system looks at the spawn point and tries to decide whether or not to spawn it. It allows custom logic to be used to decide whether or not the point should spawn, overriding the spawn point's normal behavior. In this script, OBJECT_SELF points to the spawn waypoint itself. If you wish the point to spawn, call ACR_ForceSpawn(). If you wish to keep it from spawning, call ACR_DisallowSpawn(). If you don't call either of these functions, the spawn point behaves as it normally would. If for some reason you call both, ACR_ForceSpawn() takes precedence and the spawn activates. (not yet tested)&lt;br /&gt;
&lt;br /&gt;
== System Configuration ==&lt;br /&gt;
In addition to the options of each spawn point, there are a few settings which you can use to globally configure ALFA's spawn system. These are constants located in the script acf_spawn_i. Like all ACF files (click here for an explaination), it is never updated in an ACR update. So any settings here will always be preserved, though server staff may be asked to add options to this file in the future as the ACR evolves.&lt;br /&gt;
&lt;br /&gt;
; _SPAWN_AREA_DESPAWN_DELAY : This is the delay between when an area becomes empty of PCs, and when the spawn system despawns its children within it. Larger values here may lead to increased CPU usage as more creatures stay spawned at once.&lt;br /&gt;
&lt;br /&gt;
; _SPAWN_REFRESH_DELAY : This is the &amp;quot;heartbeat&amp;quot; of the spawn system. Larger values here reduce CPU usage, but make the spawn system react slower.&lt;br /&gt;
&lt;br /&gt;
; _SPAWN_PRESPAWN_SEAMLESS : This controls whether the spawn system will take cues from PCs entering seamless ATs in adjacent areas. If active, it should ensure all spawns are in place before the PC actually ATs. It may be disabled to keep memory use down, as it may lead to areas being population without PCs actually entering them (if the PC backs out of the AT trigger instead of continuing)&lt;br /&gt;
&lt;br /&gt;
; _SPAWN_PRESPAWN_PREDICTION : This controls whether the spawn system will take into account the predicted arrival point of an ATing PC, when deciding whether to spawn a group intended to be out of sight.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALFA Core Rules}}&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3984</id>
		<title>ACR Traps</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3984"/>
				<updated>2023-02-01T14:23:50Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Tooling Additional Traps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ACR Tools]]&lt;br /&gt;
[[Category:DM Guides]]&lt;br /&gt;
The ACR has in its core content a custom implementation of traps that is meant to serve as a workaround for the severe limitations imposed by traps as they are implemented by [[Neverwinter Nights 2 | NWN2]]. These traps are capable of spawning and despawning, are aware of their own shapes and sizes, and can control whether or not they trigger by a number of conditions, including those which we would associate with spellcasting traps.&lt;br /&gt;
&lt;br /&gt;
== Detecting Traps ==&lt;br /&gt;
A search roll is automatically rolled, with the fact that the roll was made being hidden, whenever a character approaches a trap with detect mode on. If the result of the search check is greater than or equal to the search DC, the trap is detected. There is a special exception made for high-DC traps: only rogues, or people under the effects of a Find Traps spell, may find traps with a search DC greater than 20. If a character does not expend the trap (for example, by triggering it until it runs out of ammunition or charges), but remains near it, an additional roll will be made every six seconds, and every PC near the trap will also get rolls.&lt;br /&gt;
&lt;br /&gt;
When a trap is detected, the character whose check revealed the trap will gain a visual effect overhead that indicates responsibility for the detection. In addition, the trap will become visible as a pulsing red VFX in the shape of the trap on the ground, and finally a disarm target object will appear on the ground where the detector was standing when the trap was revealed.&lt;br /&gt;
: '''It is important to note that traps are invisible to DMs once they are spawned. The tick in the spawning UI when placing a trap is the indication that the spawning has happened.'''&lt;br /&gt;
&lt;br /&gt;
== Detect Magic ==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Spell_Traps Detect Magic: Spell Traps]&lt;br /&gt;
&lt;br /&gt;
Detect Magic will work automatically with a placed spell trap or a spell trap spawnpoint with a variable added to it called ACR_TRAP_SPELL_ID which contains the integer of the spell ID.* As with any ACR_Trap, either option requires a placeable tagged as TRAP_ORIGIN nearby, also.&lt;br /&gt;
&lt;br /&gt;
Detect Magic uses ACR_TRAP_SPELL_ID (already on a placed trap or added to the spawnpoint) to cross-reference spell effects against 2DA information. From the 2DA it pulls the proper school and spell power to put into the report to the Caster. For instance, for a Web Trap: &amp;quot;Spider Web and a circle centered on a spot 1m southwest of Spider Web gives off a Moderate aura of Conjuration.&amp;quot; Spider Web is the placeable tagged as TRAP_ORIGIN. The spot at which the circle is reported is the either the placed trap or the spawnpoint. &lt;br /&gt;
&lt;br /&gt;
*Weirdly, although a placed trap already has the ACR_TRAP_SPELL_ID on it, that same trap spawned by a spawnpoint does not, so it has to be added to the spawnpoint itself for the Detect Magic to find it.&lt;br /&gt;
&lt;br /&gt;
== Disarming Traps ==&lt;br /&gt;
Traps are disarmed by using the disarm widget. DM Avatars who do this will immediately and automatically disarm the trap, removing it and the target from the area permanently. If an character uses the disarm target, that character will begin to work on disarming the trap, which will take 12-48 (most likely 30) seconds. During this time the character must remain reasonably stationary and may not carry out other actions, but stepping away from the disarming device will abort the effort.&lt;br /&gt;
&lt;br /&gt;
Characters with ranks in Disable Device may choose to aid the effort by also using the disarm target, and as many as can physically approach the device may help. Each additional disabler will roll a DC 10 Disable Device check, granting a stacking +2 bonus to the primary disabler's check on success. A character may only attempt to aid in disabling a trap once per primary user's attempt.&lt;br /&gt;
&lt;br /&gt;
The disarming character will not know ahead of time how long it will take to disarm the trap, nor will he or she know how difficult to disarm the trap will be until attempting to disarm it once.&lt;br /&gt;
&lt;br /&gt;
At the end of the time required to disarm the trap, a skill check is made against the disarm DC of the trap. If the roll is greater than or equal to the DC to disarm the trap, the trap is removed from play and rendered harmless. If the Disable Device roll fails by 4 or less, then no change is made to the trap. If the Disable Device roll fails by 5 or more, then the effort is botched and the trap is triggered, functioning per the fired trap section, except that the trap disabler is treated as a potential target (possibly the only potential target) for the trap's execution.&lt;br /&gt;
&lt;br /&gt;
== Triggering Traps ==&lt;br /&gt;
When a trap is triggered, its effects are applied to a random creature within the trap's trigger area, and potentially a botched disabler (see above). This effect may cover an area. For example, a trap which explodes in a fireball when triggered may have three people working on disarming it. Should the check be botched anyway while the trigger area is empty, only the primary disabler will be a valid target and he or she will be the center of the resulting explosion. However, the two nearby assistants are likely to be within the blast and to also be injured. If on the other hand the trigger required several people in its area to be triggered, and three were already within, botching the trap has a 1 in 4 chance of centering on each person in the trigger area or the disabler.&lt;br /&gt;
&lt;br /&gt;
It is possible for traps to trigger with discretion, such as a magical trap that only harms orcs. In this case, only qualifying creatures in the trigger area will be regarded as valid targets. Botching a disable attempt overrides this. A botched disabler is always a valid target, regardless of the trap's specific restrictions.&lt;br /&gt;
&lt;br /&gt;
== Default Traps ==&lt;br /&gt;
By default, every ALFA module has access to a set of standard traps, which are modeled after the default NWN2 traps. All of them have only one charge, do direct damage, and have equal spot, disable, and reflex save DCs. All offer reflex saves when triggered. All are of &amp;quot;medium&amp;quot; trigger size (comparable to the area of a Magic Circle vs. Alignment)&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Damage&lt;br /&gt;
! DC&lt;br /&gt;
! Area&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Minor&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Average&lt;br /&gt;
| 5d6&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Strong&lt;br /&gt;
| 12d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Deadly&lt;br /&gt;
| 18d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Minor&lt;br /&gt;
| 2d8&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Average&lt;br /&gt;
| 3d8&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Strong&lt;br /&gt;
| 5d8&lt;br /&gt;
| 17&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Deadly&lt;br /&gt;
| 8d8&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Minor&lt;br /&gt;
| 8d6&lt;br /&gt;
| 19&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Average&lt;br /&gt;
| 15d6&lt;br /&gt;
| 22&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Strong&lt;br /&gt;
| 20d6&lt;br /&gt;
| 26&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Deadly&lt;br /&gt;
| 30d6&lt;br /&gt;
| 28&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Minor&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Average&lt;br /&gt;
| 8d6&lt;br /&gt;
| 20&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Strong&lt;br /&gt;
| 15d6&lt;br /&gt;
| 23&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 26&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 13&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Deadly&lt;br /&gt;
| 8d6&lt;br /&gt;
| 21&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 14&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 17&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 20&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tooling Additional Traps ==&lt;br /&gt;
Additional traps may be added to a module by creating waypoints which have variables on them which indicate that they are traps. The following variables control the behavior of the trap.&lt;br /&gt;
&lt;br /&gt;
* '''ACR_TRAP_TRIGGER_AREA''' (integer) --  This variable determines how large the area which is capable of causing the trap to fire is.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Name&lt;br /&gt;
! Comparison&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Small&lt;br /&gt;
| Single-Target&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Medium&lt;br /&gt;
| Magic Circle v. Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Large&lt;br /&gt;
| Entangle&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Huge&lt;br /&gt;
| Fireball&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Gargantuan&lt;br /&gt;
| Lesser Missile Storm&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Colossal&lt;br /&gt;
| Area Dispel Magic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_ATTACK_BONUS''' (integer, optional) -- This is the attack bonus that will be used to calculate if a trap is able to damage its target, should no reflex save be defined for the trap. This is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DAMAGE_TYPE''' (bitfield) -- This variable determines what kind of damage will be applied to targets of the trap. As a bitfield, you may take the sum of several damage types to make the trap do multiple types of damage. For example, Piercing Damage (2) and Slashing Damage (4) can be added together to make a piercing/slashing trap (6). This is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Damage Type&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Bludgeoning&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Piercing&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Slashing&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Magical&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Acid&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Cold&lt;br /&gt;
|-&lt;br /&gt;
| 64&lt;br /&gt;
| Divine&lt;br /&gt;
|-&lt;br /&gt;
| 128&lt;br /&gt;
| Electrical&lt;br /&gt;
|-&lt;br /&gt;
| 256&lt;br /&gt;
| Fire&lt;br /&gt;
|-&lt;br /&gt;
| 512&lt;br /&gt;
| Negative&lt;br /&gt;
|-&lt;br /&gt;
| 1024&lt;br /&gt;
| Positive&lt;br /&gt;
|-&lt;br /&gt;
| 2048&lt;br /&gt;
| Sonic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DETECT_DC (integer)''' --  This variable determines what the DC of search checks to discover the trap will be. If this number is greater than 20, the trap will only be discoverable by Rogues.&lt;br /&gt;
* '''ACR_TRAP_DICE_NUMBER (integer)''' -- This variable determines how many dice will be rolled to determine trap damage. This is ignored if the trap casts a spell. For example, if this is 3 and ACR_TRAP_DICE_TYPE is 6, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DICE_TYPE (integer)''' -- This variable determines what sort of die will be rolled to determine trap damage. For example, if this is 6, and ACR_TRAP_DICE_NUMBER is 3, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DISARM_DC (integer)''' -- This variable determines what the DC to disarm the trap is.&lt;br /&gt;
* '''ACR_TRAP_EFFECT_AREA (integer)''' -- This variable uses the SHAPE_ constants to determine how this trap's effect spreads out, if it has a large enough area to be significant. This setting is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Shape&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Spell Cyllinder (e.g. Lightning Bolt)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Cone (e.g. Burning Hands)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Cube (e.g. Order's Wrath)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Spell Cone (e.g. Cone of Cold)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Sphere (e.g. Fireball)&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_EFFECT_SIZE''' (float) -- This is the size, in meters, of the effect area defined previously. Cylinders and cones become longer, but remain directional. Cubes gain length on all sides equally. Spheres gain a larger radius. This setting is ignroed if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_MINIMUM_TO_TRIGGER''' (integer) -- This is the number of creatures who meet the criteria for a trap's triggering who must be within the trap's trigger area (defined above) before the trap will fire.&lt;br /&gt;
* '''ACR_TRAP_NUMBER_OF_SHOTS''' (integer) -- This is the number of times the trap will fire before it is discharged. If this number is -1, the trap has infinite charges, and will fire until disarmed.&lt;br /&gt;
* '''ACR_TRAP_SAVE_DC''' (integer) -- This is the reflex save DC of the trap. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- This is the ID of the spell that is cast. If this is -1 or if it is absent, the trap will not be regarded as spell casting, and will instead resolve to do damage. If this option is set, the trap must be placed or spawned near a placeable with the tag &amp;quot;TRAP_ORIGIN.&amp;quot; In the absence of this placeable, the trap trigger will attempt to-- and typically fail to-- cast the spell itself.&lt;br /&gt;
* '''ACR_TRAP_TARGET_ALIGNMENT''' (integer) -- This setting determines which alignments are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other alignments. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| All Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Neutral Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Lawful Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Chaotic Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Good Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evil Alignments&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_TARGET_RACE''' (integer) -- This setting determins which racial types are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other races. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Dwarf&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Elf&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gnome&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Halfling&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Half-Elf&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Half-Orc&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Human&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Abberations&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Animals&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Beasts (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Constructs&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Dragons&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Goblinoids&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Monstrous Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Orcs&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Reptilian Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Elementals&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Fey&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Giants&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Magical Beasts&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Outsiders&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Undead&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Vermin&lt;br /&gt;
|-&lt;br /&gt;
| '''28'''&lt;br /&gt;
| '''All Races'''&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Oozes&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Incorporeal (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Yuan-Ti&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DESCRIPTION''' (string) -- This setting determines what the descriptive text on the trap's disarm target will read when examined with the default &amp;quot;examine&amp;quot; command. While it may contain any arbitrary information deemed useful by the builders, it is recommended that it contain a description of what a person would see of this trap upon discovering it.&lt;br /&gt;
&lt;br /&gt;
== Spawning Traps ==&lt;br /&gt;
ACR Traps are currently able to be spawned through the [[ACR Creator]], and may also be placed using the ACR Spawn System, with object type 8.&lt;br /&gt;
&lt;br /&gt;
In order to spawn a trap, you must first tool the trap, according to the instructions above, and then use the resource name of the waypoint used to tool the trap as the resource name of the trap on the spawn point. In addition, for the trap to register to Detect Magic, to this spawnpoint add the variable: ACR_TRAP_SPELL_ID. Enter the spell integer into the integer slot. &lt;br /&gt;
&lt;br /&gt;
In all other respects, these spawn points work as any other spawn point.&lt;br /&gt;
&lt;br /&gt;
In addition, you may place a placeable with the tag &amp;quot;TRAP_ORIGIN&amp;quot; near any trap trigger and it will be regarded as the source for all effects which are created by the trap. This has two uses:&lt;br /&gt;
* Animations that involve projectiles will show the trap's effect being shot from the trap origin&lt;br /&gt;
* The trap may be used in the spell trap mode (as placeables are allowed to cast spells in the NWN2 engine, but triggers are not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALFA Core Rules}}&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3983</id>
		<title>ACR Traps</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3983"/>
				<updated>2023-02-01T14:23:16Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Tooling Additional Traps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ACR Tools]]&lt;br /&gt;
[[Category:DM Guides]]&lt;br /&gt;
The ACR has in its core content a custom implementation of traps that is meant to serve as a workaround for the severe limitations imposed by traps as they are implemented by [[Neverwinter Nights 2 | NWN2]]. These traps are capable of spawning and despawning, are aware of their own shapes and sizes, and can control whether or not they trigger by a number of conditions, including those which we would associate with spellcasting traps.&lt;br /&gt;
&lt;br /&gt;
== Detecting Traps ==&lt;br /&gt;
A search roll is automatically rolled, with the fact that the roll was made being hidden, whenever a character approaches a trap with detect mode on. If the result of the search check is greater than or equal to the search DC, the trap is detected. There is a special exception made for high-DC traps: only rogues, or people under the effects of a Find Traps spell, may find traps with a search DC greater than 20. If a character does not expend the trap (for example, by triggering it until it runs out of ammunition or charges), but remains near it, an additional roll will be made every six seconds, and every PC near the trap will also get rolls.&lt;br /&gt;
&lt;br /&gt;
When a trap is detected, the character whose check revealed the trap will gain a visual effect overhead that indicates responsibility for the detection. In addition, the trap will become visible as a pulsing red VFX in the shape of the trap on the ground, and finally a disarm target object will appear on the ground where the detector was standing when the trap was revealed.&lt;br /&gt;
: '''It is important to note that traps are invisible to DMs once they are spawned. The tick in the spawning UI when placing a trap is the indication that the spawning has happened.'''&lt;br /&gt;
&lt;br /&gt;
== Detect Magic ==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Spell_Traps Detect Magic: Spell Traps]&lt;br /&gt;
&lt;br /&gt;
Detect Magic will work automatically with a placed spell trap or a spell trap spawnpoint with a variable added to it called ACR_TRAP_SPELL_ID which contains the integer of the spell ID.* As with any ACR_Trap, either option requires a placeable tagged as TRAP_ORIGIN nearby, also.&lt;br /&gt;
&lt;br /&gt;
Detect Magic uses ACR_TRAP_SPELL_ID (already on a placed trap or added to the spawnpoint) to cross-reference spell effects against 2DA information. From the 2DA it pulls the proper school and spell power to put into the report to the Caster. For instance, for a Web Trap: &amp;quot;Spider Web and a circle centered on a spot 1m southwest of Spider Web gives off a Moderate aura of Conjuration.&amp;quot; Spider Web is the placeable tagged as TRAP_ORIGIN. The spot at which the circle is reported is the either the placed trap or the spawnpoint. &lt;br /&gt;
&lt;br /&gt;
*Weirdly, although a placed trap already has the ACR_TRAP_SPELL_ID on it, that same trap spawned by a spawnpoint does not, so it has to be added to the spawnpoint itself for the Detect Magic to find it.&lt;br /&gt;
&lt;br /&gt;
== Disarming Traps ==&lt;br /&gt;
Traps are disarmed by using the disarm widget. DM Avatars who do this will immediately and automatically disarm the trap, removing it and the target from the area permanently. If an character uses the disarm target, that character will begin to work on disarming the trap, which will take 12-48 (most likely 30) seconds. During this time the character must remain reasonably stationary and may not carry out other actions, but stepping away from the disarming device will abort the effort.&lt;br /&gt;
&lt;br /&gt;
Characters with ranks in Disable Device may choose to aid the effort by also using the disarm target, and as many as can physically approach the device may help. Each additional disabler will roll a DC 10 Disable Device check, granting a stacking +2 bonus to the primary disabler's check on success. A character may only attempt to aid in disabling a trap once per primary user's attempt.&lt;br /&gt;
&lt;br /&gt;
The disarming character will not know ahead of time how long it will take to disarm the trap, nor will he or she know how difficult to disarm the trap will be until attempting to disarm it once.&lt;br /&gt;
&lt;br /&gt;
At the end of the time required to disarm the trap, a skill check is made against the disarm DC of the trap. If the roll is greater than or equal to the DC to disarm the trap, the trap is removed from play and rendered harmless. If the Disable Device roll fails by 4 or less, then no change is made to the trap. If the Disable Device roll fails by 5 or more, then the effort is botched and the trap is triggered, functioning per the fired trap section, except that the trap disabler is treated as a potential target (possibly the only potential target) for the trap's execution.&lt;br /&gt;
&lt;br /&gt;
== Triggering Traps ==&lt;br /&gt;
When a trap is triggered, its effects are applied to a random creature within the trap's trigger area, and potentially a botched disabler (see above). This effect may cover an area. For example, a trap which explodes in a fireball when triggered may have three people working on disarming it. Should the check be botched anyway while the trigger area is empty, only the primary disabler will be a valid target and he or she will be the center of the resulting explosion. However, the two nearby assistants are likely to be within the blast and to also be injured. If on the other hand the trigger required several people in its area to be triggered, and three were already within, botching the trap has a 1 in 4 chance of centering on each person in the trigger area or the disabler.&lt;br /&gt;
&lt;br /&gt;
It is possible for traps to trigger with discretion, such as a magical trap that only harms orcs. In this case, only qualifying creatures in the trigger area will be regarded as valid targets. Botching a disable attempt overrides this. A botched disabler is always a valid target, regardless of the trap's specific restrictions.&lt;br /&gt;
&lt;br /&gt;
== Default Traps ==&lt;br /&gt;
By default, every ALFA module has access to a set of standard traps, which are modeled after the default NWN2 traps. All of them have only one charge, do direct damage, and have equal spot, disable, and reflex save DCs. All offer reflex saves when triggered. All are of &amp;quot;medium&amp;quot; trigger size (comparable to the area of a Magic Circle vs. Alignment)&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Damage&lt;br /&gt;
! DC&lt;br /&gt;
! Area&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Minor&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Average&lt;br /&gt;
| 5d6&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Strong&lt;br /&gt;
| 12d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Deadly&lt;br /&gt;
| 18d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Minor&lt;br /&gt;
| 2d8&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Average&lt;br /&gt;
| 3d8&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Strong&lt;br /&gt;
| 5d8&lt;br /&gt;
| 17&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Deadly&lt;br /&gt;
| 8d8&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Minor&lt;br /&gt;
| 8d6&lt;br /&gt;
| 19&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Average&lt;br /&gt;
| 15d6&lt;br /&gt;
| 22&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Strong&lt;br /&gt;
| 20d6&lt;br /&gt;
| 26&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Deadly&lt;br /&gt;
| 30d6&lt;br /&gt;
| 28&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Minor&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Average&lt;br /&gt;
| 8d6&lt;br /&gt;
| 20&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Strong&lt;br /&gt;
| 15d6&lt;br /&gt;
| 23&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 26&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 13&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Deadly&lt;br /&gt;
| 8d6&lt;br /&gt;
| 21&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 14&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 17&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 20&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tooling Additional Traps ==&lt;br /&gt;
Additional traps may be added to a module by creating waypoints which have variables on them which indicate that they are traps. The following variables control the behavior of the trap.&lt;br /&gt;
&lt;br /&gt;
* '''ACR_TRAP_TRIGGER_AREA''' (integer) --  This variable determines how large the area which is capable of causing the trap to fire is.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Name&lt;br /&gt;
! Comparison&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Small&lt;br /&gt;
| Single-Target&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Medium&lt;br /&gt;
| Magic Circle v. Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Large&lt;br /&gt;
| Entangle&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Huge&lt;br /&gt;
| Fireball&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Gargantuan&lt;br /&gt;
| Lesser Missile Storm&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Colossal&lt;br /&gt;
| Area Dispel Magic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_ATTACK_BONUS''' (integer, optional) -- This is the attack bonus that will be used to calculate if a trap is able to damage its target, should no reflex save be defined for the trap. This is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DAMAGE_TYPE''' (bitfield) -- This variable determines what kind of damage will be applied to targets of the trap. As a bitfield, you may take the sum of several damage types to make the trap do multiple types of damage. For example, Piercing Damage (2) and Slashing Damage (4) can be added together to make a piercing/slashing trap (6). This is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Damage Type&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Bludgeoning&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Piercing&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Slashing&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Magical&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Acid&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Cold&lt;br /&gt;
|-&lt;br /&gt;
| 64&lt;br /&gt;
| Divine&lt;br /&gt;
|-&lt;br /&gt;
| 128&lt;br /&gt;
| Electrical&lt;br /&gt;
|-&lt;br /&gt;
| 256&lt;br /&gt;
| Fire&lt;br /&gt;
|-&lt;br /&gt;
| 512&lt;br /&gt;
| Negative&lt;br /&gt;
|-&lt;br /&gt;
| 1024&lt;br /&gt;
| Positive&lt;br /&gt;
|-&lt;br /&gt;
| 2048&lt;br /&gt;
| Sonic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DETECT_DC (integer)''' --  This variable determines what the DC of search checks to discover the trap will be. If this number is greater than 20, the trap will only be discoverable by Rogues.&lt;br /&gt;
* '''ACR_TRAP_DICE_NUMBER (integer)''' -- This variable determines how many dice will be rolled to determine trap damage. This is ignored if the trap casts a spell. For example, if this is 3 and ACR_TRAP_DICE_TYPE is 6, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DICE_TYPE (integer)''' -- This variable determines what sort of die will be rolled to determine trap damage. For example, if this is 6, and ACR_TRAP_DICE_NUMBER is 3, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DISARM_DC (integer)''' -- This variable determines what the DC to disarm the trap is.&lt;br /&gt;
* '''ACR_TRAP_EFFECT_AREA (integer)''' -- This variable uses the SHAPE_ constants to determine how this trap's effect spreads out, if it has a large enough area to be significant. This setting is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Shape&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Spell Cyllinder (e.g. Lightning Bolt)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Cone (e.g. Burning Hands)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Cube (e.g. Order's Wrath)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Spell Cone (e.g. Cone of Cold)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Sphere (e.g. Fireball)&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_EFFECT_SIZE''' (float) -- This is the size, in meters, of the effect area defined previously. Cylinders and cones become longer, but remain directional. Cubes gain length on all sides equally. Spheres gain a larger radius. This setting is ignroed if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_MINIMUM_TO_TRIGGER''' (integer) -- This is the number of creatures who meet the criteria for a trap's triggering who must be within the trap's trigger area''' (defined above) before the trap will fire.&lt;br /&gt;
* '''ACR_TRAP_NUMBER_OF_SHOTS''' (integer) -- This is the number of times the trap will fire before it is discharged. If this number is -1, the trap has infinite charges, and will fire until disarmed.&lt;br /&gt;
* '''ACR_TRAP_SAVE_DC''' (integer) -- This is the reflex save DC of the trap. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- This is the ID of the spell that is cast. If this is -1 or if it is absent, the trap will not be regarded as spell casting, and will instead resolve to do damage. If this option is set, the trap must be placed or spawned near a placeable with the tag &amp;quot;TRAP_ORIGIN.&amp;quot; In the absence of this placeable, the trap trigger will attempt to-- and typically fail to-- cast the spell itself.&lt;br /&gt;
* '''ACR_TRAP_TARGET_ALIGNMENT''' (integer) -- This setting determines which alignments are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other alignments. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| All Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Neutral Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Lawful Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Chaotic Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Good Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evil Alignments&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_TARGET_RACE''' (integer) -- This setting determins which racial types are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other races. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Dwarf&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Elf&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gnome&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Halfling&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Half-Elf&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Half-Orc&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Human&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Abberations&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Animals&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Beasts (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Constructs&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Dragons&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Goblinoids&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Monstrous Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Orcs&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Reptilian Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Elementals&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Fey&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Giants&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Magical Beasts&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Outsiders&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Undead&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Vermin&lt;br /&gt;
|-&lt;br /&gt;
| '''28'''&lt;br /&gt;
| '''All Races'''&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Oozes&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Incorporeal (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Yuan-Ti&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DESCRIPTION''' (string) -- This setting determines what the descriptive text on the trap's disarm target will read when examined with the default &amp;quot;examine&amp;quot; command. While it may contain any arbitrary information deemed useful by the builders, it is recommended that it contain a description of what a person would see of this trap upon discovering it.&lt;br /&gt;
&lt;br /&gt;
== Spawning Traps ==&lt;br /&gt;
ACR Traps are currently able to be spawned through the [[ACR Creator]], and may also be placed using the ACR Spawn System, with object type 8.&lt;br /&gt;
&lt;br /&gt;
In order to spawn a trap, you must first tool the trap, according to the instructions above, and then use the resource name of the waypoint used to tool the trap as the resource name of the trap on the spawn point. In addition, for the trap to register to Detect Magic, to this spawnpoint add the variable: ACR_TRAP_SPELL_ID. Enter the spell integer into the integer slot. &lt;br /&gt;
&lt;br /&gt;
In all other respects, these spawn points work as any other spawn point.&lt;br /&gt;
&lt;br /&gt;
In addition, you may place a placeable with the tag &amp;quot;TRAP_ORIGIN&amp;quot; near any trap trigger and it will be regarded as the source for all effects which are created by the trap. This has two uses:&lt;br /&gt;
* Animations that involve projectiles will show the trap's effect being shot from the trap origin&lt;br /&gt;
* The trap may be used in the spell trap mode (as placeables are allowed to cast spells in the NWN2 engine, but triggers are not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALFA Core Rules}}&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3982</id>
		<title>ACR Traps</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3982"/>
				<updated>2023-02-01T14:22:15Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Tooling Additional Traps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ACR Tools]]&lt;br /&gt;
[[Category:DM Guides]]&lt;br /&gt;
The ACR has in its core content a custom implementation of traps that is meant to serve as a workaround for the severe limitations imposed by traps as they are implemented by [[Neverwinter Nights 2 | NWN2]]. These traps are capable of spawning and despawning, are aware of their own shapes and sizes, and can control whether or not they trigger by a number of conditions, including those which we would associate with spellcasting traps.&lt;br /&gt;
&lt;br /&gt;
== Detecting Traps ==&lt;br /&gt;
A search roll is automatically rolled, with the fact that the roll was made being hidden, whenever a character approaches a trap with detect mode on. If the result of the search check is greater than or equal to the search DC, the trap is detected. There is a special exception made for high-DC traps: only rogues, or people under the effects of a Find Traps spell, may find traps with a search DC greater than 20. If a character does not expend the trap (for example, by triggering it until it runs out of ammunition or charges), but remains near it, an additional roll will be made every six seconds, and every PC near the trap will also get rolls.&lt;br /&gt;
&lt;br /&gt;
When a trap is detected, the character whose check revealed the trap will gain a visual effect overhead that indicates responsibility for the detection. In addition, the trap will become visible as a pulsing red VFX in the shape of the trap on the ground, and finally a disarm target object will appear on the ground where the detector was standing when the trap was revealed.&lt;br /&gt;
: '''It is important to note that traps are invisible to DMs once they are spawned. The tick in the spawning UI when placing a trap is the indication that the spawning has happened.'''&lt;br /&gt;
&lt;br /&gt;
== Detect Magic ==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Spell_Traps Detect Magic: Spell Traps]&lt;br /&gt;
&lt;br /&gt;
Detect Magic will work automatically with a placed spell trap or a spell trap spawnpoint with a variable added to it called ACR_TRAP_SPELL_ID which contains the integer of the spell ID.* As with any ACR_Trap, either option requires a placeable tagged as TRAP_ORIGIN nearby, also.&lt;br /&gt;
&lt;br /&gt;
Detect Magic uses ACR_TRAP_SPELL_ID (already on a placed trap or added to the spawnpoint) to cross-reference spell effects against 2DA information. From the 2DA it pulls the proper school and spell power to put into the report to the Caster. For instance, for a Web Trap: &amp;quot;Spider Web and a circle centered on a spot 1m southwest of Spider Web gives off a Moderate aura of Conjuration.&amp;quot; Spider Web is the placeable tagged as TRAP_ORIGIN. The spot at which the circle is reported is the either the placed trap or the spawnpoint. &lt;br /&gt;
&lt;br /&gt;
*Weirdly, although a placed trap already has the ACR_TRAP_SPELL_ID on it, that same trap spawned by a spawnpoint does not, so it has to be added to the spawnpoint itself for the Detect Magic to find it.&lt;br /&gt;
&lt;br /&gt;
== Disarming Traps ==&lt;br /&gt;
Traps are disarmed by using the disarm widget. DM Avatars who do this will immediately and automatically disarm the trap, removing it and the target from the area permanently. If an character uses the disarm target, that character will begin to work on disarming the trap, which will take 12-48 (most likely 30) seconds. During this time the character must remain reasonably stationary and may not carry out other actions, but stepping away from the disarming device will abort the effort.&lt;br /&gt;
&lt;br /&gt;
Characters with ranks in Disable Device may choose to aid the effort by also using the disarm target, and as many as can physically approach the device may help. Each additional disabler will roll a DC 10 Disable Device check, granting a stacking +2 bonus to the primary disabler's check on success. A character may only attempt to aid in disabling a trap once per primary user's attempt.&lt;br /&gt;
&lt;br /&gt;
The disarming character will not know ahead of time how long it will take to disarm the trap, nor will he or she know how difficult to disarm the trap will be until attempting to disarm it once.&lt;br /&gt;
&lt;br /&gt;
At the end of the time required to disarm the trap, a skill check is made against the disarm DC of the trap. If the roll is greater than or equal to the DC to disarm the trap, the trap is removed from play and rendered harmless. If the Disable Device roll fails by 4 or less, then no change is made to the trap. If the Disable Device roll fails by 5 or more, then the effort is botched and the trap is triggered, functioning per the fired trap section, except that the trap disabler is treated as a potential target (possibly the only potential target) for the trap's execution.&lt;br /&gt;
&lt;br /&gt;
== Triggering Traps ==&lt;br /&gt;
When a trap is triggered, its effects are applied to a random creature within the trap's trigger area, and potentially a botched disabler (see above). This effect may cover an area. For example, a trap which explodes in a fireball when triggered may have three people working on disarming it. Should the check be botched anyway while the trigger area is empty, only the primary disabler will be a valid target and he or she will be the center of the resulting explosion. However, the two nearby assistants are likely to be within the blast and to also be injured. If on the other hand the trigger required several people in its area to be triggered, and three were already within, botching the trap has a 1 in 4 chance of centering on each person in the trigger area or the disabler.&lt;br /&gt;
&lt;br /&gt;
It is possible for traps to trigger with discretion, such as a magical trap that only harms orcs. In this case, only qualifying creatures in the trigger area will be regarded as valid targets. Botching a disable attempt overrides this. A botched disabler is always a valid target, regardless of the trap's specific restrictions.&lt;br /&gt;
&lt;br /&gt;
== Default Traps ==&lt;br /&gt;
By default, every ALFA module has access to a set of standard traps, which are modeled after the default NWN2 traps. All of them have only one charge, do direct damage, and have equal spot, disable, and reflex save DCs. All offer reflex saves when triggered. All are of &amp;quot;medium&amp;quot; trigger size (comparable to the area of a Magic Circle vs. Alignment)&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Damage&lt;br /&gt;
! DC&lt;br /&gt;
! Area&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Minor&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Average&lt;br /&gt;
| 5d6&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Strong&lt;br /&gt;
| 12d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Deadly&lt;br /&gt;
| 18d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Minor&lt;br /&gt;
| 2d8&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Average&lt;br /&gt;
| 3d8&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Strong&lt;br /&gt;
| 5d8&lt;br /&gt;
| 17&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Deadly&lt;br /&gt;
| 8d8&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Minor&lt;br /&gt;
| 8d6&lt;br /&gt;
| 19&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Average&lt;br /&gt;
| 15d6&lt;br /&gt;
| 22&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Strong&lt;br /&gt;
| 20d6&lt;br /&gt;
| 26&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Deadly&lt;br /&gt;
| 30d6&lt;br /&gt;
| 28&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Minor&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Average&lt;br /&gt;
| 8d6&lt;br /&gt;
| 20&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Strong&lt;br /&gt;
| 15d6&lt;br /&gt;
| 23&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 26&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 13&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Deadly&lt;br /&gt;
| 8d6&lt;br /&gt;
| 21&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 14&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 17&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 20&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tooling Additional Traps ==&lt;br /&gt;
Additional traps may be added to a module by creating waypoints which have variables on them which indicate that they are traps. The following variables control the behavior of the trap.&lt;br /&gt;
&lt;br /&gt;
* '''ACR_TRAP_TRIGGER_AREA''' (integer) --  This variable determines how large the area which is capable of causing the trap to fire is.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Name&lt;br /&gt;
! Comparison&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Small&lt;br /&gt;
| Single-Target&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Medium&lt;br /&gt;
| Magic Circle v. Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Large&lt;br /&gt;
| Entangle&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Huge&lt;br /&gt;
| Fireball&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Gargantuan&lt;br /&gt;
| Lesser Missile Storm&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Colossal&lt;br /&gt;
| Area Dispel Magic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_ATTACK_BONUS''' (integer, optional) -- This is the attack bonus that will be used to calculate if a trap is able to damage its target, should no reflex save be defined for the trap. This is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DAMAGE_TYPE''' (bitfield) -- This variable determines what kind of damage will be applied to targets of the trap. As a bitfield, you may take the sum of several damage types to make the trap do multiple types of damage. For example, Piercing Damage (2) and Slashing Damage (4) can be added together to make a piercing/slashing trap (6). This is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Damage Type&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Bludgeoning&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Piercing&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Slashing&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Magical&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Acid&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Cold&lt;br /&gt;
|-&lt;br /&gt;
| 64&lt;br /&gt;
| Divine&lt;br /&gt;
|-&lt;br /&gt;
| 128&lt;br /&gt;
| Electrical&lt;br /&gt;
|-&lt;br /&gt;
| 256&lt;br /&gt;
| Fire&lt;br /&gt;
|-&lt;br /&gt;
| 512&lt;br /&gt;
| Negative&lt;br /&gt;
|-&lt;br /&gt;
| 1024&lt;br /&gt;
| Positive&lt;br /&gt;
|-&lt;br /&gt;
| 2048&lt;br /&gt;
| Sonic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DETECT_DC''' (integer)''' --  This variable determines what the DC of search checks to discover the trap will be. If this number is greater than 20, the trap will only be discoverable by Rogues.&lt;br /&gt;
* '''ACR_TRAP_DICE_NUMBER (integer)''' -- This variable determines how many dice will be rolled to determine trap damage. This is ignored if the trap casts a spell. For example, if this is 3 and * '''ACR_TRAP_DICE_TYPE''' is 6, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DICE_TYPE (integer)''' -- This variable determines what sort of die will be rolled to determine trap damage. For example, if this is 6, and * '''ACR_TRAP_DICE_NUMBER''' is 3, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DISARM_DC (integer)''' -- This variable determines what the DC to disarm the trap is.&lt;br /&gt;
* '''ACR_TRAP_EFFECT_AREA''' (integer)''' -- This variable uses the SHAPE_ constants to determine how this trap's effect spreads out, if it has a large enough area to be significant. This setting is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Shape&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Spell Cyllinder (e.g. Lightning Bolt)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Cone (e.g. Burning Hands)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Cube (e.g. Order's Wrath)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Spell Cone (e.g. Cone of Cold)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Sphere (e.g. Fireball)&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_EFFECT_SIZE''' (float) -- This is the size, in meters, of the effect area defined previously. Cylinders and cones become longer, but remain directional. Cubes gain length on all sides equally. Spheres gain a larger radius. This setting is ignroed if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_MINIMUM_TO_TRIGGER''' (integer) -- This is the number of creatures who meet the criteria for a trap's triggering who must be within the trap's trigger area''' (defined above) before the trap will fire.&lt;br /&gt;
* '''ACR_TRAP_NUMBER_OF_SHOTS''' (integer) -- This is the number of times the trap will fire before it is discharged. If this number is -1, the trap has infinite charges, and will fire until disarmed.&lt;br /&gt;
* '''ACR_TRAP_SAVE_DC''' (integer) -- This is the reflex save DC of the trap. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- This is the ID of the spell that is cast. If this is -1 or if it is absent, the trap will not be regarded as spell casting, and will instead resolve to do damage. If this option is set, the trap must be placed or spawned near a placeable with the tag &amp;quot;TRAP_ORIGIN.&amp;quot; In the absence of this placeable, the trap trigger will attempt to-- and typically fail to-- cast the spell itself.&lt;br /&gt;
* '''ACR_TRAP_TARGET_ALIGNMENT''' (integer) -- This setting determines which alignments are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other alignments. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| All Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Neutral Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Lawful Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Chaotic Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Good Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evil Alignments&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_TARGET_RACE''' (integer) -- This setting determins which racial types are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other races. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Dwarf&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Elf&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gnome&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Halfling&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Half-Elf&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Half-Orc&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Human&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Abberations&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Animals&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Beasts (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Constructs&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Dragons&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Goblinoids&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Monstrous Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Orcs&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Reptilian Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Elementals&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Fey&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Giants&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Magical Beasts&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Outsiders&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Undead&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Vermin&lt;br /&gt;
|-&lt;br /&gt;
| '''28'''&lt;br /&gt;
| '''All Races'''&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Oozes&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Incorporeal (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Yuan-Ti&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DESCRIPTION''' (string) -- This setting determines what the descriptive text on the trap's disarm target will read when examined with the default &amp;quot;examine&amp;quot; command. While it may contain any arbitrary information deemed useful by the builders, it is recommended that it contain a description of what a person would see of this trap upon discovering it.&lt;br /&gt;
&lt;br /&gt;
== Spawning Traps ==&lt;br /&gt;
ACR Traps are currently able to be spawned through the [[ACR Creator]], and may also be placed using the ACR Spawn System, with object type 8.&lt;br /&gt;
&lt;br /&gt;
In order to spawn a trap, you must first tool the trap, according to the instructions above, and then use the resource name of the waypoint used to tool the trap as the resource name of the trap on the spawn point. In addition, for the trap to register to Detect Magic, to this spawnpoint add the variable: ACR_TRAP_SPELL_ID. Enter the spell integer into the integer slot. &lt;br /&gt;
&lt;br /&gt;
In all other respects, these spawn points work as any other spawn point.&lt;br /&gt;
&lt;br /&gt;
In addition, you may place a placeable with the tag &amp;quot;TRAP_ORIGIN&amp;quot; near any trap trigger and it will be regarded as the source for all effects which are created by the trap. This has two uses:&lt;br /&gt;
* Animations that involve projectiles will show the trap's effect being shot from the trap origin&lt;br /&gt;
* The trap may be used in the spell trap mode (as placeables are allowed to cast spells in the NWN2 engine, but triggers are not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALFA Core Rules}}&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3981</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3981"/>
				<updated>2023-02-01T13:44:32Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic - General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic - General =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
=Special Placeables=&lt;br /&gt;
==Portals==&lt;br /&gt;
===Building===&lt;br /&gt;
See [[Portals]]&lt;br /&gt;
===Detect Magic===&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
===Detect Magic===&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps Detect Magic: Glyphs and Symbol Traps]&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3980</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3980"/>
				<updated>2023-02-01T13:44:00Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic - General =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
=Special Placeables &lt;br /&gt;
==Portals==&lt;br /&gt;
===Building===&lt;br /&gt;
See [[Portals]]&lt;br /&gt;
===Detect Magic===&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
===Detect Magic===&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps Detect Magic: Glyphs and Symbol Traps]&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3979</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3979"/>
				<updated>2023-02-01T13:42:11Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic - General =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
=Portals=&lt;br /&gt;
==Building==&lt;br /&gt;
See [[Portals]]&lt;br /&gt;
==Detect Magic==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
==Detecting Glyphs and Symbol Traps==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps Detect Magic: Glyphs and Symbol Traps]&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3978</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3978"/>
				<updated>2023-02-01T13:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
=Portals=&lt;br /&gt;
==Building==&lt;br /&gt;
See [[Portals]]&lt;br /&gt;
==Detect Magic==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
==Detecting Glyphs and Symbol Traps==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps Detect Magic: Glyphs and Symbol Traps]&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3977</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3977"/>
				<updated>2023-02-01T13:39:34Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detecting Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
==Portals==&lt;br /&gt;
===Building===&lt;br /&gt;
See [[Portals]]&lt;br /&gt;
===Detect Magic===&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
==Detecting Glyphs and Symbol Traps==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps Detect Magic: Glyphs and Symbol Traps]&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3976</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3976"/>
				<updated>2023-02-01T13:37:11Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Building IC Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building IC Portals=&lt;br /&gt;
Not to be confused with Server Portals: [[Building Portals]]&lt;br /&gt;
&lt;br /&gt;
An IC portal can be a placeable, a trigger, or a door. In order for the spell [[Analyze Portal]] to work correctly ingame, portals must be set up with the following properties:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Tag''' -- The tag must start with the alfa_portal prefix: &amp;quot;alfa_portal_&amp;quot;. The rest of the tag can be whatever you want.&lt;br /&gt;
&lt;br /&gt;
*'''PORTAL_LOCATION''' (string) -- A description of the area where the portal is located.&lt;br /&gt;
*'''PORTAL_COMMAND''' (string) -- Any key or command needed to activate the portal&lt;br /&gt;
*'''PORTAL_CIRCUMSTANCE''' (string) -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''PORTAL_DIRECTION''' (string) -- Whether the portal is one-way or two-way.&lt;br /&gt;
*'''PORTAL_PROPERTIES''' (string) -- Any unusual properties&lt;br /&gt;
*'''PORTAL_DESTINATION''' (string) -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''PORTAL_FUNCTIONALITY''' (string) -- Whether the portal is functioning correctly&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3975</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3975"/>
				<updated>2023-02-01T13:36:52Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Building IC Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building IC Portals=&lt;br /&gt;
Not to be confused with Server Portals: [[Building Portals]]&lt;br /&gt;
&lt;br /&gt;
An IC portal can be a placeable, a trigger, or a door. In order for the spell [[Analyze Portal]] to work correctly ingame, portals must be set up with the following properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Tag''' -- The tag must start with the alfa_portal prefix: &amp;quot;alfa_portal_&amp;quot;. The rest of the tag can be whatever you want.&lt;br /&gt;
&lt;br /&gt;
*'''PORTAL_LOCATION''' (string) -- A description of the area where the portal is located.&lt;br /&gt;
*'''PORTAL_COMMAND''' (string) -- Any key or command needed to activate the portal&lt;br /&gt;
*'''PORTAL_CIRCUMSTANCE''' (string) -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''PORTAL_DIRECTION''' (string) -- Whether the portal is one-way or two-way.&lt;br /&gt;
*'''PORTAL_PROPERTIES''' (string) -- Any unusual properties&lt;br /&gt;
*'''PORTAL_DESTINATION''' (string) -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''PORTAL_FUNCTIONALITY''' (string) -- Whether the portal is functioning correctly&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3974</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3974"/>
				<updated>2023-02-01T13:36:34Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Building Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building IC Portals=&lt;br /&gt;
Not to be confused with Server Portals: [[Building Portals]]&lt;br /&gt;
A portal can be a placeable, a trigger, or a door. In order for the spell [[Analyze Portal]] to work correctly ingame, portals must be set up with the following properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Tag''' -- The tag must start with the alfa_portal prefix: &amp;quot;alfa_portal_&amp;quot;. The rest of the tag can be whatever you want.&lt;br /&gt;
&lt;br /&gt;
*'''PORTAL_LOCATION''' (string) -- A description of the area where the portal is located.&lt;br /&gt;
*'''PORTAL_COMMAND''' (string) -- Any key or command needed to activate the portal&lt;br /&gt;
*'''PORTAL_CIRCUMSTANCE''' (string) -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''PORTAL_DIRECTION''' (string) -- Whether the portal is one-way or two-way.&lt;br /&gt;
*'''PORTAL_PROPERTIES''' (string) -- Any unusual properties&lt;br /&gt;
*'''PORTAL_DESTINATION''' (string) -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''PORTAL_FUNCTIONALITY''' (string) -- Whether the portal is functioning correctly&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3973</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3973"/>
				<updated>2023-02-01T13:35:19Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building Portals=&lt;br /&gt;
A portal can be a placeable, a trigger, or a door. In order for the spell [[Analyze Portal]] to work correctly ingame, portals must be set up with the following properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Tag''' -- The tag must start with the alfa_portal prefix: &amp;quot;alfa_portal_&amp;quot;. The rest of the tag can be whatever you want.&lt;br /&gt;
&lt;br /&gt;
*'''PORTAL_LOCATION''' (string) -- A description of the area where the portal is located.&lt;br /&gt;
*'''PORTAL_COMMAND''' (string) -- Any key or command needed to activate the portal&lt;br /&gt;
*'''PORTAL_CIRCUMSTANCE''' (string) -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''PORTAL_DIRECTION''' (string) -- Whether the portal is one-way or two-way.&lt;br /&gt;
*'''PORTAL_PROPERTIES''' (string) -- Any unusual properties&lt;br /&gt;
*'''PORTAL_DESTINATION''' (string) -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''PORTAL_FUNCTIONALITY''' (string) -- Whether the portal is functioning correctly&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Analyze_Portal&amp;diff=3972</id>
		<title>Analyze Portal</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Analyze_Portal&amp;diff=3972"/>
				<updated>2023-02-01T13:31:00Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Analyze Portal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Analyze Portal=&lt;br /&gt;
&lt;br /&gt;
The Caster can tell if a 20 foot sphere contains a magic portal. After the first round, Caster is given a caster level check (d20 + CL) each round, for up to another 6 rounds, to learn information about the portal. Failing any caster level check ends the spell. Properties of the portal are discovered in this order:&lt;br /&gt;
&lt;br /&gt;
*'''Portal Command''' -- Any key or command needed to activate the portal&lt;br /&gt;
*'''Portal Circumstances''' -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''Portal Direction''' -- Whether the portal is one-way or two-way&lt;br /&gt;
*'''Portal Properties''' -- Any unusual properties&lt;br /&gt;
*'''Portal Destination''' -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''Portal Functionality''' -- Whether the portal is functioning properly&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Analyze_Portal&amp;diff=3971</id>
		<title>Analyze Portal</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Analyze_Portal&amp;diff=3971"/>
				<updated>2023-02-01T13:30:47Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Analyze Portal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Analyze Portal=&lt;br /&gt;
&lt;br /&gt;
The Caster can tell if a 20 foot sphere contains a magic portal. After the first round, Caster is given a caster level check (d20 + CL) each round, for up to another 6 rounds, to learn information about the portal. Failing any caster level check ends the spell. Properties of the portal are discovered in this order:&lt;br /&gt;
&lt;br /&gt;
*'''Portal Command''' -- Any key or command needed to activate the portal&lt;br /&gt;
*'''Portal Circumstances''' -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''Portal Direction''' Whether the portal is one-way or two-way&lt;br /&gt;
*'''Portal Properties''' -- Any unusual properties&lt;br /&gt;
*'''Portal Destination''' -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''Portal Functionality''' -- Whether the portal is functioning properly&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3970</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3970"/>
				<updated>2023-02-01T13:27:50Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Building Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Analyze Portal=&lt;br /&gt;
&lt;br /&gt;
The Caster can tell if a 20 foot sphere contains a magic portal. After the first round, Caster is given a caster level check (d20 + CL) each round, for up to another 6 rounds, to learn information about the portal. Failing any caster level check ends the spell. Properties of the portal are discovered in this order:&lt;br /&gt;
&lt;br /&gt;
*'''Portal Command'''* -- Any key or command needed to activate the portal&lt;br /&gt;
*'''Portal Circumstances'''* -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''Portal Direction'''* Whether the portal is one-way or two-way&lt;br /&gt;
*'''Portal Properties'''* -- Any unusual properties&lt;br /&gt;
*'''Portal Destination'''* -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''Portal Functionality'''* -- Whether the portal is functioning properly&lt;br /&gt;
&lt;br /&gt;
=Building Portals=&lt;br /&gt;
In order for the spell [[Analyze Portal]] to work correctly ingame, portals must be set up with the following variables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PORTAL_LOCATION&lt;br /&gt;
PORTAL_COMMAND&lt;br /&gt;
PORTAL_CIRCUMSTANCE&lt;br /&gt;
PORTAL_DIRECTION&lt;br /&gt;
PORTAL_PROPERTIES&lt;br /&gt;
PORTAL_DESTINATION&lt;br /&gt;
PORTAL_FUNCTIONALITY&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Analyze_Portal&amp;diff=3969</id>
		<title>Analyze Portal</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Analyze_Portal&amp;diff=3969"/>
				<updated>2023-02-01T13:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: Created page with &amp;quot;=Analyze Portal=  The Caster can tell if a 20 foot sphere contains a magic portal. After the first round, Caster is given a caster level check (d20 + CL) each round, for up to...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Analyze Portal=&lt;br /&gt;
&lt;br /&gt;
The Caster can tell if a 20 foot sphere contains a magic portal. After the first round, Caster is given a caster level check (d20 + CL) each round, for up to another 6 rounds, to learn information about the portal. Failing any caster level check ends the spell. Properties of the portal are discovered in this order:&lt;br /&gt;
&lt;br /&gt;
*'''Portal Command'''* -- Any key or command needed to activate the portal&lt;br /&gt;
*'''Portal Circumstances'''* -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''Portal Direction'''* Whether the portal is one-way or two-way&lt;br /&gt;
*'''Portal Properties'''* -- Any unusual properties&lt;br /&gt;
*'''Portal Destination'''* -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''Portal Functionality'''* -- Whether the portal is functioning properly&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3968</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3968"/>
				<updated>2023-02-01T13:23:43Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Analyze Portal= */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Analyze Portal=&lt;br /&gt;
&lt;br /&gt;
The Caster can tell if a 20 foot sphere contains a magic portal. After the first round, Caster is given a caster level check (d20 + CL) each round, for up to another 6 rounds, to learn information about the portal. Failing any caster level check ends the spell. Properties of the portal are discovered in this order:&lt;br /&gt;
&lt;br /&gt;
*'''Portal Command'''* -- Any key or command needed to activate the portal&lt;br /&gt;
*'''Portal Circumstances'''* -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''Portal Direction'''* Whether the portal is one-way or two-way&lt;br /&gt;
*'''Portal Properties'''* -- Any unusual properties&lt;br /&gt;
*'''Portal Destination'''* -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''Portal Functionality'''* -- Whether the portal is functioning properly&lt;br /&gt;
&lt;br /&gt;
=Building Portals=&lt;br /&gt;
string sPortalLocation = GetLocalString(oPortal, &amp;quot;PORTAL_LOCATION&amp;quot;);&lt;br /&gt;
string sPortalCommand = GetLocalString(oPortal, &amp;quot;PORTAL_COMMAND&amp;quot;);&lt;br /&gt;
string sPortalCirc = GetLocalString(oPortal, &amp;quot;PORTAL_CIRCUMSTANCE&amp;quot;);&lt;br /&gt;
string sPortalDirection = GetLocalString(oPortal, &amp;quot;PORTAL_DIRECTION&amp;quot;);&lt;br /&gt;
string sPortalProps = GetLocalString(oPortal, &amp;quot;PORTAL_PROPERTIES&amp;quot;);&lt;br /&gt;
string sPortalDest = GetLocalString(oPortal, &amp;quot;PORTAL_DESTINATION&amp;quot;);&lt;br /&gt;
string sPortalFunc = GetLocalString(oPortal, &amp;quot;PORTAL_FUNCTIONALITY&amp;quot;);&lt;br /&gt;
string sPortalCompassDirection = GetCompassDirectionOfAngle(fAnglePortalFromCaster);&lt;br /&gt;
string sPortalDistance = GetDisplayableDistance(GetDistanceBetween(oCaster, oPortal));&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3967</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3967"/>
				<updated>2023-02-01T13:23:31Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Analyze Portal==&lt;br /&gt;
&lt;br /&gt;
The Caster can tell if a 20 foot sphere contains a magic portal. After the first round, Caster is given a caster level check (d20 + CL) each round, for up to another 6 rounds, to learn information about the portal. Failing any caster level check ends the spell. Properties of the portal are discovered in this order:&lt;br /&gt;
&lt;br /&gt;
*'''Portal Command'''* -- Any key or command needed to activate the portal&lt;br /&gt;
*'''Portal Circumstances'''* -- Any special circumstances governing the portal's use (such as specific times when the portal can be activated)&lt;br /&gt;
*'''Portal Direction'''* Whether the portal is one-way or two-way&lt;br /&gt;
*'''Portal Properties'''* -- Any unusual properties&lt;br /&gt;
*'''Portal Destination'''* -- A description of the immediate area where the portal leads&lt;br /&gt;
*'''Portal Functionality'''* -- Whether the portal is functioning properly&lt;br /&gt;
&lt;br /&gt;
=Building Portals=&lt;br /&gt;
string sPortalLocation = GetLocalString(oPortal, &amp;quot;PORTAL_LOCATION&amp;quot;);&lt;br /&gt;
string sPortalCommand = GetLocalString(oPortal, &amp;quot;PORTAL_COMMAND&amp;quot;);&lt;br /&gt;
string sPortalCirc = GetLocalString(oPortal, &amp;quot;PORTAL_CIRCUMSTANCE&amp;quot;);&lt;br /&gt;
string sPortalDirection = GetLocalString(oPortal, &amp;quot;PORTAL_DIRECTION&amp;quot;);&lt;br /&gt;
string sPortalProps = GetLocalString(oPortal, &amp;quot;PORTAL_PROPERTIES&amp;quot;);&lt;br /&gt;
string sPortalDest = GetLocalString(oPortal, &amp;quot;PORTAL_DESTINATION&amp;quot;);&lt;br /&gt;
string sPortalFunc = GetLocalString(oPortal, &amp;quot;PORTAL_FUNCTIONALITY&amp;quot;);&lt;br /&gt;
string sPortalCompassDirection = GetCompassDirectionOfAngle(fAnglePortalFromCaster);&lt;br /&gt;
string sPortalDistance = GetDisplayableDistance(GetDistanceBetween(oCaster, oPortal));&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Portals&amp;diff=3966</id>
		<title>Building Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Portals&amp;diff=3966"/>
				<updated>2023-02-01T13:08:30Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* IC Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
=Server Portals=&lt;br /&gt;
Triggers, Doors, and Usable Placeables are the customary objects used for inter-server travel in ALFA.&lt;br /&gt;
&lt;br /&gt;
Simply put, a portal (not to be confused with other [[Portals]])) is a method of traveling between ALFA servers.&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
A portal event may be initialized in either the &amp;lt;code&amp;gt;'''OnClick'''&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;'''OnUsed'''&amp;lt;/code&amp;gt; events. Set either script to use or call [[acr_trg_portalstart.nss]].&lt;br /&gt;
&lt;br /&gt;
Remaining scripts should be the default acr_* scripts for the portal object type. See [[Building Placeables]] or [[Building Triggers]] for details on how to configure those.&lt;br /&gt;
&lt;br /&gt;
== Waypoints ==&lt;br /&gt;
The destination of a cross-server portal is always a waypoint.&lt;br /&gt;
&lt;br /&gt;
Create a [[Waypoint]] with a [[Tag]] of the form &amp;lt;code&amp;gt;'''&amp;lt;SourceServerId&amp;gt;_PortalTo_&amp;lt;DestinationServerId&amp;gt;_&amp;lt;PortalNumber&amp;gt;'''&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;'''ServerIds'''&amp;lt;/code&amp;gt; are 3 digit integers, and the &amp;lt;code&amp;gt;'''PortalNumber'''&amp;lt;/code&amp;gt; is a 2 digit integer.&lt;br /&gt;
: ''Example: For the arrival waypoint of a portal from [[Baldur's Gate (Server) | Baldur's Gate]] (Server ID 010) to [[The Silver Marches (Server) | The Silver Marches]] (Server ID 003), the first such arrival waypoint is given the tag: &amp;lt;code&amp;gt;'''010_PortalTo_003_01'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing Portals ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
The following two variables are required for the portal to function.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_DEST_SERVER'''&amp;lt;/code&amp;gt; (int) -- Must be set to the destination server ID.&lt;br /&gt;
*: ''Example: &amp;lt;code&amp;gt;'''int ACR_PORTAL_DEST_SERVER = 10'''&amp;lt;/code&amp;gt; to travel to Baldur's Gate.''&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_NUM'''&amp;lt;/code&amp;gt; (int) -- The unique ID (for the destination server) of the destination waypoint.&lt;br /&gt;
*: ''Example: &amp;lt;code&amp;gt;'''int ACR_PORTAL_NUM = 1'''&amp;lt;/code&amp;gt; may put you at the docks, while &amp;lt;code&amp;gt;'''int ACR_PORTAL_NUM = 2'''&amp;lt;/code&amp;gt; may put you at the transition between the [[Western Heartlands (Server) | Western Heartlands]] and [[Tempest's Tears]].''&lt;br /&gt;
&lt;br /&gt;
The following options are optional.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_DEST_ADJACENT'''&amp;lt;/code&amp;gt; (int) -- If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the 24-hour portal cooldown will be disabled.&lt;br /&gt;
&lt;br /&gt;
=IC Portals= &lt;br /&gt;
&lt;br /&gt;
See Building IC [https://www.alandfaraway.info/wiki/Portals Portals]&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Portals&amp;diff=3965</id>
		<title>Building Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Portals&amp;diff=3965"/>
				<updated>2023-02-01T13:07:39Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* IC Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
=Server Portals=&lt;br /&gt;
Triggers, Doors, and Usable Placeables are the customary objects used for inter-server travel in ALFA.&lt;br /&gt;
&lt;br /&gt;
Simply put, a portal (not to be confused with other [[Portals]])) is a method of traveling between ALFA servers.&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
A portal event may be initialized in either the &amp;lt;code&amp;gt;'''OnClick'''&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;'''OnUsed'''&amp;lt;/code&amp;gt; events. Set either script to use or call [[acr_trg_portalstart.nss]].&lt;br /&gt;
&lt;br /&gt;
Remaining scripts should be the default acr_* scripts for the portal object type. See [[Building Placeables]] or [[Building Triggers]] for details on how to configure those.&lt;br /&gt;
&lt;br /&gt;
== Waypoints ==&lt;br /&gt;
The destination of a cross-server portal is always a waypoint.&lt;br /&gt;
&lt;br /&gt;
Create a [[Waypoint]] with a [[Tag]] of the form &amp;lt;code&amp;gt;'''&amp;lt;SourceServerId&amp;gt;_PortalTo_&amp;lt;DestinationServerId&amp;gt;_&amp;lt;PortalNumber&amp;gt;'''&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;'''ServerIds'''&amp;lt;/code&amp;gt; are 3 digit integers, and the &amp;lt;code&amp;gt;'''PortalNumber'''&amp;lt;/code&amp;gt; is a 2 digit integer.&lt;br /&gt;
: ''Example: For the arrival waypoint of a portal from [[Baldur's Gate (Server) | Baldur's Gate]] (Server ID 010) to [[The Silver Marches (Server) | The Silver Marches]] (Server ID 003), the first such arrival waypoint is given the tag: &amp;lt;code&amp;gt;'''010_PortalTo_003_01'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing Portals ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
The following two variables are required for the portal to function.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_DEST_SERVER'''&amp;lt;/code&amp;gt; (int) -- Must be set to the destination server ID.&lt;br /&gt;
*: ''Example: &amp;lt;code&amp;gt;'''int ACR_PORTAL_DEST_SERVER = 10'''&amp;lt;/code&amp;gt; to travel to Baldur's Gate.''&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_NUM'''&amp;lt;/code&amp;gt; (int) -- The unique ID (for the destination server) of the destination waypoint.&lt;br /&gt;
*: ''Example: &amp;lt;code&amp;gt;'''int ACR_PORTAL_NUM = 1'''&amp;lt;/code&amp;gt; may put you at the docks, while &amp;lt;code&amp;gt;'''int ACR_PORTAL_NUM = 2'''&amp;lt;/code&amp;gt; may put you at the transition between the [[Western Heartlands (Server) | Western Heartlands]] and [[Tempest's Tears]].''&lt;br /&gt;
&lt;br /&gt;
The following options are optional.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_DEST_ADJACENT'''&amp;lt;/code&amp;gt; (int) -- If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the 24-hour portal cooldown will be disabled.&lt;br /&gt;
&lt;br /&gt;
=IC Portals= &lt;br /&gt;
&lt;br /&gt;
See Building IC Portals&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Portals&amp;diff=3964</id>
		<title>Building Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Portals&amp;diff=3964"/>
				<updated>2023-02-01T13:06:57Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
=Server Portals=&lt;br /&gt;
Triggers, Doors, and Usable Placeables are the customary objects used for inter-server travel in ALFA.&lt;br /&gt;
&lt;br /&gt;
Simply put, a portal (not to be confused with other [[Portals]])) is a method of traveling between ALFA servers.&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
A portal event may be initialized in either the &amp;lt;code&amp;gt;'''OnClick'''&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;'''OnUsed'''&amp;lt;/code&amp;gt; events. Set either script to use or call [[acr_trg_portalstart.nss]].&lt;br /&gt;
&lt;br /&gt;
Remaining scripts should be the default acr_* scripts for the portal object type. See [[Building Placeables]] or [[Building Triggers]] for details on how to configure those.&lt;br /&gt;
&lt;br /&gt;
== Waypoints ==&lt;br /&gt;
The destination of a cross-server portal is always a waypoint.&lt;br /&gt;
&lt;br /&gt;
Create a [[Waypoint]] with a [[Tag]] of the form &amp;lt;code&amp;gt;'''&amp;lt;SourceServerId&amp;gt;_PortalTo_&amp;lt;DestinationServerId&amp;gt;_&amp;lt;PortalNumber&amp;gt;'''&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;'''ServerIds'''&amp;lt;/code&amp;gt; are 3 digit integers, and the &amp;lt;code&amp;gt;'''PortalNumber'''&amp;lt;/code&amp;gt; is a 2 digit integer.&lt;br /&gt;
: ''Example: For the arrival waypoint of a portal from [[Baldur's Gate (Server) | Baldur's Gate]] (Server ID 010) to [[The Silver Marches (Server) | The Silver Marches]] (Server ID 003), the first such arrival waypoint is given the tag: &amp;lt;code&amp;gt;'''010_PortalTo_003_01'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing Portals ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
The following two variables are required for the portal to function.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_DEST_SERVER'''&amp;lt;/code&amp;gt; (int) -- Must be set to the destination server ID.&lt;br /&gt;
*: ''Example: &amp;lt;code&amp;gt;'''int ACR_PORTAL_DEST_SERVER = 10'''&amp;lt;/code&amp;gt; to travel to Baldur's Gate.''&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_NUM'''&amp;lt;/code&amp;gt; (int) -- The unique ID (for the destination server) of the destination waypoint.&lt;br /&gt;
*: ''Example: &amp;lt;code&amp;gt;'''int ACR_PORTAL_NUM = 1'''&amp;lt;/code&amp;gt; may put you at the docks, while &amp;lt;code&amp;gt;'''int ACR_PORTAL_NUM = 2'''&amp;lt;/code&amp;gt; may put you at the transition between the [[Western Heartlands (Server) | Western Heartlands]] and [[Tempest's Tears]].''&lt;br /&gt;
&lt;br /&gt;
The following options are optional.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PORTAL_DEST_ADJACENT'''&amp;lt;/code&amp;gt; (int) -- If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the 24-hour portal cooldown will be disabled.&lt;br /&gt;
&lt;br /&gt;
=IC Portals=&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3963</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Portals&amp;diff=3963"/>
				<updated>2023-02-01T13:01:40Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: Created page with &amp;quot;string sPortalLocation = GetLocalString(oPortal, &amp;quot;PORTAL_LOCATION&amp;quot;); 			string sPortalCommand = GetLocalString(oPortal, &amp;quot;PORTAL_COMMAND&amp;quot;); 			string sPortalCirc = GetLocalStri...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;string sPortalLocation = GetLocalString(oPortal, &amp;quot;PORTAL_LOCATION&amp;quot;);&lt;br /&gt;
			string sPortalCommand = GetLocalString(oPortal, &amp;quot;PORTAL_COMMAND&amp;quot;);&lt;br /&gt;
			string sPortalCirc = GetLocalString(oPortal, &amp;quot;PORTAL_CIRCUMSTANCE&amp;quot;);&lt;br /&gt;
			string sPortalDirection = GetLocalString(oPortal, &amp;quot;PORTAL_DIRECTION&amp;quot;);&lt;br /&gt;
			string sPortalProps = GetLocalString(oPortal, &amp;quot;PORTAL_PROPERTIES&amp;quot;);&lt;br /&gt;
			string sPortalDest = GetLocalString(oPortal, &amp;quot;PORTAL_DESTINATION&amp;quot;);&lt;br /&gt;
			string sPortalFunc = GetLocalString(oPortal, &amp;quot;PORTAL_FUNCTIONALITY&amp;quot;);&lt;br /&gt;
			string sPortalCompassDirection = GetCompassDirectionOfAngle(fAnglePortalFromCaster);&lt;br /&gt;
			string sPortalDistance = GetDisplayableDistance(GetDistanceBetween(oCaster, oPortal));&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3962</id>
		<title>Detect Magic</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3962"/>
				<updated>2023-01-31T02:14:20Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Walls of Force */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Detect Magic Ingame= &lt;br /&gt;
A caster can detect the magical auras of objects within the spellcone of Detect Magic cast ingame. Objects that will report include certain FX, Doors, Items, Placeables and their inventory, Triggers, Waypoints, Spell Traps, and finally Creatures and their effects and inventory.&lt;br /&gt;
	&lt;br /&gt;
== Concentration Check == &lt;br /&gt;
The amount of information revealed depends on how long you study a particular area or subject. Caster rolls a Concentration Check to determine rounds of study. Checks include Concentration modifiers and buffs. &lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Roll&lt;br /&gt;
! Rounds&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0 Rounds&lt;br /&gt;
| Failure&lt;br /&gt;
|-&lt;br /&gt;
| 2-6&lt;br /&gt;
| 1 Round&lt;br /&gt;
| There is magic within range.&lt;br /&gt;
|-&lt;br /&gt;
| 7-13&lt;br /&gt;
| 2 Rounds&lt;br /&gt;
| Number of auras and the power of the strongest aura.&lt;br /&gt;
|-&lt;br /&gt;
| 14+&lt;br /&gt;
| 3 Rounds&lt;br /&gt;
| Location of auras, and a Spellcraft Check vs. power of item to learn its school of magic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Failure===&lt;br /&gt;
A natural 1, with or without modifiers, means the caster fails their casting and learns nothing.&lt;br /&gt;
&lt;br /&gt;
=== Round 1: There is Magic Within Range ===&lt;br /&gt;
A roll of 2 to 6 earns one round of information that tells the caster simply that there is magic within range. After 1 Round, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 2: Power of Magic ===&lt;br /&gt;
A roll of 7 to 13 earns Round 2 of information: generalized number of auras within range and the strength of the strongest aura. After 2 Rounds, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 3: Location, Individual Power and Possibly School of Magic ===&lt;br /&gt;
A roll of 14+ earns Round 3 of information: the power and location of each aura in range. Also, at this time the caster rolls Spellcraft against the power of each aura to discover the school of the aura.&lt;br /&gt;
&lt;br /&gt;
= Building for Detect Magic =&lt;br /&gt;
Some VFX, Creatures, Doors, Items, Placeables, Triggers and Waypoints (including spell traps) either automatically report or can be set up to report their magical auras to a caster of Detect Magic. &lt;br /&gt;
&lt;br /&gt;
== SpellSchool Variables == &lt;br /&gt;
A builder can add up to three sets of ACR_SPELLSCHOOL, ACR_SUBSCHOOL, and ACR_SPELLPOWER variables to Doors, Placeables, Triggers, and Waypoints to place an aura of any school, subschool and power.  &lt;br /&gt;
&lt;br /&gt;
Sample versions of Doors, Placeables, Triggers, Traps and Waypoints, with the variable slots on them but zeroed out, exist in toolset under the category ALFA_DetectMagic (or ALFA_Traps_Spawn). Builders can change the name, tag, resref, appearance, description of these sample objects to anything. Only the variables are checked by the spell. Placeables do not have to be useable. &lt;br /&gt;
&lt;br /&gt;
To place an aura, only ACR_SPELLSCHOOL and ACR_SPELLPOWER are required. The others are optional and can be left as 0s or empty fields. &lt;br /&gt;
&lt;br /&gt;
=== School of Magic ===&lt;br /&gt;
For instance, if you wish to suggest that a catapult has an ability to hurl fireballs, set ACR_SPELLSCHOOL to 5, for Evocation. If you want to suggest those fireballs are Transmuted magically from some solid fuel, set ACR_SPELLSCHOOL2 to 8, for Transmutation. A further suggestion that the whole thing is protected against good could use ACR_SPELLSCHOOL3 set to 1, for Abjuration.&lt;br /&gt;
&lt;br /&gt;
Variables (and the way they report to the caster) include:&lt;br /&gt;
* '''ACR_SPELLSCHOOL''' (integer) -- &amp;quot;This catapult has an aura of Evocation&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL2''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL3''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation around a central core of stored Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Integer&lt;br /&gt;
! School of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Abjuration &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Conjuration &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Divination &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enchantment &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evocation&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Illusion&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Necromancy&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Transmutation&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| General/Universal Magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SubSchool strings are optional. A builder can enter classifications such as &amp;quot;Sonic&amp;quot; or &amp;quot;Mind-Affecting&amp;quot;, or any subcategory or descriptor of spells. For instance, the hypothetical Catapult of Fireballs could be &amp;quot;Fire&amp;quot; or &amp;quot;Elemental&amp;quot;. Or blank, if you don't want the PC to get that hint.&lt;br /&gt;
* '''ACR_SUBSCHOOL''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL2''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL3''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth) around a central core of stored Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Power of Magic ===&lt;br /&gt;
ACR_SPELLPOWER is required. The other two are only needed if you want multiple schools of magic. Enter the spell level of the spell being represented. For instance, our Catapult of Fireballs would be ACR_SPELLPOWER 3 for Fireball, ACR_SPELLPOWER2 5 for Transmute Rock to Mud (for loading in coal and getting out napalm) and ACR_SPELLPOWER3 8 for Unholy Aura. &lt;br /&gt;
* '''ACR_SPELLPOWER''' (integer)  -- &amp;quot;This catapult has a Faint aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER2''' (integer) -- &amp;quot;This catapult has a Faint aura of Evocation (Fire) and a Moderate aura of Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER3''' (integer) -- &amp;quot;This widget has a Faint aura of Evocation and Moderate Transmutation around a central core of stored Powerful Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell Level&lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 7-9&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 10+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Objects Automatically Detected By Detect Magic =&lt;br /&gt;
Portals, Glyphs and Symbol Traps, Walls of Force, some FX, magical Creatures and Creatures with active spell effects, and Items with standard magical properties will be automatically found by Detect Magic, whether the object is placed in toolset or created on the fly ingame.&lt;br /&gt;
&lt;br /&gt;
==Portals==&lt;br /&gt;
Portals can be triggers or placeables. Placeable portals do not have to be useable at the time of casting Detect Magic. If they have &amp;quot;_portal&amp;quot; in the tag, they will report to the caster as Strong Conjuration.&lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding and Symbol Traps can be triggers or placeables. Placeables do not have to be useable. If they contain certain words in their tags they will report as follows:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Glyph of Warding &lt;br /&gt;
|_glyph_ward&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Pain &lt;br /&gt;
|_symbol_pain&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Sleep &lt;br /&gt;
|_symbol_sleep&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Fear &lt;br /&gt;
|_symbol_fear&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Persuasion &lt;br /&gt;
|_symbol_pers&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Weakness &lt;br /&gt;
|_symbol_weakness&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Stunning &lt;br /&gt;
|_symbol_stun&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Death &lt;br /&gt;
|_symbol_death&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Insanity &lt;br /&gt;
|_symbol_insanity&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Walls of Force == &lt;br /&gt;
Forcefields with &amp;quot;Forcefield&amp;quot; in their names or &amp;quot;forcefield&amp;quot; in their tags are Walls of Force. Placeables do not have to be useable. They will report as Moderate Evocation.&lt;br /&gt;
&lt;br /&gt;
==Visual Effects==&lt;br /&gt;
If placed or spawned without changing their tags, or at least maintaining the portion of the tag noted below, effects will register as follows.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Containment Field&lt;br /&gt;
|_containment&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Wall of Force&lt;br /&gt;
|_force&lt;br /&gt;
|Moderate Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Ioun Stone &lt;br /&gt;
|_ioun&lt;br /&gt;
|Strong Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental &lt;br /&gt;
|_elemental&lt;br /&gt;
|Moderate Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Symbol Projections &lt;br /&gt;
|_proj as well as three letter abbreviation for school (_abj, _con, _div, _enc, _evo, _ill, _nec, _tra)&lt;br /&gt;
|Faint {Insert School}&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Lamp &lt;br /&gt;
|_arcane_lamp_&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Teleport Gem Blue &lt;br /&gt;
|abr_afx_gem_energy_blue (entire tag)&lt;br /&gt;
|Strong Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Other Energy Gems &lt;br /&gt;
|_gem_energy&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spell Traps ==&lt;br /&gt;
More information on tooling traps can be found on the [[ACR_Traps]] page. &lt;br /&gt;
&lt;br /&gt;
Spell Traps, not mechanical traps, will report school and power to the caster based on the spell they cast. &lt;br /&gt;
&lt;br /&gt;
===ACR_TRAP_SPELL_ID===&lt;br /&gt;
If tooled up and placed in toolset, they already have the required spell ID on them. If spawned, they do not. To have a spawning trap report to the caster, its spawnpoint also needs to have the spell ID on it. (Mechanically, even though the tooled up trap has the trap integer on it in toolset and if placed, when it is *spawned* that trap integer disappears so it has to be on the spawnpoint, to register.)&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- Add this to the spawnpoint. Value is the row number of the spell from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
===TRAP ORIGIN ===&lt;br /&gt;
Spell Traps also require a nearby origin point, a Placeable tagged as TRAP_ORIGIN. It can have any appearance. &lt;br /&gt;
&lt;br /&gt;
Spell Traps report auras on both the origin and the location of the trap, which is not always at the origin point. &lt;br /&gt;
&lt;br /&gt;
For instance, a spawned or placed Fireball Trap originating from a burning torch where the flame is a placeable tagged TRAP_ORIGIN would have the ACR_TRAP_SPELL_ID of integer 58. If proximity to the torch itself is the trigger, that radius is already set on a correctly tooled or spawned trap. Origin and trap or trap spawnpoint are put on top of each other. It will report as &amp;quot;Torch Flame 2m to the Southeast gives off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If the trigger is a nearby stone pressure plate, then the origin is the placeable flame and the trap or spawnpoint are placed on the pressure plate. This would report as &amp;quot;Torch Flame 2m to the Southeast and a circle centered on a point 4m West of Torch Flame give off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creatures==&lt;br /&gt;
Creatures are the most complex use case. They can have racial auras, active spell effects, and inventory.&lt;br /&gt;
===Creature Report===&lt;br /&gt;
A creature's report will start with Racial Auras, if any. Next comes a Functioning Spells section, if any spell effects are currently active. After that, the item reports begin, starting with an item summary, then moving to equipped items, and finally a blurb about inventory.&lt;br /&gt;
&lt;br /&gt;
=== Racial Auras ===&lt;br /&gt;
Some Creatures will register automatically. For instance: &amp;quot;Pegasus has a lingering aura of Innate Magic.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Race&lt;br /&gt;
! School&lt;br /&gt;
|-&lt;br /&gt;
|Construct&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Fey&lt;br /&gt;
|Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Magical Beast&lt;br /&gt;
|Innate Magic&lt;br /&gt;
|-&lt;br /&gt;
|Outsider&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Shapechanger&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Undead&lt;br /&gt;
|Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Their power is based on 1/2 their CR. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! CR &lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-6&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 7-12&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 13-20&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 20+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Creatures with Active Spell Effects ===&lt;br /&gt;
PCs or NPCs with active spells will report their aura by cross-referencing the spell effect with the school and level from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
Any active spell will register. Examples:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-&lt;br /&gt;
| Death Ward&lt;br /&gt;
| Necromancy&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| Protection from Evil&lt;br /&gt;
| Aburation&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Invisibility*&lt;br /&gt;
| Illusion&lt;br /&gt;
| Faint/Moderate/Strong&lt;br /&gt;
|-&lt;br /&gt;
| Detect Scrying&lt;br /&gt;
| Divination&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| See Invisibility&lt;br /&gt;
| Divination&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Wildshape&lt;br /&gt;
| Transmutation&lt;br /&gt;
| Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Invisible creatures report only location of auras, not that they are on a creature or that creature's name.&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
===SpellSchool Variables===&lt;br /&gt;
Like other objects, items can have up to three sets of [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables SpellSchool Variables] added manually, but these should be used sparingly, since Item auras also automatically report based on their item properties. An Item ''can'' have both automatically reporting properties and SpellSchool properties, but use SpellSchool variables only:&lt;br /&gt;
&lt;br /&gt;
*'''No matching item property:''' If a builder wants to add an aura that no item property automatically generates;&lt;br /&gt;
*'''Cast Unique:''' To supplement the aura information for items with the item properties: Cast Spell: Unique Power, or Cast Spell: Unique Power Self Only, or Cast Spell: On Hit. These properties each call tag-based event scripts that Detect Magic can't read, and which it will report as &amp;quot;This item has a complex aura of arcanity.&amp;quot; Add SpellSchool variables to explicate the complex aura.&lt;br /&gt;
&lt;br /&gt;
For instance: a builder has created a spoon that magically sweetens any porridge it scoops up. The item property Cast Spell: Unique Power is placed on the spoon, which calls event script i_spoon_ac. The caster will get the &amp;quot;complex aura&amp;quot; message, and if the builder places an ACR_SPELLSCHOOL of 8 and an ACR_SPELLPOWER of 1 on the spoon, will also get a Faint Transmutation aura to represent the famous Transmutation spell: ''Sugar Hit''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise, Items report automatically based on the following guidelines.&lt;br /&gt;
&lt;br /&gt;
===Tag Based Auras===&lt;br /&gt;
Some items return an aura based on their tag, rather than their properties. Note: These items can have other properties, too, but will return at least the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-	&lt;br /&gt;
|Holy Symbol &lt;br /&gt;
|Abjuration &lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Scrying Multi-Tool &lt;br /&gt;
|Universal &lt;br /&gt;
|Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Spell Casting Properties===&lt;br /&gt;
Any item that casts any spell is cross-referenced against the Item Property Spells 2DA and the Spells 2DA to get school and power.&lt;br /&gt;
&lt;br /&gt;
===Enhancement Properties===&lt;br /&gt;
The SRD under Magic Items and Detect Magic says:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
|-									    &lt;br /&gt;
|Armor and protection items&lt;br /&gt;
|Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Weapons or offensive items&lt;br /&gt;
|Evocation&lt;br /&gt;
|-	&lt;br /&gt;
|Bonus to ability score, on skill check, etc.&lt;br /&gt;
|Transmutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power is based on amount of enhancement:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Enhancement&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
| +1&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
| +2&lt;br /&gt;
|Moderate&lt;br /&gt;
|-	&lt;br /&gt;
| +3&lt;br /&gt;
|Strong&lt;br /&gt;
|-	&lt;br /&gt;
| +4&lt;br /&gt;
|Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Properties===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Property&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
|Bonus Feat&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Bonus HP&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Darkvision&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Freedom of Movement&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|Haste&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Damage Type&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Misc&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Spell Level&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Improved Evasion&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Light&lt;br /&gt;
|Evocation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Regeneration&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Spell Resistance&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|True Seeing&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===Loose Items ===&lt;br /&gt;
&lt;br /&gt;
Items on the ground or otherwise outside of a container or creature's inventory report individually, just like any other object.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A Tower Shield 10m Northwest gives off an aura of Moderate Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items in a Placeable===&lt;br /&gt;
Placeables report their items based on whether they are open or closed. &amp;quot;Something in Chest 5m to the South gives off a Moderate aura of Conjuration.&amp;quot; Or &amp;quot;An unidentified potion in a Chest 5m to the South gives off a Moderate aura of Conjuration. &amp;quot;Or if identified because the PC recognizes it &amp;quot;A Cure Moderate Wounds potion in a Chest gives off a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items on Creatures===&lt;br /&gt;
&lt;br /&gt;
'''Summary''': Creatures generate a more complex item report than any other object type. The first part of the Creature Item report is a summary of how many auras of each school of magic surround the creature. &amp;quot;Little Red Riding Hood has around half a dozen Abjuration auras. Little Red Riding Hood has 1 Necromancy aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Equipped''': Items equipped on a visible creature report individually. &amp;quot;Bracers worn by the Big Bad Wolf gives off a Strong aura of Transmutation.&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''Inventory''': Items in a Creature's inventory are reported in one statement at the end of the creature report. &amp;quot;The rest of the auras are in Big Bad Wolf's inventory.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=End of Report=&lt;br /&gt;
&amp;quot;That is all you learn.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3961</id>
		<title>Detect Magic</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3961"/>
				<updated>2023-01-31T02:13:52Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Glyphs and Symbol Traps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Detect Magic Ingame= &lt;br /&gt;
A caster can detect the magical auras of objects within the spellcone of Detect Magic cast ingame. Objects that will report include certain FX, Doors, Items, Placeables and their inventory, Triggers, Waypoints, Spell Traps, and finally Creatures and their effects and inventory.&lt;br /&gt;
	&lt;br /&gt;
== Concentration Check == &lt;br /&gt;
The amount of information revealed depends on how long you study a particular area or subject. Caster rolls a Concentration Check to determine rounds of study. Checks include Concentration modifiers and buffs. &lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Roll&lt;br /&gt;
! Rounds&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0 Rounds&lt;br /&gt;
| Failure&lt;br /&gt;
|-&lt;br /&gt;
| 2-6&lt;br /&gt;
| 1 Round&lt;br /&gt;
| There is magic within range.&lt;br /&gt;
|-&lt;br /&gt;
| 7-13&lt;br /&gt;
| 2 Rounds&lt;br /&gt;
| Number of auras and the power of the strongest aura.&lt;br /&gt;
|-&lt;br /&gt;
| 14+&lt;br /&gt;
| 3 Rounds&lt;br /&gt;
| Location of auras, and a Spellcraft Check vs. power of item to learn its school of magic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Failure===&lt;br /&gt;
A natural 1, with or without modifiers, means the caster fails their casting and learns nothing.&lt;br /&gt;
&lt;br /&gt;
=== Round 1: There is Magic Within Range ===&lt;br /&gt;
A roll of 2 to 6 earns one round of information that tells the caster simply that there is magic within range. After 1 Round, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 2: Power of Magic ===&lt;br /&gt;
A roll of 7 to 13 earns Round 2 of information: generalized number of auras within range and the strength of the strongest aura. After 2 Rounds, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 3: Location, Individual Power and Possibly School of Magic ===&lt;br /&gt;
A roll of 14+ earns Round 3 of information: the power and location of each aura in range. Also, at this time the caster rolls Spellcraft against the power of each aura to discover the school of the aura.&lt;br /&gt;
&lt;br /&gt;
= Building for Detect Magic =&lt;br /&gt;
Some VFX, Creatures, Doors, Items, Placeables, Triggers and Waypoints (including spell traps) either automatically report or can be set up to report their magical auras to a caster of Detect Magic. &lt;br /&gt;
&lt;br /&gt;
== SpellSchool Variables == &lt;br /&gt;
A builder can add up to three sets of ACR_SPELLSCHOOL, ACR_SUBSCHOOL, and ACR_SPELLPOWER variables to Doors, Placeables, Triggers, and Waypoints to place an aura of any school, subschool and power.  &lt;br /&gt;
&lt;br /&gt;
Sample versions of Doors, Placeables, Triggers, Traps and Waypoints, with the variable slots on them but zeroed out, exist in toolset under the category ALFA_DetectMagic (or ALFA_Traps_Spawn). Builders can change the name, tag, resref, appearance, description of these sample objects to anything. Only the variables are checked by the spell. Placeables do not have to be useable. &lt;br /&gt;
&lt;br /&gt;
To place an aura, only ACR_SPELLSCHOOL and ACR_SPELLPOWER are required. The others are optional and can be left as 0s or empty fields. &lt;br /&gt;
&lt;br /&gt;
=== School of Magic ===&lt;br /&gt;
For instance, if you wish to suggest that a catapult has an ability to hurl fireballs, set ACR_SPELLSCHOOL to 5, for Evocation. If you want to suggest those fireballs are Transmuted magically from some solid fuel, set ACR_SPELLSCHOOL2 to 8, for Transmutation. A further suggestion that the whole thing is protected against good could use ACR_SPELLSCHOOL3 set to 1, for Abjuration.&lt;br /&gt;
&lt;br /&gt;
Variables (and the way they report to the caster) include:&lt;br /&gt;
* '''ACR_SPELLSCHOOL''' (integer) -- &amp;quot;This catapult has an aura of Evocation&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL2''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL3''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation around a central core of stored Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Integer&lt;br /&gt;
! School of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Abjuration &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Conjuration &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Divination &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enchantment &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evocation&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Illusion&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Necromancy&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Transmutation&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| General/Universal Magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SubSchool strings are optional. A builder can enter classifications such as &amp;quot;Sonic&amp;quot; or &amp;quot;Mind-Affecting&amp;quot;, or any subcategory or descriptor of spells. For instance, the hypothetical Catapult of Fireballs could be &amp;quot;Fire&amp;quot; or &amp;quot;Elemental&amp;quot;. Or blank, if you don't want the PC to get that hint.&lt;br /&gt;
* '''ACR_SUBSCHOOL''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL2''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL3''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth) around a central core of stored Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Power of Magic ===&lt;br /&gt;
ACR_SPELLPOWER is required. The other two are only needed if you want multiple schools of magic. Enter the spell level of the spell being represented. For instance, our Catapult of Fireballs would be ACR_SPELLPOWER 3 for Fireball, ACR_SPELLPOWER2 5 for Transmute Rock to Mud (for loading in coal and getting out napalm) and ACR_SPELLPOWER3 8 for Unholy Aura. &lt;br /&gt;
* '''ACR_SPELLPOWER''' (integer)  -- &amp;quot;This catapult has a Faint aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER2''' (integer) -- &amp;quot;This catapult has a Faint aura of Evocation (Fire) and a Moderate aura of Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER3''' (integer) -- &amp;quot;This widget has a Faint aura of Evocation and Moderate Transmutation around a central core of stored Powerful Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell Level&lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 7-9&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 10+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Objects Automatically Detected By Detect Magic =&lt;br /&gt;
Portals, Glyphs and Symbol Traps, Walls of Force, some FX, magical Creatures and Creatures with active spell effects, and Items with standard magical properties will be automatically found by Detect Magic, whether the object is placed in toolset or created on the fly ingame.&lt;br /&gt;
&lt;br /&gt;
==Portals==&lt;br /&gt;
Portals can be triggers or placeables. Placeable portals do not have to be useable at the time of casting Detect Magic. If they have &amp;quot;_portal&amp;quot; in the tag, they will report to the caster as Strong Conjuration.&lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding and Symbol Traps can be triggers or placeables. Placeables do not have to be useable. If they contain certain words in their tags they will report as follows:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Glyph of Warding &lt;br /&gt;
|_glyph_ward&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Pain &lt;br /&gt;
|_symbol_pain&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Sleep &lt;br /&gt;
|_symbol_sleep&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Fear &lt;br /&gt;
|_symbol_fear&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Persuasion &lt;br /&gt;
|_symbol_pers&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Weakness &lt;br /&gt;
|_symbol_weakness&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Stunning &lt;br /&gt;
|_symbol_stun&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Death &lt;br /&gt;
|_symbol_death&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Insanity &lt;br /&gt;
|_symbol_insanity&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Walls of Force == &lt;br /&gt;
Forcefields with &amp;quot;Forcefield&amp;quot; in their names or &amp;quot;forcefield&amp;quot; in their tags are Walls of Force. They will report as Moderate Evocation.&lt;br /&gt;
&lt;br /&gt;
==Visual Effects==&lt;br /&gt;
If placed or spawned without changing their tags, or at least maintaining the portion of the tag noted below, effects will register as follows.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Containment Field&lt;br /&gt;
|_containment&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Wall of Force&lt;br /&gt;
|_force&lt;br /&gt;
|Moderate Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Ioun Stone &lt;br /&gt;
|_ioun&lt;br /&gt;
|Strong Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental &lt;br /&gt;
|_elemental&lt;br /&gt;
|Moderate Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Symbol Projections &lt;br /&gt;
|_proj as well as three letter abbreviation for school (_abj, _con, _div, _enc, _evo, _ill, _nec, _tra)&lt;br /&gt;
|Faint {Insert School}&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Lamp &lt;br /&gt;
|_arcane_lamp_&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Teleport Gem Blue &lt;br /&gt;
|abr_afx_gem_energy_blue (entire tag)&lt;br /&gt;
|Strong Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Other Energy Gems &lt;br /&gt;
|_gem_energy&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spell Traps ==&lt;br /&gt;
More information on tooling traps can be found on the [[ACR_Traps]] page. &lt;br /&gt;
&lt;br /&gt;
Spell Traps, not mechanical traps, will report school and power to the caster based on the spell they cast. &lt;br /&gt;
&lt;br /&gt;
===ACR_TRAP_SPELL_ID===&lt;br /&gt;
If tooled up and placed in toolset, they already have the required spell ID on them. If spawned, they do not. To have a spawning trap report to the caster, its spawnpoint also needs to have the spell ID on it. (Mechanically, even though the tooled up trap has the trap integer on it in toolset and if placed, when it is *spawned* that trap integer disappears so it has to be on the spawnpoint, to register.)&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- Add this to the spawnpoint. Value is the row number of the spell from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
===TRAP ORIGIN ===&lt;br /&gt;
Spell Traps also require a nearby origin point, a Placeable tagged as TRAP_ORIGIN. It can have any appearance. &lt;br /&gt;
&lt;br /&gt;
Spell Traps report auras on both the origin and the location of the trap, which is not always at the origin point. &lt;br /&gt;
&lt;br /&gt;
For instance, a spawned or placed Fireball Trap originating from a burning torch where the flame is a placeable tagged TRAP_ORIGIN would have the ACR_TRAP_SPELL_ID of integer 58. If proximity to the torch itself is the trigger, that radius is already set on a correctly tooled or spawned trap. Origin and trap or trap spawnpoint are put on top of each other. It will report as &amp;quot;Torch Flame 2m to the Southeast gives off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If the trigger is a nearby stone pressure plate, then the origin is the placeable flame and the trap or spawnpoint are placed on the pressure plate. This would report as &amp;quot;Torch Flame 2m to the Southeast and a circle centered on a point 4m West of Torch Flame give off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creatures==&lt;br /&gt;
Creatures are the most complex use case. They can have racial auras, active spell effects, and inventory.&lt;br /&gt;
===Creature Report===&lt;br /&gt;
A creature's report will start with Racial Auras, if any. Next comes a Functioning Spells section, if any spell effects are currently active. After that, the item reports begin, starting with an item summary, then moving to equipped items, and finally a blurb about inventory.&lt;br /&gt;
&lt;br /&gt;
=== Racial Auras ===&lt;br /&gt;
Some Creatures will register automatically. For instance: &amp;quot;Pegasus has a lingering aura of Innate Magic.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Race&lt;br /&gt;
! School&lt;br /&gt;
|-&lt;br /&gt;
|Construct&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Fey&lt;br /&gt;
|Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Magical Beast&lt;br /&gt;
|Innate Magic&lt;br /&gt;
|-&lt;br /&gt;
|Outsider&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Shapechanger&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Undead&lt;br /&gt;
|Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Their power is based on 1/2 their CR. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! CR &lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-6&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 7-12&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 13-20&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 20+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Creatures with Active Spell Effects ===&lt;br /&gt;
PCs or NPCs with active spells will report their aura by cross-referencing the spell effect with the school and level from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
Any active spell will register. Examples:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-&lt;br /&gt;
| Death Ward&lt;br /&gt;
| Necromancy&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| Protection from Evil&lt;br /&gt;
| Aburation&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Invisibility*&lt;br /&gt;
| Illusion&lt;br /&gt;
| Faint/Moderate/Strong&lt;br /&gt;
|-&lt;br /&gt;
| Detect Scrying&lt;br /&gt;
| Divination&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| See Invisibility&lt;br /&gt;
| Divination&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Wildshape&lt;br /&gt;
| Transmutation&lt;br /&gt;
| Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Invisible creatures report only location of auras, not that they are on a creature or that creature's name.&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
===SpellSchool Variables===&lt;br /&gt;
Like other objects, items can have up to three sets of [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables SpellSchool Variables] added manually, but these should be used sparingly, since Item auras also automatically report based on their item properties. An Item ''can'' have both automatically reporting properties and SpellSchool properties, but use SpellSchool variables only:&lt;br /&gt;
&lt;br /&gt;
*'''No matching item property:''' If a builder wants to add an aura that no item property automatically generates;&lt;br /&gt;
*'''Cast Unique:''' To supplement the aura information for items with the item properties: Cast Spell: Unique Power, or Cast Spell: Unique Power Self Only, or Cast Spell: On Hit. These properties each call tag-based event scripts that Detect Magic can't read, and which it will report as &amp;quot;This item has a complex aura of arcanity.&amp;quot; Add SpellSchool variables to explicate the complex aura.&lt;br /&gt;
&lt;br /&gt;
For instance: a builder has created a spoon that magically sweetens any porridge it scoops up. The item property Cast Spell: Unique Power is placed on the spoon, which calls event script i_spoon_ac. The caster will get the &amp;quot;complex aura&amp;quot; message, and if the builder places an ACR_SPELLSCHOOL of 8 and an ACR_SPELLPOWER of 1 on the spoon, will also get a Faint Transmutation aura to represent the famous Transmutation spell: ''Sugar Hit''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise, Items report automatically based on the following guidelines.&lt;br /&gt;
&lt;br /&gt;
===Tag Based Auras===&lt;br /&gt;
Some items return an aura based on their tag, rather than their properties. Note: These items can have other properties, too, but will return at least the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-	&lt;br /&gt;
|Holy Symbol &lt;br /&gt;
|Abjuration &lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Scrying Multi-Tool &lt;br /&gt;
|Universal &lt;br /&gt;
|Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Spell Casting Properties===&lt;br /&gt;
Any item that casts any spell is cross-referenced against the Item Property Spells 2DA and the Spells 2DA to get school and power.&lt;br /&gt;
&lt;br /&gt;
===Enhancement Properties===&lt;br /&gt;
The SRD under Magic Items and Detect Magic says:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
|-									    &lt;br /&gt;
|Armor and protection items&lt;br /&gt;
|Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Weapons or offensive items&lt;br /&gt;
|Evocation&lt;br /&gt;
|-	&lt;br /&gt;
|Bonus to ability score, on skill check, etc.&lt;br /&gt;
|Transmutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power is based on amount of enhancement:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Enhancement&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
| +1&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
| +2&lt;br /&gt;
|Moderate&lt;br /&gt;
|-	&lt;br /&gt;
| +3&lt;br /&gt;
|Strong&lt;br /&gt;
|-	&lt;br /&gt;
| +4&lt;br /&gt;
|Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Properties===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Property&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
|Bonus Feat&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Bonus HP&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Darkvision&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Freedom of Movement&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|Haste&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Damage Type&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Misc&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Spell Level&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Improved Evasion&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Light&lt;br /&gt;
|Evocation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Regeneration&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Spell Resistance&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|True Seeing&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===Loose Items ===&lt;br /&gt;
&lt;br /&gt;
Items on the ground or otherwise outside of a container or creature's inventory report individually, just like any other object.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A Tower Shield 10m Northwest gives off an aura of Moderate Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items in a Placeable===&lt;br /&gt;
Placeables report their items based on whether they are open or closed. &amp;quot;Something in Chest 5m to the South gives off a Moderate aura of Conjuration.&amp;quot; Or &amp;quot;An unidentified potion in a Chest 5m to the South gives off a Moderate aura of Conjuration. &amp;quot;Or if identified because the PC recognizes it &amp;quot;A Cure Moderate Wounds potion in a Chest gives off a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items on Creatures===&lt;br /&gt;
&lt;br /&gt;
'''Summary''': Creatures generate a more complex item report than any other object type. The first part of the Creature Item report is a summary of how many auras of each school of magic surround the creature. &amp;quot;Little Red Riding Hood has around half a dozen Abjuration auras. Little Red Riding Hood has 1 Necromancy aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Equipped''': Items equipped on a visible creature report individually. &amp;quot;Bracers worn by the Big Bad Wolf gives off a Strong aura of Transmutation.&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''Inventory''': Items in a Creature's inventory are reported in one statement at the end of the creature report. &amp;quot;The rest of the auras are in Big Bad Wolf's inventory.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=End of Report=&lt;br /&gt;
&amp;quot;That is all you learn.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3960</id>
		<title>Detect Magic</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3960"/>
				<updated>2023-01-31T02:13:28Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Detect Magic Ingame= &lt;br /&gt;
A caster can detect the magical auras of objects within the spellcone of Detect Magic cast ingame. Objects that will report include certain FX, Doors, Items, Placeables and their inventory, Triggers, Waypoints, Spell Traps, and finally Creatures and their effects and inventory.&lt;br /&gt;
	&lt;br /&gt;
== Concentration Check == &lt;br /&gt;
The amount of information revealed depends on how long you study a particular area or subject. Caster rolls a Concentration Check to determine rounds of study. Checks include Concentration modifiers and buffs. &lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Roll&lt;br /&gt;
! Rounds&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0 Rounds&lt;br /&gt;
| Failure&lt;br /&gt;
|-&lt;br /&gt;
| 2-6&lt;br /&gt;
| 1 Round&lt;br /&gt;
| There is magic within range.&lt;br /&gt;
|-&lt;br /&gt;
| 7-13&lt;br /&gt;
| 2 Rounds&lt;br /&gt;
| Number of auras and the power of the strongest aura.&lt;br /&gt;
|-&lt;br /&gt;
| 14+&lt;br /&gt;
| 3 Rounds&lt;br /&gt;
| Location of auras, and a Spellcraft Check vs. power of item to learn its school of magic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Failure===&lt;br /&gt;
A natural 1, with or without modifiers, means the caster fails their casting and learns nothing.&lt;br /&gt;
&lt;br /&gt;
=== Round 1: There is Magic Within Range ===&lt;br /&gt;
A roll of 2 to 6 earns one round of information that tells the caster simply that there is magic within range. After 1 Round, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 2: Power of Magic ===&lt;br /&gt;
A roll of 7 to 13 earns Round 2 of information: generalized number of auras within range and the strength of the strongest aura. After 2 Rounds, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 3: Location, Individual Power and Possibly School of Magic ===&lt;br /&gt;
A roll of 14+ earns Round 3 of information: the power and location of each aura in range. Also, at this time the caster rolls Spellcraft against the power of each aura to discover the school of the aura.&lt;br /&gt;
&lt;br /&gt;
= Building for Detect Magic =&lt;br /&gt;
Some VFX, Creatures, Doors, Items, Placeables, Triggers and Waypoints (including spell traps) either automatically report or can be set up to report their magical auras to a caster of Detect Magic. &lt;br /&gt;
&lt;br /&gt;
== SpellSchool Variables == &lt;br /&gt;
A builder can add up to three sets of ACR_SPELLSCHOOL, ACR_SUBSCHOOL, and ACR_SPELLPOWER variables to Doors, Placeables, Triggers, and Waypoints to place an aura of any school, subschool and power.  &lt;br /&gt;
&lt;br /&gt;
Sample versions of Doors, Placeables, Triggers, Traps and Waypoints, with the variable slots on them but zeroed out, exist in toolset under the category ALFA_DetectMagic (or ALFA_Traps_Spawn). Builders can change the name, tag, resref, appearance, description of these sample objects to anything. Only the variables are checked by the spell. Placeables do not have to be useable. &lt;br /&gt;
&lt;br /&gt;
To place an aura, only ACR_SPELLSCHOOL and ACR_SPELLPOWER are required. The others are optional and can be left as 0s or empty fields. &lt;br /&gt;
&lt;br /&gt;
=== School of Magic ===&lt;br /&gt;
For instance, if you wish to suggest that a catapult has an ability to hurl fireballs, set ACR_SPELLSCHOOL to 5, for Evocation. If you want to suggest those fireballs are Transmuted magically from some solid fuel, set ACR_SPELLSCHOOL2 to 8, for Transmutation. A further suggestion that the whole thing is protected against good could use ACR_SPELLSCHOOL3 set to 1, for Abjuration.&lt;br /&gt;
&lt;br /&gt;
Variables (and the way they report to the caster) include:&lt;br /&gt;
* '''ACR_SPELLSCHOOL''' (integer) -- &amp;quot;This catapult has an aura of Evocation&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL2''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL3''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation around a central core of stored Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Integer&lt;br /&gt;
! School of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Abjuration &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Conjuration &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Divination &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enchantment &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evocation&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Illusion&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Necromancy&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Transmutation&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| General/Universal Magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SubSchool strings are optional. A builder can enter classifications such as &amp;quot;Sonic&amp;quot; or &amp;quot;Mind-Affecting&amp;quot;, or any subcategory or descriptor of spells. For instance, the hypothetical Catapult of Fireballs could be &amp;quot;Fire&amp;quot; or &amp;quot;Elemental&amp;quot;. Or blank, if you don't want the PC to get that hint.&lt;br /&gt;
* '''ACR_SUBSCHOOL''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL2''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL3''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth) around a central core of stored Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Power of Magic ===&lt;br /&gt;
ACR_SPELLPOWER is required. The other two are only needed if you want multiple schools of magic. Enter the spell level of the spell being represented. For instance, our Catapult of Fireballs would be ACR_SPELLPOWER 3 for Fireball, ACR_SPELLPOWER2 5 for Transmute Rock to Mud (for loading in coal and getting out napalm) and ACR_SPELLPOWER3 8 for Unholy Aura. &lt;br /&gt;
* '''ACR_SPELLPOWER''' (integer)  -- &amp;quot;This catapult has a Faint aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER2''' (integer) -- &amp;quot;This catapult has a Faint aura of Evocation (Fire) and a Moderate aura of Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER3''' (integer) -- &amp;quot;This widget has a Faint aura of Evocation and Moderate Transmutation around a central core of stored Powerful Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell Level&lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 7-9&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 10+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Objects Automatically Detected By Detect Magic =&lt;br /&gt;
Portals, Glyphs and Symbol Traps, Walls of Force, some FX, magical Creatures and Creatures with active spell effects, and Items with standard magical properties will be automatically found by Detect Magic, whether the object is placed in toolset or created on the fly ingame.&lt;br /&gt;
&lt;br /&gt;
==Portals==&lt;br /&gt;
Portals can be triggers or placeables. Placeable portals do not have to be useable at the time of casting Detect Magic. If they have &amp;quot;_portal&amp;quot; in the tag, they will report to the caster as Strong Conjuration.&lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding and Symbol Traps can be triggers or placeables. If they contain certain words in their tags they will report as follows:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Glyph of Warding &lt;br /&gt;
|_glyph_ward&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Pain &lt;br /&gt;
|_symbol_pain&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Sleep &lt;br /&gt;
|_symbol_sleep&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Fear &lt;br /&gt;
|_symbol_fear&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Persuasion &lt;br /&gt;
|_symbol_pers&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Weakness &lt;br /&gt;
|_symbol_weakness&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Stunning &lt;br /&gt;
|_symbol_stun&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Death &lt;br /&gt;
|_symbol_death&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Insanity &lt;br /&gt;
|_symbol_insanity&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Walls of Force == &lt;br /&gt;
Forcefields with &amp;quot;Forcefield&amp;quot; in their names or &amp;quot;forcefield&amp;quot; in their tags are Walls of Force. They will report as Moderate Evocation.&lt;br /&gt;
&lt;br /&gt;
==Visual Effects==&lt;br /&gt;
If placed or spawned without changing their tags, or at least maintaining the portion of the tag noted below, effects will register as follows.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Containment Field&lt;br /&gt;
|_containment&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Wall of Force&lt;br /&gt;
|_force&lt;br /&gt;
|Moderate Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Ioun Stone &lt;br /&gt;
|_ioun&lt;br /&gt;
|Strong Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental &lt;br /&gt;
|_elemental&lt;br /&gt;
|Moderate Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Symbol Projections &lt;br /&gt;
|_proj as well as three letter abbreviation for school (_abj, _con, _div, _enc, _evo, _ill, _nec, _tra)&lt;br /&gt;
|Faint {Insert School}&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Lamp &lt;br /&gt;
|_arcane_lamp_&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Teleport Gem Blue &lt;br /&gt;
|abr_afx_gem_energy_blue (entire tag)&lt;br /&gt;
|Strong Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Other Energy Gems &lt;br /&gt;
|_gem_energy&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spell Traps ==&lt;br /&gt;
More information on tooling traps can be found on the [[ACR_Traps]] page. &lt;br /&gt;
&lt;br /&gt;
Spell Traps, not mechanical traps, will report school and power to the caster based on the spell they cast. &lt;br /&gt;
&lt;br /&gt;
===ACR_TRAP_SPELL_ID===&lt;br /&gt;
If tooled up and placed in toolset, they already have the required spell ID on them. If spawned, they do not. To have a spawning trap report to the caster, its spawnpoint also needs to have the spell ID on it. (Mechanically, even though the tooled up trap has the trap integer on it in toolset and if placed, when it is *spawned* that trap integer disappears so it has to be on the spawnpoint, to register.)&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- Add this to the spawnpoint. Value is the row number of the spell from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
===TRAP ORIGIN ===&lt;br /&gt;
Spell Traps also require a nearby origin point, a Placeable tagged as TRAP_ORIGIN. It can have any appearance. &lt;br /&gt;
&lt;br /&gt;
Spell Traps report auras on both the origin and the location of the trap, which is not always at the origin point. &lt;br /&gt;
&lt;br /&gt;
For instance, a spawned or placed Fireball Trap originating from a burning torch where the flame is a placeable tagged TRAP_ORIGIN would have the ACR_TRAP_SPELL_ID of integer 58. If proximity to the torch itself is the trigger, that radius is already set on a correctly tooled or spawned trap. Origin and trap or trap spawnpoint are put on top of each other. It will report as &amp;quot;Torch Flame 2m to the Southeast gives off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If the trigger is a nearby stone pressure plate, then the origin is the placeable flame and the trap or spawnpoint are placed on the pressure plate. This would report as &amp;quot;Torch Flame 2m to the Southeast and a circle centered on a point 4m West of Torch Flame give off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creatures==&lt;br /&gt;
Creatures are the most complex use case. They can have racial auras, active spell effects, and inventory.&lt;br /&gt;
===Creature Report===&lt;br /&gt;
A creature's report will start with Racial Auras, if any. Next comes a Functioning Spells section, if any spell effects are currently active. After that, the item reports begin, starting with an item summary, then moving to equipped items, and finally a blurb about inventory.&lt;br /&gt;
&lt;br /&gt;
=== Racial Auras ===&lt;br /&gt;
Some Creatures will register automatically. For instance: &amp;quot;Pegasus has a lingering aura of Innate Magic.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Race&lt;br /&gt;
! School&lt;br /&gt;
|-&lt;br /&gt;
|Construct&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Fey&lt;br /&gt;
|Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Magical Beast&lt;br /&gt;
|Innate Magic&lt;br /&gt;
|-&lt;br /&gt;
|Outsider&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Shapechanger&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Undead&lt;br /&gt;
|Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Their power is based on 1/2 their CR. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! CR &lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-6&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 7-12&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 13-20&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 20+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Creatures with Active Spell Effects ===&lt;br /&gt;
PCs or NPCs with active spells will report their aura by cross-referencing the spell effect with the school and level from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
Any active spell will register. Examples:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-&lt;br /&gt;
| Death Ward&lt;br /&gt;
| Necromancy&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| Protection from Evil&lt;br /&gt;
| Aburation&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Invisibility*&lt;br /&gt;
| Illusion&lt;br /&gt;
| Faint/Moderate/Strong&lt;br /&gt;
|-&lt;br /&gt;
| Detect Scrying&lt;br /&gt;
| Divination&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| See Invisibility&lt;br /&gt;
| Divination&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Wildshape&lt;br /&gt;
| Transmutation&lt;br /&gt;
| Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Invisible creatures report only location of auras, not that they are on a creature or that creature's name.&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
===SpellSchool Variables===&lt;br /&gt;
Like other objects, items can have up to three sets of [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables SpellSchool Variables] added manually, but these should be used sparingly, since Item auras also automatically report based on their item properties. An Item ''can'' have both automatically reporting properties and SpellSchool properties, but use SpellSchool variables only:&lt;br /&gt;
&lt;br /&gt;
*'''No matching item property:''' If a builder wants to add an aura that no item property automatically generates;&lt;br /&gt;
*'''Cast Unique:''' To supplement the aura information for items with the item properties: Cast Spell: Unique Power, or Cast Spell: Unique Power Self Only, or Cast Spell: On Hit. These properties each call tag-based event scripts that Detect Magic can't read, and which it will report as &amp;quot;This item has a complex aura of arcanity.&amp;quot; Add SpellSchool variables to explicate the complex aura.&lt;br /&gt;
&lt;br /&gt;
For instance: a builder has created a spoon that magically sweetens any porridge it scoops up. The item property Cast Spell: Unique Power is placed on the spoon, which calls event script i_spoon_ac. The caster will get the &amp;quot;complex aura&amp;quot; message, and if the builder places an ACR_SPELLSCHOOL of 8 and an ACR_SPELLPOWER of 1 on the spoon, will also get a Faint Transmutation aura to represent the famous Transmutation spell: ''Sugar Hit''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise, Items report automatically based on the following guidelines.&lt;br /&gt;
&lt;br /&gt;
===Tag Based Auras===&lt;br /&gt;
Some items return an aura based on their tag, rather than their properties. Note: These items can have other properties, too, but will return at least the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-	&lt;br /&gt;
|Holy Symbol &lt;br /&gt;
|Abjuration &lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Scrying Multi-Tool &lt;br /&gt;
|Universal &lt;br /&gt;
|Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Spell Casting Properties===&lt;br /&gt;
Any item that casts any spell is cross-referenced against the Item Property Spells 2DA and the Spells 2DA to get school and power.&lt;br /&gt;
&lt;br /&gt;
===Enhancement Properties===&lt;br /&gt;
The SRD under Magic Items and Detect Magic says:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
|-									    &lt;br /&gt;
|Armor and protection items&lt;br /&gt;
|Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Weapons or offensive items&lt;br /&gt;
|Evocation&lt;br /&gt;
|-	&lt;br /&gt;
|Bonus to ability score, on skill check, etc.&lt;br /&gt;
|Transmutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power is based on amount of enhancement:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Enhancement&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
| +1&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
| +2&lt;br /&gt;
|Moderate&lt;br /&gt;
|-	&lt;br /&gt;
| +3&lt;br /&gt;
|Strong&lt;br /&gt;
|-	&lt;br /&gt;
| +4&lt;br /&gt;
|Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Properties===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Property&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
|Bonus Feat&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Bonus HP&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Darkvision&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Freedom of Movement&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|Haste&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Damage Type&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Misc&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Spell Level&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Improved Evasion&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Light&lt;br /&gt;
|Evocation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Regeneration&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Spell Resistance&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|True Seeing&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===Loose Items ===&lt;br /&gt;
&lt;br /&gt;
Items on the ground or otherwise outside of a container or creature's inventory report individually, just like any other object.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A Tower Shield 10m Northwest gives off an aura of Moderate Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items in a Placeable===&lt;br /&gt;
Placeables report their items based on whether they are open or closed. &amp;quot;Something in Chest 5m to the South gives off a Moderate aura of Conjuration.&amp;quot; Or &amp;quot;An unidentified potion in a Chest 5m to the South gives off a Moderate aura of Conjuration. &amp;quot;Or if identified because the PC recognizes it &amp;quot;A Cure Moderate Wounds potion in a Chest gives off a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items on Creatures===&lt;br /&gt;
&lt;br /&gt;
'''Summary''': Creatures generate a more complex item report than any other object type. The first part of the Creature Item report is a summary of how many auras of each school of magic surround the creature. &amp;quot;Little Red Riding Hood has around half a dozen Abjuration auras. Little Red Riding Hood has 1 Necromancy aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Equipped''': Items equipped on a visible creature report individually. &amp;quot;Bracers worn by the Big Bad Wolf gives off a Strong aura of Transmutation.&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''Inventory''': Items in a Creature's inventory are reported in one statement at the end of the creature report. &amp;quot;The rest of the auras are in Big Bad Wolf's inventory.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=End of Report=&lt;br /&gt;
&amp;quot;That is all you learn.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3959</id>
		<title>Detect Magic</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3959"/>
				<updated>2023-01-31T02:12:38Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* SpellSchool Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Detect Magic Ingame= &lt;br /&gt;
A caster can detect the magical auras of objects within the spellcone of Detect Magic cast ingame. Objects that will report include certain FX, Doors, Items, Placeables and their inventory, Triggers, Waypoints, Spell Traps, and finally Creatures and their effects and inventory.&lt;br /&gt;
	&lt;br /&gt;
== Concentration Check == &lt;br /&gt;
The amount of information revealed depends on how long you study a particular area or subject. Caster rolls a Concentration Check to determine rounds of study. Checks include Concentration modifiers and buffs. &lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Roll&lt;br /&gt;
! Rounds&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0 Rounds&lt;br /&gt;
| Failure&lt;br /&gt;
|-&lt;br /&gt;
| 2-6&lt;br /&gt;
| 1 Round&lt;br /&gt;
| There is magic within range.&lt;br /&gt;
|-&lt;br /&gt;
| 7-13&lt;br /&gt;
| 2 Rounds&lt;br /&gt;
| Number of auras and the power of the strongest aura.&lt;br /&gt;
|-&lt;br /&gt;
| 14+&lt;br /&gt;
| 3 Rounds&lt;br /&gt;
| Location of auras, and a Spellcraft Check vs. power of item to learn its school of magic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Failure===&lt;br /&gt;
A natural 1, with or without modifiers, means the caster fails their casting and learns nothing.&lt;br /&gt;
&lt;br /&gt;
=== Round 1: There is Magic Within Range ===&lt;br /&gt;
A roll of 2 to 6 earns one round of information that tells the caster simply that there is magic within range. After 1 Round, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 2: Power of Magic ===&lt;br /&gt;
A roll of 7 to 13 earns Round 2 of information: generalized number of auras within range and the strength of the strongest aura. After 2 Rounds, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 3: Location, Individual Power and Possibly School of Magic ===&lt;br /&gt;
A roll of 14+ earns Round 3 of information: the power and location of each aura in range. Also, at this time the caster rolls Spellcraft against the power of each aura to discover the school of the aura.&lt;br /&gt;
&lt;br /&gt;
= Building for Detect Magic =&lt;br /&gt;
Some VFX, Creatures, Doors, Items, Placeables, Triggers and Waypoints (including spell traps) either automatically report or can be set up to report their magical auras to a caster of Detect Magic. &lt;br /&gt;
&lt;br /&gt;
== SpellSchool Variables == &lt;br /&gt;
A builder can add up to three sets of ACR_SPELLSCHOOL, ACR_SUBSCHOOL, and ACR_SPELLPOWER variables to Doors, Placeables, Triggers, and Waypoints to place an aura of any school, subschool and power.  &lt;br /&gt;
&lt;br /&gt;
Sample versions of Doors, Placeables, Triggers, Traps and Waypoints, with the variable slots on them but zeroed out, exist in toolset under the category ALFA_DetectMagic (or ALFA_Traps_Spawn). Builders can change the name, tag, resref, appearance, description of these sample objects to anything. Only the variables are checked by the spell. Placeables do not have to be useable. &lt;br /&gt;
&lt;br /&gt;
To place an aura, only ACR_SPELLSCHOOL and ACR_SPELLPOWER are required. The others are optional and can be left as 0s or empty fields. &lt;br /&gt;
&lt;br /&gt;
=== School of Magic ===&lt;br /&gt;
For instance, if you wish to suggest that a catapult has an ability to hurl fireballs, set ACR_SPELLSCHOOL to 5, for Evocation. If you want to suggest those fireballs are Transmuted magically from some solid fuel, set ACR_SPELLSCHOOL2 to 8, for Transmutation. A further suggestion that the whole thing is protected against good could use ACR_SPELLSCHOOL3 set to 1, for Abjuration.&lt;br /&gt;
&lt;br /&gt;
Variables (and the way they report to the caster) include:&lt;br /&gt;
* '''ACR_SPELLSCHOOL''' (integer) -- &amp;quot;This catapult has an aura of Evocation&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL2''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL3''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation around a central core of stored Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Integer&lt;br /&gt;
! School of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Abjuration &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Conjuration &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Divination &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enchantment &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evocation&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Illusion&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Necromancy&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Transmutation&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| General/Universal Magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SubSchool strings are optional. A builder can enter classifications such as &amp;quot;Sonic&amp;quot; or &amp;quot;Mind-Affecting&amp;quot;, or any subcategory or descriptor of spells. For instance, the hypothetical Catapult of Fireballs could be &amp;quot;Fire&amp;quot; or &amp;quot;Elemental&amp;quot;. Or blank, if you don't want the PC to get that hint.&lt;br /&gt;
* '''ACR_SUBSCHOOL''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL2''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL3''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth) around a central core of stored Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Power of Magic ===&lt;br /&gt;
ACR_SPELLPOWER is required. The other two are only needed if you want multiple schools of magic. Enter the spell level of the spell being represented. For instance, our Catapult of Fireballs would be ACR_SPELLPOWER 3 for Fireball, ACR_SPELLPOWER2 5 for Transmute Rock to Mud (for loading in coal and getting out napalm) and ACR_SPELLPOWER3 8 for Unholy Aura. &lt;br /&gt;
* '''ACR_SPELLPOWER''' (integer)  -- &amp;quot;This catapult has a Faint aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER2''' (integer) -- &amp;quot;This catapult has a Faint aura of Evocation (Fire) and a Moderate aura of Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER3''' (integer) -- &amp;quot;This widget has a Faint aura of Evocation and Moderate Transmutation around a central core of stored Powerful Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell Level&lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 7-9&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 10+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Objects Automatically Detected By Detect Magic =&lt;br /&gt;
Portals, Glyphs and Symbol Traps, Walls of Force, some FX, magical Creatures and Creatures with active spell effects, and Items with standard magical properties will be automatically found by Detect Magic, whether the object is placed in toolset or created on the fly ingame.&lt;br /&gt;
&lt;br /&gt;
==Portals==&lt;br /&gt;
Portals can be triggers or placeables. If they have &amp;quot;_portal&amp;quot; in the tag, they will report to the caster as Strong Conjuration. &lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding and Symbol Traps can be triggers or placeables. If they contain certain words in their tags they will report as follows:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Glyph of Warding &lt;br /&gt;
|_glyph_ward&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Pain &lt;br /&gt;
|_symbol_pain&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Sleep &lt;br /&gt;
|_symbol_sleep&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Fear &lt;br /&gt;
|_symbol_fear&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Persuasion &lt;br /&gt;
|_symbol_pers&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Weakness &lt;br /&gt;
|_symbol_weakness&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Stunning &lt;br /&gt;
|_symbol_stun&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Death &lt;br /&gt;
|_symbol_death&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Insanity &lt;br /&gt;
|_symbol_insanity&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Walls of Force == &lt;br /&gt;
Forcefields with &amp;quot;Forcefield&amp;quot; in their names or &amp;quot;forcefield&amp;quot; in their tags are Walls of Force. They will report as Moderate Evocation.&lt;br /&gt;
&lt;br /&gt;
==Visual Effects==&lt;br /&gt;
If placed or spawned without changing their tags, or at least maintaining the portion of the tag noted below, effects will register as follows.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Containment Field&lt;br /&gt;
|_containment&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Wall of Force&lt;br /&gt;
|_force&lt;br /&gt;
|Moderate Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Ioun Stone &lt;br /&gt;
|_ioun&lt;br /&gt;
|Strong Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental &lt;br /&gt;
|_elemental&lt;br /&gt;
|Moderate Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Symbol Projections &lt;br /&gt;
|_proj as well as three letter abbreviation for school (_abj, _con, _div, _enc, _evo, _ill, _nec, _tra)&lt;br /&gt;
|Faint {Insert School}&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Lamp &lt;br /&gt;
|_arcane_lamp_&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Teleport Gem Blue &lt;br /&gt;
|abr_afx_gem_energy_blue (entire tag)&lt;br /&gt;
|Strong Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Other Energy Gems &lt;br /&gt;
|_gem_energy&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spell Traps ==&lt;br /&gt;
More information on tooling traps can be found on the [[ACR_Traps]] page. &lt;br /&gt;
&lt;br /&gt;
Spell Traps, not mechanical traps, will report school and power to the caster based on the spell they cast. &lt;br /&gt;
&lt;br /&gt;
===ACR_TRAP_SPELL_ID===&lt;br /&gt;
If tooled up and placed in toolset, they already have the required spell ID on them. If spawned, they do not. To have a spawning trap report to the caster, its spawnpoint also needs to have the spell ID on it. (Mechanically, even though the tooled up trap has the trap integer on it in toolset and if placed, when it is *spawned* that trap integer disappears so it has to be on the spawnpoint, to register.)&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- Add this to the spawnpoint. Value is the row number of the spell from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
===TRAP ORIGIN ===&lt;br /&gt;
Spell Traps also require a nearby origin point, a Placeable tagged as TRAP_ORIGIN. It can have any appearance. &lt;br /&gt;
&lt;br /&gt;
Spell Traps report auras on both the origin and the location of the trap, which is not always at the origin point. &lt;br /&gt;
&lt;br /&gt;
For instance, a spawned or placed Fireball Trap originating from a burning torch where the flame is a placeable tagged TRAP_ORIGIN would have the ACR_TRAP_SPELL_ID of integer 58. If proximity to the torch itself is the trigger, that radius is already set on a correctly tooled or spawned trap. Origin and trap or trap spawnpoint are put on top of each other. It will report as &amp;quot;Torch Flame 2m to the Southeast gives off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If the trigger is a nearby stone pressure plate, then the origin is the placeable flame and the trap or spawnpoint are placed on the pressure plate. This would report as &amp;quot;Torch Flame 2m to the Southeast and a circle centered on a point 4m West of Torch Flame give off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creatures==&lt;br /&gt;
Creatures are the most complex use case. They can have racial auras, active spell effects, and inventory.&lt;br /&gt;
===Creature Report===&lt;br /&gt;
A creature's report will start with Racial Auras, if any. Next comes a Functioning Spells section, if any spell effects are currently active. After that, the item reports begin, starting with an item summary, then moving to equipped items, and finally a blurb about inventory.&lt;br /&gt;
&lt;br /&gt;
=== Racial Auras ===&lt;br /&gt;
Some Creatures will register automatically. For instance: &amp;quot;Pegasus has a lingering aura of Innate Magic.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Race&lt;br /&gt;
! School&lt;br /&gt;
|-&lt;br /&gt;
|Construct&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Fey&lt;br /&gt;
|Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Magical Beast&lt;br /&gt;
|Innate Magic&lt;br /&gt;
|-&lt;br /&gt;
|Outsider&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Shapechanger&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Undead&lt;br /&gt;
|Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Their power is based on 1/2 their CR. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! CR &lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-6&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 7-12&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 13-20&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 20+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Creatures with Active Spell Effects ===&lt;br /&gt;
PCs or NPCs with active spells will report their aura by cross-referencing the spell effect with the school and level from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
Any active spell will register. Examples:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-&lt;br /&gt;
| Death Ward&lt;br /&gt;
| Necromancy&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| Protection from Evil&lt;br /&gt;
| Aburation&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Invisibility*&lt;br /&gt;
| Illusion&lt;br /&gt;
| Faint/Moderate/Strong&lt;br /&gt;
|-&lt;br /&gt;
| Detect Scrying&lt;br /&gt;
| Divination&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| See Invisibility&lt;br /&gt;
| Divination&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Wildshape&lt;br /&gt;
| Transmutation&lt;br /&gt;
| Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Invisible creatures report only location of auras, not that they are on a creature or that creature's name.&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
===SpellSchool Variables===&lt;br /&gt;
Like other objects, items can have up to three sets of [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables SpellSchool Variables] added manually, but these should be used sparingly, since Item auras also automatically report based on their item properties. An Item ''can'' have both automatically reporting properties and SpellSchool properties, but use SpellSchool variables only:&lt;br /&gt;
&lt;br /&gt;
*'''No matching item property:''' If a builder wants to add an aura that no item property automatically generates;&lt;br /&gt;
*'''Cast Unique:''' To supplement the aura information for items with the item properties: Cast Spell: Unique Power, or Cast Spell: Unique Power Self Only, or Cast Spell: On Hit. These properties each call tag-based event scripts that Detect Magic can't read, and which it will report as &amp;quot;This item has a complex aura of arcanity.&amp;quot; Add SpellSchool variables to explicate the complex aura.&lt;br /&gt;
&lt;br /&gt;
For instance: a builder has created a spoon that magically sweetens any porridge it scoops up. The item property Cast Spell: Unique Power is placed on the spoon, which calls event script i_spoon_ac. The caster will get the &amp;quot;complex aura&amp;quot; message, and if the builder places an ACR_SPELLSCHOOL of 8 and an ACR_SPELLPOWER of 1 on the spoon, will also get a Faint Transmutation aura to represent the famous Transmutation spell: ''Sugar Hit''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise, Items report automatically based on the following guidelines.&lt;br /&gt;
&lt;br /&gt;
===Tag Based Auras===&lt;br /&gt;
Some items return an aura based on their tag, rather than their properties. Note: These items can have other properties, too, but will return at least the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-	&lt;br /&gt;
|Holy Symbol &lt;br /&gt;
|Abjuration &lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Scrying Multi-Tool &lt;br /&gt;
|Universal &lt;br /&gt;
|Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Spell Casting Properties===&lt;br /&gt;
Any item that casts any spell is cross-referenced against the Item Property Spells 2DA and the Spells 2DA to get school and power.&lt;br /&gt;
&lt;br /&gt;
===Enhancement Properties===&lt;br /&gt;
The SRD under Magic Items and Detect Magic says:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
|-									    &lt;br /&gt;
|Armor and protection items&lt;br /&gt;
|Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Weapons or offensive items&lt;br /&gt;
|Evocation&lt;br /&gt;
|-	&lt;br /&gt;
|Bonus to ability score, on skill check, etc.&lt;br /&gt;
|Transmutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power is based on amount of enhancement:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Enhancement&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
| +1&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
| +2&lt;br /&gt;
|Moderate&lt;br /&gt;
|-	&lt;br /&gt;
| +3&lt;br /&gt;
|Strong&lt;br /&gt;
|-	&lt;br /&gt;
| +4&lt;br /&gt;
|Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Properties===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Property&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
|Bonus Feat&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Bonus HP&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Darkvision&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Freedom of Movement&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|Haste&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Damage Type&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Misc&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Spell Level&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Improved Evasion&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Light&lt;br /&gt;
|Evocation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Regeneration&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Spell Resistance&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|True Seeing&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===Loose Items ===&lt;br /&gt;
&lt;br /&gt;
Items on the ground or otherwise outside of a container or creature's inventory report individually, just like any other object.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A Tower Shield 10m Northwest gives off an aura of Moderate Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items in a Placeable===&lt;br /&gt;
Placeables report their items based on whether they are open or closed. &amp;quot;Something in Chest 5m to the South gives off a Moderate aura of Conjuration.&amp;quot; Or &amp;quot;An unidentified potion in a Chest 5m to the South gives off a Moderate aura of Conjuration. &amp;quot;Or if identified because the PC recognizes it &amp;quot;A Cure Moderate Wounds potion in a Chest gives off a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items on Creatures===&lt;br /&gt;
&lt;br /&gt;
'''Summary''': Creatures generate a more complex item report than any other object type. The first part of the Creature Item report is a summary of how many auras of each school of magic surround the creature. &amp;quot;Little Red Riding Hood has around half a dozen Abjuration auras. Little Red Riding Hood has 1 Necromancy aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Equipped''': Items equipped on a visible creature report individually. &amp;quot;Bracers worn by the Big Bad Wolf gives off a Strong aura of Transmutation.&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''Inventory''': Items in a Creature's inventory are reported in one statement at the end of the creature report. &amp;quot;The rest of the auras are in Big Bad Wolf's inventory.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=End of Report=&lt;br /&gt;
&amp;quot;That is all you learn.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3958</id>
		<title>Detect Magic</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3958"/>
				<updated>2023-01-30T22:45:24Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* SpellSchool Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Detect Magic Ingame= &lt;br /&gt;
A caster can detect the magical auras of objects within the spellcone of Detect Magic cast ingame. Objects that will report include certain FX, Doors, Items, Placeables and their inventory, Triggers, Waypoints, Spell Traps, and finally Creatures and their effects and inventory.&lt;br /&gt;
	&lt;br /&gt;
== Concentration Check == &lt;br /&gt;
The amount of information revealed depends on how long you study a particular area or subject. Caster rolls a Concentration Check to determine rounds of study. Checks include Concentration modifiers and buffs. &lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Roll&lt;br /&gt;
! Rounds&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0 Rounds&lt;br /&gt;
| Failure&lt;br /&gt;
|-&lt;br /&gt;
| 2-6&lt;br /&gt;
| 1 Round&lt;br /&gt;
| There is magic within range.&lt;br /&gt;
|-&lt;br /&gt;
| 7-13&lt;br /&gt;
| 2 Rounds&lt;br /&gt;
| Number of auras and the power of the strongest aura.&lt;br /&gt;
|-&lt;br /&gt;
| 14+&lt;br /&gt;
| 3 Rounds&lt;br /&gt;
| Location of auras, and a Spellcraft Check vs. power of item to learn its school of magic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Failure===&lt;br /&gt;
A natural 1, with or without modifiers, means the caster fails their casting and learns nothing.&lt;br /&gt;
&lt;br /&gt;
=== Round 1: There is Magic Within Range ===&lt;br /&gt;
A roll of 2 to 6 earns one round of information that tells the caster simply that there is magic within range. After 1 Round, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 2: Power of Magic ===&lt;br /&gt;
A roll of 7 to 13 earns Round 2 of information: generalized number of auras within range and the strength of the strongest aura. After 2 Rounds, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 3: Location, Individual Power and Possibly School of Magic ===&lt;br /&gt;
A roll of 14+ earns Round 3 of information: the power and location of each aura in range. Also, at this time the caster rolls Spellcraft against the power of each aura to discover the school of the aura.&lt;br /&gt;
&lt;br /&gt;
= Building for Detect Magic =&lt;br /&gt;
Some VFX, Creatures, Doors, Items, Placeables, Triggers and Waypoints (including spell traps) either automatically report or can be set up to report their magical auras to a caster of Detect Magic. &lt;br /&gt;
&lt;br /&gt;
== SpellSchool Variables == &lt;br /&gt;
A builder can add up to three sets of ACR_SPELLSCHOOL, ACR_SUBSCHOOL, and ACR_SPELLPOWER variables to Doors, Placeables, Triggers, and Waypoints to place an aura of any school, subschool and power.  &lt;br /&gt;
&lt;br /&gt;
Sample versions of Doors, Placeables, Triggers, Traps and Waypoints, with the variable slots on them but zeroed out, exist in toolset under the category ALFA_DetectMagic (or ALFA_Traps_Spawn). Builders can change the name, tag, resref, appearance, description of these sample objects to anything. Only the variables are checked by the spell.&lt;br /&gt;
&lt;br /&gt;
To place an aura, only ACR_SPELLSCHOOL and ACR_SPELLPOWER are required. The others are optional and can be left as 0s or empty fields. &lt;br /&gt;
&lt;br /&gt;
=== School of Magic ===&lt;br /&gt;
For instance, if you wish to suggest that a catapult has an ability to hurl fireballs, set ACR_SPELLSCHOOL to 5, for Evocation. If you want to suggest those fireballs are Transmuted magically from some solid fuel, set ACR_SPELLSCHOOL2 to 8, for Transmutation. A further suggestion that the whole thing is protected against good could use ACR_SPELLSCHOOL3 set to 1, for Abjuration.&lt;br /&gt;
&lt;br /&gt;
Variables (and the way they report to the caster) include:&lt;br /&gt;
* '''ACR_SPELLSCHOOL''' (integer) -- &amp;quot;This catapult has an aura of Evocation&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL2''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL3''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation around a central core of stored Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Integer&lt;br /&gt;
! School of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Abjuration &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Conjuration &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Divination &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enchantment &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evocation&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Illusion&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Necromancy&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Transmutation&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| General/Universal Magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SubSchool strings are optional. A builder can enter classifications such as &amp;quot;Sonic&amp;quot; or &amp;quot;Mind-Affecting&amp;quot;, or any subcategory or descriptor of spells. For instance, the hypothetical Catapult of Fireballs could be &amp;quot;Fire&amp;quot; or &amp;quot;Elemental&amp;quot;. Or blank, if you don't want the PC to get that hint.&lt;br /&gt;
* '''ACR_SUBSCHOOL''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL2''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL3''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth) around a central core of stored Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Power of Magic ===&lt;br /&gt;
ACR_SPELLPOWER is required. The other two are only needed if you want multiple schools of magic. Enter the spell level of the spell being represented. For instance, our Catapult of Fireballs would be ACR_SPELLPOWER 3 for Fireball, ACR_SPELLPOWER2 5 for Transmute Rock to Mud (for loading in coal and getting out napalm) and ACR_SPELLPOWER3 8 for Unholy Aura. &lt;br /&gt;
* '''ACR_SPELLPOWER''' (integer)  -- &amp;quot;This catapult has a Faint aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER2''' (integer) -- &amp;quot;This catapult has a Faint aura of Evocation (Fire) and a Moderate aura of Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER3''' (integer) -- &amp;quot;This widget has a Faint aura of Evocation and Moderate Transmutation around a central core of stored Powerful Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell Level&lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 7-9&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 10+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Objects Automatically Detected By Detect Magic =&lt;br /&gt;
Portals, Glyphs and Symbol Traps, Walls of Force, some FX, magical Creatures and Creatures with active spell effects, and Items with standard magical properties will be automatically found by Detect Magic, whether the object is placed in toolset or created on the fly ingame.&lt;br /&gt;
&lt;br /&gt;
==Portals==&lt;br /&gt;
Portals can be triggers or placeables. If they have &amp;quot;_portal&amp;quot; in the tag, they will report to the caster as Strong Conjuration. &lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding and Symbol Traps can be triggers or placeables. If they contain certain words in their tags they will report as follows:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Glyph of Warding &lt;br /&gt;
|_glyph_ward&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Pain &lt;br /&gt;
|_symbol_pain&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Sleep &lt;br /&gt;
|_symbol_sleep&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Fear &lt;br /&gt;
|_symbol_fear&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Persuasion &lt;br /&gt;
|_symbol_pers&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Weakness &lt;br /&gt;
|_symbol_weakness&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Stunning &lt;br /&gt;
|_symbol_stun&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Death &lt;br /&gt;
|_symbol_death&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Insanity &lt;br /&gt;
|_symbol_insanity&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Walls of Force == &lt;br /&gt;
Forcefields with &amp;quot;Forcefield&amp;quot; in their names or &amp;quot;forcefield&amp;quot; in their tags are Walls of Force. They will report as Moderate Evocation.&lt;br /&gt;
&lt;br /&gt;
==Visual Effects==&lt;br /&gt;
If placed or spawned without changing their tags, or at least maintaining the portion of the tag noted below, effects will register as follows.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Containment Field&lt;br /&gt;
|_containment&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Wall of Force&lt;br /&gt;
|_force&lt;br /&gt;
|Moderate Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Ioun Stone &lt;br /&gt;
|_ioun&lt;br /&gt;
|Strong Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental &lt;br /&gt;
|_elemental&lt;br /&gt;
|Moderate Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Symbol Projections &lt;br /&gt;
|_proj as well as three letter abbreviation for school (_abj, _con, _div, _enc, _evo, _ill, _nec, _tra)&lt;br /&gt;
|Faint {Insert School}&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Lamp &lt;br /&gt;
|_arcane_lamp_&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Teleport Gem Blue &lt;br /&gt;
|abr_afx_gem_energy_blue (entire tag)&lt;br /&gt;
|Strong Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Other Energy Gems &lt;br /&gt;
|_gem_energy&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spell Traps ==&lt;br /&gt;
More information on tooling traps can be found on the [[ACR_Traps]] page. &lt;br /&gt;
&lt;br /&gt;
Spell Traps, not mechanical traps, will report school and power to the caster based on the spell they cast. &lt;br /&gt;
&lt;br /&gt;
===ACR_TRAP_SPELL_ID===&lt;br /&gt;
If tooled up and placed in toolset, they already have the required spell ID on them. If spawned, they do not. To have a spawning trap report to the caster, its spawnpoint also needs to have the spell ID on it. (Mechanically, even though the tooled up trap has the trap integer on it in toolset and if placed, when it is *spawned* that trap integer disappears so it has to be on the spawnpoint, to register.)&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- Add this to the spawnpoint. Value is the row number of the spell from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
===TRAP ORIGIN ===&lt;br /&gt;
Spell Traps also require a nearby origin point, a Placeable tagged as TRAP_ORIGIN. It can have any appearance. &lt;br /&gt;
&lt;br /&gt;
Spell Traps report auras on both the origin and the location of the trap, which is not always at the origin point. &lt;br /&gt;
&lt;br /&gt;
For instance, a spawned or placed Fireball Trap originating from a burning torch where the flame is a placeable tagged TRAP_ORIGIN would have the ACR_TRAP_SPELL_ID of integer 58. If proximity to the torch itself is the trigger, that radius is already set on a correctly tooled or spawned trap. Origin and trap or trap spawnpoint are put on top of each other. It will report as &amp;quot;Torch Flame 2m to the Southeast gives off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If the trigger is a nearby stone pressure plate, then the origin is the placeable flame and the trap or spawnpoint are placed on the pressure plate. This would report as &amp;quot;Torch Flame 2m to the Southeast and a circle centered on a point 4m West of Torch Flame give off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creatures==&lt;br /&gt;
Creatures are the most complex use case. They can have racial auras, active spell effects, and inventory.&lt;br /&gt;
===Creature Report===&lt;br /&gt;
A creature's report will start with Racial Auras, if any. Next comes a Functioning Spells section, if any spell effects are currently active. After that, the item reports begin, starting with an item summary, then moving to equipped items, and finally a blurb about inventory.&lt;br /&gt;
&lt;br /&gt;
=== Racial Auras ===&lt;br /&gt;
Some Creatures will register automatically. For instance: &amp;quot;Pegasus has a lingering aura of Innate Magic.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Race&lt;br /&gt;
! School&lt;br /&gt;
|-&lt;br /&gt;
|Construct&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Fey&lt;br /&gt;
|Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Magical Beast&lt;br /&gt;
|Innate Magic&lt;br /&gt;
|-&lt;br /&gt;
|Outsider&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Shapechanger&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Undead&lt;br /&gt;
|Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Their power is based on 1/2 their CR. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! CR &lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-6&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 7-12&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 13-20&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 20+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Creatures with Active Spell Effects ===&lt;br /&gt;
PCs or NPCs with active spells will report their aura by cross-referencing the spell effect with the school and level from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
Any active spell will register. Examples:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-&lt;br /&gt;
| Death Ward&lt;br /&gt;
| Necromancy&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| Protection from Evil&lt;br /&gt;
| Aburation&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Invisibility*&lt;br /&gt;
| Illusion&lt;br /&gt;
| Faint/Moderate/Strong&lt;br /&gt;
|-&lt;br /&gt;
| Detect Scrying&lt;br /&gt;
| Divination&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| See Invisibility&lt;br /&gt;
| Divination&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Wildshape&lt;br /&gt;
| Transmutation&lt;br /&gt;
| Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Invisible creatures report only location of auras, not that they are on a creature or that creature's name.&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
===SpellSchool Variables===&lt;br /&gt;
Like other objects, items can have up to three sets of [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables SpellSchool Variables] added manually, but these should be used sparingly, since Item auras also automatically report based on their item properties. An Item ''can'' have both automatically reporting properties and SpellSchool properties, but use SpellSchool variables only:&lt;br /&gt;
&lt;br /&gt;
*'''No matching item property:''' If a builder wants to add an aura that no item property automatically generates;&lt;br /&gt;
*'''Cast Unique:''' To supplement the aura information for items with the item properties: Cast Spell: Unique Power, or Cast Spell: Unique Power Self Only, or Cast Spell: On Hit. These properties each call tag-based event scripts that Detect Magic can't read, and which it will report as &amp;quot;This item has a complex aura of arcanity.&amp;quot; Add SpellSchool variables to explicate the complex aura.&lt;br /&gt;
&lt;br /&gt;
For instance: a builder has created a spoon that magically sweetens any porridge it scoops up. The item property Cast Spell: Unique Power is placed on the spoon, which calls event script i_spoon_ac. The caster will get the &amp;quot;complex aura&amp;quot; message, and if the builder places an ACR_SPELLSCHOOL of 8 and an ACR_SPELLPOWER of 1 on the spoon, will also get a Faint Transmutation aura to represent the famous Transmutation spell: ''Sugar Hit''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise, Items report automatically based on the following guidelines.&lt;br /&gt;
&lt;br /&gt;
===Tag Based Auras===&lt;br /&gt;
Some items return an aura based on their tag, rather than their properties. Note: These items can have other properties, too, but will return at least the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-	&lt;br /&gt;
|Holy Symbol &lt;br /&gt;
|Abjuration &lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Scrying Multi-Tool &lt;br /&gt;
|Universal &lt;br /&gt;
|Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Spell Casting Properties===&lt;br /&gt;
Any item that casts any spell is cross-referenced against the Item Property Spells 2DA and the Spells 2DA to get school and power.&lt;br /&gt;
&lt;br /&gt;
===Enhancement Properties===&lt;br /&gt;
The SRD under Magic Items and Detect Magic says:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
|-									    &lt;br /&gt;
|Armor and protection items&lt;br /&gt;
|Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Weapons or offensive items&lt;br /&gt;
|Evocation&lt;br /&gt;
|-	&lt;br /&gt;
|Bonus to ability score, on skill check, etc.&lt;br /&gt;
|Transmutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power is based on amount of enhancement:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Enhancement&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
| +1&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
| +2&lt;br /&gt;
|Moderate&lt;br /&gt;
|-	&lt;br /&gt;
| +3&lt;br /&gt;
|Strong&lt;br /&gt;
|-	&lt;br /&gt;
| +4&lt;br /&gt;
|Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Properties===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Property&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
|Bonus Feat&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Bonus HP&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Darkvision&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Freedom of Movement&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|Haste&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Damage Type&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Misc&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Spell Level&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Improved Evasion&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Light&lt;br /&gt;
|Evocation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Regeneration&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Spell Resistance&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|True Seeing&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===Loose Items ===&lt;br /&gt;
&lt;br /&gt;
Items on the ground or otherwise outside of a container or creature's inventory report individually, just like any other object.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A Tower Shield 10m Northwest gives off an aura of Moderate Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items in a Placeable===&lt;br /&gt;
Placeables report their items based on whether they are open or closed. &amp;quot;Something in Chest 5m to the South gives off a Moderate aura of Conjuration.&amp;quot; Or &amp;quot;An unidentified potion in a Chest 5m to the South gives off a Moderate aura of Conjuration. &amp;quot;Or if identified because the PC recognizes it &amp;quot;A Cure Moderate Wounds potion in a Chest gives off a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items on Creatures===&lt;br /&gt;
&lt;br /&gt;
'''Summary''': Creatures generate a more complex item report than any other object type. The first part of the Creature Item report is a summary of how many auras of each school of magic surround the creature. &amp;quot;Little Red Riding Hood has around half a dozen Abjuration auras. Little Red Riding Hood has 1 Necromancy aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Equipped''': Items equipped on a visible creature report individually. &amp;quot;Bracers worn by the Big Bad Wolf gives off a Strong aura of Transmutation.&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''Inventory''': Items in a Creature's inventory are reported in one statement at the end of the creature report. &amp;quot;The rest of the auras are in Big Bad Wolf's inventory.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=End of Report=&lt;br /&gt;
&amp;quot;That is all you learn.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3954</id>
		<title>Detect Magic</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3954"/>
				<updated>2023-01-30T22:25:14Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* SpellSchool Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Detect Magic Ingame= &lt;br /&gt;
A caster can detect the magical auras of objects within the spellcone of Detect Magic cast ingame. Objects that will report include certain FX, Doors, Items, Placeables and their inventory, Triggers, Waypoints, Spell Traps, and finally Creatures and their effects and inventory.&lt;br /&gt;
	&lt;br /&gt;
== Concentration Check == &lt;br /&gt;
The amount of information revealed depends on how long you study a particular area or subject. Caster rolls a Concentration Check to determine rounds of study. Checks include Concentration modifiers and buffs. &lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Roll&lt;br /&gt;
! Rounds&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0 Rounds&lt;br /&gt;
| Failure&lt;br /&gt;
|-&lt;br /&gt;
| 2-6&lt;br /&gt;
| 1 Round&lt;br /&gt;
| There is magic within range.&lt;br /&gt;
|-&lt;br /&gt;
| 7-13&lt;br /&gt;
| 2 Rounds&lt;br /&gt;
| Number of auras and the power of the strongest aura.&lt;br /&gt;
|-&lt;br /&gt;
| 14+&lt;br /&gt;
| 3 Rounds&lt;br /&gt;
| Location of auras, and a Spellcraft Check vs. power of item to learn its school of magic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Failure===&lt;br /&gt;
A natural 1, with or without modifiers, means the caster fails their casting and learns nothing.&lt;br /&gt;
&lt;br /&gt;
=== Round 1: There is Magic Within Range ===&lt;br /&gt;
A roll of 2 to 6 earns one round of information that tells the caster simply that there is magic within range. After 1 Round, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 2: Power of Magic ===&lt;br /&gt;
A roll of 7 to 13 earns Round 2 of information: generalized number of auras within range and the strength of the strongest aura. After 2 Rounds, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 3: Location, Individual Power and Possibly School of Magic ===&lt;br /&gt;
A roll of 14+ earns Round 3 of information: the power and location of each aura in range. Also, at this time the caster rolls Spellcraft against the power of each aura to discover the school of the aura.&lt;br /&gt;
&lt;br /&gt;
= Building for Detect Magic =&lt;br /&gt;
Some VFX, Creatures, Doors, Items, Placeables, Triggers and Waypoints (including spell traps) either automatically report or can be set up to report their magical auras to a caster of Detect Magic. &lt;br /&gt;
&lt;br /&gt;
== SpellSchool Variables == &lt;br /&gt;
A builder can add up to three sets of ACR_SPELLSCHOOL, ACR_SUBSCHOOL, and ACR_SPELLPOWER variables to Doors, Placeables, Triggers, and Waypoints to place an aura of any school, subschool and power.  &lt;br /&gt;
&lt;br /&gt;
Sample versions of Doors, Placeables, Triggers, Traps and Waypoints, with the variable slots on them but zeroed out, exist in toolset under the category ALFA_DetectMagic (or ALFA_Traps_Spawn). Builders can change the name, tag, resref, appearance, description of these sample objects to anything. Only the variables are checked by the spell.&lt;br /&gt;
&lt;br /&gt;
To place an aura, only ACR_SPELLSCHOOL and ACR_SPELLPOWER are required. The others are optional and can be left as 0s or empty fields. &lt;br /&gt;
&lt;br /&gt;
=== School of Magic ===&lt;br /&gt;
For instance, if you wish to suggest that a catapult has an ability to hurl fireballs, set ACR_SPELLSCHOOL to 5, for Evocation. If you want to suggest those fireballs are Transmuted magically from some solid fuel, set ACR_SPELLSCHOOL2 to 8, for Transmutation. A further suggestion that the whole thing is protected against good could use ACR_SPELLSCHOOL3 set to 1, for Abjuration.&lt;br /&gt;
&lt;br /&gt;
Variables (and the way they report to the caster) include:&lt;br /&gt;
* '''ACR_SPELLSCHOOL''' (integer) -- &amp;quot;This catapult has an aura of Evocation&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL2''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL3''' (integer)  -- &amp;quot;This catapult has an aura of Evocation and Transmutation around a central core of stored Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Integer&lt;br /&gt;
! School of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Abjuration &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Conjuration &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Divination &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enchantment &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evocation&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Illusion&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Necromancy&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Transmutation&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| General/Universal Magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SubSchool strings are optional. A builder can enter classifications such as &amp;quot;Sonic&amp;quot; or &amp;quot;Mind-Affecting&amp;quot;, or any subcategory or descriptor of spells. For instance, the hypothetical Catapult of Fireballs could be &amp;quot;Fire&amp;quot; or &amp;quot;Elemental&amp;quot;. Or blank, if you don't want the PC to get that hint.&lt;br /&gt;
* '''ACR_SUBSCHOOL''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL2''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL3''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth) around a central core of stored Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Power of Magic ===&lt;br /&gt;
ACR_SPELLPOWER is required. The other two are only needed if you want multiple schools of magic. Enter the spell level of the spell being represented. For instance, our Catapult of Fireballs would be ACR_SPELLPOWER 3 for Fireball, ACR_SPELLPOWER2 5 for Transmute Rock to Mud (for loading in coal and getting out napalm) and ACR_SPELLPOWER3 8 for Unholy Aura. &lt;br /&gt;
* '''ACR_SPELLPOWER''' (integer)  -- &amp;quot;This catapult has a Faint aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER2''' (integer) -- &amp;quot;This catapult has a Faint aura of Evocation (Fire) and a Moderate aura of Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER3''' (integer) -- -- &amp;quot;This widget has a Faint aura of Evocation and Moderate Transmutation around a central core of stored Powerful Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell Level&lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 7-9&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 10+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Objects Automatically Detected By Detect Magic =&lt;br /&gt;
Portals, Glyphs and Symbol Traps, Walls of Force, some FX, magical Creatures and Creatures with active spell effects, and Items with standard magical properties will be automatically found by Detect Magic, whether the object is placed in toolset or created on the fly ingame.&lt;br /&gt;
&lt;br /&gt;
==Portals==&lt;br /&gt;
Portals can be triggers or placeables. If they have &amp;quot;_portal&amp;quot; in the tag, they will report to the caster as Strong Conjuration. &lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding and Symbol Traps can be triggers or placeables. If they contain certain words in their tags they will report as follows:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Glyph of Warding &lt;br /&gt;
|_glyph_ward&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Pain &lt;br /&gt;
|_symbol_pain&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Sleep &lt;br /&gt;
|_symbol_sleep&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Fear &lt;br /&gt;
|_symbol_fear&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Persuasion &lt;br /&gt;
|_symbol_pers&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Weakness &lt;br /&gt;
|_symbol_weakness&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Stunning &lt;br /&gt;
|_symbol_stun&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Death &lt;br /&gt;
|_symbol_death&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Insanity &lt;br /&gt;
|_symbol_insanity&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Walls of Force == &lt;br /&gt;
Forcefields with &amp;quot;Forcefield&amp;quot; in their names or &amp;quot;forcefield&amp;quot; in their tags are Walls of Force. They will report as Moderate Evocation.&lt;br /&gt;
&lt;br /&gt;
==Visual Effects==&lt;br /&gt;
If placed or spawned without changing their tags, or at least maintaining the portion of the tag noted below, effects will register as follows.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Containment Field&lt;br /&gt;
|_containment&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Wall of Force&lt;br /&gt;
|_force&lt;br /&gt;
|Moderate Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Ioun Stone &lt;br /&gt;
|_ioun&lt;br /&gt;
|Strong Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental &lt;br /&gt;
|_elemental&lt;br /&gt;
|Moderate Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Symbol Projections &lt;br /&gt;
|_proj as well as three letter abbreviation for school (_abj, _con, _div, _enc, _evo, _ill, _nec, _tra)&lt;br /&gt;
|Faint {Insert School}&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Lamp &lt;br /&gt;
|_arcane_lamp_&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Teleport Gem Blue &lt;br /&gt;
|abr_afx_gem_energy_blue (entire tag)&lt;br /&gt;
|Strong Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Other Energy Gems &lt;br /&gt;
|_gem_energy&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spell Traps ==&lt;br /&gt;
More information on tooling traps can be found on the [[ACR_Traps]] page. &lt;br /&gt;
&lt;br /&gt;
Spell Traps, not mechanical traps, will report school and power to the caster based on the spell they cast. &lt;br /&gt;
&lt;br /&gt;
===ACR_TRAP_SPELL_ID===&lt;br /&gt;
If tooled up and placed in toolset, they already have the required spell ID on them. If spawned, they do not. To have a spawning trap report to the caster, its spawnpoint also needs to have the spell ID on it. (Mechanically, even though the tooled up trap has the trap integer on it in toolset and if placed, when it is *spawned* that trap integer disappears so it has to be on the spawnpoint, to register.)&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- Add this to the spawnpoint. Value is the row number of the spell from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
===TRAP ORIGIN ===&lt;br /&gt;
Spell Traps also require a nearby origin point, a Placeable tagged as TRAP_ORIGIN. It can have any appearance. &lt;br /&gt;
&lt;br /&gt;
Spell Traps report auras on both the origin and the location of the trap, which is not always at the origin point. &lt;br /&gt;
&lt;br /&gt;
For instance, a spawned or placed Fireball Trap originating from a burning torch where the flame is a placeable tagged TRAP_ORIGIN would have the ACR_TRAP_SPELL_ID of integer 58. If proximity to the torch itself is the trigger, that radius is already set on a correctly tooled or spawned trap. Origin and trap or trap spawnpoint are put on top of each other. It will report as &amp;quot;Torch Flame 2m to the Southeast gives off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If the trigger is a nearby stone pressure plate, then the origin is the placeable flame and the trap or spawnpoint are placed on the pressure plate. This would report as &amp;quot;Torch Flame 2m to the Southeast and a circle centered on a point 4m West of Torch Flame give off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creatures==&lt;br /&gt;
Creatures are the most complex use case. They can have racial auras, active spell effects, and inventory.&lt;br /&gt;
===Creature Report===&lt;br /&gt;
A creature's report will start with Racial Auras, if any. Next comes a Functioning Spells section, if any spell effects are currently active. After that, the item reports begin, starting with an item summary, then moving to equipped items, and finally a blurb about inventory.&lt;br /&gt;
&lt;br /&gt;
=== Racial Auras ===&lt;br /&gt;
Some Creatures will register automatically. For instance: &amp;quot;Pegasus has a lingering aura of Innate Magic.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Race&lt;br /&gt;
! School&lt;br /&gt;
|-&lt;br /&gt;
|Construct&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Fey&lt;br /&gt;
|Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Magical Beast&lt;br /&gt;
|Innate Magic&lt;br /&gt;
|-&lt;br /&gt;
|Outsider&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Shapechanger&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Undead&lt;br /&gt;
|Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Their power is based on 1/2 their CR. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! CR &lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-6&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 7-12&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 13-20&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 20+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Creatures with Active Spell Effects ===&lt;br /&gt;
PCs or NPCs with active spells will report their aura by cross-referencing the spell effect with the school and level from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
Any active spell will register. Examples:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-&lt;br /&gt;
| Death Ward&lt;br /&gt;
| Necromancy&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| Protection from Evil&lt;br /&gt;
| Aburation&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Invisibility*&lt;br /&gt;
| Illusion&lt;br /&gt;
| Faint/Moderate/Strong&lt;br /&gt;
|-&lt;br /&gt;
| Detect Scrying&lt;br /&gt;
| Divination&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| See Invisibility&lt;br /&gt;
| Divination&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Wildshape&lt;br /&gt;
| Transmutation&lt;br /&gt;
| Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Invisible creatures report only location of auras, not that they are on a creature or that creature's name.&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
===SpellSchool Variables===&lt;br /&gt;
Like other objects, Items can have up to three sets of [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables SpellSchool Variables] added manually, but these should be used sparingly, since Item auras also automatically report based on their item properties. An Item ''can'' have both automatically reporting properties and SpellSchool properties, but use SpellSchool variables only if:&lt;br /&gt;
&lt;br /&gt;
*'''No matching item property:''' A builder wants to add an aura that no item property automatically generates;&lt;br /&gt;
*'''Cast Unique:''' To supplement the aura information for items with the item properties: Cast Spell: Unique Power, or Cast Spell: Unique Power Self Only, or Cast Spell: On Hit. These properties each call tag-based event scripts that Detect Magic can't read, and which it will report as &amp;quot;This item has a complex aura of arcanity.&amp;quot; Add SpellSchool variables to explicate the complex aura.&lt;br /&gt;
&lt;br /&gt;
For instance: a builder has created a spoon that magically sweetens any porridge it scoops up. The item property Cast Spell: Unique Power is placed on the spoon, which calls event script i_spoon_ac. The caster will get the &amp;quot;complex aura&amp;quot; message, and if the builder places an ACR_SPELLSCHOOL of 8 and an ACR_SPELLPOWER of 1 on the spoon, will also get a Faint Transmutation aura to represent the famous Transmutation spell: ''Sugar Hit''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise, Items report automatically based on the following guidelines.&lt;br /&gt;
&lt;br /&gt;
===Tag Based Auras===&lt;br /&gt;
Some items return an aura based on their tag, rather than their properties. Note: These items can have other properties, too, but will return at least the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-	&lt;br /&gt;
|Holy Symbol &lt;br /&gt;
|Abjuration &lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Scrying Multi-Tool &lt;br /&gt;
|Universal &lt;br /&gt;
|Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Spell Casting Properties===&lt;br /&gt;
Any item that casts any spell is cross-referenced against the Item Property Spells 2DA and the Spells 2DA to get school and power.&lt;br /&gt;
&lt;br /&gt;
===Enhancement Properties===&lt;br /&gt;
The SRD under Magic Items and Detect Magic says:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
|-									    &lt;br /&gt;
|Armor and protection items&lt;br /&gt;
|Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Weapons or offensive items&lt;br /&gt;
|Evocation&lt;br /&gt;
|-	&lt;br /&gt;
|Bonus to ability score, on skill check, etc.&lt;br /&gt;
|Transmutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power is based on amount of enhancement:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Enhancement&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
| +1&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
| +2&lt;br /&gt;
|Moderate&lt;br /&gt;
|-	&lt;br /&gt;
| +3&lt;br /&gt;
|Strong&lt;br /&gt;
|-	&lt;br /&gt;
| +4&lt;br /&gt;
|Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Properties===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Property&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
|Bonus Feat&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Bonus HP&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Darkvision&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Freedom of Movement&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|Haste&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Damage Type&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Misc&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Spell Level&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Improved Evasion&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Light&lt;br /&gt;
|Evocation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Regeneration&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Spell Resistance&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|True Seeing&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===Loose Items ===&lt;br /&gt;
&lt;br /&gt;
Items on the ground or otherwise outside of a container or creature's inventory report individually, just like any other object.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A Tower Shield 10m Northwest gives off an aura of Moderate Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items in a Placeable===&lt;br /&gt;
Placeables report their items based on whether they are open or closed. &amp;quot;Something in Chest 5m to the South gives off a Moderate aura of Conjuration.&amp;quot; Or &amp;quot;An unidentified potion in a Chest 5m to the South gives off a Moderate aura of Conjuration. &amp;quot;Or if identified because the PC recognizes it &amp;quot;A Cure Moderate Wounds potion in a Chest gives off a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items on Creatures===&lt;br /&gt;
&lt;br /&gt;
'''Summary''': Creatures generate a more complex item report than any other object type. The first part of the Creature Item report is a summary of how many auras of each school of magic surround the creature. &amp;quot;Little Red Riding Hood has around half a dozen Abjuration auras. Little Red Riding Hood has 1 Necromancy aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Equipped''': Items equipped on a visible creature report individually. &amp;quot;Bracers worn by the Big Bad Wolf gives off a Strong aura of Transmutation.&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''Inventory''': Items in a Creature's inventory are reported in one statement at the end of the creature report. &amp;quot;The rest of the auras are in Big Bad Wolf's inventory.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=End of Report=&lt;br /&gt;
&amp;quot;That is all you learn.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3953</id>
		<title>Detect Magic</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Detect_Magic&amp;diff=3953"/>
				<updated>2023-01-30T22:24:12Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Object Automatically Detected By Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Detect Magic Ingame= &lt;br /&gt;
A caster can detect the magical auras of objects within the spellcone of Detect Magic cast ingame. Objects that will report include certain FX, Doors, Items, Placeables and their inventory, Triggers, Waypoints, Spell Traps, and finally Creatures and their effects and inventory.&lt;br /&gt;
	&lt;br /&gt;
== Concentration Check == &lt;br /&gt;
The amount of information revealed depends on how long you study a particular area or subject. Caster rolls a Concentration Check to determine rounds of study. Checks include Concentration modifiers and buffs. &lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Roll&lt;br /&gt;
! Rounds&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0 Rounds&lt;br /&gt;
| Failure&lt;br /&gt;
|-&lt;br /&gt;
| 2-6&lt;br /&gt;
| 1 Round&lt;br /&gt;
| There is magic within range.&lt;br /&gt;
|-&lt;br /&gt;
| 7-13&lt;br /&gt;
| 2 Rounds&lt;br /&gt;
| Number of auras and the power of the strongest aura.&lt;br /&gt;
|-&lt;br /&gt;
| 14+&lt;br /&gt;
| 3 Rounds&lt;br /&gt;
| Location of auras, and a Spellcraft Check vs. power of item to learn its school of magic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Failure===&lt;br /&gt;
A natural 1, with or without modifiers, means the caster fails their casting and learns nothing.&lt;br /&gt;
&lt;br /&gt;
=== Round 1: There is Magic Within Range ===&lt;br /&gt;
A roll of 2 to 6 earns one round of information that tells the caster simply that there is magic within range. After 1 Round, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 2: Power of Magic ===&lt;br /&gt;
A roll of 7 to 13 earns Round 2 of information: generalized number of auras within range and the strength of the strongest aura. After 2 Rounds, they get a server message that their concentration breaks.&lt;br /&gt;
&lt;br /&gt;
=== Round 3: Location, Individual Power and Possibly School of Magic ===&lt;br /&gt;
A roll of 14+ earns Round 3 of information: the power and location of each aura in range. Also, at this time the caster rolls Spellcraft against the power of each aura to discover the school of the aura.&lt;br /&gt;
&lt;br /&gt;
= Building for Detect Magic =&lt;br /&gt;
Some VFX, Creatures, Doors, Items, Placeables, Triggers and Waypoints (including spell traps) either automatically report or can be set up to report their magical auras to a caster of Detect Magic. &lt;br /&gt;
&lt;br /&gt;
== SpellSchool Variables == &lt;br /&gt;
A builder can add up to three sets of ACR_SPELLSCHOOL and ACR_SPELLPOWER variables to Doors, Placeables, Triggers, and Waypoints to place an aura of any school, subschool and power.  &lt;br /&gt;
&lt;br /&gt;
Sample versions of Doors, Placeables, Triggers, Traps and Waypoints, with the variable slots on them but zeroed out, exist in toolset under the category ALFA_DetectMagic (or ALFA_Traps_Spawn). Builders can change the name, tag, resref, appearance, description of these sample objects to anything. Only the variables are checked by the spell.&lt;br /&gt;
&lt;br /&gt;
To place an aura, only ACR_SPELLSCHOOL and ACR_SPELLPOWER are required. The others are optional and can be left as 0s or empty fields. &lt;br /&gt;
&lt;br /&gt;
=== School of Magic ===&lt;br /&gt;
For instance, if you wish to suggest that a catapult has an ability to hurl fireballs, set ACR_SPELLSCHOOL to 5, for Evocation. If you want to suggest those fireballs are Transmuted magically from some solid fuel, set ACR_SPELLSCHOOL2 to 8, for Transmutation. A further suggestion that the whole thing is protected against good could use ACR_SPELLSCHOOL3 set to 1, for Abjuration.&lt;br /&gt;
&lt;br /&gt;
Variables (and the way they report to the caster) include:&lt;br /&gt;
* '''ACR_SPELLSCHOOL''' (integer) -- &amp;quot;This catapult has an aura of Evocation&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL2''' (integer) -- &amp;quot;This catapult has an aura of Evocation and Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLSCHOOL3''' (integer)  -- &amp;quot;This catapult has an aura of Evocation and Transmutation around a central core of stored Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Integer&lt;br /&gt;
! School of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Abjuration &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Conjuration &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Divination &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Enchantment &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evocation&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Illusion&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Necromancy&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Transmutation&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| General/Universal Magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SubSchool strings are optional. A builder can enter classifications such as &amp;quot;Sonic&amp;quot; or &amp;quot;Mind-Affecting&amp;quot;, or any subcategory or descriptor of spells. For instance, the hypothetical Catapult of Fireballs could be &amp;quot;Fire&amp;quot; or &amp;quot;Elemental&amp;quot;. Or blank, if you don't want the PC to get that hint.&lt;br /&gt;
* '''ACR_SUBSCHOOL''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL2''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth).&amp;quot;&lt;br /&gt;
* '''ACR_SUBSCHOOL3''' (string) -- &amp;quot;This catapult has an aura of Evocation (Fire) and Transmutation (Earth) around a central core of stored Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Power of Magic ===&lt;br /&gt;
ACR_SPELLPOWER is required. The other two are only needed if you want multiple schools of magic. Enter the spell level of the spell being represented. For instance, our Catapult of Fireballs would be ACR_SPELLPOWER 3 for Fireball, ACR_SPELLPOWER2 5 for Transmute Rock to Mud (for loading in coal and getting out napalm) and ACR_SPELLPOWER3 8 for Unholy Aura. &lt;br /&gt;
* '''ACR_SPELLPOWER''' (integer)  -- &amp;quot;This catapult has a Faint aura of Evocation (Fire).&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER2''' (integer) -- &amp;quot;This catapult has a Faint aura of Evocation (Fire) and a Moderate aura of Transmutation.&amp;quot;&lt;br /&gt;
* '''ACR_SPELLPOWER3''' (integer) -- -- &amp;quot;This widget has a Faint aura of Evocation and Moderate Transmutation around a central core of stored Powerful Abjuration (Evil).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell Level&lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 7-9&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 10+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Objects Automatically Detected By Detect Magic =&lt;br /&gt;
Portals, Glyphs and Symbol Traps, Walls of Force, some FX, magical Creatures and Creatures with active spell effects, and Items with standard magical properties will be automatically found by Detect Magic, whether the object is placed in toolset or created on the fly ingame.&lt;br /&gt;
&lt;br /&gt;
==Portals==&lt;br /&gt;
Portals can be triggers or placeables. If they have &amp;quot;_portal&amp;quot; in the tag, they will report to the caster as Strong Conjuration. &lt;br /&gt;
&lt;br /&gt;
==Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding and Symbol Traps can be triggers or placeables. If they contain certain words in their tags they will report as follows:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Glyph of Warding &lt;br /&gt;
|_glyph_ward&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Pain &lt;br /&gt;
|_symbol_pain&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Sleep &lt;br /&gt;
|_symbol_sleep&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Fear &lt;br /&gt;
|_symbol_fear&lt;br /&gt;
|Moderate Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Persuasion &lt;br /&gt;
|_symbol_pers&lt;br /&gt;
|Moderate Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Weakness &lt;br /&gt;
|_symbol_weakness&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Stunning &lt;br /&gt;
|_symbol_stun&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Death &lt;br /&gt;
|_symbol_death&lt;br /&gt;
|Strong Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|Symbol of Insanity &lt;br /&gt;
|_symbol_insanity&lt;br /&gt;
|Strong Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Walls of Force == &lt;br /&gt;
Forcefields with &amp;quot;Forcefield&amp;quot; in their names or &amp;quot;forcefield&amp;quot; in their tags are Walls of Force. They will report as Moderate Evocation.&lt;br /&gt;
&lt;br /&gt;
==Visual Effects==&lt;br /&gt;
If placed or spawned without changing their tags, or at least maintaining the portion of the tag noted below, effects will register as follows.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Anywhere in Tag&lt;br /&gt;
! Report&lt;br /&gt;
|-&lt;br /&gt;
|Containment Field&lt;br /&gt;
|_containment&lt;br /&gt;
|Faint Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Wall of Force&lt;br /&gt;
|_force&lt;br /&gt;
|Moderate Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Ioun Stone &lt;br /&gt;
|_ioun&lt;br /&gt;
|Strong Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental &lt;br /&gt;
|_elemental&lt;br /&gt;
|Moderate Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Symbol Projections &lt;br /&gt;
|_proj as well as three letter abbreviation for school (_abj, _con, _div, _enc, _evo, _ill, _nec, _tra)&lt;br /&gt;
|Faint {Insert School}&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Lamp &lt;br /&gt;
|_arcane_lamp_&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|-&lt;br /&gt;
|Teleport Gem Blue &lt;br /&gt;
|abr_afx_gem_energy_blue (entire tag)&lt;br /&gt;
|Strong Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Other Energy Gems &lt;br /&gt;
|_gem_energy&lt;br /&gt;
|Faint Evocation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spell Traps ==&lt;br /&gt;
More information on tooling traps can be found on the [[ACR_Traps]] page. &lt;br /&gt;
&lt;br /&gt;
Spell Traps, not mechanical traps, will report school and power to the caster based on the spell they cast. &lt;br /&gt;
&lt;br /&gt;
===ACR_TRAP_SPELL_ID===&lt;br /&gt;
If tooled up and placed in toolset, they already have the required spell ID on them. If spawned, they do not. To have a spawning trap report to the caster, its spawnpoint also needs to have the spell ID on it. (Mechanically, even though the tooled up trap has the trap integer on it in toolset and if placed, when it is *spawned* that trap integer disappears so it has to be on the spawnpoint, to register.)&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- Add this to the spawnpoint. Value is the row number of the spell from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
===TRAP ORIGIN ===&lt;br /&gt;
Spell Traps also require a nearby origin point, a Placeable tagged as TRAP_ORIGIN. It can have any appearance. &lt;br /&gt;
&lt;br /&gt;
Spell Traps report auras on both the origin and the location of the trap, which is not always at the origin point. &lt;br /&gt;
&lt;br /&gt;
For instance, a spawned or placed Fireball Trap originating from a burning torch where the flame is a placeable tagged TRAP_ORIGIN would have the ACR_TRAP_SPELL_ID of integer 58. If proximity to the torch itself is the trigger, that radius is already set on a correctly tooled or spawned trap. Origin and trap or trap spawnpoint are put on top of each other. It will report as &amp;quot;Torch Flame 2m to the Southeast gives off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If the trigger is a nearby stone pressure plate, then the origin is the placeable flame and the trap or spawnpoint are placed on the pressure plate. This would report as &amp;quot;Torch Flame 2m to the Southeast and a circle centered on a point 4m West of Torch Flame give off an aura of Faint Evocation.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Creatures==&lt;br /&gt;
Creatures are the most complex use case. They can have racial auras, active spell effects, and inventory.&lt;br /&gt;
===Creature Report===&lt;br /&gt;
A creature's report will start with Racial Auras, if any. Next comes a Functioning Spells section, if any spell effects are currently active. After that, the item reports begin, starting with an item summary, then moving to equipped items, and finally a blurb about inventory.&lt;br /&gt;
&lt;br /&gt;
=== Racial Auras ===&lt;br /&gt;
Some Creatures will register automatically. For instance: &amp;quot;Pegasus has a lingering aura of Innate Magic.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Race&lt;br /&gt;
! School&lt;br /&gt;
|-&lt;br /&gt;
|Construct&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Elemental&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Fey&lt;br /&gt;
|Enchantment&lt;br /&gt;
|-&lt;br /&gt;
|Magical Beast&lt;br /&gt;
|Innate Magic&lt;br /&gt;
|-&lt;br /&gt;
|Outsider&lt;br /&gt;
|Conjuration&lt;br /&gt;
|-&lt;br /&gt;
|Shapechanger&lt;br /&gt;
|Transmutation&lt;br /&gt;
|-&lt;br /&gt;
|Undead&lt;br /&gt;
|Necromancy&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Their power is based on 1/2 their CR. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! CR &lt;br /&gt;
! Power of Magic&lt;br /&gt;
|-&lt;br /&gt;
| 1-6&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| 7-12&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| 13-20&lt;br /&gt;
| Strong&lt;br /&gt;
|-&lt;br /&gt;
| 20+&lt;br /&gt;
| Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Creatures with Active Spell Effects ===&lt;br /&gt;
PCs or NPCs with active spells will report their aura by cross-referencing the spell effect with the school and level from the Spells 2DA.&lt;br /&gt;
&lt;br /&gt;
Any active spell will register. Examples:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Spell&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-&lt;br /&gt;
| Death Ward&lt;br /&gt;
| Necromancy&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| Protection from Evil&lt;br /&gt;
| Aburation&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Invisibility*&lt;br /&gt;
| Illusion&lt;br /&gt;
| Faint/Moderate/Strong&lt;br /&gt;
|-&lt;br /&gt;
| Detect Scrying&lt;br /&gt;
| Divination&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
| See Invisibility&lt;br /&gt;
| Divination&lt;br /&gt;
| Faint&lt;br /&gt;
|-&lt;br /&gt;
| Wildshape&lt;br /&gt;
| Transmutation&lt;br /&gt;
| Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Invisible creatures report only location of auras, not that they are on a creature or that creature's name.&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
===SpellSchool Variables===&lt;br /&gt;
Like other objects, Items can have up to three sets of [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables SpellSchool Variables] added manually, but these should be used sparingly, since Item auras also automatically report based on their item properties. An Item ''can'' have both automatically reporting properties and SpellSchool properties, but use SpellSchool variables only if:&lt;br /&gt;
&lt;br /&gt;
*'''No matching item property:''' A builder wants to add an aura that no item property automatically generates;&lt;br /&gt;
*'''Cast Unique:''' To supplement the aura information for items with the item properties: Cast Spell: Unique Power, or Cast Spell: Unique Power Self Only, or Cast Spell: On Hit. These properties each call tag-based event scripts that Detect Magic can't read, and which it will report as &amp;quot;This item has a complex aura of arcanity.&amp;quot; Add SpellSchool variables to explicate the complex aura.&lt;br /&gt;
&lt;br /&gt;
For instance: a builder has created a spoon that magically sweetens any porridge it scoops up. The item property Cast Spell: Unique Power is placed on the spoon, which calls event script i_spoon_ac. The caster will get the &amp;quot;complex aura&amp;quot; message, and if the builder places an ACR_SPELLSCHOOL of 8 and an ACR_SPELLPOWER of 1 on the spoon, will also get a Faint Transmutation aura to represent the famous Transmutation spell: ''Sugar Hit''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise, Items report automatically based on the following guidelines.&lt;br /&gt;
&lt;br /&gt;
===Tag Based Auras===&lt;br /&gt;
Some items return an aura based on their tag, rather than their properties. Note: These items can have other properties, too, but will return at least the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-	&lt;br /&gt;
|Holy Symbol &lt;br /&gt;
|Abjuration &lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Scrying Multi-Tool &lt;br /&gt;
|Universal &lt;br /&gt;
|Faint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Spell Casting Properties===&lt;br /&gt;
Any item that casts any spell is cross-referenced against the Item Property Spells 2DA and the Spells 2DA to get school and power.&lt;br /&gt;
&lt;br /&gt;
===Enhancement Properties===&lt;br /&gt;
The SRD under Magic Items and Detect Magic says:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Item&lt;br /&gt;
! School&lt;br /&gt;
|-									    &lt;br /&gt;
|Armor and protection items&lt;br /&gt;
|Abjuration&lt;br /&gt;
|-&lt;br /&gt;
|Weapons or offensive items&lt;br /&gt;
|Evocation&lt;br /&gt;
|-	&lt;br /&gt;
|Bonus to ability score, on skill check, etc.&lt;br /&gt;
|Transmutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power is based on amount of enhancement:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Enhancement&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
| +1&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
| +2&lt;br /&gt;
|Moderate&lt;br /&gt;
|-	&lt;br /&gt;
| +3&lt;br /&gt;
|Strong&lt;br /&gt;
|-	&lt;br /&gt;
| +4&lt;br /&gt;
|Overwhelming&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Properties===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Property&lt;br /&gt;
! School&lt;br /&gt;
! Power&lt;br /&gt;
|-									    &lt;br /&gt;
|Bonus Feat&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Bonus HP&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Darkvision&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-	&lt;br /&gt;
|Freedom of Movement&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|Haste&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Damage Type&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Misc&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Immunity Spell Level&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Improved Evasion&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Light&lt;br /&gt;
|Evocation&lt;br /&gt;
|Faint&lt;br /&gt;
|-&lt;br /&gt;
|Regeneration&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Strong&lt;br /&gt;
|-&lt;br /&gt;
|Spell Resistance&lt;br /&gt;
|Abjuration&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|True Seeing&lt;br /&gt;
|Transmutation&lt;br /&gt;
|Moderate&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===Loose Items ===&lt;br /&gt;
&lt;br /&gt;
Items on the ground or otherwise outside of a container or creature's inventory report individually, just like any other object.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A Tower Shield 10m Northwest gives off an aura of Moderate Abjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items in a Placeable===&lt;br /&gt;
Placeables report their items based on whether they are open or closed. &amp;quot;Something in Chest 5m to the South gives off a Moderate aura of Conjuration.&amp;quot; Or &amp;quot;An unidentified potion in a Chest 5m to the South gives off a Moderate aura of Conjuration. &amp;quot;Or if identified because the PC recognizes it &amp;quot;A Cure Moderate Wounds potion in a Chest gives off a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Items on Creatures===&lt;br /&gt;
&lt;br /&gt;
'''Summary''': Creatures generate a more complex item report than any other object type. The first part of the Creature Item report is a summary of how many auras of each school of magic surround the creature. &amp;quot;Little Red Riding Hood has around half a dozen Abjuration auras. Little Red Riding Hood has 1 Necromancy aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Equipped''': Items equipped on a visible creature report individually. &amp;quot;Bracers worn by the Big Bad Wolf gives off a Strong aura of Transmutation.&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''Inventory''': Items in a Creature's inventory are reported in one statement at the end of the creature report. &amp;quot;The rest of the auras are in Big Bad Wolf's inventory.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=End of Report=&lt;br /&gt;
&amp;quot;That is all you learn.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3952</id>
		<title>ACR Traps</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3952"/>
				<updated>2023-01-30T22:16:36Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ACR Tools]]&lt;br /&gt;
[[Category:DM Guides]]&lt;br /&gt;
The ACR has in its core content a custom implementation of traps that is meant to serve as a workaround for the severe limitations imposed by traps as they are implemented by [[Neverwinter Nights 2 | NWN2]]. These traps are capable of spawning and despawning, are aware of their own shapes and sizes, and can control whether or not they trigger by a number of conditions, including those which we would associate with spellcasting traps.&lt;br /&gt;
&lt;br /&gt;
== Detecting Traps ==&lt;br /&gt;
A search roll is automatically rolled, with the fact that the roll was made being hidden, whenever a character approaches a trap with detect mode on. If the result of the search check is greater than or equal to the search DC, the trap is detected. There is a special exception made for high-DC traps: only rogues, or people under the effects of a Find Traps spell, may find traps with a search DC greater than 20. If a character does not expend the trap (for example, by triggering it until it runs out of ammunition or charges), but remains near it, an additional roll will be made every six seconds, and every PC near the trap will also get rolls.&lt;br /&gt;
&lt;br /&gt;
When a trap is detected, the character whose check revealed the trap will gain a visual effect overhead that indicates responsibility for the detection. In addition, the trap will become visible as a pulsing red VFX in the shape of the trap on the ground, and finally a disarm target object will appear on the ground where the detector was standing when the trap was revealed.&lt;br /&gt;
: '''It is important to note that traps are invisible to DMs once they are spawned. The tick in the spawning UI when placing a trap is the indication that the spawning has happened.'''&lt;br /&gt;
&lt;br /&gt;
== Detect Magic ==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Spell_Traps Detect Magic: Spell Traps]&lt;br /&gt;
&lt;br /&gt;
Detect Magic will work automatically with a placed spell trap or a spell trap spawnpoint with a variable added to it called ACR_TRAP_SPELL_ID which contains the integer of the spell ID.* As with any ACR_Trap, either option requires a placeable tagged as TRAP_ORIGIN nearby, also.&lt;br /&gt;
&lt;br /&gt;
Detect Magic uses ACR_TRAP_SPELL_ID (already on a placed trap or added to the spawnpoint) to cross-reference spell effects against 2DA information. From the 2DA it pulls the proper school and spell power to put into the report to the Caster. For instance, for a Web Trap: &amp;quot;Spider Web and a circle centered on a spot 1m southwest of Spider Web gives off a Moderate aura of Conjuration.&amp;quot; Spider Web is the placeable tagged as TRAP_ORIGIN. The spot at which the circle is reported is the either the placed trap or the spawnpoint. &lt;br /&gt;
&lt;br /&gt;
*Weirdly, although a placed trap already has the ACR_TRAP_SPELL_ID on it, that same trap spawned by a spawnpoint does not, so it has to be added to the spawnpoint itself for the Detect Magic to find it.&lt;br /&gt;
&lt;br /&gt;
== Disarming Traps ==&lt;br /&gt;
Traps are disarmed by using the disarm widget. DM Avatars who do this will immediately and automatically disarm the trap, removing it and the target from the area permanently. If an character uses the disarm target, that character will begin to work on disarming the trap, which will take 12-48 (most likely 30) seconds. During this time the character must remain reasonably stationary and may not carry out other actions, but stepping away from the disarming device will abort the effort.&lt;br /&gt;
&lt;br /&gt;
Characters with ranks in Disable Device may choose to aid the effort by also using the disarm target, and as many as can physically approach the device may help. Each additional disabler will roll a DC 10 Disable Device check, granting a stacking +2 bonus to the primary disabler's check on success. A character may only attempt to aid in disabling a trap once per primary user's attempt.&lt;br /&gt;
&lt;br /&gt;
The disarming character will not know ahead of time how long it will take to disarm the trap, nor will he or she know how difficult to disarm the trap will be until attempting to disarm it once.&lt;br /&gt;
&lt;br /&gt;
At the end of the time required to disarm the trap, a skill check is made against the disarm DC of the trap. If the roll is greater than or equal to the DC to disarm the trap, the trap is removed from play and rendered harmless. If the Disable Device roll fails by 4 or less, then no change is made to the trap. If the Disable Device roll fails by 5 or more, then the effort is botched and the trap is triggered, functioning per the fired trap section, except that the trap disabler is treated as a potential target (possibly the only potential target) for the trap's execution.&lt;br /&gt;
&lt;br /&gt;
== Triggering Traps ==&lt;br /&gt;
When a trap is triggered, its effects are applied to a random creature within the trap's trigger area, and potentially a botched disabler (see above). This effect may cover an area. For example, a trap which explodes in a fireball when triggered may have three people working on disarming it. Should the check be botched anyway while the trigger area is empty, only the primary disabler will be a valid target and he or she will be the center of the resulting explosion. However, the two nearby assistants are likely to be within the blast and to also be injured. If on the other hand the trigger required several people in its area to be triggered, and three were already within, botching the trap has a 1 in 4 chance of centering on each person in the trigger area or the disabler.&lt;br /&gt;
&lt;br /&gt;
It is possible for traps to trigger with discretion, such as a magical trap that only harms orcs. In this case, only qualifying creatures in the trigger area will be regarded as valid targets. Botching a disable attempt overrides this. A botched disabler is always a valid target, regardless of the trap's specific restrictions.&lt;br /&gt;
&lt;br /&gt;
== Default Traps ==&lt;br /&gt;
By default, every ALFA module has access to a set of standard traps, which are modeled after the default NWN2 traps. All of them have only one charge, do direct damage, and have equal spot, disable, and reflex save DCs. All offer reflex saves when triggered. All are of &amp;quot;medium&amp;quot; trigger size (comparable to the area of a Magic Circle vs. Alignment)&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Damage&lt;br /&gt;
! DC&lt;br /&gt;
! Area&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Minor&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Average&lt;br /&gt;
| 5d6&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Strong&lt;br /&gt;
| 12d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Deadly&lt;br /&gt;
| 18d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Minor&lt;br /&gt;
| 2d8&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Average&lt;br /&gt;
| 3d8&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Strong&lt;br /&gt;
| 5d8&lt;br /&gt;
| 17&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Deadly&lt;br /&gt;
| 8d8&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Minor&lt;br /&gt;
| 8d6&lt;br /&gt;
| 19&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Average&lt;br /&gt;
| 15d6&lt;br /&gt;
| 22&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Strong&lt;br /&gt;
| 20d6&lt;br /&gt;
| 26&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Deadly&lt;br /&gt;
| 30d6&lt;br /&gt;
| 28&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Minor&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Average&lt;br /&gt;
| 8d6&lt;br /&gt;
| 20&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Strong&lt;br /&gt;
| 15d6&lt;br /&gt;
| 23&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 26&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 13&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Deadly&lt;br /&gt;
| 8d6&lt;br /&gt;
| 21&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 14&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 17&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 20&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tooling Additional Traps ==&lt;br /&gt;
Additional traps may be added to a module by creating waypoints which have variables on them which indicate that they are traps. The following variables control the behavior of the trap.&lt;br /&gt;
&lt;br /&gt;
* '''ACR_TRAP_TRIGGER_AREA''' (integer) --  This variable determines how large the area which is capable of causing the trap to fire is.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Name&lt;br /&gt;
! Comparison&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Small&lt;br /&gt;
| Single-Target&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Medium&lt;br /&gt;
| Magic Circle v. Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Large&lt;br /&gt;
| Entangle&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Huge&lt;br /&gt;
| Fireball&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Gargantuan&lt;br /&gt;
| Lesser Missile Storm&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Colossal&lt;br /&gt;
| Area Dispel Magic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_ATTACK_BONUS''' (integer, optional) -- This is the attack bonus that will be used to calculate if a trap is able to damage its target, should no reflex save be defined for the trap. This is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DAMAGE_TYPE''' (bitfield) -- This variable determines what kind of damage will be applied to targets of the trap. As a bitfield, you may take the sum of several damage types to make the trap do multiple types of damage. For example, Piercing Damage (2) and Slashing Damage (4) can be added together to make a piercing/slashing trap (6). This is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Damage Type&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Bludgeoning&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Piercing&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Slashing&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Magical&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Acid&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Cold&lt;br /&gt;
|-&lt;br /&gt;
| 64&lt;br /&gt;
| Divine&lt;br /&gt;
|-&lt;br /&gt;
| 128&lt;br /&gt;
| Electrical&lt;br /&gt;
|-&lt;br /&gt;
| 256&lt;br /&gt;
| Fire&lt;br /&gt;
|-&lt;br /&gt;
| 512&lt;br /&gt;
| Negative&lt;br /&gt;
|-&lt;br /&gt;
| 1024&lt;br /&gt;
| Positive&lt;br /&gt;
|-&lt;br /&gt;
| 2048&lt;br /&gt;
| Sonic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DETECT_DC''' (integer)''' --  This variable determines what the DC of search checks to discover the trap will be. If this number is greater than 20, the trap will only be discoverable by Rogues.&lt;br /&gt;
* '''ACR_TRAP_DICE_NUMBER (integer) -- This variable determines how many dice will be rolled to determine trap damage. This is ignored if the trap casts a spell. For example, if this is 3 and * '''ACR_TRAP_DICE_TYPE is 6, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DICE_TYPE (integer)''' -- This variable determines what sort of die will be rolled to determine trap damage. For example, if this is 6, and * '''ACR_TRAP_DICE_NUMBER is 3, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DISARM_DC (integer)''' -- This variable determines what the DC to disarm the trap is.&lt;br /&gt;
* '''ACR_TRAP_EFFECT_AREA''' (integer) -- This variable uses the SHAPE_ constants to determine how this trap's effect spreads out, if it has a large enough area to be significant. This setting is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Shape&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Spell Cyllinder (e.g. Lightning Bolt)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Cone (e.g. Burning Hands)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Cube (e.g. Order's Wrath)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Spell Cone (e.g. Cone of Cold)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Sphere (e.g. Fireball)&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_EFFECT_SIZE''' (float) -- This is the size, in meters, of the effect area defined previously. Cylinders and cones become longer, but remain directional. Cubes gain length on all sides equally. Spheres gain a larger radius. This setting is ignroed if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_MINIMUM_TO_TRIGGER''' (integer) -- This is the number of creatures who meet the criteria for a trap's triggering who must be within the trap's trigger area''' (defined above) before the trap will fire.&lt;br /&gt;
* '''ACR_TRAP_NUMBER_OF_SHOTS''' (integer) -- This is the number of times the trap will fire before it is discharged. If this number is -1, the trap has infinite charges, and will fire until disarmed.&lt;br /&gt;
* '''ACR_TRAP_SAVE_DC''' (integer) -- This is the reflex save DC of the trap. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- This is the ID of the spell that is cast. If this is -1 or if it is absent, the trap will not be regarded as spell casting, and will instead resolve to do damage. If this option is set, the trap must be placed or spawned near a placeable with the tag &amp;quot;TRAP_ORIGIN.&amp;quot; In the absence of this placeable, the trap trigger will attempt to-- and typically fail to-- cast the spell itself.&lt;br /&gt;
* '''ACR_TRAP_TARGET_ALIGNMENT''' (integer) -- This setting determines which alignments are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other alignments. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| All Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Neutral Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Lawful Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Chaotic Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Good Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evil Alignments&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_TARGET_RACE''' (integer) -- This setting determins which racial types are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other races. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Dwarf&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Elf&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gnome&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Halfling&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Half-Elf&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Half-Orc&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Human&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Abberations&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Animals&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Beasts (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Constructs&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Dragons&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Goblinoids&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Monstrous Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Orcs&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Reptilian Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Elementals&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Fey&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Giants&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Magical Beasts&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Outsiders&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Undead&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Vermin&lt;br /&gt;
|-&lt;br /&gt;
| '''28'''&lt;br /&gt;
| '''All Races'''&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Oozes&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Incorporeal (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Yuan-Ti&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DESCRIPTION''' (string) -- This setting determines what the descriptive text on the trap's disarm target will read when examined with the default &amp;quot;examine&amp;quot; command. While it may contain any arbitrary information deemed useful by the builders, it is recommended that it contain a description of what a person would see of this trap upon discovering it.&lt;br /&gt;
&lt;br /&gt;
== Spawning Traps ==&lt;br /&gt;
ACR Traps are currently able to be spawned through the [[ACR Creator]], and may also be placed using the ACR Spawn System, with object type 8.&lt;br /&gt;
&lt;br /&gt;
In order to spawn a trap, you must first tool the trap, according to the instructions above, and then use the resource name of the waypoint used to tool the trap as the resource name of the trap on the spawn point. In addition, for the trap to register to Detect Magic, to this spawnpoint add the variable: ACR_TRAP_SPELL_ID. Enter the spell integer into the integer slot. &lt;br /&gt;
&lt;br /&gt;
In all other respects, these spawn points work as any other spawn point.&lt;br /&gt;
&lt;br /&gt;
In addition, you may place a placeable with the tag &amp;quot;TRAP_ORIGIN&amp;quot; near any trap trigger and it will be regarded as the source for all effects which are created by the trap. This has two uses:&lt;br /&gt;
* Animations that involve projectiles will show the trap's effect being shot from the trap origin&lt;br /&gt;
* The trap may be used in the spell trap mode (as placeables are allowed to cast spells in the NWN2 engine, but triggers are not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALFA Core Rules}}&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3951</id>
		<title>ACR Traps</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=ACR_Traps&amp;diff=3951"/>
				<updated>2023-01-30T22:16:15Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ACR Tools]]&lt;br /&gt;
[[Category:DM Guides]]&lt;br /&gt;
The ACR has in its core content a custom implementation of traps that is meant to serve as a workaround for the severe limitations imposed by traps as they are implemented by [[Neverwinter Nights 2 | NWN2]]. These traps are capable of spawning and despawning, are aware of their own shapes and sizes, and can control whether or not they trigger by a number of conditions, including those which we would associate with spellcasting traps.&lt;br /&gt;
&lt;br /&gt;
== Detecting Traps ==&lt;br /&gt;
A search roll is automatically rolled, with the fact that the roll was made being hidden, whenever a character approaches a trap with detect mode on. If the result of the search check is greater than or equal to the search DC, the trap is detected. There is a special exception made for high-DC traps: only rogues, or people under the effects of a Find Traps spell, may find traps with a search DC greater than 20. If a character does not expend the trap (for example, by triggering it until it runs out of ammunition or charges), but remains near it, an additional roll will be made every six seconds, and every PC near the trap will also get rolls.&lt;br /&gt;
&lt;br /&gt;
When a trap is detected, the character whose check revealed the trap will gain a visual effect overhead that indicates responsibility for the detection. In addition, the trap will become visible as a pulsing red VFX in the shape of the trap on the ground, and finally a disarm target object will appear on the ground where the detector was standing when the trap was revealed.&lt;br /&gt;
: '''It is important to note that traps are invisible to DMs once they are spawned. The tick in the spawning UI when placing a trap is the indication that the spawning has happened.'''&lt;br /&gt;
&lt;br /&gt;
== Detect Magic ==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Spell_Traps Detect Magic: Spell Traps]&lt;br /&gt;
Detect Magic will work automatically with a placed spell trap or a spell trap spawnpoint with a variable added to it called ACR_TRAP_SPELL_ID which contains the integer of the spell ID.* As with any ACR_Trap, either option requires a placeable tagged as TRAP_ORIGIN nearby, also.&lt;br /&gt;
&lt;br /&gt;
Detect Magic uses ACR_TRAP_SPELL_ID (already on a placed trap or added to the spawnpoint) to cross-reference spell effects against 2DA information. From the 2DA it pulls the proper school and spell power to put into the report to the Caster. For instance, for a Web Trap: &amp;quot;Spider Web and a circle centered on a spot 1m southwest of Spider Web gives off a Moderate aura of Conjuration.&amp;quot; Spider Web is the placeable tagged as TRAP_ORIGIN. The spot at which the circle is reported is the either the placed trap or the spawnpoint. &lt;br /&gt;
&lt;br /&gt;
: *Weirdly, although a placed trap already has the ACR_TRAP_SPELL_ID on it, that same trap spawned by a spawnpoint does not, so it has to be added to the spawnpoint itself for the Detect Magic to find it.&lt;br /&gt;
&lt;br /&gt;
== Disarming Traps ==&lt;br /&gt;
Traps are disarmed by using the disarm widget. DM Avatars who do this will immediately and automatically disarm the trap, removing it and the target from the area permanently. If an character uses the disarm target, that character will begin to work on disarming the trap, which will take 12-48 (most likely 30) seconds. During this time the character must remain reasonably stationary and may not carry out other actions, but stepping away from the disarming device will abort the effort.&lt;br /&gt;
&lt;br /&gt;
Characters with ranks in Disable Device may choose to aid the effort by also using the disarm target, and as many as can physically approach the device may help. Each additional disabler will roll a DC 10 Disable Device check, granting a stacking +2 bonus to the primary disabler's check on success. A character may only attempt to aid in disabling a trap once per primary user's attempt.&lt;br /&gt;
&lt;br /&gt;
The disarming character will not know ahead of time how long it will take to disarm the trap, nor will he or she know how difficult to disarm the trap will be until attempting to disarm it once.&lt;br /&gt;
&lt;br /&gt;
At the end of the time required to disarm the trap, a skill check is made against the disarm DC of the trap. If the roll is greater than or equal to the DC to disarm the trap, the trap is removed from play and rendered harmless. If the Disable Device roll fails by 4 or less, then no change is made to the trap. If the Disable Device roll fails by 5 or more, then the effort is botched and the trap is triggered, functioning per the fired trap section, except that the trap disabler is treated as a potential target (possibly the only potential target) for the trap's execution.&lt;br /&gt;
&lt;br /&gt;
== Triggering Traps ==&lt;br /&gt;
When a trap is triggered, its effects are applied to a random creature within the trap's trigger area, and potentially a botched disabler (see above). This effect may cover an area. For example, a trap which explodes in a fireball when triggered may have three people working on disarming it. Should the check be botched anyway while the trigger area is empty, only the primary disabler will be a valid target and he or she will be the center of the resulting explosion. However, the two nearby assistants are likely to be within the blast and to also be injured. If on the other hand the trigger required several people in its area to be triggered, and three were already within, botching the trap has a 1 in 4 chance of centering on each person in the trigger area or the disabler.&lt;br /&gt;
&lt;br /&gt;
It is possible for traps to trigger with discretion, such as a magical trap that only harms orcs. In this case, only qualifying creatures in the trigger area will be regarded as valid targets. Botching a disable attempt overrides this. A botched disabler is always a valid target, regardless of the trap's specific restrictions.&lt;br /&gt;
&lt;br /&gt;
== Default Traps ==&lt;br /&gt;
By default, every ALFA module has access to a set of standard traps, which are modeled after the default NWN2 traps. All of them have only one charge, do direct damage, and have equal spot, disable, and reflex save DCs. All offer reflex saves when triggered. All are of &amp;quot;medium&amp;quot; trigger size (comparable to the area of a Magic Circle vs. Alignment)&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Damage&lt;br /&gt;
! DC&lt;br /&gt;
! Area&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Minor&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Average&lt;br /&gt;
| 5d6&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Strong&lt;br /&gt;
| 12d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Blob, Deadly&lt;br /&gt;
| 18d6&lt;br /&gt;
| 25&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Minor&lt;br /&gt;
| 2d8&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Average&lt;br /&gt;
| 3d8&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Strong&lt;br /&gt;
| 5d8&lt;br /&gt;
| 17&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Acid Splash, Deadly&lt;br /&gt;
| 8d8&lt;br /&gt;
| 20&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Minor&lt;br /&gt;
| 8d6&lt;br /&gt;
| 19&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Average&lt;br /&gt;
| 15d6&lt;br /&gt;
| 22&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Strong&lt;br /&gt;
| 20d6&lt;br /&gt;
| 26&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Electrical, Deadly&lt;br /&gt;
| 30d6&lt;br /&gt;
| 28&lt;br /&gt;
| 5 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Minor&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Average&lt;br /&gt;
| 8d6&lt;br /&gt;
| 20&lt;br /&gt;
| 2 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Strong&lt;br /&gt;
| 15d6&lt;br /&gt;
| 23&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Fire, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 26&lt;br /&gt;
| 4 meters&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 13&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 14&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Frost, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 12&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 18&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Negative, Deadly&lt;br /&gt;
| 8d6&lt;br /&gt;
| 21&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Minor&lt;br /&gt;
| 2d4&lt;br /&gt;
| 12&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Average&lt;br /&gt;
| 3d4&lt;br /&gt;
| 14&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Strong&lt;br /&gt;
| 5d4&lt;br /&gt;
| 17&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Sonic, Deadly&lt;br /&gt;
| 8d4&lt;br /&gt;
| 20&lt;br /&gt;
| 3 meters&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Minor&lt;br /&gt;
| 2d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Average&lt;br /&gt;
| 3d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Strong&lt;br /&gt;
| 5d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|-&lt;br /&gt;
| Spike, Deadly&lt;br /&gt;
| 25d6&lt;br /&gt;
| 15&lt;br /&gt;
| 1 meter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tooling Additional Traps ==&lt;br /&gt;
Additional traps may be added to a module by creating waypoints which have variables on them which indicate that they are traps. The following variables control the behavior of the trap.&lt;br /&gt;
&lt;br /&gt;
* '''ACR_TRAP_TRIGGER_AREA''' (integer) --  This variable determines how large the area which is capable of causing the trap to fire is.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Name&lt;br /&gt;
! Comparison&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Small&lt;br /&gt;
| Single-Target&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Medium&lt;br /&gt;
| Magic Circle v. Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Large&lt;br /&gt;
| Entangle&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Huge&lt;br /&gt;
| Fireball&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Gargantuan&lt;br /&gt;
| Lesser Missile Storm&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Colossal&lt;br /&gt;
| Area Dispel Magic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_ATTACK_BONUS''' (integer, optional) -- This is the attack bonus that will be used to calculate if a trap is able to damage its target, should no reflex save be defined for the trap. This is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DAMAGE_TYPE''' (bitfield) -- This variable determines what kind of damage will be applied to targets of the trap. As a bitfield, you may take the sum of several damage types to make the trap do multiple types of damage. For example, Piercing Damage (2) and Slashing Damage (4) can be added together to make a piercing/slashing trap (6). This is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Damage Type&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Bludgeoning&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Piercing&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Slashing&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Magical&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Acid&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Cold&lt;br /&gt;
|-&lt;br /&gt;
| 64&lt;br /&gt;
| Divine&lt;br /&gt;
|-&lt;br /&gt;
| 128&lt;br /&gt;
| Electrical&lt;br /&gt;
|-&lt;br /&gt;
| 256&lt;br /&gt;
| Fire&lt;br /&gt;
|-&lt;br /&gt;
| 512&lt;br /&gt;
| Negative&lt;br /&gt;
|-&lt;br /&gt;
| 1024&lt;br /&gt;
| Positive&lt;br /&gt;
|-&lt;br /&gt;
| 2048&lt;br /&gt;
| Sonic&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DETECT_DC''' (integer)''' --  This variable determines what the DC of search checks to discover the trap will be. If this number is greater than 20, the trap will only be discoverable by Rogues.&lt;br /&gt;
* '''ACR_TRAP_DICE_NUMBER (integer) -- This variable determines how many dice will be rolled to determine trap damage. This is ignored if the trap casts a spell. For example, if this is 3 and * '''ACR_TRAP_DICE_TYPE is 6, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DICE_TYPE (integer)''' -- This variable determines what sort of die will be rolled to determine trap damage. For example, if this is 6, and * '''ACR_TRAP_DICE_NUMBER is 3, then the trap does 3d6 damage. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_DISARM_DC (integer)''' -- This variable determines what the DC to disarm the trap is.&lt;br /&gt;
* '''ACR_TRAP_EFFECT_AREA''' (integer) -- This variable uses the SHAPE_ constants to determine how this trap's effect spreads out, if it has a large enough area to be significant. This setting is ignored if the trap casts a spell.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Shape&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Spell Cyllinder (e.g. Lightning Bolt)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Cone (e.g. Burning Hands)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Cube (e.g. Order's Wrath)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Spell Cone (e.g. Cone of Cold)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Sphere (e.g. Fireball)&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_EFFECT_SIZE''' (float) -- This is the size, in meters, of the effect area defined previously. Cylinders and cones become longer, but remain directional. Cubes gain length on all sides equally. Spheres gain a larger radius. This setting is ignroed if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_MINIMUM_TO_TRIGGER''' (integer) -- This is the number of creatures who meet the criteria for a trap's triggering who must be within the trap's trigger area''' (defined above) before the trap will fire.&lt;br /&gt;
* '''ACR_TRAP_NUMBER_OF_SHOTS''' (integer) -- This is the number of times the trap will fire before it is discharged. If this number is -1, the trap has infinite charges, and will fire until disarmed.&lt;br /&gt;
* '''ACR_TRAP_SAVE_DC''' (integer) -- This is the reflex save DC of the trap. This setting is ignored if the trap casts a spell.&lt;br /&gt;
* '''ACR_TRAP_SPELL_ID''' (integer) -- This is the ID of the spell that is cast. If this is -1 or if it is absent, the trap will not be regarded as spell casting, and will instead resolve to do damage. If this option is set, the trap must be placed or spawned near a placeable with the tag &amp;quot;TRAP_ORIGIN.&amp;quot; In the absence of this placeable, the trap trigger will attempt to-- and typically fail to-- cast the spell itself.&lt;br /&gt;
* '''ACR_TRAP_TARGET_ALIGNMENT''' (integer) -- This setting determines which alignments are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other alignments. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Alignment&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| All Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Neutral Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Lawful Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Chaotic Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Good Alignments&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Evil Alignments&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_TARGET_RACE''' (integer) -- This setting determins which racial types are regarded as valid targets for the trap-- this will be used to determine who in the trap area is the center of the effect and whether a given creature counts toward the trap's minimum to trigger. However, traps which explode will still strike creatures of other races. It will simply not aim for the others.&lt;br /&gt;
::{| class=&amp;quot;wikitable_standard&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Dwarf&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Elf&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gnome&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Halfling&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Half-Elf&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Half-Orc&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Human&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Abberations&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Animals&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Beasts (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Constructs&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Dragons&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Goblinoids&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Monstrous Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Orcs&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Reptilian Humanoids&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Elementals&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Fey&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Giants&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Magical Beasts&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Outsiders&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Undead&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Vermin&lt;br /&gt;
|-&lt;br /&gt;
| '''28'''&lt;br /&gt;
| '''All Races'''&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Oozes&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Incorporeal (depreciated)&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Yuan-Ti&lt;br /&gt;
|}&lt;br /&gt;
* '''ACR_TRAP_DESCRIPTION''' (string) -- This setting determines what the descriptive text on the trap's disarm target will read when examined with the default &amp;quot;examine&amp;quot; command. While it may contain any arbitrary information deemed useful by the builders, it is recommended that it contain a description of what a person would see of this trap upon discovering it.&lt;br /&gt;
&lt;br /&gt;
== Spawning Traps ==&lt;br /&gt;
ACR Traps are currently able to be spawned through the [[ACR Creator]], and may also be placed using the ACR Spawn System, with object type 8.&lt;br /&gt;
&lt;br /&gt;
In order to spawn a trap, you must first tool the trap, according to the instructions above, and then use the resource name of the waypoint used to tool the trap as the resource name of the trap on the spawn point. In addition, for the trap to register to Detect Magic, to this spawnpoint add the variable: ACR_TRAP_SPELL_ID. Enter the spell integer into the integer slot. &lt;br /&gt;
&lt;br /&gt;
In all other respects, these spawn points work as any other spawn point.&lt;br /&gt;
&lt;br /&gt;
In addition, you may place a placeable with the tag &amp;quot;TRAP_ORIGIN&amp;quot; near any trap trigger and it will be regarded as the source for all effects which are created by the trap. This has two uses:&lt;br /&gt;
* Animations that involve projectiles will show the trap's effect being shot from the trap origin&lt;br /&gt;
* The trap may be used in the spell trap mode (as placeables are allowed to cast spells in the NWN2 engine, but triggers are not).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALFA Core Rules}}&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Triggers&amp;diff=3950</id>
		<title>Building Triggers</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Triggers&amp;diff=3950"/>
				<updated>2023-01-30T22:14:56Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
Creating triggers under the ACR is nearly the same as creating them under standard NWN2; The ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming trigger blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
=== Localized Name ===&lt;br /&gt;
Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance.&lt;br /&gt;
: ''Example: Transition Trigger {party}''&lt;br /&gt;
&lt;br /&gt;
=== Template, ResRef, and Tag ===&lt;br /&gt;
: ''See also: [[ResRef]], [[Tag]], and [[Template]]''&lt;br /&gt;
All trigger blueprints in the basemod will begin with the &amp;lt;code&amp;gt;abr_tr&amp;lt;/code&amp;gt; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;lt;code&amp;gt;001_tr&amp;lt;/code&amp;gt; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the trigger itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
: ''Example: A global generic trigger: &amp;lt;code&amp;gt;abr_tr_gn_mytrigger&amp;lt;/code&amp;gt;&lt;br /&gt;
: ''Example: A server generic trigger on server 01: &amp;lt;code&amp;gt;001_tr_gn_mytrigger&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints).&lt;br /&gt;
: ''Example: Created By: John Doe, Date Modified: 2014-01-23, Used By: [[acr_trigger_i.nss]]''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Event Handlers ==&lt;br /&gt;
The default basemod triggers should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the trigger's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onclick'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_ondisarm'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onheartbeat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_ontraptriggered'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onenter'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onexit'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onuserdefined'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Custom Scripting ==&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_trigger_i&amp;quot;&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_trg_* scripts. Failure to call one of these scripts in a trigger's event handler WILL break the ACR's trigger system, and probably a few other things as well.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnClick()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnDisarm()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnHeartbeat()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnTrapTriggered()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnEnter()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnExit()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnUserDefined()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a trigger to better suit their needs. These options are changed by altering the local variables on the trigger itself, and not by altering any of the scripts used by the trigger. The default basemod triggers should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
&lt;br /&gt;
=== Detect Magic ===&lt;br /&gt;
These are advanced options for triggers to register as magical to Detect Magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the trigger should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the trigger should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
*'''Detecting Portals'''&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
*'''Detecting Glyphs and Symbol Traps'''&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps Detect Magic: Glyphs and Symbol Traps]&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on triggers. For the following effect options, &amp;lt;code&amp;gt;'''{EVENT}'''&amp;lt;/code&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_CLICK'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_DISARM'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_HEARTBEAT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_ENTER'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_EXIT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Visual Effects ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2d]]a (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_VISUAL_EFFECT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== Physical Effects ====&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_PHYSICAL_EFFECT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== Damage Effects ====&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_DAMAGE_EFFECT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Triggers&amp;diff=3949</id>
		<title>Building Triggers</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Triggers&amp;diff=3949"/>
				<updated>2023-01-30T22:14:29Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
Creating triggers under the ACR is nearly the same as creating them under standard NWN2; The ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming trigger blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
=== Localized Name ===&lt;br /&gt;
Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance.&lt;br /&gt;
: ''Example: Transition Trigger {party}''&lt;br /&gt;
&lt;br /&gt;
=== Template, ResRef, and Tag ===&lt;br /&gt;
: ''See also: [[ResRef]], [[Tag]], and [[Template]]''&lt;br /&gt;
All trigger blueprints in the basemod will begin with the &amp;lt;code&amp;gt;abr_tr&amp;lt;/code&amp;gt; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;lt;code&amp;gt;001_tr&amp;lt;/code&amp;gt; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the trigger itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
: ''Example: A global generic trigger: &amp;lt;code&amp;gt;abr_tr_gn_mytrigger&amp;lt;/code&amp;gt;&lt;br /&gt;
: ''Example: A server generic trigger on server 01: &amp;lt;code&amp;gt;001_tr_gn_mytrigger&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints).&lt;br /&gt;
: ''Example: Created By: John Doe, Date Modified: 2014-01-23, Used By: [[acr_trigger_i.nss]]''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Event Handlers ==&lt;br /&gt;
The default basemod triggers should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the trigger's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onclick'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_ondisarm'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onheartbeat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_ontraptriggered'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onenter'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onexit'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''acf_trg_onuserdefined'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Custom Scripting ==&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_trigger_i&amp;quot;&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_trg_* scripts. Failure to call one of these scripts in a trigger's event handler WILL break the ACR's trigger system, and probably a few other things as well.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnClick()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnDisarm()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnHeartbeat()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnTrapTriggered()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnEnter()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnExit()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_TriggerOnUserDefined()'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a trigger to better suit their needs. These options are changed by altering the local variables on the trigger itself, and not by altering any of the scripts used by the trigger. The default basemod triggers should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
&lt;br /&gt;
=== Detect Magic ===&lt;br /&gt;
These are advanced options for triggers to register as magical to Detect Magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the trigger should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the trigger should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
*'''Detecting Portals'''&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals]&lt;br /&gt;
&lt;br /&gt;
*'''Detecting Glyphs and Symbol Traps'''&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps]&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on triggers. For the following effect options, &amp;lt;code&amp;gt;'''{EVENT}'''&amp;lt;/code&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_CLICK'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_DISARM'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_HEARTBEAT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_ENTER'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ON_EXIT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Visual Effects ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2d]]a (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_VISUAL_EFFECT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== Physical Effects ====&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_PHYSICAL_EFFECT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== Damage Effects ====&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_DAMAGE_EFFECT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3948</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3948"/>
				<updated>2023-01-30T22:11:31Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
==Detecting Portals==&lt;br /&gt;
&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
==Detecting Glyphs and Symbol Traps==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps Detect Magic: Glyphs and Symbol Traps]&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3947</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3947"/>
				<updated>2023-01-30T22:10:13Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detecting Glyphs and Symbol Traps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
==Detecting Portals==&lt;br /&gt;
&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
==Detecting Glyphs and Symbol Traps==&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Glyphs_and_Symbol_Traps Detect Magic: Glyphs and Symbol Traps]&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3946</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3946"/>
				<updated>2023-01-30T22:09:25Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detecting Portals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
==Detecting Portals==&lt;br /&gt;
&lt;br /&gt;
See [https://www.alandfaraway.info/wiki/Detect_Magic#Portals Detect Magic: Portals]&lt;br /&gt;
&lt;br /&gt;
==Detecting Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding placeables with &amp;quot;_glyph_warding&amp;quot; in the tag do not require variables. They will register automatically as having an aura of Faint (lvl 3) Abjuration.&lt;br /&gt;
&lt;br /&gt;
Symbols of X placeables with &amp;quot;_symbol_pain&amp;quot;, &amp;quot;_symbol_sleep&amp;quot;, &amp;quot;_symbol_pers&amp;quot;, &amp;quot;_symbol_fear&amp;quot;, &amp;quot;_symbol_stun&amp;quot;, &amp;quot;_symbol_weakness&amp;quot;, &amp;quot;_symbol_insanity&amp;quot;, &amp;quot;_symbol_death&amp;quot;, in the tag do not require variables. They will register automatically as having an aura of Moderate (Pain/Sleep/Persuasion/Fear) or Strong (Stun/Weakness/Insanity/Death) Enchantment (Persuasion/Sleep/Stun/Insanity) or Necromancy (Fear/Pain/Weakness/Death).&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3945</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3945"/>
				<updated>2023-01-30T22:08:22Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
==Detecting Portals==&lt;br /&gt;
Portal placeables prefixed with &amp;quot;alfa_portal&amp;quot; in the tag do not require variables. They will register automatically as having an aura of Moderate (lvl 4) Conjuration. If currently useable in game, they will report with their name to the Caster. If currently unuseable in game, they will report with &amp;quot;Something&amp;quot; as their name to the Caster. &amp;quot;Portal 5m to the northeast has a Moderate aura of Conjuration.&amp;quot;  Or, &amp;quot;Something 5m to the northeast has a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Detecting Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding placeables with &amp;quot;_glyph_warding&amp;quot; in the tag do not require variables. They will register automatically as having an aura of Faint (lvl 3) Abjuration.&lt;br /&gt;
&lt;br /&gt;
Symbols of X placeables with &amp;quot;_symbol_pain&amp;quot;, &amp;quot;_symbol_sleep&amp;quot;, &amp;quot;_symbol_pers&amp;quot;, &amp;quot;_symbol_fear&amp;quot;, &amp;quot;_symbol_stun&amp;quot;, &amp;quot;_symbol_weakness&amp;quot;, &amp;quot;_symbol_insanity&amp;quot;, &amp;quot;_symbol_death&amp;quot;, in the tag do not require variables. They will register automatically as having an aura of Moderate (Pain/Sleep/Persuasion/Fear) or Strong (Stun/Weakness/Insanity/Death) Enchantment (Persuasion/Sleep/Stun/Insanity) or Necromancy (Fear/Pain/Weakness/Death).&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3944</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3944"/>
				<updated>2023-01-30T22:08:02Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
*==Detecting Portals==&lt;br /&gt;
Portal placeables prefixed with &amp;quot;alfa_portal&amp;quot; in the tag do not require variables. They will register automatically as having an aura of Moderate (lvl 4) Conjuration. If currently useable in game, they will report with their name to the Caster. If currently unuseable in game, they will report with &amp;quot;Something&amp;quot; as their name to the Caster. &amp;quot;Portal 5m to the northeast has a Moderate aura of Conjuration.&amp;quot;  Or, &amp;quot;Something 5m to the northeast has a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*'==Detecting Glyphs and Symbol Traps==&lt;br /&gt;
Glyphs of Warding placeables with &amp;quot;_glyph_warding&amp;quot; in the tag do not require variables. They will register automatically as having an aura of Faint (lvl 3) Abjuration.&lt;br /&gt;
&lt;br /&gt;
Symbols of X placeables with &amp;quot;_symbol_pain&amp;quot;, &amp;quot;_symbol_sleep&amp;quot;, &amp;quot;_symbol_pers&amp;quot;, &amp;quot;_symbol_fear&amp;quot;, &amp;quot;_symbol_stun&amp;quot;, &amp;quot;_symbol_weakness&amp;quot;, &amp;quot;_symbol_insanity&amp;quot;, &amp;quot;_symbol_death&amp;quot;, in the tag do not require variables. They will register automatically as having an aura of Moderate (Pain/Sleep/Persuasion/Fear) or Strong (Stun/Weakness/Insanity/Death) Enchantment (Persuasion/Sleep/Stun/Insanity) or Necromancy (Fear/Pain/Weakness/Death).&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3943</id>
		<title>Building Placeables</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Placeables&amp;diff=3943"/>
				<updated>2023-01-30T22:07:11Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
Creating placeables under the ACR is nearly the same as creating them under normal NWN, the ACR just provides a few more options for builders.&lt;br /&gt;
&lt;br /&gt;
== Naming Conventions ==&lt;br /&gt;
The following conventions will need to be used in naming placeable blueprints to avoid any conflicts with other blueprints and to ensure that all content works properly with scripts:&lt;br /&gt;
&lt;br /&gt;
'''Localized Name''': Choose a one or two word descriptive name. You can add text visible only to builders in {} to help distinguish multiple blueprints of the same type at a glance. Ex: Wooden Chest {trapped}&lt;br /&gt;
&lt;br /&gt;
'''Template ResRef/Resource Name/Tag''': All placeable blueprints in the basemod will begin with the &amp;quot;abr_pl&amp;quot; prefix to designate them as global blueprints. Server specific blueprints should begin with a 3 digit server number in place of the &amp;quot;abr&amp;quot;, so &amp;quot;001_pl&amp;quot; for example. For every subcategory, add a two letter acronym delimited with underscores followed lastly by a descriptive name for the placeable itself. This helps to quickly locate blueprints when all we have is its resref. To illustrate, here are a few examples:&lt;br /&gt;
* A global container placeable: abr_pl_co_mycontainer&lt;br /&gt;
* A server container placeable on server 01: 001_pl_co_mycontainer&lt;br /&gt;
* A global building prop: abr_pl_bp_mybuilding&lt;br /&gt;
&lt;br /&gt;
'''Comments''' To identify and track blueprint versions, it's best to write your name and the date you modified the blueprint in the comments area. In addition, you may wish to note any scripts the blueprint is specifically used by (primarily for dedicated blueprints). : ''Ex: Created By: John Doe, Date Modified: 2006/12/20, Used By: acr_placeable_i.nss''&lt;br /&gt;
&lt;br /&gt;
For global blueprints, you should also include a link to this wiki page so builders that are unfamiliar with conventions or configuration options can easily find them.&lt;br /&gt;
&lt;br /&gt;
== Setting Event Handlers ==&lt;br /&gt;
The default basemod placeables should already have these handlers in place, so if you are copying an existing blueprint, you probably don't need to do anything here. To start off with, make sure the placeable's event scripts are all set correctly. The default scripts are:&lt;br /&gt;
* acf_plc_onclosed&lt;br /&gt;
* acf_plc_onconversation&lt;br /&gt;
* acf_plc_ondamaged&lt;br /&gt;
* acf_plc_ondeath&lt;br /&gt;
* acf_plc_ondisarm&lt;br /&gt;
* acf_plc_onheartbeat&lt;br /&gt;
* acf_plc_onlock&lt;br /&gt;
* acf_plc_onmeleeattacked&lt;br /&gt;
* acf_plc_onopen&lt;br /&gt;
* acf_plc_onspellcastat&lt;br /&gt;
* acf_plc_ontraptriggered&lt;br /&gt;
* acf_plc_onunlock&lt;br /&gt;
* acf_plc_onused&lt;br /&gt;
* acf_plc_onuserdefined&lt;br /&gt;
* acf_plc_oninventorydisturbed&lt;br /&gt;
&lt;br /&gt;
If you wish to make an object (like a chair) sitable, replace the OnUsed event handler with:&lt;br /&gt;
*  acf_plc_onusedsit&lt;br /&gt;
&lt;br /&gt;
= Custom Scripting =&lt;br /&gt;
If you need to add your own custom scripts, you can of course do so. First, include this line at the top of your script somewhere:&lt;br /&gt;
 #include &amp;quot;acr_placeable_i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then make sure the following functions are called in each of your custom event handlers, just as they are done in the acf_plc_* scripts. Failure to call one of these scripts in a placeable's event handler WILL break the ACR's placeable system, and probably a few other things as well.&lt;br /&gt;
&lt;br /&gt;
* ACR_PlaceableOnClosed()&lt;br /&gt;
* ACR_PlaceableOnConversation()&lt;br /&gt;
* ACR_PlaceableOnDamaged()&lt;br /&gt;
* ACR_PlaceableOnDeath()&lt;br /&gt;
* ACR_PlaceableOnDisarm()&lt;br /&gt;
* ACR_PlaceableOnHeartbeat()&lt;br /&gt;
* ACR_PlaceableOnLock()&lt;br /&gt;
* ACR_PlaceableOnMeleeAttacked()&lt;br /&gt;
* ACR_PlaceableOnOpen()&lt;br /&gt;
* ACR_PlaceableOnSpellCastAt()&lt;br /&gt;
* ACR_PlaceableOnTrapTriggered()&lt;br /&gt;
* ACR_PlaceableOnUnlock()&lt;br /&gt;
* ACR_PlaceableOnUsed()&lt;br /&gt;
* ACR_PlaceableOnUserDefined()&lt;br /&gt;
* ACR_PlaceableOnInventoryDisturbed()&lt;br /&gt;
&lt;br /&gt;
== Configuration Options ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]''&lt;br /&gt;
These options allow the builder to configure a placeable to better suit their needs. These options are changed by altering the local variables on the placeable itself, and not by altering any of the scripts used by the placeable. The default basemod placeables should already have these variables in place, so if you are copying an existing blueprint, you probably only need to alter the values of the variables here.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) This is the strength-check DC necissary to force open a placeables lock, as per DMG rules. This is generally an alternative to smashing something to pieces with an axe.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it will always lock itself when it shuts.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_IS_STUCK'''&amp;lt;/code&amp;gt; (integer) If zero, the placeable behaves normally. If nonzero, it is stuck shut, and must be forced open regardless of whether or not it is locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_WEIGHT'''&amp;lt;/code&amp;gt; (float) If you want creatures to be able to pick up and move a placeable, set this value. They will be able to pick it up in both hands, and drop it again somewhere else. The placeable takes up both of their free hands, so fighting is not possible without dropping it. If you don't want a placeable to be able to be picked up, leave this value at zero. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_CARRIED_ITEM'''&amp;lt;/code&amp;gt; (string) If you want a placeable to become a certain type of item when it is picked up, set this string to the resref of that item. If this string is defined, the weight setting will be ignored, and the item's default weight used. When the PC drops this item, the placeable will be created at the dropped location. Note: Movable placeables must be usable, walkable, non-static, and have dynamic collisions turned on.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT'''&amp;lt;/code&amp;gt; (string) This is the resref of the light object used to &amp;quot;light&amp;quot; the placeable when its light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_VFX'''&amp;lt;/code&amp;gt; (string) This is the resref of the VFX to be used while the placeables light is &amp;quot;on&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;on&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_OFF_HOUR'''&amp;lt;/code&amp;gt; (integer) The hour the placeable turns its light &amp;quot;off&amp;quot;. If equal to &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_ON_HOUR'''&amp;lt;/code&amp;gt; (or if neither variable is set), the placeable's light never changes on its own. Valid values are from 0 to 23.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_INITIAL_STATE'''&amp;lt;/code&amp;gt; (integer) Sets the initial state of the placeable's light. If zero, it is off. If nonzero, it is on. If the on/off hours are used, this setting is ignored.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PLC_LIGHT_TOGGLE'''&amp;lt;/code&amp;gt; (integer) Sets whether or not a creature can light or unlight this placeable on its own, by using it. If zero, it cannot. If nonzero, it can.&lt;br /&gt;
&lt;br /&gt;
=== Detect Magic ===&lt;br /&gt;
These are advanced options for placeables to register as having an aura to Detect Magic.  &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] for which integer calls which school of magic. (Hint, it's alphabetical, from Abjuration to Universal.)&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the placeable should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, again, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic. &lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the placeable should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For instance for a fireplace poker that simulates a casting of Burning Hands, ACR_SPELLSCHOOL would be integer 5 and ACR_SPELLPOWER would be 1, to return: &amp;quot;Magic Fireplace Poker has a Faint Aura of Evocation.&amp;quot; Or &amp;quot;Magic Fireplace Poker has a Faint Aura&amp;quot; if the caster fails the Spellcraft check to learn the magic school. (Actually scripting the poker to cast Burning Hands is a separate matter entirely, but at least it will register as having the aura for it with these variables.)&lt;br /&gt;
&lt;br /&gt;
*'''Detecting Portals'''&lt;br /&gt;
Portal placeables prefixed with &amp;quot;alfa_portal&amp;quot; in the tag do not require variables. They will register automatically as having an aura of Moderate (lvl 4) Conjuration. If currently useable in game, they will report with their name to the Caster. If currently unuseable in game, they will report with &amp;quot;Something&amp;quot; as their name to the Caster. &amp;quot;Portal 5m to the northeast has a Moderate aura of Conjuration.&amp;quot;  Or, &amp;quot;Something 5m to the northeast has a Moderate aura of Conjuration.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*'''Detecting Glyphs and Symbol Traps'''&lt;br /&gt;
Glyphs of Warding placeables with &amp;quot;_glyph_warding&amp;quot; in the tag do not require variables. They will register automatically as having an aura of Faint (lvl 3) Abjuration.&lt;br /&gt;
&lt;br /&gt;
Symbols of X placeables with &amp;quot;_symbol_pain&amp;quot;, &amp;quot;_symbol_sleep&amp;quot;, &amp;quot;_symbol_pers&amp;quot;, &amp;quot;_symbol_fear&amp;quot;, &amp;quot;_symbol_stun&amp;quot;, &amp;quot;_symbol_weakness&amp;quot;, &amp;quot;_symbol_insanity&amp;quot;, &amp;quot;_symbol_death&amp;quot;, in the tag do not require variables. They will register automatically as having an aura of Moderate (Pain/Sleep/Persuasion/Fear) or Strong (Stun/Weakness/Insanity/Death) Enchantment (Persuasion/Sleep/Stun/Insanity) or Necromancy (Fear/Pain/Weakness/Death).&lt;br /&gt;
&lt;br /&gt;
Like other traps, Glyphs and Symbols will always report with &amp;quot;Something&amp;quot; as their name. &amp;quot;Something 5m to the northeast has a Moderate aura.&amp;quot; Or &amp;quot;Something 5m to the northeast has a Moderate aura of Enchantment&amp;quot; if the caster passes a spellcraft check to learn the school of magic.&lt;br /&gt;
&lt;br /&gt;
=== Persistence Options ===&lt;br /&gt;
These options are used make placeable inventories persistent:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_NAME'''&amp;lt;/code&amp;gt; (string) Sets the name of the database to which inventory is stored. THIS MUST BE UNIQUE PER MODULE AND HOST.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_PSO_ONDEATH'''&amp;lt;/code&amp;gt; (integer) Sets whether the inventory of a persistent container should drop when destroyed. 0 = DO NOT DROP (default behavior) 1 = DROP INVENTORY&lt;br /&gt;
&lt;br /&gt;
=== Conversation Options ===&lt;br /&gt;
In order to make a placeable use a conversation:&lt;br /&gt;
* Place the standard script &amp;quot;'''x2_use_placeable'''&amp;quot; in the onused script event.&lt;br /&gt;
* Check the box on your placeable for 'Usable' and uncheck the box for 'Static',  it can be 'Walkable' or not depending on your needs.&lt;br /&gt;
* Place the name of the Conversation it will start in the Conversation box.&lt;br /&gt;
* Alternately you can also set the ''''Default Action Preference'''' to ''Use'' to make it easy for your players to access the conversation.&lt;br /&gt;
&lt;br /&gt;
=== Effect Options ===&lt;br /&gt;
These are advanced options for placing effects (visual and otherwise) on placeables. For the following effect options, {EVENT} is one of:&lt;br /&gt;
* ON_OPEN&lt;br /&gt;
* ON_CLOSE&lt;br /&gt;
* ON_LOCK&lt;br /&gt;
* ON_UNLOCK&lt;br /&gt;
* ON_USED&lt;br /&gt;
* ON_ATTACKED&lt;br /&gt;
* ON_DAMAGED&lt;br /&gt;
* ON_SPELLCAST&lt;br /&gt;
* ON_SPAWN&lt;br /&gt;
* ON_DEATH&lt;br /&gt;
* ON_DISTURBED&lt;br /&gt;
* ON_HEARTBEAT&lt;br /&gt;
* ON_DISARM&lt;br /&gt;
* ON_PERCEPTION&lt;br /&gt;
&lt;br /&gt;
The possible configurations are as follows.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_VISUAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the visual effects that trigger for each event on the activating creature (this includes light shaft placeables). These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX CONSTANT/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX CONSTANT'''&amp;lt;/code&amp;gt; is one of the [[GetEffectInteger]] constants defined in [[visualeffects.2da]] (listed in [[NWScript.nss]]) and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Visual effects are those which only provide a visual indicator that something has occurred. These effects are totally harmless but are used in conjunction with Physical and Damage Effects to illustrate something has occurred to the target upon interacting with an object (the source of the effects).&lt;br /&gt;
&lt;br /&gt;
Visual effect constants are string values used in constructing the &amp;lt;code&amp;gt;'''*_EFFECT_VISUAL'''&amp;lt;/code&amp;gt; local variable. The list of supported effects can be expanded as necessary, but any changes or additions should be reflected in the &amp;lt;code&amp;gt;'''_getVFXConstant()'''&amp;lt;/code&amp;gt; function in the [[acr_vfx_i.nss]] file in order for the effect to function.&lt;br /&gt;
&lt;br /&gt;
Not all visual effects will support variable durations. Some simply have fixed animation cycles which cannot be affected through scripting.&lt;br /&gt;
&lt;br /&gt;
To setup the visual effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a fire beam that triggers when an object is used (touched) and expires after 5 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_VISUAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''VFX_BEAM_FIRE'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the available visual effects constants in place of VFX_BEAM_FIRE, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_PHYSICAL ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the physical effects that trigger for each event on the activating creature. These are not mutually exclusive options (ie they can all be defined on a single object). Each string must be defined in the following format: &amp;lt;code&amp;gt;'''VFX TYPE/VFX DURATION'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''VFX TYPE'''&amp;lt;/code&amp;gt; is the specific type of effect to be applied and &amp;lt;code&amp;gt;'''VFX DURATION'''&amp;lt;/code&amp;gt; is a float representing the total number of seconds the effect should last (use 0.0 if it's either n/a or a permanent effect; some exceptions apply noted in the individual effect sections of the documentation).&lt;br /&gt;
&lt;br /&gt;
Physical effects are those that affect the target's health or condition. These include anything from raw damage to altering the target's state of mind. They typically have NO visual indication (exceptions exist like knockdown) and as a result, should be used in tandem with a suitable visual effect for the benefit of the player (both in terms of providing IC feedback that something has affected their character as well as providing a more enjoyable and engaging atmosphere).&lt;br /&gt;
&lt;br /&gt;
Not all physical effects have durations. Some are instant effects and others are permanent. damage effects apply directly to the physical effect, and as such, you should always reference this section when constructing damage effect values to understand how the damage will be applied.&lt;br /&gt;
&lt;br /&gt;
To setup the physical effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to construct a knockdown physical effect to be used with the fire beam visual effect described above that expires after 10 seconds, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_PHYSICAL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;/5.0&lt;br /&gt;
&lt;br /&gt;
You can substitute any of the physical effects available in place of &amp;lt;code&amp;gt;'''KNOCKDOWN'''&amp;lt;/code&amp;gt;, but be sure your spelling is correct. Typo's will not yield correct results.&lt;br /&gt;
&lt;br /&gt;
==== EFFECT_DAMAGE ====&lt;br /&gt;
: &amp;lt;code&amp;gt;'''ACR_VFX_{EVENT}_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt; (string)&lt;br /&gt;
These strings are used to define the damage a physical effect will apply to the activating creature for each event as well as the saving throw required to avoid suffering from the physical effect or related damage. These are not mutually exclusive options (ie they can all be defined on a single object) but they must exist for each physical effect defined if some form of damage is to be applied. Each string must be defined in the following format: &amp;lt;code&amp;gt;'''DAMAGE/ST TYPE/DC'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''DAMAGE'''&amp;lt;/code&amp;gt; is the damage value to apply toward the desired physical effect, &amp;lt;code&amp;gt;'''ST TYPE'''&amp;lt;/code&amp;gt; is the type of Saving Throw possible (&amp;lt;code&amp;gt;'''FORTITUDE'''&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'''WILL'''&amp;lt;/code&amp;gt;), and &amp;lt;code&amp;gt;'''DC'''&amp;lt;/code&amp;gt; is the [[Difficulty Class]] of the save.&lt;br /&gt;
&lt;br /&gt;
Damage effects contain the actual details of the physical effect being applied, including any saving throws and DCs that the target can attempt to save against. Damage effects need not be defined, but they should be defined appropriately according to the physical effect used. Read the article on physical effect types to determine how damage values are applied to a given physical effect. Do not define a damage Effect without a corresponding physical effect to apply it to.&lt;br /&gt;
&lt;br /&gt;
To setup the damage effect local variable, select the object in the toolset that you wish to add effects to then click the &amp;quot;...&amp;quot; button in the properties dialogue to browse the variables list on the object. Once the variables screen opens up, enter in the appropriate variable name for the effect in the name field, select &amp;quot;string&amp;quot; as the variable type, and then enter in the appropriate value.&lt;br /&gt;
&lt;br /&gt;
For example, to give the knockdown physical effect described above some damage and allow the target a reflex saving throw of DC 15, you would create the following:&lt;br /&gt;
: Variable Name : &amp;lt;code&amp;gt;'''ACR_VFX_ON_USE_EFFECT_DAMAGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
: Variable Type : string&lt;br /&gt;
: Variable Value : 3.0/&amp;lt;code&amp;gt;'''REFLEX'''&amp;lt;/code&amp;gt;/15.0&lt;br /&gt;
&lt;br /&gt;
All values must be represented as floating point numbers.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3942</id>
		<title>Building Items</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3942"/>
				<updated>2023-01-30T22:06:10Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
=Nomenclature=&lt;br /&gt;
All items should be priced according to 3.5 edition canon (Player's Hand Book, Dungeon Master's Guide, etc), and to the ALFA specific exceptions set forth by ALFA [[Standards]]. '''Do not make items worth less than 1gp yet!''' Our currency system for silver and copper pieces is not yet ready, and we may not know how it will work until we have the client in our hands.&lt;br /&gt;
&lt;br /&gt;
'''Premise''': An item should be identifiable from it's tag/resref.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;_it_&amp;lt;type&amp;gt;_&amp;lt;description&amp;gt;_&amp;lt;ID&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;''' is either &amp;quot;abr&amp;quot; (minus the quotes) for default ALFA items, or a three digit code of the server.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;type&amp;gt;''' is a three-letter abbreviation describing the slot occupied by the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;description&amp;gt;''' is the number of fields necessary to describe any additional properties on the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;ID&amp;gt;''' is an optional two-digit number used to distinguish items with identical properties. Leave the &amp;lt;ID&amp;gt; off of tags - it goes on resrefs only.&lt;br /&gt;
&lt;br /&gt;
Item tags should NEVER be longer than 28 characters. The game allows 32, so don't use them all.&lt;br /&gt;
&lt;br /&gt;
'''Scripting''': For information on how to script items, go here.&lt;br /&gt;
&lt;br /&gt;
'''Examples''': A standard longsword would be, '''Tag''': abr_it_wpn_longsword '''ResRef''': abr_it_wpn_longword_01&lt;br /&gt;
&lt;br /&gt;
=Materials=&lt;br /&gt;
* Abyssal Bloodiron ay&lt;br /&gt;
* Adamantine ad&lt;br /&gt;
* Alchemical Silver sa&lt;br /&gt;
* Arandur aa&lt;br /&gt;
* Astral Driftmetal as&lt;br /&gt;
* Aurorum au&lt;br /&gt;
* Bluewood bw&lt;br /&gt;
* Cold Iron ci&lt;br /&gt;
* Copper co&lt;br /&gt;
* Darksteel dk&lt;br /&gt;
* Darkwood (Zalantar) za&lt;br /&gt;
* Dlarun dl&lt;br /&gt;
* Dragonbone db&lt;br /&gt;
* Dragonfang df&lt;br /&gt;
* Dragonhide dh&lt;br /&gt;
* Dragonscale ds&lt;br /&gt;
* Duskwood du&lt;br /&gt;
* Fever Iron fr&lt;br /&gt;
* Fiendbone fb&lt;br /&gt;
* Frystalline fy&lt;br /&gt;
* Gold go&lt;br /&gt;
* Hide hi&lt;br /&gt;
* Hizagkuur hz&lt;br /&gt;
* Laminated Steel ls&lt;br /&gt;
* Living Metal lm&lt;br /&gt;
* Mithral mi&lt;br /&gt;
* Obsidian ob&lt;br /&gt;
* Pandemonic Silver ps&lt;br /&gt;
* Platinum pt&lt;br /&gt;
* Serren se&lt;br /&gt;
* Silver sv&lt;br /&gt;
* Solarian Truesteel tr&lt;br /&gt;
* Sondarr so&lt;br /&gt;
* Suzailian Chainweave ch&lt;br /&gt;
* Weirwood ww&lt;br /&gt;
* Ysgardian Heartwire ys&lt;br /&gt;
&lt;br /&gt;
=Quality=&lt;br /&gt;
* Arcane Spell Failure -10% asf1&lt;br /&gt;
* Drowcraft dc&lt;br /&gt;
* Masterwork mw&lt;br /&gt;
* Plus one e1&lt;br /&gt;
* Poor po&lt;br /&gt;
* Armour Class +1 ac1&lt;br /&gt;
* Bonus Spell, Level 0 sb0&lt;br /&gt;
* Bonus Spell, Levels 0, 1, 2 sb012&lt;br /&gt;
* Damage Resistance 1 dr1&lt;br /&gt;
* Damage Resistance 5/magic dr5m&lt;br /&gt;
* Damage Resistance Fire 5 drf5&lt;br /&gt;
* Feat: Alertness fale&lt;br /&gt;
* Feat: Ambidexterity famb&lt;br /&gt;
* Feat: Combat Casting fcca&lt;br /&gt;
* Feat: Darkvision fdar&lt;br /&gt;
* Feat: Dodge fdod&lt;br /&gt;
* Feat: Extra Turning fext&lt;br /&gt;
* Feat: Mobility fmob&lt;br /&gt;
* Feat: Spell Focus (One) fsf1&lt;br /&gt;
* Feat: Spell Penetration fpen&lt;br /&gt;
* Feat: Two Weapon Fighting ftwf&lt;br /&gt;
* Feat: Weapon Finesse fwfi&lt;br /&gt;
* Spell Immunity, Level 0 si0&lt;br /&gt;
* Spell Resistance 12 sr12&lt;br /&gt;
* Freedom of Movement fom&lt;br /&gt;
* Immunity: Death Magic ide&lt;br /&gt;
* Immunity: Disease idi&lt;br /&gt;
* Immunity: Drain idr&lt;br /&gt;
* Immunity: Fear ife&lt;br /&gt;
* Immunity: Gas iga&lt;br /&gt;
* Immunity: Magic Missle imm&lt;br /&gt;
* Immunity: Paralysis ipa&lt;br /&gt;
* Immunity: Poison ipo&lt;br /&gt;
* Save, Acid +1 sac1&lt;br /&gt;
* Save, Cold +1 sco1&lt;br /&gt;
* Save, Death +1 sde1&lt;br /&gt;
* Save, Disease +1 sds1&lt;br /&gt;
* Save, Fear +1 sfe1&lt;br /&gt;
* Save, Fire +1 sfi1&lt;br /&gt;
* Save, Fort +1 sfo1&lt;br /&gt;
* Save, Mind +1 smi1&lt;br /&gt;
* Save, Negative +1 sne1&lt;br /&gt;
* Save, Poison +1 spo1&lt;br /&gt;
* Save, Reflex +1 sre1&lt;br /&gt;
* Save, Sonic +1 sso1&lt;br /&gt;
* Save, Universal +1 sa1&lt;br /&gt;
* Save, Will +1 swi1&lt;br /&gt;
* Hide +1 hi1&lt;br /&gt;
* Damage, Acid +1 da1&lt;br /&gt;
* Damage, Bludgeoning +1 db1&lt;br /&gt;
* Damage, Cold +1 dc1&lt;br /&gt;
* Damage, Divine +1 dd1&lt;br /&gt;
* Damage, Fire +1 df1&lt;br /&gt;
* Damage, Magic +1 dm1&lt;br /&gt;
* Damage, Negative +1 dn1&lt;br /&gt;
* Damage, Piercing +1 dp1&lt;br /&gt;
* Damage, Slashing +1 ds1&lt;br /&gt;
* Damage, Sonic +1 do1&lt;br /&gt;
* Feat: Cleave fcle&lt;br /&gt;
* Feat: Disarm fdis&lt;br /&gt;
* Feat: Improved Critical ficr&lt;br /&gt;
* Feat: Point Blank Shot fpbs&lt;br /&gt;
* Feat: Rapid Shot frap&lt;br /&gt;
* Feat: Weapon Specialisation fwsp&lt;br /&gt;
* Keen ke&lt;br /&gt;
* Massive Criticals +1 mc1&lt;br /&gt;
* Mighty +1 m1&lt;br /&gt;
* Sure Striking sst&lt;br /&gt;
* Vampiric +1 dv1&lt;br /&gt;
* Wounding +1 dw1&lt;br /&gt;
&lt;br /&gt;
This is added in the toolset with a string separated by the '|' character for each category. The HDMs of every server are free to make their own rules as too where items should be placed, but be aware the DM client cannot see more than one step &amp;quot;deep&amp;quot; into the category tree.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
Most magical items will automatically register to Detect Magic correctly. The spell looks at the item's properties and cross-references spell effects and enhancements against 2DA information to assign the proper school and spell power.&lt;br /&gt;
The following are advanced options for items without properties or for which you want to register an aura in addition to what Detect Magic cross-references from item properties.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the item should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the trigger should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to  Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For items that use an i_tag_eventsuffix script to be called on a Cast Spell: Unique Power event, the automatic report to the caster will read only &amp;quot;Something has an aura too complex to be unravel.&amp;quot; If you want the item to register a spell aura in addition to that message, you must place the above variables.&lt;br /&gt;
&lt;br /&gt;
For instance, for a uniquely scripted Hairbrush using the i_tag_ac that fires on activate to perform a uniquely scripted buff to CHA that simulates a casting of Eagle's Splendor as well as actions or effects you couldn't get by just adding Cast Spell: Eagle's Splendor to the Hairbrush, you would set ACR_SPELLSCHOOL to 8 and ACR_SPELLPOWER to 2. &lt;br /&gt;
&lt;br /&gt;
If the caster passes a spellcraft check, in addition to the &amp;quot;Too Complex&amp;quot; message generated by the fact of the unique power event, if the item was loose on the floor this would return a message that reads &amp;quot;Hairbrush has a Faint aura of Transmutation&amp;quot;, or &amp;quot;Something in the Cabinet's inventory (or Princess Penelope Prettygirl's inventory) has a Faint aura of Transmutation&amp;quot; if the hairbrush is in something/somebody's inventory. &lt;br /&gt;
&lt;br /&gt;
If the caster does not pass the spellcraft check, s/he doesn't get the school of magic. The item returns only &amp;quot;Hairbrush has a Faint aura&amp;quot; or &amp;quot;Something in X's inventory has a Faint aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Item Tips =&lt;br /&gt;
* When creating Creature items, make sure the item is checked as identified, otherwise the creature cannot equip or use the item.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3941</id>
		<title>Building Items</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3941"/>
				<updated>2023-01-30T22:05:08Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
=Nomenclature=&lt;br /&gt;
All items should be priced according to 3.5 edition canon (Player's Hand Book, Dungeon Master's Guide, etc), and to the ALFA specific exceptions set forth by ALFA [[Standards]]. '''Do not make items worth less than 1gp yet!''' Our currency system for silver and copper pieces is not yet ready, and we may not know how it will work until we have the client in our hands.&lt;br /&gt;
&lt;br /&gt;
'''Premise''': An item should be identifiable from it's tag/resref.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;_it_&amp;lt;type&amp;gt;_&amp;lt;description&amp;gt;_&amp;lt;ID&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;''' is either &amp;quot;abr&amp;quot; (minus the quotes) for default ALFA items, or a three digit code of the server.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;type&amp;gt;''' is a three-letter abbreviation describing the slot occupied by the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;description&amp;gt;''' is the number of fields necessary to describe any additional properties on the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;ID&amp;gt;''' is an optional two-digit number used to distinguish items with identical properties. Leave the &amp;lt;ID&amp;gt; off of tags - it goes on resrefs only.&lt;br /&gt;
&lt;br /&gt;
Item tags should NEVER be longer than 28 characters. The game allows 32, so don't use them all.&lt;br /&gt;
&lt;br /&gt;
'''Scripting''': For information on how to script items, go here.&lt;br /&gt;
&lt;br /&gt;
'''Examples''': A standard longsword would be, '''Tag''': abr_it_wpn_longsword '''ResRef''': abr_it_wpn_longword_01&lt;br /&gt;
&lt;br /&gt;
=Materials=&lt;br /&gt;
* Abyssal Bloodiron ay&lt;br /&gt;
* Adamantine ad&lt;br /&gt;
* Alchemical Silver sa&lt;br /&gt;
* Arandur aa&lt;br /&gt;
* Astral Driftmetal as&lt;br /&gt;
* Aurorum au&lt;br /&gt;
* Bluewood bw&lt;br /&gt;
* Cold Iron ci&lt;br /&gt;
* Copper co&lt;br /&gt;
* Darksteel dk&lt;br /&gt;
* Darkwood (Zalantar) za&lt;br /&gt;
* Dlarun dl&lt;br /&gt;
* Dragonbone db&lt;br /&gt;
* Dragonfang df&lt;br /&gt;
* Dragonhide dh&lt;br /&gt;
* Dragonscale ds&lt;br /&gt;
* Duskwood du&lt;br /&gt;
* Fever Iron fr&lt;br /&gt;
* Fiendbone fb&lt;br /&gt;
* Frystalline fy&lt;br /&gt;
* Gold go&lt;br /&gt;
* Hide hi&lt;br /&gt;
* Hizagkuur hz&lt;br /&gt;
* Laminated Steel ls&lt;br /&gt;
* Living Metal lm&lt;br /&gt;
* Mithral mi&lt;br /&gt;
* Obsidian ob&lt;br /&gt;
* Pandemonic Silver ps&lt;br /&gt;
* Platinum pt&lt;br /&gt;
* Serren se&lt;br /&gt;
* Silver sv&lt;br /&gt;
* Solarian Truesteel tr&lt;br /&gt;
* Sondarr so&lt;br /&gt;
* Suzailian Chainweave ch&lt;br /&gt;
* Weirwood ww&lt;br /&gt;
* Ysgardian Heartwire ys&lt;br /&gt;
&lt;br /&gt;
=Quality=&lt;br /&gt;
* Arcane Spell Failure -10% asf1&lt;br /&gt;
* Drowcraft dc&lt;br /&gt;
* Masterwork mw&lt;br /&gt;
* Plus one e1&lt;br /&gt;
* Poor po&lt;br /&gt;
* Armour Class +1 ac1&lt;br /&gt;
* Bonus Spell, Level 0 sb0&lt;br /&gt;
* Bonus Spell, Levels 0, 1, 2 sb012&lt;br /&gt;
* Damage Resistance 1 dr1&lt;br /&gt;
* Damage Resistance 5/magic dr5m&lt;br /&gt;
* Damage Resistance Fire 5 drf5&lt;br /&gt;
* Feat: Alertness fale&lt;br /&gt;
* Feat: Ambidexterity famb&lt;br /&gt;
* Feat: Combat Casting fcca&lt;br /&gt;
* Feat: Darkvision fdar&lt;br /&gt;
* Feat: Dodge fdod&lt;br /&gt;
* Feat: Extra Turning fext&lt;br /&gt;
* Feat: Mobility fmob&lt;br /&gt;
* Feat: Spell Focus (One) fsf1&lt;br /&gt;
* Feat: Spell Penetration fpen&lt;br /&gt;
* Feat: Two Weapon Fighting ftwf&lt;br /&gt;
* Feat: Weapon Finesse fwfi&lt;br /&gt;
* Spell Immunity, Level 0 si0&lt;br /&gt;
* Spell Resistance 12 sr12&lt;br /&gt;
* Freedom of Movement fom&lt;br /&gt;
* Immunity: Death Magic ide&lt;br /&gt;
* Immunity: Disease idi&lt;br /&gt;
* Immunity: Drain idr&lt;br /&gt;
* Immunity: Fear ife&lt;br /&gt;
* Immunity: Gas iga&lt;br /&gt;
* Immunity: Magic Missle imm&lt;br /&gt;
* Immunity: Paralysis ipa&lt;br /&gt;
* Immunity: Poison ipo&lt;br /&gt;
* Save, Acid +1 sac1&lt;br /&gt;
* Save, Cold +1 sco1&lt;br /&gt;
* Save, Death +1 sde1&lt;br /&gt;
* Save, Disease +1 sds1&lt;br /&gt;
* Save, Fear +1 sfe1&lt;br /&gt;
* Save, Fire +1 sfi1&lt;br /&gt;
* Save, Fort +1 sfo1&lt;br /&gt;
* Save, Mind +1 smi1&lt;br /&gt;
* Save, Negative +1 sne1&lt;br /&gt;
* Save, Poison +1 spo1&lt;br /&gt;
* Save, Reflex +1 sre1&lt;br /&gt;
* Save, Sonic +1 sso1&lt;br /&gt;
* Save, Universal +1 sa1&lt;br /&gt;
* Save, Will +1 swi1&lt;br /&gt;
* Hide +1 hi1&lt;br /&gt;
* Damage, Acid +1 da1&lt;br /&gt;
* Damage, Bludgeoning +1 db1&lt;br /&gt;
* Damage, Cold +1 dc1&lt;br /&gt;
* Damage, Divine +1 dd1&lt;br /&gt;
* Damage, Fire +1 df1&lt;br /&gt;
* Damage, Magic +1 dm1&lt;br /&gt;
* Damage, Negative +1 dn1&lt;br /&gt;
* Damage, Piercing +1 dp1&lt;br /&gt;
* Damage, Slashing +1 ds1&lt;br /&gt;
* Damage, Sonic +1 do1&lt;br /&gt;
* Feat: Cleave fcle&lt;br /&gt;
* Feat: Disarm fdis&lt;br /&gt;
* Feat: Improved Critical ficr&lt;br /&gt;
* Feat: Point Blank Shot fpbs&lt;br /&gt;
* Feat: Rapid Shot frap&lt;br /&gt;
* Feat: Weapon Specialisation fwsp&lt;br /&gt;
* Keen ke&lt;br /&gt;
* Massive Criticals +1 mc1&lt;br /&gt;
* Mighty +1 m1&lt;br /&gt;
* Sure Striking sst&lt;br /&gt;
* Vampiric +1 dv1&lt;br /&gt;
* Wounding +1 dw1&lt;br /&gt;
&lt;br /&gt;
This is added in the toolset with a string separated by the '|' character for each category. The HDMs of every server are free to make their own rules as too where items should be placed, but be aware the DM client cannot see more than one step &amp;quot;deep&amp;quot; into the category tree.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
Most magical items will automatically register to Detect Magic correctly. The spell looks at the item's properties and cross-references spell effects and enhancements against 2DA information to assign the proper school and spell power.&lt;br /&gt;
The following are advanced options for items without properties or for which you want to register an aura in addition to what Detect Magic cross-references from item properties.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the item should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the trigger should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to  Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For items that use an i_tag_eventsuffix script to be called on a Cast Spell: Unique Power event, the automatic report to the caster will read only &amp;quot;Something has an aura too complex to be understood immediately.&amp;quot; If you want the item to register a spell aura in addition to that message, you must place the above variables.&lt;br /&gt;
&lt;br /&gt;
For instance, for a uniquely scripted Hairbrush using the i_tag_ac that fires on activate to perform a uniquely scripted buff to CHA that simulates a casting of Eagle's Splendor as well as actions or effects you couldn't get by just adding Cast Spell: Eagle's Splendor to the Hairbrush, you would set ACR_SPELLSCHOOL to 8 and ACR_SPELLPOWER to 2. &lt;br /&gt;
&lt;br /&gt;
If the caster passes a spellcraft check, in addition to the &amp;quot;Too Complex&amp;quot; message generated by the fact of the unique power event, if the item was loose on the floor this would return a message that reads &amp;quot;Hairbrush has a Faint aura of Transmutation&amp;quot;, or &amp;quot;Something in the Cabinet's inventory (or Princess Penelope Prettygirl's inventory) has a Faint aura of Transmutation&amp;quot; if the hairbrush is in something/somebody's inventory. &lt;br /&gt;
&lt;br /&gt;
If the caster does not pass the spellcraft check, s/he doesn't get the school of magic. The item returns only&amp;quot;Hairbrush has a Faint aura&amp;quot; or &amp;quot;Something in X's inventory has a Faint aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Item Tips =&lt;br /&gt;
* When creating Creature items, make sure the item is checked as identified, otherwise the creature cannot equip or use the item.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3940</id>
		<title>Building Items</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3940"/>
				<updated>2023-01-30T22:03:55Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* ITEM TIPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
All items should be priced according to 3.5 edition canon (Player's Hand Book, Dungeon Master's Guide, etc), and to the ALFA specific exceptions set forth by ALFA [[Standards]]. '''Do not make items worth less than 1gp yet!''' Our currency system for silver and copper pieces is not yet ready, and we may not know how it will work until we have the client in our hands.&lt;br /&gt;
&lt;br /&gt;
'''Premise''': An item should be identifiable from it's tag/resref.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;_it_&amp;lt;type&amp;gt;_&amp;lt;description&amp;gt;_&amp;lt;ID&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;''' is either &amp;quot;abr&amp;quot; (minus the quotes) for default ALFA items, or a three digit code of the server.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;type&amp;gt;''' is a three-letter abbreviation describing the slot occupied by the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;description&amp;gt;''' is the number of fields necessary to describe any additional properties on the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;ID&amp;gt;''' is an optional two-digit number used to distinguish items with identical properties. Leave the &amp;lt;ID&amp;gt; off of tags - it goes on resrefs only.&lt;br /&gt;
&lt;br /&gt;
Item tags should NEVER be longer than 28 characters. The game allows 32, so don't use them all.&lt;br /&gt;
&lt;br /&gt;
'''Scripting''': For information on how to script items, go here.&lt;br /&gt;
&lt;br /&gt;
'''Examples''': A standard longsword would be, '''Tag''': abr_it_wpn_longsword '''ResRef''': abr_it_wpn_longword_01&lt;br /&gt;
&lt;br /&gt;
'''Materials'''&lt;br /&gt;
* Abyssal Bloodiron ay&lt;br /&gt;
* Adamantine ad&lt;br /&gt;
* Alchemical Silver sa&lt;br /&gt;
* Arandur aa&lt;br /&gt;
* Astral Driftmetal as&lt;br /&gt;
* Aurorum au&lt;br /&gt;
* Bluewood bw&lt;br /&gt;
* Cold Iron ci&lt;br /&gt;
* Copper co&lt;br /&gt;
* Darksteel dk&lt;br /&gt;
* Darkwood (Zalantar) za&lt;br /&gt;
* Dlarun dl&lt;br /&gt;
* Dragonbone db&lt;br /&gt;
* Dragonfang df&lt;br /&gt;
* Dragonhide dh&lt;br /&gt;
* Dragonscale ds&lt;br /&gt;
* Duskwood du&lt;br /&gt;
* Fever Iron fr&lt;br /&gt;
* Fiendbone fb&lt;br /&gt;
* Frystalline fy&lt;br /&gt;
* Gold go&lt;br /&gt;
* Hide hi&lt;br /&gt;
* Hizagkuur hz&lt;br /&gt;
* Laminated Steel ls&lt;br /&gt;
* Living Metal lm&lt;br /&gt;
* Mithral mi&lt;br /&gt;
* Obsidian ob&lt;br /&gt;
* Pandemonic Silver ps&lt;br /&gt;
* Platinum pt&lt;br /&gt;
* Serren se&lt;br /&gt;
* Silver sv&lt;br /&gt;
* Solarian Truesteel tr&lt;br /&gt;
* Sondarr so&lt;br /&gt;
* Suzailian Chainweave ch&lt;br /&gt;
* Weirwood ww&lt;br /&gt;
* Ysgardian Heartwire ys&lt;br /&gt;
&lt;br /&gt;
'''Quality'''&lt;br /&gt;
* Arcane Spell Failure -10% asf1&lt;br /&gt;
* Drowcraft dc&lt;br /&gt;
* Masterwork mw&lt;br /&gt;
* Plus one e1&lt;br /&gt;
* Poor po&lt;br /&gt;
* Armour Class +1 ac1&lt;br /&gt;
* Bonus Spell, Level 0 sb0&lt;br /&gt;
* Bonus Spell, Levels 0, 1, 2 sb012&lt;br /&gt;
* Damage Resistance 1 dr1&lt;br /&gt;
* Damage Resistance 5/magic dr5m&lt;br /&gt;
* Damage Resistance Fire 5 drf5&lt;br /&gt;
* Feat: Alertness fale&lt;br /&gt;
* Feat: Ambidexterity famb&lt;br /&gt;
* Feat: Combat Casting fcca&lt;br /&gt;
* Feat: Darkvision fdar&lt;br /&gt;
* Feat: Dodge fdod&lt;br /&gt;
* Feat: Extra Turning fext&lt;br /&gt;
* Feat: Mobility fmob&lt;br /&gt;
* Feat: Spell Focus (One) fsf1&lt;br /&gt;
* Feat: Spell Penetration fpen&lt;br /&gt;
* Feat: Two Weapon Fighting ftwf&lt;br /&gt;
* Feat: Weapon Finesse fwfi&lt;br /&gt;
* Spell Immunity, Level 0 si0&lt;br /&gt;
* Spell Resistance 12 sr12&lt;br /&gt;
* Freedom of Movement fom&lt;br /&gt;
* Immunity: Death Magic ide&lt;br /&gt;
* Immunity: Disease idi&lt;br /&gt;
* Immunity: Drain idr&lt;br /&gt;
* Immunity: Fear ife&lt;br /&gt;
* Immunity: Gas iga&lt;br /&gt;
* Immunity: Magic Missle imm&lt;br /&gt;
* Immunity: Paralysis ipa&lt;br /&gt;
* Immunity: Poison ipo&lt;br /&gt;
* Save, Acid +1 sac1&lt;br /&gt;
* Save, Cold +1 sco1&lt;br /&gt;
* Save, Death +1 sde1&lt;br /&gt;
* Save, Disease +1 sds1&lt;br /&gt;
* Save, Fear +1 sfe1&lt;br /&gt;
* Save, Fire +1 sfi1&lt;br /&gt;
* Save, Fort +1 sfo1&lt;br /&gt;
* Save, Mind +1 smi1&lt;br /&gt;
* Save, Negative +1 sne1&lt;br /&gt;
* Save, Poison +1 spo1&lt;br /&gt;
* Save, Reflex +1 sre1&lt;br /&gt;
* Save, Sonic +1 sso1&lt;br /&gt;
* Save, Universal +1 sa1&lt;br /&gt;
* Save, Will +1 swi1&lt;br /&gt;
* Hide +1 hi1&lt;br /&gt;
* Damage, Acid +1 da1&lt;br /&gt;
* Damage, Bludgeoning +1 db1&lt;br /&gt;
* Damage, Cold +1 dc1&lt;br /&gt;
* Damage, Divine +1 dd1&lt;br /&gt;
* Damage, Fire +1 df1&lt;br /&gt;
* Damage, Magic +1 dm1&lt;br /&gt;
* Damage, Negative +1 dn1&lt;br /&gt;
* Damage, Piercing +1 dp1&lt;br /&gt;
* Damage, Slashing +1 ds1&lt;br /&gt;
* Damage, Sonic +1 do1&lt;br /&gt;
* Feat: Cleave fcle&lt;br /&gt;
* Feat: Disarm fdis&lt;br /&gt;
* Feat: Improved Critical ficr&lt;br /&gt;
* Feat: Point Blank Shot fpbs&lt;br /&gt;
* Feat: Rapid Shot frap&lt;br /&gt;
* Feat: Weapon Specialisation fwsp&lt;br /&gt;
* Keen ke&lt;br /&gt;
* Massive Criticals +1 mc1&lt;br /&gt;
* Mighty +1 m1&lt;br /&gt;
* Sure Striking sst&lt;br /&gt;
* Vampiric +1 dv1&lt;br /&gt;
* Wounding +1 dw1&lt;br /&gt;
&lt;br /&gt;
This is added in the toolset with a string separated by the '|' character for each category. The HDMs of every server are free to make their own rules as too where items should be placed, but be aware the DM client cannot see more than one step &amp;quot;deep&amp;quot; into the category tree.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
Most magical items will automatically register to Detect Magic correctly. The spell looks at the item's properties and cross-references spell effects and enhancements against 2DA information to assign the proper school and spell power.&lt;br /&gt;
The following are advanced options for items without properties or for which you want to register an aura in addition to what Detect Magic cross-references from item properties.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the item should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the trigger should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to  Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For items that use an i_tag_eventsuffix script to be called on a Cast Spell: Unique Power event, the automatic report to the caster will read only &amp;quot;Something has an aura too complex to be understood immediately.&amp;quot; If you want the item to register a spell aura in addition to that message, you must place the above variables.&lt;br /&gt;
&lt;br /&gt;
For instance, for a uniquely scripted Hairbrush using the i_tag_ac that fires on activate to perform a uniquely scripted buff to CHA that simulates a casting of Eagle's Splendor as well as actions or effects you couldn't get by just adding Cast Spell: Eagle's Splendor to the Hairbrush, you would set ACR_SPELLSCHOOL to 8 and ACR_SPELLPOWER to 2. &lt;br /&gt;
&lt;br /&gt;
If the caster passes a spellcraft check, in addition to the &amp;quot;Too Complex&amp;quot; message generated by the fact of the unique power event, if the item was loose on the floor this would return a message that reads &amp;quot;Hairbrush has a Faint aura of Transmutation&amp;quot;, or &amp;quot;Something in the Cabinet's inventory (or Princess Penelope Prettygirl's inventory) has a Faint aura of Transmutation&amp;quot; if the hairbrush is in something/somebody's inventory. &lt;br /&gt;
&lt;br /&gt;
If the caster does not pass the spellcraft check, s/he doesn't get the school of magic. The item returns only&amp;quot;Hairbrush has a Faint aura&amp;quot; or &amp;quot;Something in X's inventory has a Faint aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Item Tips =&lt;br /&gt;
* When creating Creature items, make sure the item is checked as identified, otherwise the creature cannot equip or use the item.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3939</id>
		<title>Building Items</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3939"/>
				<updated>2023-01-30T22:03:32Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
All items should be priced according to 3.5 edition canon (Player's Hand Book, Dungeon Master's Guide, etc), and to the ALFA specific exceptions set forth by ALFA [[Standards]]. '''Do not make items worth less than 1gp yet!''' Our currency system for silver and copper pieces is not yet ready, and we may not know how it will work until we have the client in our hands.&lt;br /&gt;
&lt;br /&gt;
'''Premise''': An item should be identifiable from it's tag/resref.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;_it_&amp;lt;type&amp;gt;_&amp;lt;description&amp;gt;_&amp;lt;ID&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;''' is either &amp;quot;abr&amp;quot; (minus the quotes) for default ALFA items, or a three digit code of the server.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;type&amp;gt;''' is a three-letter abbreviation describing the slot occupied by the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;description&amp;gt;''' is the number of fields necessary to describe any additional properties on the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;ID&amp;gt;''' is an optional two-digit number used to distinguish items with identical properties. Leave the &amp;lt;ID&amp;gt; off of tags - it goes on resrefs only.&lt;br /&gt;
&lt;br /&gt;
Item tags should NEVER be longer than 28 characters. The game allows 32, so don't use them all.&lt;br /&gt;
&lt;br /&gt;
'''Scripting''': For information on how to script items, go here.&lt;br /&gt;
&lt;br /&gt;
'''Examples''': A standard longsword would be, '''Tag''': abr_it_wpn_longsword '''ResRef''': abr_it_wpn_longword_01&lt;br /&gt;
&lt;br /&gt;
'''Materials'''&lt;br /&gt;
* Abyssal Bloodiron ay&lt;br /&gt;
* Adamantine ad&lt;br /&gt;
* Alchemical Silver sa&lt;br /&gt;
* Arandur aa&lt;br /&gt;
* Astral Driftmetal as&lt;br /&gt;
* Aurorum au&lt;br /&gt;
* Bluewood bw&lt;br /&gt;
* Cold Iron ci&lt;br /&gt;
* Copper co&lt;br /&gt;
* Darksteel dk&lt;br /&gt;
* Darkwood (Zalantar) za&lt;br /&gt;
* Dlarun dl&lt;br /&gt;
* Dragonbone db&lt;br /&gt;
* Dragonfang df&lt;br /&gt;
* Dragonhide dh&lt;br /&gt;
* Dragonscale ds&lt;br /&gt;
* Duskwood du&lt;br /&gt;
* Fever Iron fr&lt;br /&gt;
* Fiendbone fb&lt;br /&gt;
* Frystalline fy&lt;br /&gt;
* Gold go&lt;br /&gt;
* Hide hi&lt;br /&gt;
* Hizagkuur hz&lt;br /&gt;
* Laminated Steel ls&lt;br /&gt;
* Living Metal lm&lt;br /&gt;
* Mithral mi&lt;br /&gt;
* Obsidian ob&lt;br /&gt;
* Pandemonic Silver ps&lt;br /&gt;
* Platinum pt&lt;br /&gt;
* Serren se&lt;br /&gt;
* Silver sv&lt;br /&gt;
* Solarian Truesteel tr&lt;br /&gt;
* Sondarr so&lt;br /&gt;
* Suzailian Chainweave ch&lt;br /&gt;
* Weirwood ww&lt;br /&gt;
* Ysgardian Heartwire ys&lt;br /&gt;
&lt;br /&gt;
'''Quality'''&lt;br /&gt;
* Arcane Spell Failure -10% asf1&lt;br /&gt;
* Drowcraft dc&lt;br /&gt;
* Masterwork mw&lt;br /&gt;
* Plus one e1&lt;br /&gt;
* Poor po&lt;br /&gt;
* Armour Class +1 ac1&lt;br /&gt;
* Bonus Spell, Level 0 sb0&lt;br /&gt;
* Bonus Spell, Levels 0, 1, 2 sb012&lt;br /&gt;
* Damage Resistance 1 dr1&lt;br /&gt;
* Damage Resistance 5/magic dr5m&lt;br /&gt;
* Damage Resistance Fire 5 drf5&lt;br /&gt;
* Feat: Alertness fale&lt;br /&gt;
* Feat: Ambidexterity famb&lt;br /&gt;
* Feat: Combat Casting fcca&lt;br /&gt;
* Feat: Darkvision fdar&lt;br /&gt;
* Feat: Dodge fdod&lt;br /&gt;
* Feat: Extra Turning fext&lt;br /&gt;
* Feat: Mobility fmob&lt;br /&gt;
* Feat: Spell Focus (One) fsf1&lt;br /&gt;
* Feat: Spell Penetration fpen&lt;br /&gt;
* Feat: Two Weapon Fighting ftwf&lt;br /&gt;
* Feat: Weapon Finesse fwfi&lt;br /&gt;
* Spell Immunity, Level 0 si0&lt;br /&gt;
* Spell Resistance 12 sr12&lt;br /&gt;
* Freedom of Movement fom&lt;br /&gt;
* Immunity: Death Magic ide&lt;br /&gt;
* Immunity: Disease idi&lt;br /&gt;
* Immunity: Drain idr&lt;br /&gt;
* Immunity: Fear ife&lt;br /&gt;
* Immunity: Gas iga&lt;br /&gt;
* Immunity: Magic Missle imm&lt;br /&gt;
* Immunity: Paralysis ipa&lt;br /&gt;
* Immunity: Poison ipo&lt;br /&gt;
* Save, Acid +1 sac1&lt;br /&gt;
* Save, Cold +1 sco1&lt;br /&gt;
* Save, Death +1 sde1&lt;br /&gt;
* Save, Disease +1 sds1&lt;br /&gt;
* Save, Fear +1 sfe1&lt;br /&gt;
* Save, Fire +1 sfi1&lt;br /&gt;
* Save, Fort +1 sfo1&lt;br /&gt;
* Save, Mind +1 smi1&lt;br /&gt;
* Save, Negative +1 sne1&lt;br /&gt;
* Save, Poison +1 spo1&lt;br /&gt;
* Save, Reflex +1 sre1&lt;br /&gt;
* Save, Sonic +1 sso1&lt;br /&gt;
* Save, Universal +1 sa1&lt;br /&gt;
* Save, Will +1 swi1&lt;br /&gt;
* Hide +1 hi1&lt;br /&gt;
* Damage, Acid +1 da1&lt;br /&gt;
* Damage, Bludgeoning +1 db1&lt;br /&gt;
* Damage, Cold +1 dc1&lt;br /&gt;
* Damage, Divine +1 dd1&lt;br /&gt;
* Damage, Fire +1 df1&lt;br /&gt;
* Damage, Magic +1 dm1&lt;br /&gt;
* Damage, Negative +1 dn1&lt;br /&gt;
* Damage, Piercing +1 dp1&lt;br /&gt;
* Damage, Slashing +1 ds1&lt;br /&gt;
* Damage, Sonic +1 do1&lt;br /&gt;
* Feat: Cleave fcle&lt;br /&gt;
* Feat: Disarm fdis&lt;br /&gt;
* Feat: Improved Critical ficr&lt;br /&gt;
* Feat: Point Blank Shot fpbs&lt;br /&gt;
* Feat: Rapid Shot frap&lt;br /&gt;
* Feat: Weapon Specialisation fwsp&lt;br /&gt;
* Keen ke&lt;br /&gt;
* Massive Criticals +1 mc1&lt;br /&gt;
* Mighty +1 m1&lt;br /&gt;
* Sure Striking sst&lt;br /&gt;
* Vampiric +1 dv1&lt;br /&gt;
* Wounding +1 dw1&lt;br /&gt;
&lt;br /&gt;
This is added in the toolset with a string separated by the '|' character for each category. The HDMs of every server are free to make their own rules as too where items should be placed, but be aware the DM client cannot see more than one step &amp;quot;deep&amp;quot; into the category tree.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
Most magical items will automatically register to Detect Magic correctly. The spell looks at the item's properties and cross-references spell effects and enhancements against 2DA information to assign the proper school and spell power.&lt;br /&gt;
The following are advanced options for items without properties or for which you want to register an aura in addition to what Detect Magic cross-references from item properties.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the item should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the trigger should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to  Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For items that use an i_tag_eventsuffix script to be called on a Cast Spell: Unique Power event, the automatic report to the caster will read only &amp;quot;Something has an aura too complex to be understood immediately.&amp;quot; If you want the item to register a spell aura in addition to that message, you must place the above variables.&lt;br /&gt;
&lt;br /&gt;
For instance, for a uniquely scripted Hairbrush using the i_tag_ac that fires on activate to perform a uniquely scripted buff to CHA that simulates a casting of Eagle's Splendor as well as actions or effects you couldn't get by just adding Cast Spell: Eagle's Splendor to the Hairbrush, you would set ACR_SPELLSCHOOL to 8 and ACR_SPELLPOWER to 2. &lt;br /&gt;
&lt;br /&gt;
If the caster passes a spellcraft check, in addition to the &amp;quot;Too Complex&amp;quot; message generated by the fact of the unique power event, if the item was loose on the floor this would return a message that reads &amp;quot;Hairbrush has a Faint aura of Transmutation&amp;quot;, or &amp;quot;Something in the Cabinet's inventory (or Princess Penelope Prettygirl's inventory) has a Faint aura of Transmutation&amp;quot; if the hairbrush is in something/somebody's inventory. &lt;br /&gt;
&lt;br /&gt;
If the caster does not pass the spellcraft check, s/he doesn't get the school of magic. The item returns only&amp;quot;Hairbrush has a Faint aura&amp;quot; or &amp;quot;Something in X's inventory has a Faint aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== ITEM TIPS ==&lt;br /&gt;
* When creating Creature items, make sure the item is checked as identified, otherwise the creature cannot equip or use the item.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3938</id>
		<title>Building Items</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Items&amp;diff=3938"/>
				<updated>2023-01-30T22:03:08Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
All items should be priced according to 3.5 edition canon (Player's Hand Book, Dungeon Master's Guide, etc), and to the ALFA specific exceptions set forth by ALFA [[Standards]]. '''Do not make items worth less than 1gp yet!''' Our currency system for silver and copper pieces is not yet ready, and we may not know how it will work until we have the client in our hands.&lt;br /&gt;
&lt;br /&gt;
'''Premise''': An item should be identifiable from it's tag/resref.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;_it_&amp;lt;type&amp;gt;_&amp;lt;description&amp;gt;_&amp;lt;ID&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;prefix&amp;gt;''' is either &amp;quot;abr&amp;quot; (minus the quotes) for default ALFA items, or a three digit code of the server.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;type&amp;gt;''' is a three-letter abbreviation describing the slot occupied by the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;description&amp;gt;''' is the number of fields necessary to describe any additional properties on the item.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;ID&amp;gt;''' is an optional two-digit number used to distinguish items with identical properties. Leave the &amp;lt;ID&amp;gt; off of tags - it goes on resrefs only.&lt;br /&gt;
&lt;br /&gt;
Item tags should NEVER be longer than 28 characters. The game allows 32, so don't use them all.&lt;br /&gt;
&lt;br /&gt;
'''Scripting''': For information on how to script items, go here.&lt;br /&gt;
&lt;br /&gt;
'''Examples''': A standard longsword would be, '''Tag''': abr_it_wpn_longsword '''ResRef''': abr_it_wpn_longword_01&lt;br /&gt;
&lt;br /&gt;
'''Materials'''&lt;br /&gt;
* Abyssal Bloodiron ay&lt;br /&gt;
* Adamantine ad&lt;br /&gt;
* Alchemical Silver sa&lt;br /&gt;
* Arandur aa&lt;br /&gt;
* Astral Driftmetal as&lt;br /&gt;
* Aurorum au&lt;br /&gt;
* Bluewood bw&lt;br /&gt;
* Cold Iron ci&lt;br /&gt;
* Copper co&lt;br /&gt;
* Darksteel dk&lt;br /&gt;
* Darkwood (Zalantar) za&lt;br /&gt;
* Dlarun dl&lt;br /&gt;
* Dragonbone db&lt;br /&gt;
* Dragonfang df&lt;br /&gt;
* Dragonhide dh&lt;br /&gt;
* Dragonscale ds&lt;br /&gt;
* Duskwood du&lt;br /&gt;
* Fever Iron fr&lt;br /&gt;
* Fiendbone fb&lt;br /&gt;
* Frystalline fy&lt;br /&gt;
* Gold go&lt;br /&gt;
* Hide hi&lt;br /&gt;
* Hizagkuur hz&lt;br /&gt;
* Laminated Steel ls&lt;br /&gt;
* Living Metal lm&lt;br /&gt;
* Mithral mi&lt;br /&gt;
* Obsidian ob&lt;br /&gt;
* Pandemonic Silver ps&lt;br /&gt;
* Platinum pt&lt;br /&gt;
* Serren se&lt;br /&gt;
* Silver sv&lt;br /&gt;
* Solarian Truesteel tr&lt;br /&gt;
* Sondarr so&lt;br /&gt;
* Suzailian Chainweave ch&lt;br /&gt;
* Weirwood ww&lt;br /&gt;
* Ysgardian Heartwire ys&lt;br /&gt;
&lt;br /&gt;
'''Quality'''&lt;br /&gt;
* Arcane Spell Failure -10% asf1&lt;br /&gt;
* Drowcraft dc&lt;br /&gt;
* Masterwork mw&lt;br /&gt;
* Plus one e1&lt;br /&gt;
* Poor po&lt;br /&gt;
* Armour Class +1 ac1&lt;br /&gt;
* Bonus Spell, Level 0 sb0&lt;br /&gt;
* Bonus Spell, Levels 0, 1, 2 sb012&lt;br /&gt;
* Damage Resistance 1 dr1&lt;br /&gt;
* Damage Resistance 5/magic dr5m&lt;br /&gt;
* Damage Resistance Fire 5 drf5&lt;br /&gt;
* Feat: Alertness fale&lt;br /&gt;
* Feat: Ambidexterity famb&lt;br /&gt;
* Feat: Combat Casting fcca&lt;br /&gt;
* Feat: Darkvision fdar&lt;br /&gt;
* Feat: Dodge fdod&lt;br /&gt;
* Feat: Extra Turning fext&lt;br /&gt;
* Feat: Mobility fmob&lt;br /&gt;
* Feat: Spell Focus (One) fsf1&lt;br /&gt;
* Feat: Spell Penetration fpen&lt;br /&gt;
* Feat: Two Weapon Fighting ftwf&lt;br /&gt;
* Feat: Weapon Finesse fwfi&lt;br /&gt;
* Spell Immunity, Level 0 si0&lt;br /&gt;
* Spell Resistance 12 sr12&lt;br /&gt;
* Freedom of Movement fom&lt;br /&gt;
* Immunity: Death Magic ide&lt;br /&gt;
* Immunity: Disease idi&lt;br /&gt;
* Immunity: Drain idr&lt;br /&gt;
* Immunity: Fear ife&lt;br /&gt;
* Immunity: Gas iga&lt;br /&gt;
* Immunity: Magic Missle imm&lt;br /&gt;
* Immunity: Paralysis ipa&lt;br /&gt;
* Immunity: Poison ipo&lt;br /&gt;
* Save, Acid +1 sac1&lt;br /&gt;
* Save, Cold +1 sco1&lt;br /&gt;
* Save, Death +1 sde1&lt;br /&gt;
* Save, Disease +1 sds1&lt;br /&gt;
* Save, Fear +1 sfe1&lt;br /&gt;
* Save, Fire +1 sfi1&lt;br /&gt;
* Save, Fort +1 sfo1&lt;br /&gt;
* Save, Mind +1 smi1&lt;br /&gt;
* Save, Negative +1 sne1&lt;br /&gt;
* Save, Poison +1 spo1&lt;br /&gt;
* Save, Reflex +1 sre1&lt;br /&gt;
* Save, Sonic +1 sso1&lt;br /&gt;
* Save, Universal +1 sa1&lt;br /&gt;
* Save, Will +1 swi1&lt;br /&gt;
* Hide +1 hi1&lt;br /&gt;
* Damage, Acid +1 da1&lt;br /&gt;
* Damage, Bludgeoning +1 db1&lt;br /&gt;
* Damage, Cold +1 dc1&lt;br /&gt;
* Damage, Divine +1 dd1&lt;br /&gt;
* Damage, Fire +1 df1&lt;br /&gt;
* Damage, Magic +1 dm1&lt;br /&gt;
* Damage, Negative +1 dn1&lt;br /&gt;
* Damage, Piercing +1 dp1&lt;br /&gt;
* Damage, Slashing +1 ds1&lt;br /&gt;
* Damage, Sonic +1 do1&lt;br /&gt;
* Feat: Cleave fcle&lt;br /&gt;
* Feat: Disarm fdis&lt;br /&gt;
* Feat: Improved Critical ficr&lt;br /&gt;
* Feat: Point Blank Shot fpbs&lt;br /&gt;
* Feat: Rapid Shot frap&lt;br /&gt;
* Feat: Weapon Specialisation fwsp&lt;br /&gt;
* Keen ke&lt;br /&gt;
* Massive Criticals +1 mc1&lt;br /&gt;
* Mighty +1 m1&lt;br /&gt;
* Sure Striking sst&lt;br /&gt;
* Vampiric +1 dv1&lt;br /&gt;
* Wounding +1 dw1&lt;br /&gt;
&lt;br /&gt;
This is added in the toolset with a string separated by the '|' character for each category. The HDMs of every server are free to make their own rules as too where items should be placed, but be aware the DM client cannot see more than one step &amp;quot;deep&amp;quot; into the category tree.&lt;br /&gt;
&lt;br /&gt;
=== Detect Magic ===&lt;br /&gt;
Most magical items will automatically register to Detect Magic correctly. The spell looks at the item's properties and cross-references spell effects and enhancements against 2DA information to assign the proper school and spell power.&lt;br /&gt;
The following are advanced options for items without properties or for which you want to register an aura in addition to what Detect Magic cross-references from item properties.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the item should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the trigger should register an aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to  Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the trigger should register a second aura not automatically determined by item properties to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
For items that use an i_tag_eventsuffix script to be called on a Cast Spell: Unique Power event, the automatic report to the caster will read only &amp;quot;Something has an aura too complex to be understood immediately.&amp;quot; If you want the item to register a spell aura in addition to that message, you must place the above variables.&lt;br /&gt;
&lt;br /&gt;
For instance, for a uniquely scripted Hairbrush using the i_tag_ac that fires on activate to perform a uniquely scripted buff to CHA that simulates a casting of Eagle's Splendor as well as actions or effects you couldn't get by just adding Cast Spell: Eagle's Splendor to the Hairbrush, you would set ACR_SPELLSCHOOL to 8 and ACR_SPELLPOWER to 2. &lt;br /&gt;
&lt;br /&gt;
If the caster passes a spellcraft check, in addition to the &amp;quot;Too Complex&amp;quot; message generated by the fact of the unique power event, if the item was loose on the floor this would return a message that reads &amp;quot;Hairbrush has a Faint aura of Transmutation&amp;quot;, or &amp;quot;Something in the Cabinet's inventory (or Princess Penelope Prettygirl's inventory) has a Faint aura of Transmutation&amp;quot; if the hairbrush is in something/somebody's inventory. &lt;br /&gt;
&lt;br /&gt;
If the caster does not pass the spellcraft check, s/he doesn't get the school of magic. The item returns only&amp;quot;Hairbrush has a Faint aura&amp;quot; or &amp;quot;Something in X's inventory has a Faint aura.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== ITEM TIPS ==&lt;br /&gt;
* When creating Creature items, make sure the item is checked as identified, otherwise the creature cannot equip or use the item.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Doors&amp;diff=3937</id>
		<title>Building Doors</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Doors&amp;diff=3937"/>
				<updated>2023-01-30T22:02:23Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
While the basemod contains every door listed in the DMG with appropriate settings, builders may wish to create their own doors. ALFA has scripts which provide a number of mechanics not ordinarily found in NWN, and every door has an extra set of options because of this.&lt;br /&gt;
&lt;br /&gt;
As with creating new creatures, items, and so forth, the easiest way to make a new door is to copy/edit an existing one. For information on editing the settings of an existing door, skip the next section.&lt;br /&gt;
&lt;br /&gt;
== Creating a New Door ==&lt;br /&gt;
If you aren't editing an existing door, you will have to configure a number of options. To start off with, you'll need to make sure all of the door's event scripts are set correctly. ALFA's event scripts for doors are as follows: // Update for longer NWN2 file names&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onclosed&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onconversation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondamaged&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondeath&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondisarm&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onheartbeat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onlock&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onmeleeattacked&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onopen&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onspellcastat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ontraptriggered&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onunlock&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onused&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onuserdefined&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onclick&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onfailtoopen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to add custom event scripts to your doors, you can of course do so. Just make sure each event script includes the file [[acr_door_i.nss]], and calls the appropriate function for that event, listed here.&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnClosed()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnConversation()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDamaged()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDeath()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDisarm()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnHeartbeat()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnLock()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnMeleeAttacked()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnOpen()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnSpellCastAt()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnTrapTriggered()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUnlock()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUsed()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUserDefined()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnClick()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnFailToOpen()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again, the easiest way to do this is to edit an existing acr_door_* file and save it under a different name. Failure to properly call ALFA's door scripts can break multiple systems of the ACR. So make sure you've got them in there.&lt;br /&gt;
&lt;br /&gt;
= Editing Door Settings =&lt;br /&gt;
: ''See also: [[Using Local Variables]]&lt;br /&gt;
Aside from the standard NWN options of doors, we've provided a few more to give PCs and builders more options. These options can be accessed by editing the door's local variables.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_CLOSE_DELAY'''&amp;lt;/code&amp;gt; (float) The number of seconds a door will stay open before automatically closing itself. If set to zero or less than zero, the door will not close itself automatically.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_CLOSE_NEAR_PCS'''&amp;lt;/code&amp;gt; (integer) If set to 1, the door will auto-close regardless of any nearby PCs. If set to 0 (the default), the door will wait until PCs are out of visual range before closing itself.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_STUCK_DC'''&amp;lt;/code&amp;gt; (integer) If non-zero, the door is considered &amp;quot;stuck&amp;quot;, and therefore cannot be opened unless forced. The value defined is the strength-check DC to &amp;quot;un-stick&amp;quot; the door. If someone tries to force a locked and stuck door open, the strength DC used is the higher of this value and &amp;lt;code&amp;gt;'''ACR_DOOR_BREAK_DC'''&amp;lt;/code&amp;gt;. The default value is 0.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) The DC to break open this door, as per DMG rules. Breaking open a door does not destroy it like doing damage to it would in NWN, but it does keep the door from being able to be locked again. If this value is zero, the door cannot be forced open. Valid values are from 0 to 255.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_FAIL_OPEN_MESSAGE'''&amp;lt;/code&amp;gt; (string) This is a custom message sent to PCs who try to open the door and fail. This can be used in conjunction with * &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_PASSWORD'''&amp;lt;/code&amp;gt; to setup doors that require a spoken password to access (even useful for door riddles).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_OPEN_MESSAGE'''&amp;lt;/code&amp;gt; (string) This message is &amp;quot;spoken&amp;quot; by the door when it is opened. It is usually used to give the PCs a description of the area beyond an AT, if any.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_HOUR'''&amp;lt;/code&amp;gt; (integer) This is the time of day (in hours) the door unlocks itself. Generally used for shops and things which are only open during certain hours of the day. It will only unlock once, so if something else locks it afterwards, it will remain locked until either another creature unlocks it, or its next unlock time. Valid values are 0 to 23. If you don't wish the door locking or unlocking itself automatically, leave both this variable and &amp;lt;code&amp;gt;'''ACR_DOOR_LOCK_HOUR'''&amp;lt;/code&amp;gt; set to 0 (the default value).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_LOCK_HOUR'''&amp;lt;/code&amp;gt; (integer) This is the time of day (in hours) the door locks itself. Generally used for shops and things which are only open during certain hours of the day. It will only lock once, so if something else unlocks it afterwards, it will remain unlocked until either another creature locks it, or its next lock time. Valid values are 0 to 23. If you don't wish the door locking or unlocking itself automatically, leave both this variable and &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_HOUR'''&amp;lt;/code&amp;gt; set to 0 (the default value).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_SPELLID'''&amp;lt;/code&amp;gt; (int) This is the Spell ID for doors that require a specific spell to unlock. This will only work for spell IDs greater than 0. Be sure to set the door's default lock status to locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_PASSWORD'''&amp;lt;/code&amp;gt; (string) This is what a player must speak to gain access to a password protected door. Leave this empty to require no password. Otherwise, be sure to set the door's default lock status to locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If non-zero, the door will automatically lock itself each time it is shut.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_LISTEN_DC_MOD'''&amp;lt;/code&amp;gt; (integer) This modifier is applied to creatures trying to listen to conversations occuring behind a closed doors. The DMG lists this a +5 for every door, but some customization is allowed for different door types. If undefined or set to 0, the door cannot be listened through.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_KNOCK_IMMUNE'''&amp;lt;/code&amp;gt; (integer) If nonzero, this door is immune to the spell knock. If zero, it is not immune.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNMOVABLE'''&amp;lt;/code&amp;gt; (integer) If nonzero, the door cannot be opened or closed by a non-DM creature, even if unlocked. Scripts can still open or close it, however. This setting is often used to represent large doors which a PC could not realistically close on their own even if they were unlocked, like the huge gates on castles and other fortifications.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_AT_SIZE'''&amp;lt;/code&amp;gt; (integer) If nonzero, this setting specifies the maximum sized creature which can fit through this doorway. Anything large will be given a message saying it is too large to fit inside. Valid values are as follows:&lt;br /&gt;
*# Fine&lt;br /&gt;
*# Diminutive&lt;br /&gt;
*# Tiny&lt;br /&gt;
*# Small&lt;br /&gt;
*# Medium&lt;br /&gt;
*# Large&lt;br /&gt;
*# Huge&lt;br /&gt;
*# Gargantuan&lt;br /&gt;
*# Colossal&lt;br /&gt;
&lt;br /&gt;
Note that currently, NWN2 does not support creature sizes of fine, diminutive, gargantuan or colossal. These values are provided here for future compatibility.&lt;br /&gt;
&lt;br /&gt;
Note that if none of these variables are defined, they default to zero. So a door without them would never close or lock itself, wouldn't be stuck or barred at all, would not be able to be forced open, and wouldn't have any sort of a custom message printed if a PC failed to open it.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for doors to register as magical to Detect Magic. A door with these variables will report to the caster if the caster passes spellcraft checks based on the power of the spell.  For instance: &amp;quot;Abjuration Dorm has a Faint aura of Transmutation.&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the door should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the  [https://www.alandfaraway.info/wiki/Detect_Magic#SpellSchool_Variables Detect Magic: SpellSchool Variables] page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the door should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the door should register a second aura to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the door should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
=Tips/Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
*  If your doorway does not seem to function properly:&lt;br /&gt;
*- make sure the doorway is within a walkmesh area&lt;br /&gt;
*- make sure there is no open doorway behind it, as in a tileset doorway vs a placeable doorway&lt;br /&gt;
*- a door must have current hit points &amp;gt;0 for it to function&lt;br /&gt;
*- If your static door looks fine in the toolset but does not fill the doorway ingame, the door model defaults in static mode.  Instead do not make door static and set it to locked, requires key to open to get it to look right ingame. This is especially true when you have changed the size of the door to fit the doorway. Some models work better than others.  There are now placeable doors also available in the toolset.&lt;br /&gt;
*- If a Half-orc cannot got through your AT  make sure the receiving end is not set to position lock. Also make sure there is plenty of cleared space around the receiving door.  Too little space will keep orcs and half-orcs from being able to traverse the doorway.&lt;br /&gt;
* When resizing doors scales 1st and 2nd should be the same size.  Otherwise your door will be a weird size when it opens.  This how ever might be a useful trick when you want to emulate a door folding up or to the side.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Doors&amp;diff=3936</id>
		<title>Building Doors</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Doors&amp;diff=3936"/>
				<updated>2023-01-30T22:00:24Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Editing Door Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
While the basemod contains every door listed in the DMG with appropriate settings, builders may wish to create their own doors. ALFA has scripts which provide a number of mechanics not ordinarily found in NWN, and every door has an extra set of options because of this.&lt;br /&gt;
&lt;br /&gt;
As with creating new creatures, items, and so forth, the easiest way to make a new door is to copy/edit an existing one. For information on editing the settings of an existing door, skip the next section.&lt;br /&gt;
&lt;br /&gt;
== Creating a New Door ==&lt;br /&gt;
If you aren't editing an existing door, you will have to configure a number of options. To start off with, you'll need to make sure all of the door's event scripts are set correctly. ALFA's event scripts for doors are as follows: // Update for longer NWN2 file names&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onclosed&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onconversation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondamaged&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondeath&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondisarm&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onheartbeat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onlock&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onmeleeattacked&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onopen&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onspellcastat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ontraptriggered&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onunlock&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onused&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onuserdefined&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onclick&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onfailtoopen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to add custom event scripts to your doors, you can of course do so. Just make sure each event script includes the file [[acr_door_i.nss]], and calls the appropriate function for that event, listed here.&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnClosed()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnConversation()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDamaged()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDeath()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDisarm()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnHeartbeat()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnLock()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnMeleeAttacked()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnOpen()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnSpellCastAt()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnTrapTriggered()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUnlock()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUsed()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUserDefined()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnClick()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnFailToOpen()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again, the easiest way to do this is to edit an existing acr_door_* file and save it under a different name. Failure to properly call ALFA's door scripts can break multiple systems of the ACR. So make sure you've got them in there.&lt;br /&gt;
&lt;br /&gt;
= Editing Door Settings =&lt;br /&gt;
: ''See also: [[Using Local Variables]]&lt;br /&gt;
Aside from the standard NWN options of doors, we've provided a few more to give PCs and builders more options. These options can be accessed by editing the door's local variables.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_CLOSE_DELAY'''&amp;lt;/code&amp;gt; (float) The number of seconds a door will stay open before automatically closing itself. If set to zero or less than zero, the door will not close itself automatically.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_CLOSE_NEAR_PCS'''&amp;lt;/code&amp;gt; (integer) If set to 1, the door will auto-close regardless of any nearby PCs. If set to 0 (the default), the door will wait until PCs are out of visual range before closing itself.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_STUCK_DC'''&amp;lt;/code&amp;gt; (integer) If non-zero, the door is considered &amp;quot;stuck&amp;quot;, and therefore cannot be opened unless forced. The value defined is the strength-check DC to &amp;quot;un-stick&amp;quot; the door. If someone tries to force a locked and stuck door open, the strength DC used is the higher of this value and &amp;lt;code&amp;gt;'''ACR_DOOR_BREAK_DC'''&amp;lt;/code&amp;gt;. The default value is 0.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) The DC to break open this door, as per DMG rules. Breaking open a door does not destroy it like doing damage to it would in NWN, but it does keep the door from being able to be locked again. If this value is zero, the door cannot be forced open. Valid values are from 0 to 255.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_FAIL_OPEN_MESSAGE'''&amp;lt;/code&amp;gt; (string) This is a custom message sent to PCs who try to open the door and fail. This can be used in conjunction with * &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_PASSWORD'''&amp;lt;/code&amp;gt; to setup doors that require a spoken password to access (even useful for door riddles).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_OPEN_MESSAGE'''&amp;lt;/code&amp;gt; (string) This message is &amp;quot;spoken&amp;quot; by the door when it is opened. It is usually used to give the PCs a description of the area beyond an AT, if any.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_HOUR'''&amp;lt;/code&amp;gt; (integer) This is the time of day (in hours) the door unlocks itself. Generally used for shops and things which are only open during certain hours of the day. It will only unlock once, so if something else locks it afterwards, it will remain locked until either another creature unlocks it, or its next unlock time. Valid values are 0 to 23. If you don't wish the door locking or unlocking itself automatically, leave both this variable and &amp;lt;code&amp;gt;'''ACR_DOOR_LOCK_HOUR'''&amp;lt;/code&amp;gt; set to 0 (the default value).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_LOCK_HOUR'''&amp;lt;/code&amp;gt; (integer) This is the time of day (in hours) the door locks itself. Generally used for shops and things which are only open during certain hours of the day. It will only lock once, so if something else unlocks it afterwards, it will remain unlocked until either another creature locks it, or its next lock time. Valid values are 0 to 23. If you don't wish the door locking or unlocking itself automatically, leave both this variable and &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_HOUR'''&amp;lt;/code&amp;gt; set to 0 (the default value).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_SPELLID'''&amp;lt;/code&amp;gt; (int) This is the Spell ID for doors that require a specific spell to unlock. This will only work for spell IDs greater than 0. Be sure to set the door's default lock status to locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_PASSWORD'''&amp;lt;/code&amp;gt; (string) This is what a player must speak to gain access to a password protected door. Leave this empty to require no password. Otherwise, be sure to set the door's default lock status to locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If non-zero, the door will automatically lock itself each time it is shut.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_LISTEN_DC_MOD'''&amp;lt;/code&amp;gt; (integer) This modifier is applied to creatures trying to listen to conversations occuring behind a closed doors. The DMG lists this a +5 for every door, but some customization is allowed for different door types. If undefined or set to 0, the door cannot be listened through.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_KNOCK_IMMUNE'''&amp;lt;/code&amp;gt; (integer) If nonzero, this door is immune to the spell knock. If zero, it is not immune.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNMOVABLE'''&amp;lt;/code&amp;gt; (integer) If nonzero, the door cannot be opened or closed by a non-DM creature, even if unlocked. Scripts can still open or close it, however. This setting is often used to represent large doors which a PC could not realistically close on their own even if they were unlocked, like the huge gates on castles and other fortifications.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_AT_SIZE'''&amp;lt;/code&amp;gt; (integer) If nonzero, this setting specifies the maximum sized creature which can fit through this doorway. Anything large will be given a message saying it is too large to fit inside. Valid values are as follows:&lt;br /&gt;
*# Fine&lt;br /&gt;
*# Diminutive&lt;br /&gt;
*# Tiny&lt;br /&gt;
*# Small&lt;br /&gt;
*# Medium&lt;br /&gt;
*# Large&lt;br /&gt;
*# Huge&lt;br /&gt;
*# Gargantuan&lt;br /&gt;
*# Colossal&lt;br /&gt;
&lt;br /&gt;
Note that currently, NWN2 does not support creature sizes of fine, diminutive, gargantuan or colossal. These values are provided here for future compatibility.&lt;br /&gt;
&lt;br /&gt;
Note that if none of these variables are defined, they default to zero. So a door without them would never close or lock itself, wouldn't be stuck or barred at all, would not be able to be forced open, and wouldn't have any sort of a custom message printed if a PC failed to open it.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for doors to register as magical to Detect Magic. A door with these variables will report to the caster if the caster passes spellcraft checks based on the power of the spell.  For instance: &amp;quot;Abjuration Dorm has a Faint aura of Transmutation.&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the door should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the door should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the door should register a second aura to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the door should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tips/Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
*  If your doorway does not seem to function properly:&lt;br /&gt;
*- make sure the doorway is within a walkmesh area&lt;br /&gt;
*- make sure there is no open doorway behind it, as in a tileset doorway vs a placeable doorway&lt;br /&gt;
*- a door must have current hit points &amp;gt;0 for it to function&lt;br /&gt;
*- If your static door looks fine in the toolset but does not fill the doorway ingame, the door model defaults in static mode.  Instead do not make door static and set it to locked, requires key to open to get it to look right ingame. This is especially true when you have changed the size of the door to fit the doorway. Some models work better than others.  There are now placeable doors also available in the toolset.&lt;br /&gt;
*- If a Half-orc cannot got through your AT  make sure the receiving end is not set to position lock. Also make sure there is plenty of cleared space around the receiving door.  Too little space will keep orcs and half-orcs from being able to traverse the doorway.&lt;br /&gt;
* When resizing doors scales 1st and 2nd should be the same size.  Otherwise your door will be a weird size when it opens.  This how ever might be a useful trick when you want to emulate a door folding up or to the side.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Doors&amp;diff=3935</id>
		<title>Building Doors</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Doors&amp;diff=3935"/>
				<updated>2023-01-30T22:00:09Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* TIPS/TROUBLESHOOTING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
While the basemod contains every door listed in the DMG with appropriate settings, builders may wish to create their own doors. ALFA has scripts which provide a number of mechanics not ordinarily found in NWN, and every door has an extra set of options because of this.&lt;br /&gt;
&lt;br /&gt;
As with creating new creatures, items, and so forth, the easiest way to make a new door is to copy/edit an existing one. For information on editing the settings of an existing door, skip the next section.&lt;br /&gt;
&lt;br /&gt;
== Creating a New Door ==&lt;br /&gt;
If you aren't editing an existing door, you will have to configure a number of options. To start off with, you'll need to make sure all of the door's event scripts are set correctly. ALFA's event scripts for doors are as follows: // Update for longer NWN2 file names&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onclosed&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onconversation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondamaged&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondeath&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondisarm&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onheartbeat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onlock&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onmeleeattacked&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onopen&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onspellcastat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ontraptriggered&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onunlock&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onused&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onuserdefined&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onclick&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onfailtoopen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to add custom event scripts to your doors, you can of course do so. Just make sure each event script includes the file [[acr_door_i.nss]], and calls the appropriate function for that event, listed here.&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnClosed()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnConversation()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDamaged()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDeath()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDisarm()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnHeartbeat()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnLock()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnMeleeAttacked()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnOpen()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnSpellCastAt()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnTrapTriggered()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUnlock()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUsed()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUserDefined()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnClick()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnFailToOpen()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again, the easiest way to do this is to edit an existing acr_door_* file and save it under a different name. Failure to properly call ALFA's door scripts can break multiple systems of the ACR. So make sure you've got them in there.&lt;br /&gt;
&lt;br /&gt;
== Editing Door Settings ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]&lt;br /&gt;
Aside from the standard NWN options of doors, we've provided a few more to give PCs and builders more options. These options can be accessed by editing the door's local variables.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_CLOSE_DELAY'''&amp;lt;/code&amp;gt; (float) The number of seconds a door will stay open before automatically closing itself. If set to zero or less than zero, the door will not close itself automatically.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_CLOSE_NEAR_PCS'''&amp;lt;/code&amp;gt; (integer) If set to 1, the door will auto-close regardless of any nearby PCs. If set to 0 (the default), the door will wait until PCs are out of visual range before closing itself.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_STUCK_DC'''&amp;lt;/code&amp;gt; (integer) If non-zero, the door is considered &amp;quot;stuck&amp;quot;, and therefore cannot be opened unless forced. The value defined is the strength-check DC to &amp;quot;un-stick&amp;quot; the door. If someone tries to force a locked and stuck door open, the strength DC used is the higher of this value and &amp;lt;code&amp;gt;'''ACR_DOOR_BREAK_DC'''&amp;lt;/code&amp;gt;. The default value is 0.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) The DC to break open this door, as per DMG rules. Breaking open a door does not destroy it like doing damage to it would in NWN, but it does keep the door from being able to be locked again. If this value is zero, the door cannot be forced open. Valid values are from 0 to 255.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_FAIL_OPEN_MESSAGE'''&amp;lt;/code&amp;gt; (string) This is a custom message sent to PCs who try to open the door and fail. This can be used in conjunction with * &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_PASSWORD'''&amp;lt;/code&amp;gt; to setup doors that require a spoken password to access (even useful for door riddles).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_OPEN_MESSAGE'''&amp;lt;/code&amp;gt; (string) This message is &amp;quot;spoken&amp;quot; by the door when it is opened. It is usually used to give the PCs a description of the area beyond an AT, if any.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_HOUR'''&amp;lt;/code&amp;gt; (integer) This is the time of day (in hours) the door unlocks itself. Generally used for shops and things which are only open during certain hours of the day. It will only unlock once, so if something else locks it afterwards, it will remain locked until either another creature unlocks it, or its next unlock time. Valid values are 0 to 23. If you don't wish the door locking or unlocking itself automatically, leave both this variable and &amp;lt;code&amp;gt;'''ACR_DOOR_LOCK_HOUR'''&amp;lt;/code&amp;gt; set to 0 (the default value).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_LOCK_HOUR'''&amp;lt;/code&amp;gt; (integer) This is the time of day (in hours) the door locks itself. Generally used for shops and things which are only open during certain hours of the day. It will only lock once, so if something else unlocks it afterwards, it will remain unlocked until either another creature locks it, or its next lock time. Valid values are 0 to 23. If you don't wish the door locking or unlocking itself automatically, leave both this variable and &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_HOUR'''&amp;lt;/code&amp;gt; set to 0 (the default value).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_SPELLID'''&amp;lt;/code&amp;gt; (int) This is the Spell ID for doors that require a specific spell to unlock. This will only work for spell IDs greater than 0. Be sure to set the door's default lock status to locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_PASSWORD'''&amp;lt;/code&amp;gt; (string) This is what a player must speak to gain access to a password protected door. Leave this empty to require no password. Otherwise, be sure to set the door's default lock status to locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If non-zero, the door will automatically lock itself each time it is shut.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_LISTEN_DC_MOD'''&amp;lt;/code&amp;gt; (integer) This modifier is applied to creatures trying to listen to conversations occuring behind a closed doors. The DMG lists this a +5 for every door, but some customization is allowed for different door types. If undefined or set to 0, the door cannot be listened through.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_KNOCK_IMMUNE'''&amp;lt;/code&amp;gt; (integer) If nonzero, this door is immune to the spell knock. If zero, it is not immune.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNMOVABLE'''&amp;lt;/code&amp;gt; (integer) If nonzero, the door cannot be opened or closed by a non-DM creature, even if unlocked. Scripts can still open or close it, however. This setting is often used to represent large doors which a PC could not realistically close on their own even if they were unlocked, like the huge gates on castles and other fortifications.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_AT_SIZE'''&amp;lt;/code&amp;gt; (integer) If nonzero, this setting specifies the maximum sized creature which can fit through this doorway. Anything large will be given a message saying it is too large to fit inside. Valid values are as follows:&lt;br /&gt;
*# Fine&lt;br /&gt;
*# Diminutive&lt;br /&gt;
*# Tiny&lt;br /&gt;
*# Small&lt;br /&gt;
*# Medium&lt;br /&gt;
*# Large&lt;br /&gt;
*# Huge&lt;br /&gt;
*# Gargantuan&lt;br /&gt;
*# Colossal&lt;br /&gt;
&lt;br /&gt;
Note that currently, NWN2 does not support creature sizes of fine, diminutive, gargantuan or colossal. These values are provided here for future compatibility.&lt;br /&gt;
&lt;br /&gt;
Note that if none of these variables are defined, they default to zero. So a door without them would never close or lock itself, wouldn't be stuck or barred at all, would not be able to be forced open, and wouldn't have any sort of a custom message printed if a PC failed to open it.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for doors to register as magical to Detect Magic. A door with these variables will report to the caster if the caster passes spellcraft checks based on the power of the spell.  For instance: &amp;quot;Abjuration Dorm has a Faint aura of Transmutation.&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the door should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the door should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the door should register a second aura to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the door should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tips/Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
*  If your doorway does not seem to function properly:&lt;br /&gt;
*- make sure the doorway is within a walkmesh area&lt;br /&gt;
*- make sure there is no open doorway behind it, as in a tileset doorway vs a placeable doorway&lt;br /&gt;
*- a door must have current hit points &amp;gt;0 for it to function&lt;br /&gt;
*- If your static door looks fine in the toolset but does not fill the doorway ingame, the door model defaults in static mode.  Instead do not make door static and set it to locked, requires key to open to get it to look right ingame. This is especially true when you have changed the size of the door to fit the doorway. Some models work better than others.  There are now placeable doors also available in the toolset.&lt;br /&gt;
*- If a Half-orc cannot got through your AT  make sure the receiving end is not set to position lock. Also make sure there is plenty of cleared space around the receiving door.  Too little space will keep orcs and half-orcs from being able to traverse the doorway.&lt;br /&gt;
* When resizing doors scales 1st and 2nd should be the same size.  Otherwise your door will be a weird size when it opens.  This how ever might be a useful trick when you want to emulate a door folding up or to the side.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	<entry>
		<id>https://www.alandfaraway.info/Wiki/index.php?title=Building_Doors&amp;diff=3934</id>
		<title>Building Doors</title>
		<link rel="alternate" type="text/html" href="https://www.alandfaraway.info/Wiki/index.php?title=Building_Doors&amp;diff=3934"/>
				<updated>2023-01-30T21:59:31Z</updated>
		
		<summary type="html">&lt;p&gt;Wynna: /* Detect Magic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical Manuals]]&lt;br /&gt;
[[Category:Articles Needing Attention]]&lt;br /&gt;
While the basemod contains every door listed in the DMG with appropriate settings, builders may wish to create their own doors. ALFA has scripts which provide a number of mechanics not ordinarily found in NWN, and every door has an extra set of options because of this.&lt;br /&gt;
&lt;br /&gt;
As with creating new creatures, items, and so forth, the easiest way to make a new door is to copy/edit an existing one. For information on editing the settings of an existing door, skip the next section.&lt;br /&gt;
&lt;br /&gt;
== Creating a New Door ==&lt;br /&gt;
If you aren't editing an existing door, you will have to configure a number of options. To start off with, you'll need to make sure all of the door's event scripts are set correctly. ALFA's event scripts for doors are as follows: // Update for longer NWN2 file names&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onclosed&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onconversation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondamaged&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondeath&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ondisarm&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onheartbeat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onlock&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onmeleeattacked&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onopen&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onspellcastat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_ontraptriggered&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onunlock&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onused&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onuserdefined&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onclick&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;acf_door_onfailtoopen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to add custom event scripts to your doors, you can of course do so. Just make sure each event script includes the file [[acr_door_i.nss]], and calls the appropriate function for that event, listed here.&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnClosed()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnConversation()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDamaged()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDeath()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnDisarm()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnHeartbeat()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnLock()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnMeleeAttacked()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnOpen()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnSpellCastAt()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnTrapTriggered()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUnlock()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUsed()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnUserDefined()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnClick()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACR_DoorOnFailToOpen()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again, the easiest way to do this is to edit an existing acr_door_* file and save it under a different name. Failure to properly call ALFA's door scripts can break multiple systems of the ACR. So make sure you've got them in there.&lt;br /&gt;
&lt;br /&gt;
== Editing Door Settings ==&lt;br /&gt;
: ''See also: [[Using Local Variables]]&lt;br /&gt;
Aside from the standard NWN options of doors, we've provided a few more to give PCs and builders more options. These options can be accessed by editing the door's local variables.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_CLOSE_DELAY'''&amp;lt;/code&amp;gt; (float) The number of seconds a door will stay open before automatically closing itself. If set to zero or less than zero, the door will not close itself automatically.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_CLOSE_NEAR_PCS'''&amp;lt;/code&amp;gt; (integer) If set to 1, the door will auto-close regardless of any nearby PCs. If set to 0 (the default), the door will wait until PCs are out of visual range before closing itself.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_STUCK_DC'''&amp;lt;/code&amp;gt; (integer) If non-zero, the door is considered &amp;quot;stuck&amp;quot;, and therefore cannot be opened unless forced. The value defined is the strength-check DC to &amp;quot;un-stick&amp;quot; the door. If someone tries to force a locked and stuck door open, the strength DC used is the higher of this value and &amp;lt;code&amp;gt;'''ACR_DOOR_BREAK_DC'''&amp;lt;/code&amp;gt;. The default value is 0.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_BREAK_DC'''&amp;lt;/code&amp;gt; (integer) The DC to break open this door, as per DMG rules. Breaking open a door does not destroy it like doing damage to it would in NWN, but it does keep the door from being able to be locked again. If this value is zero, the door cannot be forced open. Valid values are from 0 to 255.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_FAIL_OPEN_MESSAGE'''&amp;lt;/code&amp;gt; (string) This is a custom message sent to PCs who try to open the door and fail. This can be used in conjunction with * &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_PASSWORD'''&amp;lt;/code&amp;gt; to setup doors that require a spoken password to access (even useful for door riddles).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_OPEN_MESSAGE'''&amp;lt;/code&amp;gt; (string) This message is &amp;quot;spoken&amp;quot; by the door when it is opened. It is usually used to give the PCs a description of the area beyond an AT, if any.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_HOUR'''&amp;lt;/code&amp;gt; (integer) This is the time of day (in hours) the door unlocks itself. Generally used for shops and things which are only open during certain hours of the day. It will only unlock once, so if something else locks it afterwards, it will remain locked until either another creature unlocks it, or its next unlock time. Valid values are 0 to 23. If you don't wish the door locking or unlocking itself automatically, leave both this variable and &amp;lt;code&amp;gt;'''ACR_DOOR_LOCK_HOUR'''&amp;lt;/code&amp;gt; set to 0 (the default value).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_LOCK_HOUR'''&amp;lt;/code&amp;gt; (integer) This is the time of day (in hours) the door locks itself. Generally used for shops and things which are only open during certain hours of the day. It will only lock once, so if something else unlocks it afterwards, it will remain unlocked until either another creature locks it, or its next lock time. Valid values are 0 to 23. If you don't wish the door locking or unlocking itself automatically, leave both this variable and &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_HOUR'''&amp;lt;/code&amp;gt; set to 0 (the default value).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_SPELLID'''&amp;lt;/code&amp;gt; (int) This is the Spell ID for doors that require a specific spell to unlock. This will only work for spell IDs greater than 0. Be sure to set the door's default lock status to locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNLOCK_PASSWORD'''&amp;lt;/code&amp;gt; (string) This is what a player must speak to gain access to a password protected door. Leave this empty to require no password. Otherwise, be sure to set the door's default lock status to locked.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_AUTO_LOCK'''&amp;lt;/code&amp;gt; (integer) If non-zero, the door will automatically lock itself each time it is shut.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_LISTEN_DC_MOD'''&amp;lt;/code&amp;gt; (integer) This modifier is applied to creatures trying to listen to conversations occuring behind a closed doors. The DMG lists this a +5 for every door, but some customization is allowed for different door types. If undefined or set to 0, the door cannot be listened through.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_KNOCK_IMMUNE'''&amp;lt;/code&amp;gt; (integer) If nonzero, this door is immune to the spell knock. If zero, it is not immune.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_DOOR_UNMOVABLE'''&amp;lt;/code&amp;gt; (integer) If nonzero, the door cannot be opened or closed by a non-DM creature, even if unlocked. Scripts can still open or close it, however. This setting is often used to represent large doors which a PC could not realistically close on their own even if they were unlocked, like the huge gates on castles and other fortifications.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_AT_SIZE'''&amp;lt;/code&amp;gt; (integer) If nonzero, this setting specifies the maximum sized creature which can fit through this doorway. Anything large will be given a message saying it is too large to fit inside. Valid values are as follows:&lt;br /&gt;
*# Fine&lt;br /&gt;
*# Diminutive&lt;br /&gt;
*# Tiny&lt;br /&gt;
*# Small&lt;br /&gt;
*# Medium&lt;br /&gt;
*# Large&lt;br /&gt;
*# Huge&lt;br /&gt;
*# Gargantuan&lt;br /&gt;
*# Colossal&lt;br /&gt;
&lt;br /&gt;
Note that currently, NWN2 does not support creature sizes of fine, diminutive, gargantuan or colossal. These values are provided here for future compatibility.&lt;br /&gt;
&lt;br /&gt;
Note that if none of these variables are defined, they default to zero. So a door without them would never close or lock itself, wouldn't be stuck or barred at all, would not be able to be forced open, and wouldn't have any sort of a custom message printed if a PC failed to open it.&lt;br /&gt;
&lt;br /&gt;
= Detect Magic =&lt;br /&gt;
These are advanced options for doors to register as magical to Detect Magic. A door with these variables will report to the caster if the caster passes spellcraft checks based on the power of the spell.  For instance: &amp;quot;Abjuration Dorm has a Faint aura of Transmutation.&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL'''&amp;lt;/code&amp;gt; (integer) If the door should register to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER'''&amp;lt;/code&amp;gt; (integer) If the door should register to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLSCHOOL2'''&amp;lt;/code&amp;gt; (integer) If the door should register a second aura to Detect Magic, use integer 1 - 9 for the school of magic of the aura. See the Detect Magic page for which integer calls which school of magic.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''ACR_SPELLPOWER2'''&amp;lt;/code&amp;gt; (integer) If the door should register a second aura to Detect Magic, use integer 1 - 9 for the spell level of the aura. See the Detect Magic page for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=TIPS/TROUBLESHOOTING=&lt;br /&gt;
&lt;br /&gt;
*  If your doorway does not seem to function properly:&lt;br /&gt;
*- make sure the doorway is within a walkmesh area&lt;br /&gt;
*- make sure there is no open doorway behind it, as in a tileset doorway vs a placeable doorway&lt;br /&gt;
*- a door must have current hit points &amp;gt;0 for it to function&lt;br /&gt;
*- If your static door looks fine in the toolset but does not fill the doorway ingame, the door model defaults in static mode.  Instead do not make door static and set it to locked, requires key to open to get it to look right ingame. This is especially true when you have changed the size of the door to fit the doorway. Some models work better than others.  There are now placeable doors also available in the toolset.&lt;br /&gt;
*- If a Half-orc cannot got through your AT  make sure the receiving end is not set to position lock. Also make sure there is plenty of cleared space around the receiving door.  Too little space will keep orcs and half-orcs from being able to traverse the doorway.&lt;br /&gt;
* When resizing doors scales 1st and 2nd should be the same size.  Otherwise your door will be a weird size when it opens.  This how ever might be a useful trick when you want to emulate a door folding up or to the side.&lt;/div&gt;</summary>
		<author><name>Wynna</name></author>	</entry>

	</feed>