<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sinfar.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LockOn</id>
	<title>Sinfar - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sinfar.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LockOn"/>
	<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php/Special:Contributions/LockOn"/>
	<updated>2026-04-09T01:00:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1095</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1095"/>
		<updated>2025-12-03T20:54:00Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
=== home_tag ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Set tags&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set a Placeables Tag&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| TAG:String&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:string GetHomeSafeTag(string sOriginalTag); string GetHomeTagByID(string sOriginalTag, int nHomeID)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_npc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tailor Models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| HS_SPAWN_NPC_ID&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevate and Rotate ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_plc_used_turn ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force turn a placeable&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnUsed&lt;br /&gt;
| G_TURN_BACK_DELAY : Integer&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_cbar_hb ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_onclickexamine ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_force_emote ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_makenboard ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shackle Scripts ==&lt;br /&gt;
&lt;br /&gt;
=== shckle_p_ondeath ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Bashable shackes&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| The script to allow a PC to bash free of the shackles .&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnDeath&lt;br /&gt;
| NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== shckle_p_talk ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Bashable shackes&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Trigger for shackle placeables.&lt;br /&gt;
| Trigger&lt;br /&gt;
| NA&lt;br /&gt;
| NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_shackle ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Full shackle system&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| CHAIN_LENGTH: Float&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : StringScript: hs_use_wc_image&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1094</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1094"/>
		<updated>2025-12-03T20:48:29Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
=== home_tag ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Set tags&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set a Placeables Tag&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| TAG:String&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:string GetHomeSafeTag(string sOriginalTag); string GetHomeTagByID(string sOriginalTag, int nHomeID)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_npc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tailor Models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| HS_SPAWN_NPC_ID&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevate and Rotate ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_plc_used_turn ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force turn a placeable&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnUsed&lt;br /&gt;
| G_TURN_BACK_DELAY : Integer&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_cbar_hb ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_onclickexamine ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_force_emote ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_makenboard ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shackle Scripts ==&lt;br /&gt;
&lt;br /&gt;
=== shckle_p_ondeath ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Bashable shackes&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| The script to allow a PC to bash free of the shackles .&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnDeath&lt;br /&gt;
| NA&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== shckle_p_talk ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Bashable shackes&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Trigger for shackle placeables.&lt;br /&gt;
| Trigger&lt;br /&gt;
| NA&lt;br /&gt;
| NA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1093</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1093"/>
		<updated>2025-12-03T20:40:00Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
=== home_tag ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Set tags&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set a Placeables Tag&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| TAG:String&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:string GetHomeSafeTag(string sOriginalTag); string GetHomeTagByID(string sOriginalTag, int nHomeID)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_npc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tailor Models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| HS_SPAWN_NPC_ID&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevate and Rotate ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_plc_used_turn ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force turn a placeable&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnUsed&lt;br /&gt;
| G_TURN_BACK_DELAY : Integer&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_cbar_hb ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_onclickexamine ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_force_emote ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_makenboard ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1092</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1092"/>
		<updated>2025-12-03T20:17:04Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_npc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tailor Models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| HS_SPAWN_NPC_ID&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevate and Rotate ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_plc_used_turn ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force turn a placeable&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnUsed&lt;br /&gt;
| G_TURN_BACK_DELAY : Integer&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_cbar_hb ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_onclickexamine ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_force_emote ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_makenboard ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1091</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1091"/>
		<updated>2025-12-03T19:55:31Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_npc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tailor Models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| HS_SPAWN_NPC_ID&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevate and Rotate ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Elevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_plc_used_turn ===&lt;br /&gt;
Force &lt;br /&gt;
&lt;br /&gt;
Force &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnUsed&lt;br /&gt;
| G_TURN_BACK_DELAY : Integer&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_cbar_hb ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_onclickexamine ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_force_emote ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_makenboard ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1090</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1090"/>
		<updated>2025-12-03T18:52:06Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_npc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tailor Models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| HS_SPAWN_NPC_ID&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevations ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_cbar_hb ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_onclickexamine ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_force_emote ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_makenboard ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1089</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1089"/>
		<updated>2025-12-03T17:42:18Z</updated>

		<summary type="html">&lt;p&gt;LockOn: spacing these out to fix for later.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_npc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tailor Models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| HS_SPAWN_NPC_ID&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevations ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_cbar_hb ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== g_onclickexamine ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_force_emote ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_hb_makenboard ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_tipjar ==&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1088</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1088"/>
		<updated>2025-12-03T17:36:19Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Moving around some of the scripts that were not labeled properly and have just been cut and pasted into the end of this page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_npc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tailor Models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| HS_SPAWN_NPC_ID&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevations ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_cbar_hb ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== g_onclickexamine ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_force_emote ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_hb_makenboard ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_tipjar ==&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_xferspw&lt;br /&gt;
&lt;br /&gt;
All items put in the inventory of this placeable will be moved to the store identified by the variable HS_STORE_TAG.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_STORE_TAG : String&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_spawn&lt;br /&gt;
&lt;br /&gt;
Turn a useable placeable into a merchant NPC. The merchant will open a store identified by the variable HS_STORE_TAG (10 characters max). You can fill that store with the hs_store_xferspw script.&lt;br /&gt;
&lt;br /&gt;
You can control the cost if the items with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP:&lt;br /&gt;
&lt;br /&gt;
is added to the stores default mark up percentage on items sold (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN:&lt;br /&gt;
&lt;br /&gt;
added to the stores default mark down percentage on items bought (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
You can set the properties of the NPC with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER:&lt;br /&gt;
&lt;br /&gt;
1 for female, 0 for male&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the body model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2:&lt;br /&gt;
&lt;br /&gt;
Use the body model, new heads section, to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the tailoring model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 - HS_SPAWN_VFX_5:&lt;br /&gt;
&lt;br /&gt;
Visual effects (horns, eyes, hat…), from the visualeffects.2da file.&lt;br /&gt;
&lt;br /&gt;
You can control what the NPC say with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND: Sound resref to play when the dialog start.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION: Animation to play when the dialog start. Use the !EINFO command to find out the value of this variable.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT&lt;br /&gt;
&lt;br /&gt;
Notes: - You can use the web client to copy the values spoken by the body or tailoring models. - You can&#039;t get the gold of your sales. This is a non-profit script. If you want to get gold from you items, you have to sell them yourself.&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_1 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_2 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_3 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_4 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_5 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2 : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_TAG : String&lt;br /&gt;
Tailor NPCs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Dungeon_Running&amp;diff=1025</id>
		<title>Dungeon Running</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Dungeon_Running&amp;diff=1025"/>
		<updated>2025-07-20T16:54:36Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Sub title change on the christenholme dungeon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dungeon running in Sinfar is a long-established and deep game-play experience on Sinfar.  There are multiple dungeons with unique rewards available to dungeon runners who play through them.&lt;br /&gt;
&lt;br /&gt;
Below is a brief overview of the various dungeons available on the server.&lt;br /&gt;
&lt;br /&gt;
=== Shard Runs ===&lt;br /&gt;
Shard Run dungeons are considered the premium dungeon experience in Sinfar.  These dungeons require specific builds and tactics to be run efficiently and are considered the top tier dungeons on our Servers.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Name&lt;br /&gt;
!Abbreviation&lt;br /&gt;
|-&lt;br /&gt;
|Searing Chasm&lt;br /&gt;
|SC&lt;br /&gt;
|-&lt;br /&gt;
|Heaven vs Hell&lt;br /&gt;
|HvH&lt;br /&gt;
|-&lt;br /&gt;
|Crystal Archon Complex&lt;br /&gt;
|CAC&lt;br /&gt;
|-&lt;br /&gt;
|Dark Matter Dimension&lt;br /&gt;
|DMD&lt;br /&gt;
|-&lt;br /&gt;
|Path of Elements&lt;br /&gt;
|PoE&lt;br /&gt;
|-&lt;br /&gt;
|The Witch&#039;s Menagerie&lt;br /&gt;
|Witch&lt;br /&gt;
|-&lt;br /&gt;
|Bards Haunted Mansion&lt;br /&gt;
|BHM&lt;br /&gt;
|-&lt;br /&gt;
|Corrupted Town&lt;br /&gt;
|CT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Non-Shard Runs ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Name&lt;br /&gt;
!Abbreviation&lt;br /&gt;
|-&lt;br /&gt;
|Christenholme&lt;br /&gt;
|None I know of?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Crystal Key Fragments ===&lt;br /&gt;
There are dungeons scattered on Main Server where you need to kill a set of 6 difference bosses which do drop Crystal Key Fragmets which can be used to open CAC or SC (But SC has also Glacier Keys so the Fragment Keys are used in 99% of time only for CAC).&lt;br /&gt;
&lt;br /&gt;
# The Lord of Terror can be found in the Icenfar cathedral deep in the forest, on the main floor of the cathedral near the pentagram. &lt;br /&gt;
# The Blight can be found underneath the cathedral by circling around it and using the entrance in the back. &lt;br /&gt;
# The Blighted King is in the burial grounds west of Icenfar town. Find a small hill with 2 opposing entrances, one of these is the entrance, the other the exit.&lt;br /&gt;
# The Ice Drake is in a cave at the top of the Icenfar mountain. &lt;br /&gt;
# The Frost Giant King is inside said mountain. Approach the mountain from the south, go east 1 map and head north to find the entrance cave near a spawn of feral bears. Inside the mountain, head straight till you find a cave entrance guarded by ice themed monsters. &lt;br /&gt;
# The Ender of Fate can be found close to the dwarven kingdom inside the Icenfar mountain. In the town of Icenfar is a building guarded by a single NPC, enter and then enter the hole in the ground. Make your way through the long path and you&#039;ll approach the gates to the dwarven kingdom from the south, head west instead to find a dwarf riding a hog guarding a spiral way up to the Ender of Fate.&lt;br /&gt;
&lt;br /&gt;
==== Crystal Key Fragments can be also collected on Arche Terre ====&lt;br /&gt;
&lt;br /&gt;
# The Ender of Fate - North of Hivernales a chromatic dragon (Also drops Grimoar of Eldritch Secrets which is a Key to summon the Witch) &lt;br /&gt;
# Ice King - A king of Yetis in Hivernales (Also drops  Witch Staff  which is a Key to summon the Witch) &lt;br /&gt;
# Undead Mausoleum beneath Mur Cemetery &lt;br /&gt;
# The Blight west of Aztika (Also drops Witches Hat which is a Key to summon the Witch) &lt;br /&gt;
# The Lord of Terror - Beneath Hivernales Yeti tunnels  (Also drops Witches Pipe which is a Key to summon the Witch) &lt;br /&gt;
# Ice Dragon accessible from tunnel in Everneige - Belmorga Pass&lt;br /&gt;
&lt;br /&gt;
==== Path of Elements Book Locations ====&lt;br /&gt;
The Compass key, which unlocks the PoE entrance, requires 3 different Books to create. &lt;br /&gt;
&lt;br /&gt;
# One book is found on the Devastation Spider in the spider caves of Forest of Eternity (main island). &lt;br /&gt;
# The 2nd Book can be found on the lower level of Hamunaptra, the Saban pyramid (main island). &lt;br /&gt;
# The 3rd Book can be found in the Yeti caves in Hivernales, in the hills (Arche Terre).&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre&#039;s Tunnel System ===&lt;br /&gt;
System with shared mechanics in terms of LEVEL SCALING as some of these dungeons will have creatures that differ in power and level so that you can enter as lv1 or even as lv40 they work as levelling roads too but yield a good loot and reveal some AT related drops etc... the party size will affect difficulty as well as more party members equals more enemies&lt;br /&gt;
&lt;br /&gt;
* House of Terror :  Port Embria - Riverbend&lt;br /&gt;
* Skinners :  Embria Road - The River&lt;br /&gt;
* Minotaurs :  Smithy Volcano Mountain&lt;br /&gt;
* Ant Tunnels : Deep Ancestral Pineforest Road&lt;br /&gt;
* Ponies : Northern Road - Rocky Highlands&lt;br /&gt;
* Troll Tunnels : West Road - South - Campsite&lt;br /&gt;
* Cult of Leviathan : Pirate Airship Transport&lt;br /&gt;
* Saltmarsh : Durakiss - Approach&lt;br /&gt;
* Rogue&#039;s Challenge : West Road - South - Runoff&lt;br /&gt;
* Pirate&#039;s Cove (Sambrune Road)&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre&#039;s bonus dungeons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(These are not part of the tunnel system afaik but obey the same rules as them) &lt;br /&gt;
&lt;br /&gt;
# Inquisition : Durakiss - North (There are Inqusitors spawns over on Arche around Blacklake and Durakiss if you ddefeat the lord inquisitor in Castle Justice you will make the roads safer for a week or so)&lt;br /&gt;
# Surt the king of Ogres : Special dungeon you need a key from ogre elite then you can open a path in there thru a AT captain Anika • 5 Chromatic Dragons quest&amp;lt;blockquote&amp;gt;► Blue (Arid Stale Tunnel - Sambrune) &lt;br /&gt;
&lt;br /&gt;
► Red  (Foul Smelling Cave - Mur Moutains) &lt;br /&gt;
&lt;br /&gt;
► Black (Putrid Bog Hole - Aztika) &lt;br /&gt;
&lt;br /&gt;
► Green (Noxious Meadow - West Roads) &lt;br /&gt;
&lt;br /&gt;
► White (Frigid Ice Cave - Hivernales)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Spider Queen (Deep Ancestral Pineforest Road - There are Spiders spawns over on Arche around Deep Ancestral Pineforest if you defeat the Spider Queen in her lair  you will make the roads safer for a week or so)&lt;br /&gt;
# Necromancer Quest ( South East Coast - Elysium Track - very difficult dungeon with a single encounter if you collected dragon parts from previous quest)&lt;br /&gt;
# Gnoll&#039;s Blood God (Sambrune Desert)&lt;br /&gt;
# Rhemoraz (Mystic Cave - Hivernales)&lt;br /&gt;
# Lizardfolk Camp (Sambrune Road)&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre World Plot Dungeons ===&lt;br /&gt;
Obeys same rules as tunnel system in terms of party size difficulty increment (needs special keys and unlike the others is part of the Arche Terre&#039;s world plot story) &lt;br /&gt;
&lt;br /&gt;
• Instarius : Blacklake Draal - Lake &lt;br /&gt;
&lt;br /&gt;
• The Vessle : Sambrune - Graves&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Sinfar Dungeons&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
===== Christenholme, the Decaying City =====&lt;br /&gt;
The Dungeon of Christenholme is on the main Sinifer Server and it&#039;s connected to the Palace of Coins Casino which is found in the server hub&#039;s waterfront area, and it&#039;s systems are intimately tied into the gambling system found within. Compromised of four areas- Shalamoya, The Broken Harbor- Shalamoya, the Decaying City- Shalamoya: Crumbling Homes- and Shalamoya - Christenholme - The Church of Them. The players explore a city who has been overtaken by some strange slime and slowly uncover the state of the city as it collapsed under the weight of false worship, tyranny, and the plague which spread among them.&lt;br /&gt;
&lt;br /&gt;
The Dungeon sees spurts in development as new features are added and developed. The loot can either be sold for gold or donated for Casino Tokens to play the games at the Palace of Coins.&lt;br /&gt;
&lt;br /&gt;
Players can influence the direction and the hopes of the citizens of the Broken Harbor by contributing and communicating with the builder of the area, XCRs Bitch.&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Builder_List&amp;diff=1021</id>
		<title>Builder List</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Builder_List&amp;diff=1021"/>
		<updated>2025-07-19T19:26:51Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Builder List&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Builder List by Island ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Island&lt;br /&gt;
!Builder&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;Sinfar Islands&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Angellos Island&lt;br /&gt;
|Hadikori&lt;br /&gt;
|-&lt;br /&gt;
|Cinder Isle&lt;br /&gt;
|Zephyrys&lt;br /&gt;
|-&lt;br /&gt;
|Forest of Eternity&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|Leisure Isle&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|Lotus Isles&lt;br /&gt;
|Hadikori&lt;br /&gt;
|-&lt;br /&gt;
|Middle of Nowhere&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|Sakura&lt;br /&gt;
|Leikeze&lt;br /&gt;
|-&lt;br /&gt;
|Port Saban&lt;br /&gt;
|Kezef&lt;br /&gt;
|-&lt;br /&gt;
|Darkmist&lt;br /&gt;
|Violet, Fading&lt;br /&gt;
|-&lt;br /&gt;
|Shadebrook Village&lt;br /&gt;
|Ghost Type&lt;br /&gt;
|-&lt;br /&gt;
|Sinfar Island&lt;br /&gt;
|LockOn&lt;br /&gt;
|-&lt;br /&gt;
|Urskoy&lt;br /&gt;
|Ghost Type&lt;br /&gt;
|-&lt;br /&gt;
|Wyrmtooth Island&lt;br /&gt;
|Fallen Angel&lt;br /&gt;
|-&lt;br /&gt;
|Esus&lt;br /&gt;
|Fallen Angel&lt;br /&gt;
|-&lt;br /&gt;
|Sinfar Isle - The Slums&lt;br /&gt;
|XCR&#039;s Bitch&lt;br /&gt;
|-&lt;br /&gt;
|Lenny&#039;s Isle&lt;br /&gt;
|ChittychittyBangbang&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;Outer Isles&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Aeon Empire&lt;br /&gt;
|Carcerian&lt;br /&gt;
|-&lt;br /&gt;
|Aeon Nim&lt;br /&gt;
|Atomic Blonde&lt;br /&gt;
|-&lt;br /&gt;
|Aglon&lt;br /&gt;
|Eternal Serenity&lt;br /&gt;
|-&lt;br /&gt;
|Cat Ta Berry&lt;br /&gt;
|She lonely&lt;br /&gt;
|-&lt;br /&gt;
|Celestial Anvil&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|Copa Tel Morilinde&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|Granas Falls&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|Aossi Isle&lt;br /&gt;
|Busy_BZ_Bee&lt;br /&gt;
|-&lt;br /&gt;
|Icenfar&lt;br /&gt;
|Badger&lt;br /&gt;
|-&lt;br /&gt;
|Kissmet&lt;br /&gt;
|Road Apples&lt;br /&gt;
|-&lt;br /&gt;
|Lost World: Village of Psamathe&lt;br /&gt;
|Road Apples&lt;br /&gt;
|-&lt;br /&gt;
|Moonvale&lt;br /&gt;
|Fallen Angel&lt;br /&gt;
|-&lt;br /&gt;
|Radatonga&lt;br /&gt;
|Carcerian&lt;br /&gt;
|-&lt;br /&gt;
|Ruins of Illswyn&lt;br /&gt;
|Busy_BZ_Bee&lt;br /&gt;
|-&lt;br /&gt;
|Sandy Moore&lt;br /&gt;
|Eternal Serenity&lt;br /&gt;
|-&lt;br /&gt;
|Maurnan V&#039;dre&lt;br /&gt;
|Carcerian&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Arche Terre&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Spankitty Overall&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Che&#039;El Oloth&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Competition Island&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Durakiss&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Elysium Port&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Hivernales&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Lomidar Village&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Lost Lands&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mur County&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mur Harbor&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mur Village&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Port Embria&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Sambrune&lt;br /&gt;
|Stranger&lt;br /&gt;
|-&lt;br /&gt;
|Tal En&#039;Dae&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tal&#039;Malelee&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Whiteharbor&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;Dread Isles&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Dungeon Island&lt;br /&gt;
|ItsaBadger&lt;br /&gt;
|-&lt;br /&gt;
|Faerun&lt;br /&gt;
|Carcerian&lt;br /&gt;
|-&lt;br /&gt;
|Kara tur&lt;br /&gt;
|Hadikori&lt;br /&gt;
|-&lt;br /&gt;
|Isle of Dread&lt;br /&gt;
|Xordac&lt;br /&gt;
|-&lt;br /&gt;
|Skull Island&lt;br /&gt;
|Dynama/Stranger&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=1020</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=1020"/>
		<updated>2025-07-19T19:20:03Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Added the builder list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome to the &#039;&#039;&#039;Sinfar Wiki&#039;&#039;&#039;==&lt;br /&gt;
Here you will find information about the server, its various areas and systems, guides and introductions. This Wiki is made up of user-submitted articles, and you can make your own contributions. You will require a functioning [[Sinfar account]] to log in and you can help us organize how to do our styling and formatting. Be sure to join our [https://discord.gg/sinfar Discord] and check the [https://forum.sinfar.net/ Forums].&lt;br /&gt;
&lt;br /&gt;
When making new or editing existing articles, please respect that any article on here should be written in as an objective manner as possible, focusing on facts and information. If you write info about areas of the server, please avoid spoiling surprises and focus instead on general things and/or the area history. Articles may include specific characters who may hold prominent positions, but should not be a substitute for the in-game descriptions available on nwn.sinfar.net and in game. Please see [[Contributing]] for further details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--I&#039;d like to add a search box here but I want it to look nice (see Star Citizen wiki for examples). Will need to add extensions.--&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;span style=&amp;quot;color:#955919&amp;gt; for the golden text colour&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot; margin: auto;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;|&#039;&#039;&#039;&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;New to Sinfar or NWN? Look up the following guides to get started.&amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[About Sinfar]] || [[Getting Started]] || [[Recommended Settings]] || [[Solving Client or Connection Issues]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|&#039;&#039;&#039;&amp;lt;center&amp;gt;Returning or just need the necessary downloads?&amp;lt;/center&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the Sinfar [[Hak Files]] ||colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the [[Sinfar Client Extender (SinfarX)]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;Also be sure to read up on our [[Rules]]!&amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
You can find information for players, supporters and builders.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;For Players&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Character Customisation]]&lt;br /&gt;
|[[Dungeon Running]]&lt;br /&gt;
|[[Chat Commands]]&lt;br /&gt;
|[[Magical Items]]&lt;br /&gt;
|[[House Scripts]]&lt;br /&gt;
|[[Player Housing]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Class Changes]]&lt;br /&gt;
|[[Feat Changes]]&lt;br /&gt;
|[[Spell Changes]]&lt;br /&gt;
|[[Chat Channels]]&lt;br /&gt;
|[[Custom Emotes]]&lt;br /&gt;
|[[Class Bonuses]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Suporters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Custom Scripting]]&lt;br /&gt;
|[[Your Resources]]&lt;br /&gt;
|[[All Supporter Resources]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Builders&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Creature Event System]]&lt;br /&gt;
|[[Registered Events]]&lt;br /&gt;
|[[Variable Events]]&lt;br /&gt;
|[[Builder List]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Scripters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Common Includes]]&lt;br /&gt;
|[[:Category:Systems|Scripting Systems]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |The following categories are set up and should be set on relevant new pages. More categories can be applied.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Contributions|Builder Contributions]]&lt;br /&gt;
|For guides and instructions on your ERFs and contributions. Generally only useful for other builders. &lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builders Tools|Builders Tools]]&lt;br /&gt;
|Guides and instructions of various Sinfar tools specifically for builders.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Sinfar Supporters|Sinfar Supporters]]&lt;br /&gt;
|Tools for Supporters to use primarily within their houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Businesses|Player Businesses]]&lt;br /&gt;
|Lore articles for in-game establishments.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Businesses|Builder Businesses]]&lt;br /&gt;
|Instructions and details about businesses made by builders that exist outside player houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Tools|Player Tools]]&lt;br /&gt;
|Various useful tools and pages for all players.&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Dungeon_Running&amp;diff=1019</id>
		<title>Dungeon Running</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Dungeon_Running&amp;diff=1019"/>
		<updated>2025-07-19T18:47:19Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dungeon running in Sinfar is a long-established and deep game-play experience on Sinfar.  There are multiple dungeons with unique rewards available to dungeon runners who play through them.&lt;br /&gt;
&lt;br /&gt;
Below is a brief overview of the various dungones available on the server.&lt;br /&gt;
&lt;br /&gt;
=== Shard Runs ===&lt;br /&gt;
Shard Run dungeons are considered the premium dungeon experience in Sinfar.  These dungeons require specific builds and tactics to be run efficiently and are considered the top tier dungeons on our Servers.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Name&lt;br /&gt;
!Abbreviation&lt;br /&gt;
|-&lt;br /&gt;
|Searing Chasm&lt;br /&gt;
|SC&lt;br /&gt;
|-&lt;br /&gt;
|Heaven vs Hell&lt;br /&gt;
|HvH&lt;br /&gt;
|-&lt;br /&gt;
|Crystal Archon Complex&lt;br /&gt;
|CAC&lt;br /&gt;
|-&lt;br /&gt;
|Dark Matter Dimension&lt;br /&gt;
|DMD&lt;br /&gt;
|-&lt;br /&gt;
|Path of Elements&lt;br /&gt;
|PoE&lt;br /&gt;
|-&lt;br /&gt;
|The Witch&#039;s Menagerie&lt;br /&gt;
|Witch&lt;br /&gt;
|-&lt;br /&gt;
|Bards Haunted Mansion&lt;br /&gt;
|BHM&lt;br /&gt;
|-&lt;br /&gt;
|Corrupted Town&lt;br /&gt;
|CT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Crystal Key Fragments ===&lt;br /&gt;
There are dungeons scattered on Main Server where you need to kill a set of 6 difference bosses which do drop Crystal Key Fragmets which can be used to open CAC or SC (But SC has also Glacier Keys so the Fragment Keys are used in 99% of time only for CAC).&lt;br /&gt;
&lt;br /&gt;
# The Lord of Terror can be found in the Icenfar cathedral deep in the forest, on the main floor of the cathedral near the pentagram. &lt;br /&gt;
# The Blight can be found underneath the cathedral by circling around it and using the entrance in the back. &lt;br /&gt;
# The Blighted King is in the burial grounds west of Icenfar town. Find a small hill with 2 opposing entrances, one of these is the entrance, the other the exit.&lt;br /&gt;
# The Ice Drake is in a cave at the top of the Icenfar mountain. &lt;br /&gt;
# The Frost Giant King is inside said mountain. Approach the mountain from the south, go east 1 map and head north to find the entrance cave near a spawn of feral bears. Inside the mountain, head straight till you find a cave entrance guarded by ice themed monsters. &lt;br /&gt;
# The Ender of Fate can be found close to the dwarven kingdom inside the Icenfar mountain. In the town of Icenfar is a building guarded by a single NPC, enter and then enter the hole in the ground. Make your way through the long path and you&#039;ll approach the gates to the dwarven kingdom from the south, head west instead to find a dwarf riding a hog guarding a spiral way up to the Ender of Fate.&lt;br /&gt;
&lt;br /&gt;
==== Crystal Key Fragments can be also collected on Arche Terre ====&lt;br /&gt;
&lt;br /&gt;
# The Ender of Fate - North of Hivernales a chromatic dragon (Also drops Grimoar of Eldritch Secrets which is a Key to summon the Witch) &lt;br /&gt;
# Ice King - A king of Yetis in Hivernales (Also drops  Witch Staff  which is a Key to summon the Witch) &lt;br /&gt;
# Undead Mausoleum beneath Mur Cemetery &lt;br /&gt;
# The Blight west of Aztika (Also drops Witches Hat which is a Key to summon the Witch) &lt;br /&gt;
# The Lord of Terror - Beneath Hivernales Yeti tunnels  (Also drops Witches Pipe which is a Key to summon the Witch) &lt;br /&gt;
# Ice Dragon accessible from tunnel in Everneige - Belmorga Pass&lt;br /&gt;
&lt;br /&gt;
==== Path of Elements Book Locations ====&lt;br /&gt;
The Compass key, which unlocks the PoE entrance, requires 3 different Books to create. &lt;br /&gt;
&lt;br /&gt;
# One book is found on the Devastation Spider in the spider caves of Forest of Eternity (main island). &lt;br /&gt;
# The 2nd Book can be found on the lower level of Hamunaptra, the Saban pyramid (main island). &lt;br /&gt;
# The 3rd Book can be found in the Yeti caves in Hivernales, in the hills (Arche Terre).&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre&#039;s Tunnel System ===&lt;br /&gt;
System with shared mechanics in terms of LEVEL SCALING as some of these dungeons will have creatures that differ in power and level so that you can enter as lv1 or even as lv40 they work as levelling roads too but yield a good loot and reveal some AT related drops etc... the party size will affect difficulty as well as more party members equals more enemies&lt;br /&gt;
&lt;br /&gt;
* House of Terror :  Port Embria - Riverbend&lt;br /&gt;
* Skinners :  Embria Road - The River&lt;br /&gt;
* Minotaurs :  Smithy Volcano Mountain&lt;br /&gt;
* Ant Tunnels : Deep Ancestral Pineforest Road&lt;br /&gt;
* Ponies : Northern Road - Rocky Highlands&lt;br /&gt;
* Troll Tunnels : West Road - South - Campsite&lt;br /&gt;
* Cult of Leviathan : Pirate Airship Transport&lt;br /&gt;
* Saltmarsh : Durakiss - Approach&lt;br /&gt;
* Rogue&#039;s Challenge : West Road - South - Runoff&lt;br /&gt;
* Pirate&#039;s Cove (Sambrune Road)&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre&#039;s bonus dungeons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(These are not part of the tunnel system afaik but obey the same rules as them) &lt;br /&gt;
&lt;br /&gt;
# Inquisition : Durakiss - North (There are Inqusitors spawns over on Arche around Blacklake and Durakiss if you ddefeat the lord inquisitor in Castle Justice you will make the roads safer for a week or so)&lt;br /&gt;
# Surt the king of Ogres : Special dungeon you need a key from ogre elite then you can open a path in there thru a AT captain Anika • 5 Chromatic Dragons quest&amp;lt;blockquote&amp;gt;► Blue (Arid Stale Tunnel - Sambrune) &lt;br /&gt;
&lt;br /&gt;
► Red  (Foul Smelling Cave - Mur Moutains) &lt;br /&gt;
&lt;br /&gt;
► Black (Putrid Bog Hole - Aztika) &lt;br /&gt;
&lt;br /&gt;
► Green (Noxious Meadow - West Roads) &lt;br /&gt;
&lt;br /&gt;
► White (Frigid Ice Cave - Hivernales)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Spider Queen (Deep Ancestral Pineforest Road - There are Spiders spawns over on Arche around Deep Ancestral Pineforest if you defeat the Spider Queen in her lair  you will make the roads safer for a week or so)&lt;br /&gt;
# Necromancer Quest ( South East Coast - Elysium Track - very difficult dungeon with a single encounter if you collected dragon parts from previous quest)&lt;br /&gt;
# Gnoll&#039;s Blood God (Sambrune Desert)&lt;br /&gt;
# Rhemoraz (Mystic Cave - Hivernales)&lt;br /&gt;
# Lizardfolk Camp (Sambrune Road)&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre World Plot Dungeons ===&lt;br /&gt;
Obeys same rules as tunnel system in terms of party size difficulty increment (needs special keys and unlike the others is part of the Arche Terre&#039;s world plot story) &lt;br /&gt;
&lt;br /&gt;
• Instarius : Blacklake Draal - Lake &lt;br /&gt;
&lt;br /&gt;
• The Vessle : Sambrune - Graves&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Dungeon_Running&amp;diff=1018</id>
		<title>Dungeon Running</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Dungeon_Running&amp;diff=1018"/>
		<updated>2025-07-19T18:44:13Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Created our Dungeon Summary Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dungeon running in Sinfar is a long-established and deep game-play experience on Sinfar.  There are multiple dungeons with unique rewards available to dungeon runners who play through them.&lt;br /&gt;
&lt;br /&gt;
Below is a brief overview of the various dungones available on the server.&lt;br /&gt;
&lt;br /&gt;
=== Shard Runs ===&lt;br /&gt;
Shard Run dungeons are considered the premium dungeon experience in Sinfar.  These dungeons require specific builds and tactics to be run efficiently and are considered the top tier dungeons on our Servers.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Name&lt;br /&gt;
!Abbreviation&lt;br /&gt;
|-&lt;br /&gt;
|Searing Chasm&lt;br /&gt;
|SC&lt;br /&gt;
|-&lt;br /&gt;
|Heaven vs Hell&lt;br /&gt;
|HvH&lt;br /&gt;
|-&lt;br /&gt;
|Crystal Archon Complex&lt;br /&gt;
|CAC&lt;br /&gt;
|-&lt;br /&gt;
|Dark Matter Dimension&lt;br /&gt;
|DMD&lt;br /&gt;
|-&lt;br /&gt;
|Path of Elements&lt;br /&gt;
|PoE&lt;br /&gt;
|-&lt;br /&gt;
|The Witch&#039;s Menagerie&lt;br /&gt;
|Witch&lt;br /&gt;
|-&lt;br /&gt;
|Bards Haunted Mansion&lt;br /&gt;
|BHM&lt;br /&gt;
|-&lt;br /&gt;
|Corrupted Town&lt;br /&gt;
|CT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Crystal Key Fragments ===&lt;br /&gt;
There are dungeons scattered on Main Server where you need to kill a set of 6 difference bosses which do drop Crystal Key Fragmets which can be used to open CAC or SC (But SC has also Glacier Keys so the Fragment Keys are used in 99% of time only for CAC).&lt;br /&gt;
&lt;br /&gt;
# The Lord of Terror can be found in the Icenfar cathedral deep in the forest, on the main floor of the cathedral near the pentagram. &lt;br /&gt;
# The Blight can be found underneath the cathedral by circling around it and using the entrance in the back. &lt;br /&gt;
# The Blighted King is in the burial grounds west of Icenfar town. Find a small hill with 2 opposing entrances, one of these is the entrance, the other the exit.&lt;br /&gt;
# The Ice Drake is in a cave at the top of the Icenfar mountain. &lt;br /&gt;
# The Frost Giant King is inside said mountain. Approach the mountain from the south, go east 1 map and head north to find the entrance cave near a spawn of feral bears. Inside the mountain, head straight till you find a cave entrance guarded by ice themed monsters. &lt;br /&gt;
# The Ender of Fate can be found close to the dwarven kingdom inside the Icenfar mountain. In the town of Icenfar is a building guarded by a single NPC, enter and then enter the hole in the ground. Make your way through the long path and you&#039;ll approach the gates to the dwarven kingdom from the south, head west instead to find a dwarf riding a hog guarding a spiral way up to the Ender of Fate.&lt;br /&gt;
&lt;br /&gt;
==== Crystal Key Fragments can be also collected on Arche Terre ====&lt;br /&gt;
&lt;br /&gt;
# The Ender of Fate - North of Hivernales a chromatic dragon (Also drops Grimoar of Eldritch Secrets which is a Key to summon the Witch) &lt;br /&gt;
# Ice King - A king of Yetis in Hivernales (Also drops  Witch Staff  which is a Key to summon the Witch) &lt;br /&gt;
# Undead Mausoleum beneath Mur Cemetery &lt;br /&gt;
# The Blight west of Aztika (Also drops Witches Hat which is a Key to summon the Witch) &lt;br /&gt;
# The Lord of Terror - Beneath Hivernales Yeti tunnels  (Also drops Witches Pipe which is a Key to summon the Witch) &lt;br /&gt;
# Ice Dragon accessible from tunnel in Everneige - Belmorga Pass&lt;br /&gt;
&lt;br /&gt;
==== Path of Elements Book Locations ====&lt;br /&gt;
The Compass key, which unlocks the PoE entrance, requires 3 different Books to create. &lt;br /&gt;
&lt;br /&gt;
# One book is found on the Devastation Spider in the spider caves of Forest of Eternity (main island). &lt;br /&gt;
# The 2nd Book can be found on the lower level of Hamunaptra, the Saban pyramid (main island). &lt;br /&gt;
# The 3rd Book can be found in the Yeti caves in Hivernales, in the hills (Arche Terre).&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre&#039;s Tunnel System ===&lt;br /&gt;
System with shared mechanics in terms of LEVEL SCALING as some of these dungeons will have creatures that differ in power and level so that you can enter as lv1 or even as lv40 they work as levelling roads too but yield a good loot and reveal some AT related drops etc... the party size will affect difficulty as well as more party members equals more enemies&lt;br /&gt;
&lt;br /&gt;
• House of Terror :  Port Embria - Riverbend &lt;br /&gt;
&lt;br /&gt;
• Skinners :  Embria Road - The River &lt;br /&gt;
&lt;br /&gt;
• Minotaurs :  Smithy Volcano Mountain &lt;br /&gt;
&lt;br /&gt;
• Ant Tunnels : Deep Ancestral Pineforest Road &lt;br /&gt;
&lt;br /&gt;
• Ponies : Northern Road - Rocky Highlands &lt;br /&gt;
&lt;br /&gt;
• Troll Tunnels : West Road - South - Campsite &lt;br /&gt;
&lt;br /&gt;
• Cult of Leviathan : Pirate Airship Transport &lt;br /&gt;
&lt;br /&gt;
• Saltmarsh : Durakiss - Approach &lt;br /&gt;
&lt;br /&gt;
• Rogue&#039;s Challenge : West Road - South - Runoff &lt;br /&gt;
&lt;br /&gt;
• Pirate&#039;s Cove (Sambrune Road)&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre&#039;s bonus dungeons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(These are not part of the tunnel system afaik but obey the same rules as them) &lt;br /&gt;
&lt;br /&gt;
• Inquisition : Durakiss - North (There are Inqusitors spawns over on Arche around Blacklake and Durakiss if you ddefeat the lord inquisitor in Castle Justice you will make the roads safer for a week or so) &lt;br /&gt;
&lt;br /&gt;
• Surt the king of Ogres : Special dungeon you need a key from ogre elite then you can open a path in there thru a AT captain Anika • 5 Chromatic Dragons quest&amp;lt;blockquote&amp;gt;► Blue (Arid Stale Tunnel - Sambrune) &lt;br /&gt;
&lt;br /&gt;
► Red  (Foul Smelling Cave - Mur Moutains) &lt;br /&gt;
&lt;br /&gt;
► Black (Putrid Bog Hole - Aztika) &lt;br /&gt;
&lt;br /&gt;
► Green (Noxious Meadow - West Roads) &lt;br /&gt;
&lt;br /&gt;
► White (Frigid Ice Cave - Hivernales)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
• Spider Queen (Deep Ancestral Pineforest Road - There are Spiders spawns over on Arche around Deep Ancestral Pineforest if you defeat the Spider Queen in her lair  you will make the roads safer for a week or so) &lt;br /&gt;
&lt;br /&gt;
• Necromancer Quest ( South East Coast - Elysium Track - very difficult dungeon with a single encounter if you collected dragon parts from previous quest) &lt;br /&gt;
&lt;br /&gt;
• Gnoll&#039;s Blood God (Sambrune Desert) &lt;br /&gt;
&lt;br /&gt;
• Rhemoraz (Mystic Cave - Hivernales) &lt;br /&gt;
&lt;br /&gt;
• Lizardfolk Camp (Sambrune Road)&lt;br /&gt;
&lt;br /&gt;
=== Arche Terre World Plot Dungeons ===&lt;br /&gt;
Obeys same rules as tunnel system in terms of party size difficulty increment (needs special keys and unlike the others is part of the Arche Terre&#039;s world plot story) &lt;br /&gt;
&lt;br /&gt;
• Instarius : Blacklake Draal - Lake &lt;br /&gt;
&lt;br /&gt;
• The Vessle : Sambrune - Graves&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=1017</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=1017"/>
		<updated>2025-07-19T18:28:02Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Trying to get the new page done.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome to the &#039;&#039;&#039;Sinfar Wiki&#039;&#039;&#039;==&lt;br /&gt;
Here you will find information about the server, its various areas and systems, guides and introductions. This Wiki is made up of user-submitted articles, and you can make your own contributions. You will require a functioning [[Sinfar account]] to log in and you can help us organize how to do our styling and formatting. Be sure to join our [https://discord.gg/sinfar Discord] and check the [https://forum.sinfar.net/ Forums].&lt;br /&gt;
&lt;br /&gt;
When making new or editing existing articles, please respect that any article on here should be written in as an objective manner as possible, focusing on facts and information. If you write info about areas of the server, please avoid spoiling surprises and focus instead on general things and/or the area history. Articles may include specific characters who may hold prominent positions, but should not be a substitute for the in-game descriptions available on nwn.sinfar.net and in game. Please see [[Contributing]] for further details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--I&#039;d like to add a search box here but I want it to look nice (see Star Citizen wiki for examples). Will need to add extensions.--&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;span style=&amp;quot;color:#955919&amp;gt; for the golden text colour&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot; margin: auto;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;|&#039;&#039;&#039;&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;New to Sinfar or NWN? Look up the following guides to get started.&amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[About Sinfar]] || [[Getting Started]] || [[Recommended Settings]] || [[Solving Client or Connection Issues]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|&#039;&#039;&#039;&amp;lt;center&amp;gt;Returning or just need the necessary downloads?&amp;lt;/center&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the Sinfar [[Hak Files]] ||colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the [[Sinfar Client Extender (SinfarX)]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;Also be sure to read up on our [[Rules]]!&amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
You can find information for players, supporters and builders.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;For Players&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Character Customisation]]&lt;br /&gt;
|[[Dungeon Running]]&lt;br /&gt;
|[[Chat Commands]]&lt;br /&gt;
|[[Magical Items]]&lt;br /&gt;
|[[House Scripts]]&lt;br /&gt;
|[[Player Housing]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Class Changes]]&lt;br /&gt;
|[[Feat Changes]]&lt;br /&gt;
|[[Spell Changes]]&lt;br /&gt;
|[[Chat Channels]]&lt;br /&gt;
|[[Custom Emotes]]&lt;br /&gt;
|[[Class Bonuses]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Suporters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Custom Scripting]]&lt;br /&gt;
|[[Your Resources]]&lt;br /&gt;
|[[All Supporter Resources]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Builders&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Creature Event System]]&lt;br /&gt;
|[[Registered Events]]&lt;br /&gt;
|[[Variable Events]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Scripters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Common Includes]]&lt;br /&gt;
|[[:Category:Systems|Scripting Systems]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |The following categories are set up and should be set on relevant new pages. More categories can be applied.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Contributions|Builder Contributions]]&lt;br /&gt;
|For guides and instructions on your ERFs and contributions. Generally only useful for other builders. &lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builders Tools|Builders Tools]]&lt;br /&gt;
|Guides and instructions of various Sinfar tools specifically for builders.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Sinfar Supporters|Sinfar Supporters]]&lt;br /&gt;
|Tools for Supporters to use primarily within their houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Businesses|Player Businesses]]&lt;br /&gt;
|Lore articles for in-game establishments.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Businesses|Builder Businesses]]&lt;br /&gt;
|Instructions and details about businesses made by builders that exist outside player houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Tools|Player Tools]]&lt;br /&gt;
|Various useful tools and pages for all players.&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=1016</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=1016"/>
		<updated>2025-07-19T18:23:19Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Removed approval points.  Going to replace it with Dungeon Running once the page is created.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome to the &#039;&#039;&#039;Sinfar Wiki&#039;&#039;&#039;==&lt;br /&gt;
Here you will find information about the server, its various areas and systems, guides and introductions. This Wiki is made up of user-submitted articles, and you can make your own contributions. You will require a functioning [[Sinfar account]] to log in and you can help us organize how to do our styling and formatting. Be sure to join our [https://discord.gg/sinfar Discord] and check the [https://forum.sinfar.net/ Forums].&lt;br /&gt;
&lt;br /&gt;
When making new or editing existing articles, please respect that any article on here should be written in as an objective manner as possible, focusing on facts and information. If you write info about areas of the server, please avoid spoiling surprises and focus instead on general things and/or the area history. Articles may include specific characters who may hold prominent positions, but should not be a substitute for the in-game descriptions available on nwn.sinfar.net and in game. Please see [[Contributing]] for further details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--I&#039;d like to add a search box here but I want it to look nice (see Star Citizen wiki for examples). Will need to add extensions.--&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;span style=&amp;quot;color:#955919&amp;gt; for the golden text colour&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot; margin: auto;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;|&#039;&#039;&#039;&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;New to Sinfar or NWN? Look up the following guides to get started.&amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[About Sinfar]] || [[Getting Started]] || [[Recommended Settings]] || [[Solving Client or Connection Issues]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|&#039;&#039;&#039;&amp;lt;center&amp;gt;Returning or just need the necessary downloads?&amp;lt;/center&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the Sinfar [[Hak Files]] ||colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the [[Sinfar Client Extender (SinfarX)]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;Also be sure to read up on our [[Rules]]!&amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
You can find information for players, supporters and builders.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;For Players&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Character Customisation]]&lt;br /&gt;
|&lt;br /&gt;
|[[Chat Commands]]&lt;br /&gt;
|[[Magical Items]]&lt;br /&gt;
|[[House Scripts]]&lt;br /&gt;
|[[Player Housing]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Class Changes]]&lt;br /&gt;
|[[Feat Changes]]&lt;br /&gt;
|[[Spell Changes]]&lt;br /&gt;
|[[Chat Channels]]&lt;br /&gt;
|[[Custom Emotes]]&lt;br /&gt;
|[[Class Bonuses]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Suporters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Custom Scripting]]&lt;br /&gt;
|[[Your Resources]]&lt;br /&gt;
|[[All Supporter Resources]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Builders&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Creature Event System]]&lt;br /&gt;
|[[Registered Events]]&lt;br /&gt;
|[[Variable Events]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Scripters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Common Includes]]&lt;br /&gt;
|[[:Category:Systems|Scripting Systems]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |The following categories are set up and should be set on relevant new pages. More categories can be applied.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Contributions|Builder Contributions]]&lt;br /&gt;
|For guides and instructions on your ERFs and contributions. Generally only useful for other builders. &lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builders Tools|Builders Tools]]&lt;br /&gt;
|Guides and instructions of various Sinfar tools specifically for builders.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Sinfar Supporters|Sinfar Supporters]]&lt;br /&gt;
|Tools for Supporters to use primarily within their houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Businesses|Player Businesses]]&lt;br /&gt;
|Lore articles for in-game establishments.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Businesses|Builder Businesses]]&lt;br /&gt;
|Instructions and details about businesses made by builders that exist outside player houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Tools|Player Tools]]&lt;br /&gt;
|Various useful tools and pages for all players.&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1009</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1009"/>
		<updated>2025-06-15T21:30:28Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Minor edits to&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula.&lt;br /&gt;
&lt;br /&gt;
* price = item value * (x-1000) where x is the markup variable. (You can get the item value of any item by using the player tool on it.).&lt;br /&gt;
&lt;br /&gt;
However there is a hard cap of 10 million gold that can be collected in the chest at any one time. Any gold collected after the cap is hit will be lost. Price and monitor carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevations ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_cbar_hb ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== g_onclickexamine ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_force_emote ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_hb_makenboard ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_tipjar ==&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_xferspw&lt;br /&gt;
&lt;br /&gt;
All items put in the inventory of this placeable will be moved to the store identified by the variable HS_STORE_TAG.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_STORE_TAG : String&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_spawn&lt;br /&gt;
&lt;br /&gt;
Turn a useable placeable into a merchant NPC. The merchant will open a store identified by the variable HS_STORE_TAG (10 characters max). You can fill that store with the hs_store_xferspw script.&lt;br /&gt;
&lt;br /&gt;
You can control the cost if the items with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP:&lt;br /&gt;
&lt;br /&gt;
is added to the stores default mark up percentage on items sold (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN:&lt;br /&gt;
&lt;br /&gt;
added to the stores default mark down percentage on items bought (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
You can set the properties of the NPC with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER:&lt;br /&gt;
&lt;br /&gt;
1 for female, 0 for male&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the body model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2:&lt;br /&gt;
&lt;br /&gt;
Use the body model, new heads section, to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the tailoring model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 - HS_SPAWN_VFX_5:&lt;br /&gt;
&lt;br /&gt;
Visual effects (horns, eyes, hat…), from the visualeffects.2da file.&lt;br /&gt;
&lt;br /&gt;
You can control what the NPC say with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND: Sound resref to play when the dialog start.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION: Animation to play when the dialog start. Use the !EINFO command to find out the value of this variable.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT&lt;br /&gt;
&lt;br /&gt;
Notes: - You can use the web client to copy the values spoken by the body or tailoring models. - You can&#039;t get the gold of your sales. This is a non-profit script. If you want to get gold from you items, you have to sell them yourself.&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_1 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_2 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_3 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_4 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_5 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2 : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_TAG : String&lt;br /&gt;
Tailor NPCs&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_spawn_npc&lt;br /&gt;
&lt;br /&gt;
Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SPAWN_NPC_ID : Integer&lt;br /&gt;
Trash Cans&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1008</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1008"/>
		<updated>2025-06-15T20:52:56Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Moved  hs_tipjar out of the npc section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_NPC_WELCOME_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_NO_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_DIALOG_PC_YES_TEXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt; (Can go from 0-5)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula, however there is a hard cap of 1 million gold that can be collected on any item sold. The script will allow players to set a markup price over 1 million gold, and sell at that price.  However, all gold spent on the sale past that limit, will be lost, and the store owner will only collect 1 million for the sale. Price carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevations ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_cbar_hb ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== g_onclickexamine ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_force_emote ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_hb_makenboard ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_tipjar ==&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_xferspw&lt;br /&gt;
&lt;br /&gt;
All items put in the inventory of this placeable will be moved to the store identified by the variable HS_STORE_TAG.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_STORE_TAG : String&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_spawn&lt;br /&gt;
&lt;br /&gt;
Turn a useable placeable into a merchant NPC. The merchant will open a store identified by the variable HS_STORE_TAG (10 characters max). You can fill that store with the hs_store_xferspw script.&lt;br /&gt;
&lt;br /&gt;
You can control the cost if the items with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP:&lt;br /&gt;
&lt;br /&gt;
is added to the stores default mark up percentage on items sold (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN:&lt;br /&gt;
&lt;br /&gt;
added to the stores default mark down percentage on items bought (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
You can set the properties of the NPC with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER:&lt;br /&gt;
&lt;br /&gt;
1 for female, 0 for male&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the body model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2:&lt;br /&gt;
&lt;br /&gt;
Use the body model, new heads section, to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the tailoring model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 - HS_SPAWN_VFX_5:&lt;br /&gt;
&lt;br /&gt;
Visual effects (horns, eyes, hat…), from the visualeffects.2da file.&lt;br /&gt;
&lt;br /&gt;
You can control what the NPC say with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND: Sound resref to play when the dialog start.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION: Animation to play when the dialog start. Use the !EINFO command to find out the value of this variable.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT&lt;br /&gt;
&lt;br /&gt;
Notes: - You can use the web client to copy the values spoken by the body or tailoring models. - You can&#039;t get the gold of your sales. This is a non-profit script. If you want to get gold from you items, you have to sell them yourself.&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_1 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_2 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_3 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_4 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_5 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2 : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_TAG : String&lt;br /&gt;
Tailor NPCs&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_spawn_npc&lt;br /&gt;
&lt;br /&gt;
Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SPAWN_NPC_ID : Integer&lt;br /&gt;
Trash Cans&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1005</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1005"/>
		<updated>2025-06-15T15:30:31Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Minor edits and language cleanups on the three new scripts added.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Will turn any placeable with an inventory into a usable tip jar. Ownership is coded to the house owner and will only supply the owner with the gold collected from the jar when they open it. All other uses will only see an empty box. Note, the tip function works only on gold passed, not other items. It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw. Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant. The toolset has a 1024 character limit per variable. If your appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate stores in the player home. Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula, however there is a hard cap of 1 million gold that can be collected on any item sold. The script will allow players to set a markup price over 1 million gold, and sell at that price.  However, all gold spent on the sale past that limit, will be lost, and the store owner will only collect 1 million for the sale. Price carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot. Must be Useable. And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players. Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest. This is not security coded, so locking chests is recommended if you want to get paid for your work versus handing out free gold to any nosy person wandering in.&lt;br /&gt;
&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks. Individual items placed, are sold as single items. Ammo from ammo makers is not sellable and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevations ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_cbar_hb ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== g_onclickexamine ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_force_emote ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_hb_makenboard ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_xferspw&lt;br /&gt;
&lt;br /&gt;
All items put in the inventory of this placeable will be moved to the store identified by the variable HS_STORE_TAG.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_STORE_TAG : String&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_spawn&lt;br /&gt;
&lt;br /&gt;
Turn a useable placeable into a merchant NPC. The merchant will open a store identified by the variable HS_STORE_TAG (10 characters max). You can fill that store with the hs_store_xferspw script.&lt;br /&gt;
&lt;br /&gt;
You can control the cost if the items with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP:&lt;br /&gt;
&lt;br /&gt;
is added to the stores default mark up percentage on items sold (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN:&lt;br /&gt;
&lt;br /&gt;
added to the stores default mark down percentage on items bought (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
You can set the properties of the NPC with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER:&lt;br /&gt;
&lt;br /&gt;
1 for female, 0 for male&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the body model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2:&lt;br /&gt;
&lt;br /&gt;
Use the body model, new heads section, to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the tailoring model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 - HS_SPAWN_VFX_5:&lt;br /&gt;
&lt;br /&gt;
Visual effects (horns, eyes, hat…), from the visualeffects.2da file.&lt;br /&gt;
&lt;br /&gt;
You can control what the NPC say with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND: Sound resref to play when the dialog start.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION: Animation to play when the dialog start. Use the !EINFO command to find out the value of this variable.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT&lt;br /&gt;
&lt;br /&gt;
Notes: - You can use the web client to copy the values spoken by the body or tailoring models. - You can&#039;t get the gold of your sales. This is a non-profit script. If you want to get gold from you items, you have to sell them yourself.&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_1 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_2 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_3 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_4 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_5 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2 : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_TAG : String&lt;br /&gt;
Tailor NPCs&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_spawn_npc&lt;br /&gt;
&lt;br /&gt;
Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SPAWN_NPC_ID : Integer&lt;br /&gt;
Trash Cans&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1004</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1004"/>
		<updated>2025-06-15T15:20:04Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Added hs_store_spawn and hs_store_xferspw to the list for player uses.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
&#039;&#039;&#039;Obtaining tips&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The script hs_tipjar will turn any placeable with an inventory into a usable tip jar.  Ownership is coded to the house owner and will only supply the owner with the contents of the jar when they open it themselves.  All other uses will only see an empty box, suitable for placing gold.  Note, the tip function works only on gold passed, not other items.  It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_spawn ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drones&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be used in conjunction with hs_store_xferspw.  Will transform a usable placeable into a standard merchant with basic conversation options for facilitating sales of player made items to other players.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_MERCHANT_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_UP:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_STORE_BONUS_MARK_DOWN:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Appearance strings can be used to customize the appearance of the merchant, but remember the toolset has a 1024 character limit per variable.  If you&#039;re appearance string is longer than 2048 characters, you&#039;ll need to make it less complex.&lt;br /&gt;
Store tag is used to differentiate the store in the player home.  Multiple stores with multiple tags are supported (for different vendors with different inventories).&lt;br /&gt;
Mark up and mark down prices on items function based on a standardized formula, however there is a hard cap of 1 million gold that can be collected on any item sold.  If your markup price is over that 1 million limit, all gold spent on the sale past that limit, will be lost.  Price carefully.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_store_xferspw ===&lt;br /&gt;
&#039;&#039;&#039;Merchant drone inventory&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Must be set to Plot.  Must be Useable.  And must have invetory.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_STORE_TAG:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Once set, the container can be used to place inventory items into the store for sale to other players.  Once placed, the items will disappear and only be available through the Merchant interface used by hs_store_spawn.&lt;br /&gt;
Gold from all sales is collected when the player opens the chest.  This is not security coded, so locking chests is recommended if you want to get paid for your work.&lt;br /&gt;
Stacks of items placed in the chest will be sold as stacks.  Individual items placed, are sold as single items.  Ammo from ammo makers is not sellable, and will be discarded if placed in the chest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevations ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_cbar_hb ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== g_onclickexamine ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_force_emote ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_hb_makenboard ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_xferspw&lt;br /&gt;
&lt;br /&gt;
All items put in the inventory of this placeable will be moved to the store identified by the variable HS_STORE_TAG.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_STORE_TAG : String&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_spawn&lt;br /&gt;
&lt;br /&gt;
Turn a useable placeable into a merchant NPC. The merchant will open a store identified by the variable HS_STORE_TAG (10 characters max). You can fill that store with the hs_store_xferspw script.&lt;br /&gt;
&lt;br /&gt;
You can control the cost if the items with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP:&lt;br /&gt;
&lt;br /&gt;
is added to the stores default mark up percentage on items sold (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN:&lt;br /&gt;
&lt;br /&gt;
added to the stores default mark down percentage on items bought (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
You can set the properties of the NPC with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER:&lt;br /&gt;
&lt;br /&gt;
1 for female, 0 for male&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the body model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2:&lt;br /&gt;
&lt;br /&gt;
Use the body model, new heads section, to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the tailoring model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 - HS_SPAWN_VFX_5:&lt;br /&gt;
&lt;br /&gt;
Visual effects (horns, eyes, hat…), from the visualeffects.2da file.&lt;br /&gt;
&lt;br /&gt;
You can control what the NPC say with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND: Sound resref to play when the dialog start.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION: Animation to play when the dialog start. Use the !EINFO command to find out the value of this variable.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT&lt;br /&gt;
&lt;br /&gt;
Notes: - You can use the web client to copy the values spoken by the body or tailoring models. - You can&#039;t get the gold of your sales. This is a non-profit script. If you want to get gold from you items, you have to sell them yourself.&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_1 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_2 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_3 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_4 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_5 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2 : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_TAG : String&lt;br /&gt;
Tailor NPCs&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_spawn_npc&lt;br /&gt;
&lt;br /&gt;
Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SPAWN_NPC_ID : Integer&lt;br /&gt;
Trash Cans&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1003</id>
		<title>House Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=House_Scripts&amp;diff=1003"/>
		<updated>2025-06-15T14:57:20Z</updated>

		<summary type="html">&lt;p&gt;LockOn: Added hs_tipjar to the NPC list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The official reference is here: https://nwn.sinfar.net/houses_scriptlist.php, but you can find more information on how to use those scripts here.&lt;br /&gt;
&amp;lt;!-- Table template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Briefly the type of script&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| String description including forum link if relevant.&lt;br /&gt;
| Object Type&lt;br /&gt;
| OnWhichEvent&lt;br /&gt;
| &amp;lt;code&amp;gt;FIRST VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SECOND VARIABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Note text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate Placeables ==&lt;br /&gt;
=== bi_activate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Set on a useable placeable, this script will by default activate its animation if it has one - for example, if it&#039;s a lever or a button, it will be pulled or pushed respectively. Additionally, the variables will change the nature of the Placeable itself if BI_TARGET is not set - if BI_TARGET is a valid object, the object used will still play its animation but the other effects will play on the target. This can be used, for example, to activate a shower in a bathroom by moving the water spray placeable above or below the floor with the variable &amp;lt;code&amp;gt;BI_MOVEZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5292&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Target Placeables require the script &amp;lt;code&amp;gt;[[home_tag]]&amp;lt;/code&amp;gt; in the OnHeartbeat event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT&amp;lt;/code&amp;gt; which will activate or deactivate (base on the the BI_SOUND_ON variable) the nearest sound object, in addition to the current object.&lt;br /&gt;
&lt;br /&gt;
This script will toggle the animation state of placeable objects and also the illumination status, if the placeable supports that. It also supports lots of other transformations that you may wish to perform on a placable or door.&lt;br /&gt;
&lt;br /&gt;
If the string variable BI_TARGET is not specified, the used object will be activated. Otherwise it will try to active the objects in the area with a matching tag. By default all tags inside player housing are removed so you will need to use the &amp;lt;code&amp;gt;home_tag&amp;lt;/code&amp;gt; script to set a house safe tag on the placeable. Outside of housing it words on the normal NWN tagging system. In either case you may only activate things in the same area.&lt;br /&gt;
&lt;br /&gt;
In the event that its not possible to use the same tag for all of the targets, additional target tags can be specified by appending a number to the end of the variable name starting with 1, so the script will check for string BI_TARGET, string BI_TARGET1, string BI_TARGET2 and so on.&lt;br /&gt;
&lt;br /&gt;
The script also supports other transformations:&lt;br /&gt;
&lt;br /&gt;
Move the placeable between two locations, the alternate location is specified using one or more of the following float local variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for this is to conceal a placeable under the floor then make it appear by setting BI_MOVEZ =0.0 , this works very well for showers.&lt;br /&gt;
&lt;br /&gt;
It is also possible to turn a placeable by a set amount using:&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the placeable play a sound:&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a VFX to the placeable - very useful for lighting:&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also if a beam VFX is required the source tag may be specified using:&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of the alternative transformations is specified the script will only perform the activation animation when BI_ACTIVATE (int) is set to 1. You can also tell the script that the object is already activated by setting &amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
Likewise if the object is a sound object you may tell the script that its on by setting &amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt; to 1.&lt;br /&gt;
&lt;br /&gt;
The script can also be set to automatically toggle the state back after a set number of seconds:&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default (idle) placeable animation is a problem for the script as it is unable to reliably toggle it into an alternate state. For most placeables the default is the deactivate animation so this is what the script will assume. If this is incorrect an explicit animation must be selected when placing the object. The script will then correctly toggle between either activate/deactivate or open/close.&lt;br /&gt;
&lt;br /&gt;
It may not be possible to use all of the features inside players homes, I suspect that tagging sound objects for example may be impossible. Doors are also re-tagged so it will not be possible to target them inside a home.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_trig ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Trigger&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Attaches itself to the closest trigger which will toggle when the first creature enters the trigger and then the last leaves. Otherwise it should be identical to bi_activate, except that the placeable need not be useble.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |See notes from bi_activate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_activate_osca ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Activate/Deactivate Placeables via Spell&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A wrapper for bi_activate that triggers when a spell is cast at the placeable. A spell ID should be defined using BI_SPELLID, this will be compared against the spell ID held in the spell.2da file and the spell cast at the placeable.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_SPELLID:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATED:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ACTIVATE_NEAREST_SOUND_OBJECT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BEAM_SOURCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FACE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEX:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEY:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MOVEZ:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RESET:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_OBJECT_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SOUND_ON:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TARGET2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_TURN:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use a negative spell ID if you want the check to be disabled and use -2 if you want to to report the spell ID of the spell that its it.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that you pick a spell that can affect the placeable and that the placeable is not plot, lots of hit points will help.&lt;br /&gt;
&lt;br /&gt;
See additional notes from bi_activate.&lt;br /&gt;
&lt;br /&gt;
The placeable cannot be flagged as Plot. It must be able to take damage for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NPCs ==&lt;br /&gt;
=== hs_spawn_animnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Animated NPCs&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into an animated NPC. The NPC can be customized like the hs_store_spawn script.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?f=33&amp;amp;t=111&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_ANIMNPC_PHENOTYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ANIMATION_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_ANIMATION:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_SOUND:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_TALKTO_MESSAGE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_ANIMNPC_SCALE:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Use !E INFO to get the PHENOTYPE and ANIMATION integers. ANIMATION_SPEED is relative to 1.0, with higher being faster and lower being slower.&lt;br /&gt;
&lt;br /&gt;
TALKTO variables include SOUND as a ResRef of a sound file, animation will fire once when the NPC is activated and the MESSAGE will be said in talk volume.&lt;br /&gt;
&lt;br /&gt;
If using APPEARANCE2 variables, do NOT use Armor, Body, Head or Gender variables. And similar - if you use any of those, do not use APPEARANCE2. APPEARANCE2 is acquired as a full string from a body or tailor model speaking the whole appearance rather than specific parts. Each PART can be max 1024 characters long. If your string exceeds that length, remove accessories/VFX.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_deadnpc ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Corpses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable into dead creature.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART1:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE2_PART2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_APPEARANCE_TYPE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_ARMOR_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_BODY_APPEARANCE:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_GENDER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_DEADNPC_HEADV2:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_0:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_4:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_SPAWN_VFX_5:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |APPEARANCE2 variables are max 1024 characters each. If your string exceeds this, use PART2 as well. Acquired from body or tailor models. If your total string exceeds 2048 characters, remove some VFX/accessories.&lt;br /&gt;
&lt;br /&gt;
APPEARANCE_TYPE is the creature appearance index from the appearance.2da file. Use 6 for base human.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_tipjar ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a useable placeable with inventory into a tipjar, suitable for collecting gold.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The script hs_tipjar will turn any placeable with an inventory into a usable tip jar.  Ownership is coded to the house owner and will only supply the owner with the contents of the jar when they open it themselves.  All other uses will only see an empty box, suitable for placing gold.  Note, the tip function works only on gold passed, not other items.  It is not recommended to use it for anything other than gold.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Doors and Locking ==&lt;br /&gt;
&lt;br /&gt;
=== bi_create_bdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - to other player houses&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door or a placeable that can go to another house on the same island/in the same erf. For example, all of Sinfar counts as the same island, whereas cities on Arche Terre are their own - you cannot create a backdoor from Lomidar to Durakiss, but you can create one from Sinifer to Ackalia. Backdoors are one-way, and the opposite side has to be set up correctly for them to go both ways. This is intended to be used to go from one house to another, not to be used within the same house though it will work like that as well.&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;BACKDOOR_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NOKEY:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TARGET:String&amp;lt;/code&amp;gt; have to match on each end - the NAME of one side matches the TARGET on the other side, and vice-versa.&lt;br /&gt;
&lt;br /&gt;
You cannot make a backdoor portal outside the ERF of your house - that&#039;s typically one island but may be one city depending on the server. Backdoors are generally not allowed on Dread Lands server, EXCEPT the Cottage Island.&lt;br /&gt;
&lt;br /&gt;
To ensure it works smoothly, be sure that your NAME and TAG variables are unique, always! They should not exceed 16 characters.&lt;br /&gt;
&lt;br /&gt;
If you do not wish a key, you must include the NOKEY:integer variable set to 1. You should not include NOKEY if you use a key.&lt;br /&gt;
&lt;br /&gt;
Backdoors can fail unless the target house has been loaded onto the server. The house area has to be entered at least once after a reset for that to happen. If it fails, simply navigate to the target house once manually.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_create_ebdoor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Back Doors - from house interiors to server areas&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates a portal from a door (specifically a door) that can go to an area outside of the house, presumably in the adjacent area, but not required.  &lt;br /&gt;
The standard back door script bi_create_bdoor is not well suited for linking to external server side back doors.  This is a simplified version that does not require coordination between the server and home builders.&lt;br /&gt;
Forum discussion: https://forum.sinfar.net/viewtopic.php?f=64&amp;amp;t=12539&lt;br /&gt;
| Doors, Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;NUMBER:Integer&amp;lt;/code&amp;gt; is the number of the back door on the server side, usually 1. &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt; work as for g_door_autoclose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Home Builders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inside player homes, bi_create_ebdoor will work perfectly without any local variables, just add it as the door&#039;s heartbeat script. If this does not work then your house does not have access to any external backdoors, you will need to put in a request for one to be added in the appropriate housing forum.&lt;br /&gt;
&lt;br /&gt;
If your house has access to more than one external back door then you may use the local integer variable named NUMBER to select the door of your choice. By default this will be 1 which will select the first back door.&lt;br /&gt;
&lt;br /&gt;
The script should copy over locking information to the external door from the one inside the house. If no lock information is set, it will alternatively copy over the lock information from the main house door. If you always want the back door unlocked, then set a key value but leave the locked check box empty.&lt;br /&gt;
&lt;br /&gt;
The script will also accept G_CLOSE_DELAY and G_CLOSE_LOCK and apply g_door_autoclose if G_CLOSE_DELAY is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_autoclose ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Door auto-lose and lock&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Automatically closes and optionally locks a door after it&#039;s been opened&lt;br /&gt;
| Doors&lt;br /&gt;
| OnOpen&lt;br /&gt;
| &amp;lt;code&amp;gt;G_CLOSE_DELAY:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;G_CLOSE_LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |The door will automatically close after 15 seconds by default, or however many seconds set by &amp;lt;code&amp;gt;G_CLOSE_DELAY&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;G_CLOSE_LOCK&amp;lt;/code&amp;gt; is set to 1, it will also lock.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_door_locker ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lock switches&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lock or unlock the nearest door.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Add a key tag to the door to further restrict access, such as in bedrooms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chairs and Sitting ==&lt;br /&gt;
=== g_bench_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_bench_rsit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates multiple seats on a bench when used, facing reverse direction.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Some placeables are reversed. If you use &amp;lt;code&amp;gt;g_bench_sit&amp;lt;/code&amp;gt; and your character sits the wrong way, use this one instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_chair_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| For a single seat on a chair or similar.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_onclick_sit ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sit-able objects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| An alternative sit script supporting benches and the many chairs that do not work correctly with g_chair_sit.&lt;br /&gt;
&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2809&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnClick&lt;br /&gt;
| &amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PLACES:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_RADIUS:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_WIDTH:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DEBUG:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Unlike the existing sit scripts which are designed for OnUsed, it should be added as an OnClick script. The script will checks if it knows about the placeable and if there are any local variable parameters. If it knows what to do it will add one or more invisible sit points, correct the elevation of the placeable so that it will meet your characters bottom then remove itself. If I doesn&#039;t know what to do it will replace itself with the standard g_chair_sit script and hope for the best.&lt;br /&gt;
&lt;br /&gt;
In most cases the script should work without any local variables but the defaults that I have selected may not be exactly what you want. Most of the time you may as well just add the invisible sit point in the toolset but it you have many chairs or benches to place it may be worth the trouble to use the script and provide your own sit parameters.&lt;br /&gt;
&lt;br /&gt;
As the script only adds sit points on demand it will usually be more efficient than manually placed sit points, and while its more expensive than the bench scripts on its first run it should be cheaper when people use the bench afterwards. That said, its better to use g_chair_sit unless there is a problem with the chair.&lt;br /&gt;
&lt;br /&gt;
BI_RADIUS variable is for curved benches/seats. BI_PLACES is a count from 1-16 with how many seats should be for benches.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Elevations ==&lt;br /&gt;
=== bi_p_elevate ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Apply the script and specify the elevation value on the placeable as a local variable float, then use the toolset to create a generic trigger area over or close to the placeable. Any creature entering the trigger area will then be elevated by the value supplied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_elevatestep ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ELevation triggers&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Creates an elevated walkable area near or over a (non-static) placeable, with steps like a staircase.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ELEVATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;STEP:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A test version of bi_p_elevate, to allow “steps” that have to be gone up in order, so that simulated upper and lower walkable areas are possible. Character will elevate on any trigger one step higher, even, or any lower numbered trigger. The triggers need to overlap slightly at the points players are to cross from one step to the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt; variable should be incremented for each step, starting at 1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Minimap Options ==&lt;br /&gt;
=== hs_hb_showarea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Reveal the minimap to players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap revealed.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_hb_hidearea ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hide the minimap for players.&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Any player entering the same area as the placeable with this script will have their minimap hidden.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lights, Music and Buttons ==&lt;br /&gt;
=== lwjb_jukebox ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Jukebox and Lights System&lt;br /&gt;
!Description !! Objects !! Event&lt;br /&gt;
|-&lt;br /&gt;
| Starts Lil&#039;s Jukebox and Light Controller&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== bi_p_lightswitch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Lightswitch&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Create a placeable that can turn lights on or off.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;SWITCH:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LIGHT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ACTIVATE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECTS:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_1:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_2:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_3:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EFFECT_4:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Requires two or more placeables - 1 lightswitch and any number of lights. &amp;lt;code&amp;gt;SWITCH(int)1&amp;lt;/code&amp;gt; variable set on the switch itself and &amp;lt;code&amp;gt;LIGHT(int)1&amp;lt;/code&amp;gt; set on the lights. Use the various EFFECT variables to set extra visual effects if desired. Use &amp;lt;code&amp;gt;ACTIVATE(int)1&amp;lt;/code&amp;gt; if the switch should activate (such as with buttons or levers that are animated). The &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; must be the same for the switch and all lights it&#039;s meant to activate.&lt;br /&gt;
&lt;br /&gt;
For VFX, set up to 4 - use EFFECTS(int) to specify how many and EFFECT_# to specify the visual effect number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== yasm_doorbell ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Doorbells&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Lobby doorbell. Sends a message to other PCs in the house and/or keyholders.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;ENABLE_SHOUT:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;KEY_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;MSG_TXT:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;NAME_USER:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;PLAY_SOUND:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== g_playsound ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Sound Effects&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Plays sound effects on used.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;G_PLAYSOUND:String&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Plays the sound defined by the &amp;lt;code&amp;gt;G_PLAYSOUND&amp;lt;/code&amp;gt; variable when the placeable is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_cbar_hb ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Drinks Store&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Scripts that allows you to add a custom drinks bar to a house, it is fairly complex so the documentation is in a forum topic. See topic: http://sinfar.net/forum/viewtopic.php?t=4561&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;ITEM0:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ITEM29:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;LOCK:Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A common request that get is to offer custom drinks for player house bars and breweries. Rather than forcing everyone to go though a builder I thought that it would be nice to offer a script that allows players to make their own drinks inside of housing areas.&lt;br /&gt;
&lt;br /&gt;
To use the script you will need to add a useable container, the plot flag must not be set. Then add bi_p_cbar_hb as the heartbeat script.&lt;br /&gt;
&lt;br /&gt;
The script will look for number string variables beginning with “ITEM” followed by a numeric suffix beginning at zero. ITEM0, ITEM1, ITEM2 and so on.&lt;br /&gt;
&lt;br /&gt;
The string value must begin with a type to identify the base item then some parameters.&lt;br /&gt;
&lt;br /&gt;
Currently the script only supports alcoholic drinks in potion bottles that are charged at 50 Gold a time when a bottle is removed from the container.&lt;br /&gt;
&lt;br /&gt;
The syntax for a potion bottles with the one use alcoholic effect is:&lt;br /&gt;
&lt;br /&gt;
PotionA:Name:Appearance:Description&lt;br /&gt;
&lt;br /&gt;
Where Appearance is defined as follows:&lt;br /&gt;
&lt;br /&gt;
ModelTop;ColorTop;ModelMiddle;ColorMiddle;ModelBottom;ColorBottom&lt;br /&gt;
&lt;br /&gt;
ModelTop=1-7&lt;br /&gt;
&lt;br /&gt;
ColorTop=1-9&lt;br /&gt;
&lt;br /&gt;
ModelMiddle=1-7&lt;br /&gt;
&lt;br /&gt;
ColorMiddle=1-9&lt;br /&gt;
&lt;br /&gt;
ModelBottom=1-24&lt;br /&gt;
&lt;br /&gt;
ColorBottom=1-9&lt;br /&gt;
&lt;br /&gt;
eg 1;2;1;2;1;2&lt;br /&gt;
&lt;br /&gt;
ITEM0 (string) PotionA:Whisky:1;1;1;1;1;1:A bottle of single malt whisky.&lt;br /&gt;
&lt;br /&gt;
If you wish the container to auto lock add LOCK (int) 1&lt;br /&gt;
&lt;br /&gt;
The script will automatically make the bar plot, so that you do not need to.&lt;br /&gt;
&lt;br /&gt;
Obviously, since you control the Name and Description you are also free to make a RP potions if you wish. The effect will still be alcohol however.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== g_onclickexamine ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Examine a placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Immediately examine/open the description of a Placeable when clicking on it.&lt;br /&gt;
| Placeable&lt;br /&gt;
| OnClick&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== bi_p_force_emote ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Force Emote with a Placeable&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| A simpler shackle script with a few additional options.&lt;br /&gt;
Forum discussion: http://sinfar.net/forum/viewtopic.php?t=2743&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;BI1_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI1_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI2_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI3_Z:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_ANIM:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_BODYPART:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DESC:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DIRECTION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_DURATION:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_FE_SET:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_KEY:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_MSG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_PHENO:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SHACKLE_MODE:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_SPEED:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_X:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Y:Float&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;BI_Z:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |A shackle script supporting an extensive selection of placeeables and offering the option to customise the emotes. It can also be used without a lock to allow characters to kneel on pillows or perform other emotes relative to a placeable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== hs_hb_makenboard ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Noticeboards&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Turn a usable placeable into a notice board.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX:String&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&amp;lt;code&amp;gt;HS_NOTICE_BOARD_TAG_SUFFIX&amp;lt;/code&amp;gt; must be set to a unique tag of maximum 10, A-Z,0-9,_ characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
=== hs_portal_used ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a portal from one part of a house to another.&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnUsed&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Sets up a portal that can be used to teleport inside a house. It will not allow going from one house to another. Requires &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt; to set up the destination. Use the variable &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; to designate the location - this should match the variable on the object used with &amp;lt;code&amp;gt;hs_spawn_portwp&amp;lt;/code&amp;gt;. It shouldn&#039;t have more than 10 characters. Set a custom VFX or delay from clicking with the other variables.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hs_spawn_portwp ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-House Portals&lt;br /&gt;
!Description !! Objects !! Event !! Variables&lt;br /&gt;
|-&lt;br /&gt;
| Sets up a waypoint used with hs_portal_used&lt;br /&gt;
| Placeables&lt;br /&gt;
| OnHeartbeat&lt;br /&gt;
| &amp;lt;code&amp;gt;HS_PORTAL_TAG:String&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_VFX:Integer&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;HS_PORTAL_DELAY:Float&amp;lt;/code&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Notes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |Turn the usable placeable into a waypoint where another placeable can bring characters to with the script hs_portal_used. The variable name should match exactly the &amp;lt;code&amp;gt;HS_PORTAL_TAG&amp;lt;/code&amp;gt; defined on the other placeable. It shouldn&#039;t have more than 10 characters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rotate Placable on Use ==&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_used_turn&lt;br /&gt;
&lt;br /&gt;
Turns the used placeable by 30 degree, or the number of degree defined by the G_TURN_DEGREE variable.&lt;br /&gt;
&lt;br /&gt;
When it turns, you can make it play a sound defined by the variable G_TURN_SOUND.&lt;br /&gt;
&lt;br /&gt;
The placeable will be turned back after 30 seconds, or by the number of second that you set in the G_TURN_BACK_DELAY variable.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_TURN_BACK_DELAY : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_DEGREE : Integer&lt;br /&gt;
&lt;br /&gt;
G_TURN_SOUND : String&lt;br /&gt;
Set a Placables Tag&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = home_tag&lt;br /&gt;
&lt;br /&gt;
Adds a tag to the placeable so that the placeable may be accessed by other scripts.&lt;br /&gt;
&lt;br /&gt;
For security reasons Tags are usually removed or replaced when homes are uploaded, this script provides a safe tag for home builders to work with.&lt;br /&gt;
&lt;br /&gt;
Variable: TAG : String&lt;br /&gt;
&lt;br /&gt;
Server script builders should, #include “home_inc_tag” and use one of the following fucntions to get a matching tag:&lt;br /&gt;
&lt;br /&gt;
string GetHomeSafeTag(string sOriginalTag);&lt;br /&gt;
&lt;br /&gt;
string GetHomeTagByID(string sOriginalTag, int nHomeID);&lt;br /&gt;
Shackles (Bashable)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Death = shckle_p_ondeath&lt;br /&gt;
&lt;br /&gt;
The script to allow a PC to bash free of the shackles . Script: Placeable Used = shckle_p_talk&lt;br /&gt;
&lt;br /&gt;
Trigger for shackle placeables.&lt;br /&gt;
Slave Tether&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=1162&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = yasm_shackle&lt;br /&gt;
&lt;br /&gt;
Variable: CHAIN_LENGTH : Float&lt;br /&gt;
&lt;br /&gt;
Misc: Set PLC&#039;s Key to Owner&#039;s Key&lt;br /&gt;
&lt;br /&gt;
This system chains the prisoner to a shackle, allowing them freedom to move and emote whilst secured, but they are trapped within the length of the chain. A tether.&lt;br /&gt;
&lt;br /&gt;
To deploy the system in your house build simply put down a suitable placeable object, set it as usable and give it yasm_shackle as its heartbeat script.&lt;br /&gt;
&lt;br /&gt;
Whether or not you set a lock key determines how securely the prisoner is chained. With no key set the prisoner is released by just click/using the shackle. If a lock key is set the player needs to have an item with the required tag to unlock the prisoner. Keys tags work in the same manner as for doors &amp;amp; containers.&lt;br /&gt;
&lt;br /&gt;
The length of the chain can be controlled by setting a local variable, CHAIN_LENGTH (float), but this is optional and if omitted will default to 2.0&lt;br /&gt;
&lt;br /&gt;
In game usage is very simple, the prisoner clicks the shackle and they are locked. Usage implies consent to the consequences. If the shackle has a lock then Unlock (rather than Use) to release the prisoner. Escaping is as simple as typing !ooc, and by the time you transition back with !ic the shackle will have reset itself.&lt;br /&gt;
&lt;br /&gt;
You will notice that the system uses a trap mechanism, unfortunately the game engine spews a little bit of spam as players move in and out of the area of an active shackle/trap, sorry but that cant be muted. Just ignore the background noise and have fun emoting with the prisoner.&lt;br /&gt;
Stores&lt;br /&gt;
&lt;br /&gt;
Discussion: http://sinfar.net/forum/viewtopic.php?f=64&amp;amp;t=5374&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_xferspw&lt;br /&gt;
&lt;br /&gt;
All items put in the inventory of this placeable will be moved to the store identified by the variable HS_STORE_TAG.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_STORE_TAG : String&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_store_spawn&lt;br /&gt;
&lt;br /&gt;
Turn a useable placeable into a merchant NPC. The merchant will open a store identified by the variable HS_STORE_TAG (10 characters max). You can fill that store with the hs_store_xferspw script.&lt;br /&gt;
&lt;br /&gt;
You can control the cost if the items with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP:&lt;br /&gt;
&lt;br /&gt;
is added to the stores default mark up percentage on items sold (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN:&lt;br /&gt;
&lt;br /&gt;
added to the stores default mark down percentage on items bought (-100 to 100)&lt;br /&gt;
&lt;br /&gt;
You can set the properties of the NPC with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER:&lt;br /&gt;
&lt;br /&gt;
1 for female, 0 for male&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the body model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2:&lt;br /&gt;
&lt;br /&gt;
Use the body model, new heads section, to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE:&lt;br /&gt;
&lt;br /&gt;
Use the tailoring model to get the value of this variable&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 - HS_SPAWN_VFX_5:&lt;br /&gt;
&lt;br /&gt;
Visual effects (horns, eyes, hat…), from the visualeffects.2da file.&lt;br /&gt;
&lt;br /&gt;
You can control what the NPC say with the following variables:&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND: Sound resref to play when the dialog start.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION: Animation to play when the dialog start. Use the !EINFO command to find out the value of this variable.&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT&lt;br /&gt;
&lt;br /&gt;
Notes: - You can use the web client to copy the values spoken by the body or tailoring models. - You can&#039;t get the gold of your sales. This is a non-profit script. If you want to get gold from you items, you have to sell them yourself.&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_0 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_1 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_2 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_3 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_4 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_SPAWN_VFX_5 : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_DOWN : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_BONUS_MARK_UP : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_ANIMATION : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_SOUND : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_NPC_WELCOME_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_NO_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_DIALOG_PC_YES_TEXT : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_ARMOR_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_BODY_APPEARANCE : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_GENDER : Integer&lt;br /&gt;
&lt;br /&gt;
HS_STORE_MERCHANT_HEADV2 : String&lt;br /&gt;
&lt;br /&gt;
HS_STORE_TAG : String&lt;br /&gt;
Tailor NPCs&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = hs_spawn_npc&lt;br /&gt;
&lt;br /&gt;
Replaces the placeable by a given NPC. The placeable must be set as useable. The NPC to spawn is determined by the HS_SPAWN_NPC_ID variable, it can take one of the following values:&lt;br /&gt;
&lt;br /&gt;
1 = Male Tailoring Model&lt;br /&gt;
&lt;br /&gt;
2 = Female Tailoring Model&lt;br /&gt;
&lt;br /&gt;
3 = Male Body Model&lt;br /&gt;
&lt;br /&gt;
4 = Female Body Model&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SPAWN_NPC_ID : Integer&lt;br /&gt;
Trash Cans&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Close = pcplc_trash_cls&lt;br /&gt;
&lt;br /&gt;
If the placeable has the script “pcplc_trash_cls” in its OnClose event, then it will act as a trash and so its inventory will be cleaned when closed.&lt;br /&gt;
&lt;br /&gt;
Important Note: It is not advisable making garbage cans in areas with persistent storage, as item loss can occur when adding or removing persistent storage not properly tagged.&lt;br /&gt;
Turn Placeables State On/Off on use (with Sound Effects)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_plc_onoff&lt;br /&gt;
&lt;br /&gt;
Turn on/off a placeable.&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON: Set this to 1 if the placeable is initially on/activated/open.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND: Sound ResRef to play when the placeable is turn on.&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND: Sound ResRef to play when the placeable is turn off.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLC_IS_ON : Integer&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_OFF_SOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLC_TURN_ON_SOUND : String&lt;br /&gt;
VFX Heartbeat (with On/Off switch)&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Heartbeat = plcvfx_self&lt;br /&gt;
&lt;br /&gt;
You can add any number of visual effects on a non-static placeable.&lt;br /&gt;
&lt;br /&gt;
For that, you need to add the script “plcvfx_self” in the OnHeartbeat event of the placeable. Then, you need to add 1 variable for each visual effect that you want to see on this placeable.&lt;br /&gt;
&lt;br /&gt;
This variable must be set as follow:&lt;br /&gt;
&lt;br /&gt;
⦁ Type: Integer.&lt;br /&gt;
&lt;br /&gt;
⦁ Name: PLCVFX_SELF#, where # is the index of the visual effect. The first index is 1 so the first visual effect will have “PLCVFX_SELF1” as variable name.&lt;br /&gt;
&lt;br /&gt;
⦁ Value: It is the row index of the visual effect in the visualeffects 2da.&lt;br /&gt;
&lt;br /&gt;
(Note: If you only want to add the light visual effect on a placeable, then you just need to put the script “zep_torchspawn” in the OnHeartbeat event.)&lt;br /&gt;
&lt;br /&gt;
Each visual effect count as 1 dynamic object and so, a placeable with 1 visual effect count as 2 dynamic objects. If it has 3 visual effects, then it count as 4 dynamic objects.&lt;br /&gt;
&lt;br /&gt;
Variables: PLCVFX_SELF1, PLCVFX_SELF2, PLCVFX_SELF3, Etc…&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = plcvfx_switchoff&lt;br /&gt;
&lt;br /&gt;
Turn off/on the visual effect applied by the plcvfx_self heartbeat script.&lt;br /&gt;
VFX on Placeable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx&lt;br /&gt;
&lt;br /&gt;
Plays a permanent VFX on an object when used, will remove the VFX on a second use. Will also work for instant effects.&lt;br /&gt;
&lt;br /&gt;
Variable: G_PLAYVFX : Integer&lt;br /&gt;
VFX and SFX on Placable use&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = g_play_vfx_sound&lt;br /&gt;
&lt;br /&gt;
Play a sound and an -instant- visual effect (FNF) when the placeable is used.&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX: visual effect index to display.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND: sound resref to play.&lt;br /&gt;
&lt;br /&gt;
G_PLAYSOUND : String&lt;br /&gt;
&lt;br /&gt;
G_PLAYVFX : Integer&lt;br /&gt;
Web Client Media Support&lt;br /&gt;
&lt;br /&gt;
When used a placeable sends an Image, Sound, or Video to web client.&lt;br /&gt;
&lt;br /&gt;
Script: Placeable Used = hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Sends an image to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_IMAGE_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Sends a sound to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_SOUND_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_image&lt;br /&gt;
&lt;br /&gt;
Placeable Heartbeat = hs_hb_wc_music&lt;br /&gt;
Web Client Music Loop.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_MUSIC_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_sound&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Sends a video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
Variable: HS_VIDEO_URL : String&lt;br /&gt;
&lt;br /&gt;
Script: hs_use_wc_video&lt;br /&gt;
&lt;br /&gt;
Placeable Used = hs_use_wc_youtub&lt;br /&gt;
&lt;br /&gt;
Sends a you tube video to the web client of the player using the placeable.&lt;br /&gt;
&lt;br /&gt;
HS_YOUTUBE_ID is the string of your youtube page&#039;s URL past “?v=”&lt;br /&gt;
&lt;br /&gt;
(If your URL is http://www.youtube.com/watch?v=AMKYQZHfaf8 then your ID string = AMKYQZHfaf8)&lt;br /&gt;
&lt;br /&gt;
Variable: HS_YOUTUBE_ID : String&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=423</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=423"/>
		<updated>2024-09-19T16:44:39Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome to the &#039;&#039;&#039;Sinfar Wiki&#039;&#039;&#039;==&lt;br /&gt;
Here you will find information about the server, its various areas and systems, guides and introductions. This Wiki is made up of user-submitted articles, and you can make your own contributions. You will require a functioning [[Sinfar account]] to log in and you can help us organize how to do our styling and formatting. Be sure to join our [https://https//discord.gg/jVaNBmj Discord] and check the [https://forum.sinfar.net/ Forums].&lt;br /&gt;
&lt;br /&gt;
When making new or editing existing articles, please respect that any article on here should be written in as an objective manner as possible, focusing on facts and information. If you write info about areas of the server, please avoid spoiling surprises and focus instead on general things and/or the area history. Articles may include specific characters who may hold prominent positions, but should not be a substitute for the in-game descriptions available on nwn.sinfar.net and in game. Please see [[Contributing]] for further details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--I&#039;d like to add a search box here but I want it to look nice (see Star Citizen wiki for examples). Will need to add extensions.--&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|&#039;&#039;&#039;New to Sinfar or NWN? Look up the following guides to get started.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[About Sinfar]] || [[Getting Started - Diamond Edition]] || [[Getting Started - Diamond Edition on Linux]] || [[Getting Started - Enhanced Edition]] || [[Recommended Settings]] || [[Solving Client or Connection Issues]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|&#039;&#039;&#039;Returning or just need the necessary downloads?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the Sinfar [[Hak Files]] ||colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the [[Sinfar Client Extender (SinfarX)]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;Also be sure to read up on our [[Rules]]!&amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
You can find information for players, supporters and builders.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;For Players&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Character Customisation]]&lt;br /&gt;
|[[Approval Points]]&lt;br /&gt;
|[[Chat Commands]]&lt;br /&gt;
|[[Magical Items]]&lt;br /&gt;
|[[House Scripts]]&lt;br /&gt;
|[[Player Housing]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Class Changes]]&lt;br /&gt;
|[[Feat Changes]]&lt;br /&gt;
|[[Spell Changes]]&lt;br /&gt;
|[[Chat Channels]]&lt;br /&gt;
|[[Custom Emotes]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Suporters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Custom Scripting]]&lt;br /&gt;
|[[Your Resources]]&lt;br /&gt;
|[[All Supporter Resources]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Builders&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Creature Event System]]&lt;br /&gt;
|[[Registered Events]]&lt;br /&gt;
|[[Variable Events]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Scripters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Common Includes]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |The following categories are set up and should be set on relevant new pages. More categories can be applied.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Contributions|Builder Contributions]]&lt;br /&gt;
|For guides and instructions on your ERFs and contributions. Generally only useful for other builders. &lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builders Tools|Builders Tools]]&lt;br /&gt;
|Guides and instructions of various Sinfar tools specifically for builders.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Sinfar Supporters|Sinfar Supporters]]&lt;br /&gt;
|Tools for Supporters to use primarily within their houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Businesses|Player Businesses]]&lt;br /&gt;
|Lore articles for in-game establishments.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Businesses|Builder Businesses]]&lt;br /&gt;
|Instructions and details about businesses made by builders that exist outside player houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Tools|Player Tools]]&lt;br /&gt;
|Various useful tools and pages for all players.&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=422</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=Main_Page&amp;diff=422"/>
		<updated>2024-09-19T16:44:18Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome to the &#039;&#039;&#039;Sinfar Wiki&#039;&#039;&#039;==&lt;br /&gt;
Here you will find information about the server, its various areas and systems, guides and introductions. This Wiki is made up of user-submitted articles, and you can make your own contributions. You will require a functioning [[Sinfar account]] to log in and you can help us organize how to do our styling and formatting. Be sure to join our [https://https//discord.gg/jVaNBmj Discord] and check the [https://forum.sinfar.net/ Forums].&lt;br /&gt;
&lt;br /&gt;
When making new or editing existing articles, please respect that any article on here should be written in as an objective manner as possible, focusing on facts and information. If you write info about areas of the server, please avoid spoiling surprises and focus instead on general things and/or the area history. Articles may include specific characters who may hold prominent positions, but should not be a substitute for the in-game descriptions available on nwn.sinfar.net and in game. Please see [[Contributing]] for further details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--I&#039;d like to add a search box here but I want it to look nice (see Star Citizen wiki for examples). Will need to add extensions.--&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|&#039;&#039;&#039;New to Sinfar or NWN? Look up the following guides to get started.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[About Sinfar]] || [[Getting Started - Diamond Edition]] || [[Getting Started - Diamond Edition on Linux]] || [[Getting Started - Enhanced Edition]] || [[Recommended Settings]] || [[Solving Client or Connection Issues]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|&#039;&#039;&#039;Returning or just need the necessary downloads?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the Sinfar [[Hak Files]] ||colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|Download for the [[Sinfar Client Extender (SinfarX)]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center&amp;quot;|&#039;&#039;&#039;&amp;lt;big&amp;gt;Also be sure to read up on our [[Rules]]!&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;Also be sure to read up on our [[Rules]]!&amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
You can find information for players, supporters and builders.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;For Players&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Character Customisation]]&lt;br /&gt;
|[[Approval Points]]&lt;br /&gt;
|[[Chat Commands]]&lt;br /&gt;
|[[Magical Items]]&lt;br /&gt;
|[[House Scripts]]&lt;br /&gt;
|[[Player Housing]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Class Changes]]&lt;br /&gt;
|[[Feat Changes]]&lt;br /&gt;
|[[Spell Changes]]&lt;br /&gt;
|[[Chat Channels]]&lt;br /&gt;
|[[Custom Emotes]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Suporters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Custom Scripting]]&lt;br /&gt;
|[[Your Resources]]&lt;br /&gt;
|[[All Supporter Resources]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Builders&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Creature Event System]]&lt;br /&gt;
|[[Registered Events]]&lt;br /&gt;
|[[Variable Events]]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;For Scripters&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
{|&lt;br /&gt;
|[[Common Includes]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |The following categories are set up and should be set on relevant new pages. More categories can be applied.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Contributions|Builder Contributions]]&lt;br /&gt;
|For guides and instructions on your ERFs and contributions. Generally only useful for other builders. &lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builders Tools|Builders Tools]]&lt;br /&gt;
|Guides and instructions of various Sinfar tools specifically for builders.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Sinfar Supporters|Sinfar Supporters]]&lt;br /&gt;
|Tools for Supporters to use primarily within their houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Businesses|Player Businesses]]&lt;br /&gt;
|Lore articles for in-game establishments.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Builder Businesses|Builder Businesses]]&lt;br /&gt;
|Instructions and details about businesses made by builders that exist outside player houses.&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:Player Tools|Player Tools]]&lt;br /&gt;
|Various useful tools and pages for all players.&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=421</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=421"/>
		<updated>2024-09-18T04:43:32Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|left|Pondering the situation.|274x274px]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=420</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=420"/>
		<updated>2024-09-18T04:43:17Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|left|Pondering the situation.|274x274px]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=419</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=419"/>
		<updated>2024-09-18T04:43:06Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|left|Pondering the situation.|274x274px]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=418</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=418"/>
		<updated>2024-09-18T04:42:57Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|left|Pondering the situation.|274x274px]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=417</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=417"/>
		<updated>2024-09-18T04:42:31Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|left|Pondering the situation.|274x274px]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=416</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=416"/>
		<updated>2024-09-18T04:41:55Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|left|Pondering the situation.|274x274px]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=415</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=415"/>
		<updated>2024-09-18T04:41:42Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|right|Pondering the situation.|274x274px]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=414</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=414"/>
		<updated>2024-09-18T04:41:08Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.|274x274px]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=413</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=413"/>
		<updated>2024-09-18T04:40:27Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=412</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=412"/>
		<updated>2024-09-18T04:39:54Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=411</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=411"/>
		<updated>2024-09-18T04:39:41Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=410</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=410"/>
		<updated>2024-09-18T04:38:40Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=409</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=409"/>
		<updated>2024-09-18T04:38:13Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=408</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=408"/>
		<updated>2024-09-18T04:38:03Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=407</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=407"/>
		<updated>2024-09-18T04:37:46Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=406</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=406"/>
		<updated>2024-09-18T04:37:25Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=405</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=405"/>
		<updated>2024-09-18T04:36:08Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=404</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=404"/>
		<updated>2024-09-18T04:35:41Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=403</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=403"/>
		<updated>2024-09-18T04:35:28Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|right|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=402</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=402"/>
		<updated>2024-09-18T04:35:07Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|baseline|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=401</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=401"/>
		<updated>2024-09-18T04:31:14Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=400</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=400"/>
		<updated>2024-09-18T04:30:37Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|left|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|center|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=399</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=399"/>
		<updated>2024-09-18T04:29:46Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|left|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=398</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=398"/>
		<updated>2024-09-18T04:29:16Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|left|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=394</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=394"/>
		<updated>2024-09-17T04:22:05Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&lt;br /&gt;
[[File:CtF 3.jpg|thumb|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=393</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=393"/>
		<updated>2024-09-17T04:21:35Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
[[File:CtF 3.jpg|thumb|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=392</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=392"/>
		<updated>2024-09-17T04:20:29Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&amp;lt;/nowiki&amp;gt;&amp;amp;lt;/blockquote&amp;amp;gt;&lt;br /&gt;
[[File:CtF 3.jpg|thumb|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
	<entry>
		<id>https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=391</id>
		<title>About Sinfar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sinfar.net/index.php?title=About_Sinfar&amp;diff=391"/>
		<updated>2024-09-17T04:18:29Z</updated>

		<summary type="html">&lt;p&gt;LockOn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Sinfar.  Here, you&#039;ll find a persistent game world, built with the Neverwinter Nights Aurora Engine, for all 18+ players.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nowiki&amp;amp;gt;Originally founded in 2010, Sinfar boasts years of volunteer-created content, in a true sand box environment.  Here, our players socialize, engage in role play, level characters, run raid-level content, and can engage in controlled PvP, including factional PvP, with custom made characters within the game.&amp;amp;lt;/nowiki&amp;amp;gt;&lt;br /&gt;
[[File:CtF 3.jpg|thumb|378x378px|Carnage on the battlefield!]]&lt;br /&gt;
[[File:Image9.jpg|alt=|thumb|378x378px|A white skinned barbarian beauty. Don&#039;t ask her how she keeps those furs in place, unless you want the business end of her axe.]]&lt;br /&gt;
Sinfar has the single best character/costume creation tools in all of the Neverwinter Nights Persistent server community.  Racial and physical characteristics can be easily modified, costume pieces are all color tintable, and a wide variety of accessories exist.  We even allow for custom shapes to be player-made, to enhance a given player&#039;s appearance and experience.&lt;br /&gt;
&lt;br /&gt;
Being a sand box style RP server, players have a lot of freedom to make the kinds of characters they want to be.  The server boasts a large and very friendly LGBTQ+ population, with players logging in from 5 different continents all around the world.  Global perspectives mix to help us have the best community possible, and we&#039;re proud of our players and our volunteers who help to make our server a great place to play and hang out.&lt;br /&gt;
[[File:Image2.jpg|thumb|378x378px|Samurai in repose.]]&lt;br /&gt;
[[File:Image8.jpg|thumb|Pondering the situation.]]&lt;br /&gt;
Currently Sinfar operates best on Neverwinter Nights Diamond edition, though it is possible, with some small effort, to run the server with NWN Extended Edition.  Plans are underway to migrate Sinfar to a fully functional EE server at some point in the future, but are still incomplete as of the time of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image11.jpg|thumb|1108x1108px|Beach Party!  Hooray!]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Image12.jpg|thumb|Who invited this guy?]]&lt;/div&gt;</summary>
		<author><name>LockOn</name></author>
	</entry>
</feed>