<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Allen+Kerensky</id>
		<title>OpenSimulator - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Allen+Kerensky"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/Allen_Kerensky"/>
		<updated>2026-06-03T23:54:35Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Dev</id>
		<title>User:Allen Kerensky/Myriad Lite Dev</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Dev"/>
				<updated>2014-01-06T00:03:25Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added IRC notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Development =&lt;br /&gt;
&lt;br /&gt;
== Preview 7 New Features ==&lt;br /&gt;
* Region Setting server using PPMA&lt;br /&gt;
# Implement new RENDEZVOUS2 dynamic region server channel&lt;br /&gt;
&lt;br /&gt;
* Region Setting Editor&lt;br /&gt;
# Statistics&lt;br /&gt;
# Skills&lt;br /&gt;
# Special Effect Abilities&lt;br /&gt;
# Resiliences&lt;br /&gt;
# Boons&lt;br /&gt;
# Flaws&lt;br /&gt;
# Campaigns&lt;br /&gt;
# Species&lt;br /&gt;
# Backgrounds&lt;br /&gt;
# Careers&lt;br /&gt;
# Items&lt;br /&gt;
&lt;br /&gt;
* Character Sheet improvements&lt;br /&gt;
# TITLE - a rank, or professional/noble title&lt;br /&gt;
# FACTION - a configurable faction&lt;br /&gt;
&lt;br /&gt;
* Much improved message output&lt;br /&gt;
# Individual message icons for each module&lt;br /&gt;
# Duplicate message suppression&lt;br /&gt;
# Hypergrid name @hostname stripping&lt;br /&gt;
&lt;br /&gt;
* Unopposed Tests&lt;br /&gt;
# Simple, insecure type 1 unpposed tests for roleplay color&lt;br /&gt;
# Complex, more secure type 2 unopposed tests for tasks that have in-game consequences&lt;br /&gt;
&lt;br /&gt;
* Vegaslon Plutonian (OSG) contributed a raycast modification for the Firearm code&lt;br /&gt;
&lt;br /&gt;
* The first implementation of the Social Combat with the Deception and Persuasion skills as well as Resolve resilience&lt;br /&gt;
&lt;br /&gt;
* Conversion of all character data storage to persistent prim data storage (called PPMA) rather than inscript global lists&lt;br /&gt;
&lt;br /&gt;
* Beginning infrastructure for storing user configuration items in the HUD PPMA&lt;br /&gt;
&lt;br /&gt;
* Requirements checking for needed character data otherwise disable module&lt;br /&gt;
&lt;br /&gt;
* Restrained Love Viewer (RLV) integration&lt;br /&gt;
# in-character and out-of-character mode&lt;br /&gt;
# RestrainedLight configurable Windlight region settings&lt;br /&gt;
&lt;br /&gt;
* Meter improvements&lt;br /&gt;
# TITLE display&lt;br /&gt;
# FACTION display&lt;br /&gt;
# Resolve % display&lt;br /&gt;
&lt;br /&gt;
* HUD Texture Menu buttons support&lt;br /&gt;
# show texture with button pcitures on it&lt;br /&gt;
# translate clicks from lists of coordinates and commands&lt;br /&gt;
# Region owner objects can use SETUP_HUD|texture,x1,y1,x2,y2,command,... in quests, location narrators, ability tests, etc to show custom menu actions to players&lt;br /&gt;
&lt;br /&gt;
* GET_* SET_* and LIST_* commands added to character sheet module to support Character Designer calls&lt;br /&gt;
&lt;br /&gt;
* Improved security around external commands - anyone can GET_* or LIST_* data from HUD as needed, but SET_* is limited to HUD owner and region owner tools only.&lt;br /&gt;
# This is still weak security based on trusting the region owner - remove the HUD when entering regions that are NOT for your current game&lt;br /&gt;
&lt;br /&gt;
== OpenSim Only ==&lt;br /&gt;
LSL does not provide library calls to find out information about which &amp;quot;estate&amp;quot; (group of regions) a given region belongs to.&lt;br /&gt;
&lt;br /&gt;
This means each REGION must have a region setting server to provide a custom setting and changes to the setting in one region must be manually copied to other regions.&lt;br /&gt;
 &lt;br /&gt;
I have started experimenting with the IRCBridgeModule to provide Estate-wide communications and allow a single region setting server to serve data to all regions in an estate.&lt;br /&gt;
&lt;br /&gt;
This will not work in SecondLife which has no IRC connectivity.&lt;br /&gt;
&lt;br /&gt;
This IRC connectivity can also provide an excellent cross-region team radio chat.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Dev</id>
		<title>User:Allen Kerensky/Myriad Lite Dev</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Dev"/>
				<updated>2014-01-05T23:57:04Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: updated feature lists&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Development =&lt;br /&gt;
&lt;br /&gt;
== Preview 7 New Features ==&lt;br /&gt;
* Region Setting server using PPMA&lt;br /&gt;
# Implement new RENDEZVOUS2 dynamic region server channel&lt;br /&gt;
&lt;br /&gt;
* Region Setting Editor&lt;br /&gt;
# Statistics&lt;br /&gt;
# Skills&lt;br /&gt;
# Special Effect Abilities&lt;br /&gt;
# Resiliences&lt;br /&gt;
# Boons&lt;br /&gt;
# Flaws&lt;br /&gt;
# Campaigns&lt;br /&gt;
# Species&lt;br /&gt;
# Backgrounds&lt;br /&gt;
# Careers&lt;br /&gt;
# Items&lt;br /&gt;
&lt;br /&gt;
* Character Sheet improvements&lt;br /&gt;
# TITLE - a rank, or professional/noble title&lt;br /&gt;
# FACTION - a configurable faction&lt;br /&gt;
&lt;br /&gt;
* Much improved message output&lt;br /&gt;
# Individual message icons for each module&lt;br /&gt;
# Duplicate message suppression&lt;br /&gt;
# Hypergrid name @hostname stripping&lt;br /&gt;
&lt;br /&gt;
* Unopposed Tests&lt;br /&gt;
# Simple, insecure type 1 unpposed tests for roleplay color&lt;br /&gt;
# Complex, more secure type 2 unopposed tests for tasks that have in-game consequences&lt;br /&gt;
&lt;br /&gt;
* Vegaslon Plutonian (OSG) contributed a raycast modification for the Firearm code&lt;br /&gt;
&lt;br /&gt;
* The first implementation of the Social Combat with the Deception and Persuasion skills as well as Resolve resilience&lt;br /&gt;
&lt;br /&gt;
* Conversion of all character data storage to persistent prim data storage (called PPMA) rather than inscript global lists&lt;br /&gt;
&lt;br /&gt;
* Beginning infrastructure for storing user configuration items in the HUD PPMA&lt;br /&gt;
&lt;br /&gt;
* Requirements checking for needed character data otherwise disable module&lt;br /&gt;
&lt;br /&gt;
* Restrained Love Viewer (RLV) integration&lt;br /&gt;
# in-character and out-of-character mode&lt;br /&gt;
# RestrainedLight configurable Windlight region settings&lt;br /&gt;
&lt;br /&gt;
* Meter improvements&lt;br /&gt;
# TITLE display&lt;br /&gt;
# FACTION display&lt;br /&gt;
# Resolve % display&lt;br /&gt;
&lt;br /&gt;
+ HUD Texture Menu buttons support&lt;br /&gt;
# show texture with button pcitures on it&lt;br /&gt;
# translate clicks from lists of coordinates and commands&lt;br /&gt;
# Region owner objects can use SETUP_HUD|texture,x1,y1,x2,y2,command,... in quests, location narrators, ability tests, etc to show custom menu actions to players&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite</id>
		<title>User:Allen Kerensky/Myriad Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite"/>
				<updated>2013-11-12T20:11:53Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added Tanja Darwin to contributors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&lt;br /&gt;
== What Is Myriad Lite? ==&lt;br /&gt;
Before home computers were widely available, people played role-playing games (RPGs) by sitting around a table, telling shared stories, and rolling dice to determine if their &amp;quot;character&amp;quot; in the story succeeded or failed at the actions the player wanted them to take within the story.&lt;br /&gt;
&lt;br /&gt;
Myriad Lite is a project to adapt a pen-and-paper role-playing game rulebook into [http://opensimulator.org OpenSimulator] Xengine and [http://secondlife.com SecondLife] Mono scripts, and the related 3D objects, needed to implement a pen-and-paper role-playing game in 3D virtual worlds.&lt;br /&gt;
&lt;br /&gt;
== The Myriad Universal RPG System ==&lt;br /&gt;
Myriad Lite is based on the book [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 MYRIAD: A UNIVERSAL RPG SYSTEM] by Ashok Desai, which is freely downloadable as a PDF e-book from [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 Lulu].&lt;br /&gt;
&lt;br /&gt;
You also also purchase the &amp;quot;Myriad Special Extended Edition&amp;quot; printed book from that site, which includes for additional rules, many more examples, and other information.&lt;br /&gt;
&lt;br /&gt;
I do not make any financial gain if you purchase the book, but if you would like to support the original writer, I recommend it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
RECOMMENDED!&lt;br /&gt;
It is helpful to read through the original rulebook to understand the rules and assumptions &amp;quot;behind&amp;quot; Myriad Lite, before diving into the scripts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
In Alphabetical Order:&lt;br /&gt;
* [[User:Allen Kerensky|Allen Kerensky]] (SL/OSG) - contributed the initial LSL and OSSL scripting and basic system design converting a pen and paper game into the virtual world&lt;br /&gt;
* [[User:Artemis Tesla|Artemis Tesla]] (OSG) - improved health summary report scripting&lt;br /&gt;
* Ashok Desai - contributed the original Myriad RPG System and Myriad Special Extended Edition books that started this &lt;br /&gt;
* [[User:Baroun Tardis|Baroun Tardis]] (SL/OSG) - contributed Baroun's Adventure Machine (BAM) v1 design and scripts&lt;br /&gt;
* [[User:Gimisa Cerise|Gimisa Cerise]] - (OSG) kibbitzing and moral support - asking the fundamental questions to keep me on track with some of the goals&lt;br /&gt;
* [[User:Jeanie Weston|Jeanie Weston]] (SL) - contributed Jeanie's Heart sculpty&lt;br /&gt;
* [[User:Lani Global|Lani Global]] (OSG) - contributed animations, textures sounds, bullet and armor effects design, trap design and scripting, continual testing and feedback&lt;br /&gt;
* [[User:Pete Camino|Pete Camino]] (OSG) - contributed firearms, feedback and testing&lt;br /&gt;
* [[User:Snoopy Pfeffer|Snoopy Pfeffer]] (SL/OSG) - contributed the Ixi combat sandbox region for testing&lt;br /&gt;
* [[User:Tanja Darwin|Tanja Darwin]] (OSG) - developing a Myriad Lite OpenSim region module and matching Radegast viewer plugin&lt;br /&gt;
* [[User:Vegaslon Plutonian|Vegaslon Plutonian]] (OSG) - Raycast firearm coding and testing, kibbitzing and moral support - idea sounding board - second opinions&lt;br /&gt;
* [[User:Yoshiko Fazuku|Yoshiko Fazuku]] (SL/OSG/Avi) - Contributed Food/Potion scripting&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Roadmap|Myriad Lite Roadmap]] - High-level list of milestones leading to release&lt;br /&gt;
&lt;br /&gt;
== Current and Development ==&lt;br /&gt;
=== Player Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Armor|Armor]]&lt;br /&gt;
| Registers armor attachments with HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-Preview6.lsl|Myriad_Lite_Armor_Preview6.lsl]] (v0.0.6 20120212) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-v0.0.7-20120826.lsl|Myriad_Lite_Armor-v0.0.7-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Bullet|Bullet]]&lt;br /&gt;
| Fired from firearm to trigger Ranged Combat skill checks&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Bullet-Preview6.lsl|Myriad_Lite_Bullet-Preview6.lsl]] (v0.0.5 20120811)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Firearm|Firearm]]&lt;br /&gt;
| Firearm/bow attachment to fire bullets/arrows&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Firearm-Preview6.lsl|Myriad_Lite_Firearm-Preview6.lsl]] (v1.5-20120130)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Holster|Holster]]&lt;br /&gt;
| Holster/sheath attachment to show you carry a weapon&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Holster-Preview6.lsl|Myriad_Lite_Holster-Preview6.lsl]] (v0.0.1-20120201)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite|Lite]]&lt;br /&gt;
| The core script for the Myriad Lite HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-Preview6.lsl|Myriad_Lite-Preview6.lsl]] (v0.1.10-20120809) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| Myriad Bullets Only - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.11-20120826.lsl|Myriad_Lite-v0.1.11-20120826.lsl]] &lt;br /&gt;
Collision OR Myriad Bullets - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.12-20121219.lsl|Myriad_Lite-v0.1.12-20121219.lsl]] (may be withdrawn)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Armor|Lite Module: Armor]]&lt;br /&gt;
| HUD module for Armor attachments&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl|Myriad_Lite_Module_Armor-Preview6.lsl]] (v0.0.2-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl|Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_BAM|Lite Module: BAM]]&lt;br /&gt;
| HUD module for Baroun's Adventure Machine (Quests)&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-Preview6.lsl|Myriad_Lite_Module_BAM-Preview6.lsl]] (v0.0.4-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-v0.0.5.lsl|Myriad_Lite_Module_BAM-v0.0.5-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Character_Sheet|Lite Module: Character Sheet]]&lt;br /&gt;
| HUD module to load and manage character sheet data&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-Preview6.lsl|Myriad_Lite_Module_Character_Sheet-Preview6.lsl]] (v0.0.3-20120522) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl|Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Character_Sheet|Character Sheet]]&lt;br /&gt;
| HUD notecard for character sheet information and stats&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Character_Sheet-Preview6.txt|Myriad_Lite_Character_Sheet-Preview6.txt]] (v0.0.5-20120604))&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Meter|Lite Module: Meter]]&lt;br /&gt;
| HUD module to manage the hovertext meter attachment&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-Preview6.lsl|Myriad_Lite_Module_Meter-Preview6.lsl]] (v0.0.0-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl|Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Progression|Lite Module: Progression]]&lt;br /&gt;
| HUD module to track and spend Experience Points for progress&lt;br /&gt;
| &lt;br /&gt;
| Myriad_Lite_Module_Progression-v0.0.0-20120518.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Resilience|Lite Module: Resilience]]&lt;br /&gt;
| HUD module to track resilience, wounds, and healing&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-Preview6.lsl|Myriad_Lite_Module_Resilience-Preview6.lsl]] (v0.0.1-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl|Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Rumors|Lite Module: Rumors]]&lt;br /&gt;
| HUD module for region-specific rumors&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-Preview6.lsl|Myriad_Lite_Module_Rumors-Preview6.lsl]] (v0.0.1-20120317) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl|Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Close_Combat|Lite Module: Skill Close Combat]]&lt;br /&gt;
| HUD module for Close Combat skill, hand-to-hand combat, fist fighter&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl]] (v0.0.0-20120430) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl|Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Ranged_Combat|Lite Module: Skill Ranged Combat]]&lt;br /&gt;
| HUD module for Ranged Combat skill, thrown and fired projectiles&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl]] (v0.0.1-20120511) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_WELL|Lite Module: WELL]]&lt;br /&gt;
| HUD module for World Effect Language Library, utility functions&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-Preview6.lsl|Myriad_Lite_Module_WELL-Preview6.lsl]] (v0.0.2-20120626) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl|Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Melee|Melee]]&lt;br /&gt;
| Melee weapon attachment for clubs, knives, swords, etc.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Melee-Preview6.lsl|Myriad_Lite_Melee-Preview6.lsl]] (v0.0.6-20120508)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Meter|Meter]]&lt;br /&gt;
| Hovertext meter to see character status in-world&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-Preview6.lsl|Myriad_Lite_Meter-Preview6.lsl]] (v0.0.6-20120810) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-v0.0.7-20120827.lsl|Myriad_Lite_Meter-v0.0.7-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Target|Target]]&lt;br /&gt;
| Practice dummy for close and ranged combat&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Target-Preview6.lsl|Myriad_Lite_Target-Preview6.lsl]] (v0.0.6-20120202.lsl)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Owner Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC|BAM Adventure Giver NPC]]&lt;br /&gt;
| Baroun's Adventure Machine NPC script to start quests off&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC-Preview6.lsl|BAM_Adventure_Giver_NPC-Preview6.lsl]] (v0.0.7-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal|BAM Collision Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered on collision&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal-Preview6.lsl|BAM_Collision_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal|BAM Location Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered by sensor&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal-Preview6.lsl|BAM_Location_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal|BAM Touch Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal trigger by touch&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal-Preview6.lsl|BAM_Touch_Goal-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Trap|BAM Trap]]&lt;br /&gt;
| A quest trap by [[User:Lani Global|Lani Global]]&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl|Myriad_Compatible_Trap-Preview6.lsl]] (v0.5.4-20120202)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Food_Potion|Food Potion]]&lt;br /&gt;
| Partial healing based one a one-time use edible or drinkable item by Yoshiko Fazuku&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad_Lite_Food_Potion-Preview6.lsl]] (v0.0.1-20120830)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Healing|Healing]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-Preview6.lsl|Myriad_Lite_Healing-Preview6.lsl]] (v0.0.2-20120130)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| BUG FIX: [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-v0.0.2-20120903.lsl|Myriad_Lite_Healing-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Narrator|Narrator]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Narrator-Preview6.lsl|Myriad_Lite_Narrator-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Critter_Goon|NPC Critter Goon]]&lt;br /&gt;
| Framework for Myriad simple, expendable Critters and Goons Non-Player Characters&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-Preview6.lsl|Myriad_Lite_NPC_Critter_Goon-Preview6.lsl]] (v0.0.0-20120708)&amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl|Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl]] (v0.0.1-20121227)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Specialist|NPC Specialist]]&lt;br /&gt;
| Framework for Myriad skill-specific specialist Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Detailed|NPC Detailed]]&lt;br /&gt;
| Framework for Myriad fully-detailed Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Status|Region Status]]&lt;br /&gt;
| Simple report for Myriad combat status of all players in region&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-Preview6.lsl|Myriad_Lite_Region_Status-Preview6.lsl]] (v0.0.0-20120810)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-v0.0.2-20120903.lsl|Myriad_Lite_Region_Status-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Rumor_Server|Rumor Server]]&lt;br /&gt;
| Rumor server script for serving moderated player-submitted rumors to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Rumor_Server-Preview6.lsl|Myriad_Lite_Rumor_Server-Preview6.lsl]] (v0.0.5-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Seed_Rumors|Seed Rumors]]&lt;br /&gt;
| Starting rumors notecard for &amp;quot;seeding&amp;quot; a set of rumors for the Rumor Server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Seed_Rumors-Preview6.lsl|Myriad_Lite_Seed_Rumors-Preview6.lsl]] (v0.0.0-20101108)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret|Turret]]&lt;br /&gt;
| Automated turret to track and shoot players&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret-Preview6.lsl|Myriad_Lite_Turret-Preview6.lsl]] (v0.0.1-20120807)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret_Bullet|Turret Bullet]]&lt;br /&gt;
| Modified Myriad Bullet for use inside automated Turrets and NPCs.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret_Bullet-Preview6.lsl|Myriad_Lite_Turret_Bullet-Preview6.lsl]] (v0.0.0-20120511)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Region Settings Server ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings|Region Settings]]&lt;br /&gt;
| Region settings notecard for region settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings-Preview6.lsl|Myriad_Lite_Region_Settings-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Client|Region Settings Client]]&lt;br /&gt;
| Test client script to list region settings and region setting data from Region Settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Client-Preview6.lsl|Myriad_Lite_Region_Settings_Client-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Server|Region Settings Server]]&lt;br /&gt;
| Region settings server script for serving Region Settings data to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Server-Preview6.lsl|Myriad_Lite_Region_Settings_Server-Preview6.lsl]] (v0.0.4-20120810)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater CSV Server ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Summary&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons]]&lt;br /&gt;
| Boon data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons-v0.0.0-20120326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Client]]&lt;br /&gt;
| Test client script to list boons and boon data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Server]]&lt;br /&gt;
| CSV server script for serving Boon data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Server-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment]]&lt;br /&gt;
| Equipment data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment-v0.0.1-20120424.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Client]]&lt;br /&gt;
| Test client script to list equipment and equipment data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Client-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Server]]&lt;br /&gt;
| CSV server script for serving Equipment data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws]]&lt;br /&gt;
| Flaws data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Client]]&lt;br /&gt;
| Test client script to list flaws and flaws data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Server]]&lt;br /&gt;
| CSV server script for serving Flaws data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools]]&lt;br /&gt;
| Point Pool data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools-v0.0.0-20110928.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Client]]&lt;br /&gt;
| Test client script to list Point Pools data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Server]]&lt;br /&gt;
| CSV server script for serving Point Pools data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences]]&lt;br /&gt;
| Resilience data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences-v0.0.0-20111005.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Client]]&lt;br /&gt;
| Test client script to list Resiliences data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Client-v0.0.0-20111005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Server]]&lt;br /&gt;
| CSV server script for serving Resiliences data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Server-v0.0.0-20121005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX]]&lt;br /&gt;
| Special Effect abilities data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Client]]&lt;br /&gt;
| Test client script to list SFX data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Client-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Server]]&lt;br /&gt;
| CSV server script for serving SFX data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Server-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills]]&lt;br /&gt;
| Skills data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills-v0.0.2-20120527.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Client]]&lt;br /&gt;
| Test client script to list Skills data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Client-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Server]]&lt;br /&gt;
| CSV server script for serving Skills data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics]]&lt;br /&gt;
| Statistics data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics-v0.0.0-20111001.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Client]]&lt;br /&gt;
| Test client script to list Statistics data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Server]]&lt;br /&gt;
| CSV server script for serving Statistics data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Server-v0.0.0-20111001.lsl]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
REQUIRES CSV AND TEMPLATE SERVER ABOVE TO BE SETUP FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current (Preview 6)&lt;br /&gt;
! Development&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Controller]]&lt;br /&gt;
| Starts/stops Character Creator scripts based on modes&lt;br /&gt;
| [[Myriad_Lite_Creator_Controller-v0.0.1-20120203.lsl]]&lt;br /&gt;
| Myriad_Lite_Creator_Controller-v0.0.2-20120525.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Points-Based]]&lt;br /&gt;
| Manage character creation using point pools to buy attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Points-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Random]]&lt;br /&gt;
| Manage character creation using random dice rolls for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Random-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Template]]&lt;br /&gt;
| Manage character creation using templates for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Template-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Gradual]]&lt;br /&gt;
| Manage character progress using Gradual method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Gradual-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Level-Based]]&lt;br /&gt;
| Manage character progress using Experience Point Level-based method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Level-Based-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Random]]&lt;br /&gt;
| Manage character progress using Random method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Random-v0.0.0-20120528.lsl&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Snapshot Previews ==&lt;br /&gt;
I as develop the system, I wrap up and post everything as a milestone snapshot called a Preview. Preview snapshots are archived below.&lt;br /&gt;
&lt;br /&gt;
The latest Preview Release is the recommended place to start if you are exploring the system.&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 February 2012]] - Combat and roleplaying HUD and accessories for players and region owners.&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_4 Myriad Lite Preview 4 September 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_3 Myriad Lite Preview 3 August 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_2 Myriad Lite Preview 2 June 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Preview Myriad Lite Preview 1 June 2011]&lt;br /&gt;
&lt;br /&gt;
=== Myriad Online Reference ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
U N D E R    C O N S T R U C T I O N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To provide an online reference for the rules and data, which can be used as comment links in the code, I have included the text of the original Myriad RPG system book here for reference.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Universal_RPG_System|Myriad Universal RPG System]]&lt;br /&gt;
&lt;br /&gt;
Note: Myriad Lite may include rule implementation and supporting data from the Special Extended Edition, which is not reprinted here.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Roadmap</id>
		<title>User:Allen Kerensky/Myriad Lite Roadmap</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Roadmap"/>
				<updated>2013-11-12T18:54:07Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Update Preview 7 and Preview 8&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Preview 1: Shooting (June 2011) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Character Sheet Loader&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Non-Powered Armor&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Firearm&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Bullet&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Ranged Combat Skill Handler&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Opposed Test Handler&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Practice Target&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 2: Fists, Melee, Healing (June 2011) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;Healing&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Melee Weapon&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Built in Fist Fighter&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Close Combat Skill Handler&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Hovertext Meter&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 3: Commenting (August 2011) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;Heavily Commented Code&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 4: Quests ( Sept. 2011 ) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM Adventure Giver NPC&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM Collision Goal&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM Location Goal&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM Touch Goal&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD BAM Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Holster&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Power Armor&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 5: Character Builder (Feb. 2012) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Unopposed Test Handler&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Region CSVs Servers&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Region Settings Server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Region Templates Server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Character Builder&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Narrators&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM-compatible Traps&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 6: Modular HUD, NPCs, Re-icense (August 2012) ==&lt;br /&gt;
The focus of preview 6 is creating the rest of the foundation roleplaying platform and lay the groundwork for character builder/updater: modularize HUD to work around script memory constraints, NPCs, and re-license&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Improved Armor HUD Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Improved Armor Attachment&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.1&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Rumor Server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Rumor HUD Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.2&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;CSV Server: Equipment with defined Resource Point costs&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Character Sheet Loader with support for default or region specific character sheets&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.3&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Close Combat Skill (Fist Fighter / Melee)&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.4&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Ranged Combat Skill (Firearms)&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.5&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Character Sheet Loader with drop down menu for multiple characters per region if needed&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.6&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Update character sheet module to pick default character sheet if drop down menu is ignored&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add ESTATE= keyword to region setting server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Damage and Health&amp;lt;/del&amp;gt; &lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.7&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Turret script for autofire - Myriad damage to players&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add ESTATE= check to Character Sheet Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Damage and Health Movelock&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Talker/Emoter&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add PROGRESSION= options to Region Settings Server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add base stats to all example skills for random progression, publish new Skills CSV and Skills CSV Server Code&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module World Effect Library Language (WELL)&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add dice roller to Talker/Emoter&amp;lt;/del&amp;gt; (Myriad Lite v0.1.9 20120704)&lt;br /&gt;
* &amp;lt;del&amp;gt;BAM Adventure Giver NPC generates Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;BAM Collision Goal Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;BAM Location Goal generates Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;BAM Touch Goal generates Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Narrator generates Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;NPC Goons&amp;lt;/del&amp;gt; framework built, need more design and input&lt;br /&gt;
* &amp;lt;del&amp;gt;Meter code moved from HUD into its own Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Meter Attach: Custom format strings&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Meter Attach: Species/Career/Faction support&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Region Status Board for character health/combat stats&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add RESPAWNPOINT to region server, notecard, and client for osTeleportAgent configuration&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add DEATHPOINT to region server, notecard, and client for osTeleportAgent configuration&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add TeleportAgentHome or osTeleportAgent to DEATHPOINT on die, RESPAWNPOINT on respawn into Module_Resilience&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Relicense in CC-BY and BSD for full OpenSim adoption&amp;lt;/del&amp;gt; (4 previews early!)&lt;br /&gt;
&lt;br /&gt;
== Preview 7: Character Builder/Updater ==&lt;br /&gt;
The focus of Preview 7 will be to finish the character builder/updater started in Preview 5 and 6, but many new features also crept in.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Create Myriad Adventurer Handbook&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Create Myriad Region Owners Handbook&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Develop a persistent character sheet database which runs in-world&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Split out the character notecard reader/menu from the base character sheet module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Character Sheet to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Myriad Lite to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Armor to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module BAM to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Character Notecard to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Meter to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Progression to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Resilience to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Rumors to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Skill Close Combat to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Skill Ranged Combat to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module WELL to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Implement Module Social Combat&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Allen_Kerensky/Myriad_Lite_Dev|DEV IN PROGRESS]]&lt;br /&gt;
&lt;br /&gt;
* Implement PPMA for the character builder&lt;br /&gt;
* Character Builder Controller - rewrite to load/store/control in correlation with region servers and character sheet module&lt;br /&gt;
* Character Builder integration with updated character sheet module&lt;br /&gt;
** Points-Based Creator - loads/stores intial points to character sheet module&lt;br /&gt;
** Template-Based Creator - loads/stores initial templates and remaining GP to/from character sheet module&lt;br /&gt;
** Random Creator - loads/stores random allocations and spends to/from character sheet module&lt;br /&gt;
* Progression (client in testing, character updater in testing)&lt;br /&gt;
** Level-Based Progression (client in testing, character updater pending)&lt;br /&gt;
** Gradual Progression (client in testing, character updater not started)&lt;br /&gt;
** Random Progression (client in testing, character updater not started)&lt;br /&gt;
&lt;br /&gt;
* Finish Myriad Region Owners Handbook&lt;br /&gt;
&lt;br /&gt;
== Preview 8: Critters and Conflicts ==&lt;br /&gt;
The focus for Preview 8 will be to provide the opponents to fight and NPCs to interact with and remaining combat systems&lt;br /&gt;
&lt;br /&gt;
* NPC Critters/Goons (Revised)&lt;br /&gt;
* NPC Specialists&lt;br /&gt;
* NPC Detailed&lt;br /&gt;
* Mortal Combat Stunts&lt;br /&gt;
* Social Combat Quotes&lt;br /&gt;
* Magic Combat System&lt;br /&gt;
* Witchgroup/Group Magic Combat System&lt;br /&gt;
* Psionics Combat System&lt;br /&gt;
&lt;br /&gt;
== Preview 9: Setting Specifics ==&lt;br /&gt;
The focus of this preview will be to build out all of the setting-specific parts of the core Myriad RPG book.&lt;br /&gt;
&lt;br /&gt;
NOTE: The ORDER of development is being revised due to survey results.&lt;br /&gt;
&lt;br /&gt;
* Implement Medieval setting specifics&lt;br /&gt;
** Statistics&lt;br /&gt;
** Resiliences&lt;br /&gt;
** Templates&lt;br /&gt;
** Boons&lt;br /&gt;
** Flaws&lt;br /&gt;
** Skills&lt;br /&gt;
** Special Effect Abilities including Magic, Occult, and Psionic abilities&lt;br /&gt;
** Equipment&lt;br /&gt;
&lt;br /&gt;
* Implement Modern setting specifics&lt;br /&gt;
** Statistics&lt;br /&gt;
** Resiliences&lt;br /&gt;
** Templates&lt;br /&gt;
** Boons&lt;br /&gt;
** Flaws&lt;br /&gt;
** Skills&lt;br /&gt;
** Special Effect Abilities including Magic, Occult, and Psionic abilities&lt;br /&gt;
** Equipment&lt;br /&gt;
&lt;br /&gt;
* Implement Futuristic setting specifics&lt;br /&gt;
** Statistics&lt;br /&gt;
** Resiliences&lt;br /&gt;
** Templates&lt;br /&gt;
** Boons&lt;br /&gt;
** Flaws&lt;br /&gt;
** Skills&lt;br /&gt;
** Special Effect Abilities including Magic, Occult, and Psionic abilities&lt;br /&gt;
** Equipment&lt;br /&gt;
&lt;br /&gt;
* Implement any remaining Universal setting specifics&lt;br /&gt;
** Statistics&lt;br /&gt;
** Resiliences&lt;br /&gt;
** Templates&lt;br /&gt;
** Boons&lt;br /&gt;
** Flaws&lt;br /&gt;
** Skills&lt;br /&gt;
** Special Effect Abilities including Magic, Occult, and Psionic abilities&lt;br /&gt;
** Equipment&lt;br /&gt;
&lt;br /&gt;
== Preview 10: Cleanup and Release 1.0 ==&lt;br /&gt;
The focus of Preview 10 will be 3 things:&lt;br /&gt;
# Visit all scripts to update message formats and processing to use a universal format/specification.&lt;br /&gt;
# Embed updater capabilities&lt;br /&gt;
# Fix remaining script-by-script minor issues such as OpenSim-compatible attach/detach, region change and teleport script restart, etc.&lt;br /&gt;
&lt;br /&gt;
* Design universal Myriad message format to be used between all Myriad scripts&lt;br /&gt;
* Revised Armor Module to avoid lack of opensim detach&lt;br /&gt;
* Revised attachment code to reset/resume after changed teleport and changed region events&lt;br /&gt;
* Revised server code to reset/resume after changed region restart events&lt;br /&gt;
* Updaters (possible llLoadRemoteScriptPin setup)&lt;br /&gt;
* Final bugfixes&lt;br /&gt;
* Release 1.0 to Community Development&lt;br /&gt;
&lt;br /&gt;
== Beyond 1.0: Expansions ==&lt;br /&gt;
* Resource Gathering&lt;br /&gt;
* Crop Harvesting&lt;br /&gt;
* Crafting&lt;br /&gt;
* Technology Tree&lt;br /&gt;
* Roleplay Currency&lt;br /&gt;
* Intersim Trade and Economics&lt;br /&gt;
* Expanded vehicle combat&lt;br /&gt;
* Your suggestions here...&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Dev</id>
		<title>User:Allen Kerensky/Myriad Lite Dev</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Dev"/>
				<updated>2013-11-12T18:44:58Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: cleaned out all stuff, put in current list of preview 7 feature list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Development =&lt;br /&gt;
&lt;br /&gt;
== Preview 7 New Features ==&lt;br /&gt;
* Region Setting server using PPMA&lt;br /&gt;
# Implement new RENDEZVOUS2 dynamic region server channel&lt;br /&gt;
&lt;br /&gt;
* Region Setting Editor&lt;br /&gt;
# Statistics&lt;br /&gt;
# Skills&lt;br /&gt;
# Special Effect Abilities&lt;br /&gt;
# Resiliences&lt;br /&gt;
# Boons&lt;br /&gt;
# Flaws&lt;br /&gt;
# Campaigns&lt;br /&gt;
# Species&lt;br /&gt;
# Backgrounds&lt;br /&gt;
# Careers&lt;br /&gt;
# Items&lt;br /&gt;
&lt;br /&gt;
* Character Sheet improvements&lt;br /&gt;
# TITLE - a rank, or professional/noble title&lt;br /&gt;
# FACTION - a configurable faction&lt;br /&gt;
&lt;br /&gt;
* Much improved message output&lt;br /&gt;
# Individual message icons for each module&lt;br /&gt;
# Duplicate message suppression&lt;br /&gt;
# Hypergrid name @hostname stripping&lt;br /&gt;
&lt;br /&gt;
* Unopposed Tests&lt;br /&gt;
# Simple, insecure type 1 unpposed tests for roleplay color&lt;br /&gt;
# Complex, more secure type 2 unopposed tests for tasks that have in-game consequences&lt;br /&gt;
&lt;br /&gt;
* Vegaslon Plutonian (OSG) contributed a raycast modification for the Firearm code&lt;br /&gt;
&lt;br /&gt;
* The first implementation of the Social Combat with the Deception and Persuasion skills as well as Resolve resilience&lt;br /&gt;
&lt;br /&gt;
* Conversion of all character data storage to persistent prim data storage (called PPMA) rather than inscript global lists&lt;br /&gt;
&lt;br /&gt;
* Beginning infrastructure for storing user configuration items in the HUD PPMA&lt;br /&gt;
&lt;br /&gt;
* Restrained Love Viewer (RLV) integration&lt;br /&gt;
# in-character and out-of-character mode&lt;br /&gt;
# RestrainedLight configurable Windlight region settings&lt;br /&gt;
&lt;br /&gt;
* Meter improvements&lt;br /&gt;
# TITLE display&lt;br /&gt;
# FACTION display&lt;br /&gt;
# Resolve % display&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite</id>
		<title>User:Allen Kerensky/Myriad Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite"/>
				<updated>2013-11-07T20:27:36Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added vegaslon credit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&lt;br /&gt;
== What Is Myriad Lite? ==&lt;br /&gt;
Before home computers were widely available, people played role-playing games (RPGs) by sitting around a table, telling shared stories, and rolling dice to determine if their &amp;quot;character&amp;quot; in the story succeeded or failed at the actions the player wanted them to take within the story.&lt;br /&gt;
&lt;br /&gt;
Myriad Lite is a project to adapt a pen-and-paper role-playing game rulebook into [http://opensimulator.org OpenSimulator] Xengine and [http://secondlife.com SecondLife] Mono scripts, and the related 3D objects, needed to implement a pen-and-paper role-playing game in 3D virtual worlds.&lt;br /&gt;
&lt;br /&gt;
== The Myriad Universal RPG System ==&lt;br /&gt;
Myriad Lite is based on the book [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 MYRIAD: A UNIVERSAL RPG SYSTEM] by Ashok Desai, which is freely downloadable as a PDF e-book from [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 Lulu].&lt;br /&gt;
&lt;br /&gt;
You also also purchase the &amp;quot;Myriad Special Extended Edition&amp;quot; printed book from that site, which includes for additional rules, many more examples, and other information.&lt;br /&gt;
&lt;br /&gt;
I do not make any financial gain if you purchase the book, but if you would like to support the original writer, I recommend it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
RECOMMENDED!&lt;br /&gt;
It is helpful to read through the original rulebook to understand the rules and assumptions &amp;quot;behind&amp;quot; Myriad Lite, before diving into the scripts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
In Alphabetical Order:&lt;br /&gt;
* [[User:Allen Kerensky|Allen Kerensky]] (SL/OSG) - contributed the initial LSL and OSSL scripting and basic system design converting a pen and paper game into the virtual world&lt;br /&gt;
* [[User:Artemis Tesla|Artemis Tesla]] (OSG) - improved health summary report scripting&lt;br /&gt;
* Ashok Desai - contributed the original Myriad RPG System and Myriad Special Extended Edition books that started this &lt;br /&gt;
* [[User:Baroun Tardis|Baroun Tardis]] (SL/OSG) - contributed Baroun's Adventure Machine (BAM) v1 design and scripts&lt;br /&gt;
* [[User:Gimisa Cerise|Gimisa Cerise]] - (OSG) kibbitzing and moral support - asking the fundamental questions to keep me on track with some of the goals&lt;br /&gt;
* [[User:Jeanie Weston|Jeanie Weston]] (SL) - contributed Jeanie's Heart sculpty&lt;br /&gt;
* [[User:Lani Global|Lani Global]] (OSG) - contributed animations, textures sounds, bullet and armor effects design, trap design and scripting, continual testing and feedback&lt;br /&gt;
* [[User:Pete Camino|Pete Camino]] (OSG) - contributed firearms, feedback and testing&lt;br /&gt;
* [[User:Snoopy Pfeffer|Snoopy Pfeffer]] (SL/OSG) - contributed the Ixi combat sandbox region for testing&lt;br /&gt;
* [[User:Vegaslon Plutonian|Vegaslon Plutonian]] (OSG) - Raycast firearm coding and testing, kibbitzing and moral support - idea sounding board - second opinions&lt;br /&gt;
* [[User:Yoshiko Fazuku|Yoshiko Fazuku]] (SL/OSG/Avi) - Contributed Food/Potion scripting&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Roadmap|Myriad Lite Roadmap]] - High-level list of milestones leading to release&lt;br /&gt;
&lt;br /&gt;
== Current and Development ==&lt;br /&gt;
=== Player Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Armor|Armor]]&lt;br /&gt;
| Registers armor attachments with HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-Preview6.lsl|Myriad_Lite_Armor_Preview6.lsl]] (v0.0.6 20120212) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-v0.0.7-20120826.lsl|Myriad_Lite_Armor-v0.0.7-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Bullet|Bullet]]&lt;br /&gt;
| Fired from firearm to trigger Ranged Combat skill checks&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Bullet-Preview6.lsl|Myriad_Lite_Bullet-Preview6.lsl]] (v0.0.5 20120811)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Firearm|Firearm]]&lt;br /&gt;
| Firearm/bow attachment to fire bullets/arrows&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Firearm-Preview6.lsl|Myriad_Lite_Firearm-Preview6.lsl]] (v1.5-20120130)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Holster|Holster]]&lt;br /&gt;
| Holster/sheath attachment to show you carry a weapon&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Holster-Preview6.lsl|Myriad_Lite_Holster-Preview6.lsl]] (v0.0.1-20120201)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite|Lite]]&lt;br /&gt;
| The core script for the Myriad Lite HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-Preview6.lsl|Myriad_Lite-Preview6.lsl]] (v0.1.10-20120809) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| Myriad Bullets Only - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.11-20120826.lsl|Myriad_Lite-v0.1.11-20120826.lsl]] &lt;br /&gt;
Collision OR Myriad Bullets - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.12-20121219.lsl|Myriad_Lite-v0.1.12-20121219.lsl]] (may be withdrawn)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Armor|Lite Module: Armor]]&lt;br /&gt;
| HUD module for Armor attachments&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl|Myriad_Lite_Module_Armor-Preview6.lsl]] (v0.0.2-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl|Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_BAM|Lite Module: BAM]]&lt;br /&gt;
| HUD module for Baroun's Adventure Machine (Quests)&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-Preview6.lsl|Myriad_Lite_Module_BAM-Preview6.lsl]] (v0.0.4-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-v0.0.5.lsl|Myriad_Lite_Module_BAM-v0.0.5-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Character_Sheet|Lite Module: Character Sheet]]&lt;br /&gt;
| HUD module to load and manage character sheet data&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-Preview6.lsl|Myriad_Lite_Module_Character_Sheet-Preview6.lsl]] (v0.0.3-20120522) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl|Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Character_Sheet|Character Sheet]]&lt;br /&gt;
| HUD notecard for character sheet information and stats&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Character_Sheet-Preview6.txt|Myriad_Lite_Character_Sheet-Preview6.txt]] (v0.0.5-20120604))&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Meter|Lite Module: Meter]]&lt;br /&gt;
| HUD module to manage the hovertext meter attachment&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-Preview6.lsl|Myriad_Lite_Module_Meter-Preview6.lsl]] (v0.0.0-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl|Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Progression|Lite Module: Progression]]&lt;br /&gt;
| HUD module to track and spend Experience Points for progress&lt;br /&gt;
| &lt;br /&gt;
| Myriad_Lite_Module_Progression-v0.0.0-20120518.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Resilience|Lite Module: Resilience]]&lt;br /&gt;
| HUD module to track resilience, wounds, and healing&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-Preview6.lsl|Myriad_Lite_Module_Resilience-Preview6.lsl]] (v0.0.1-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl|Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Rumors|Lite Module: Rumors]]&lt;br /&gt;
| HUD module for region-specific rumors&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-Preview6.lsl|Myriad_Lite_Module_Rumors-Preview6.lsl]] (v0.0.1-20120317) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl|Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Close_Combat|Lite Module: Skill Close Combat]]&lt;br /&gt;
| HUD module for Close Combat skill, hand-to-hand combat, fist fighter&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl]] (v0.0.0-20120430) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl|Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Ranged_Combat|Lite Module: Skill Ranged Combat]]&lt;br /&gt;
| HUD module for Ranged Combat skill, thrown and fired projectiles&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl]] (v0.0.1-20120511) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_WELL|Lite Module: WELL]]&lt;br /&gt;
| HUD module for World Effect Language Library, utility functions&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-Preview6.lsl|Myriad_Lite_Module_WELL-Preview6.lsl]] (v0.0.2-20120626) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl|Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Melee|Melee]]&lt;br /&gt;
| Melee weapon attachment for clubs, knives, swords, etc.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Melee-Preview6.lsl|Myriad_Lite_Melee-Preview6.lsl]] (v0.0.6-20120508)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Meter|Meter]]&lt;br /&gt;
| Hovertext meter to see character status in-world&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-Preview6.lsl|Myriad_Lite_Meter-Preview6.lsl]] (v0.0.6-20120810) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-v0.0.7-20120827.lsl|Myriad_Lite_Meter-v0.0.7-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Target|Target]]&lt;br /&gt;
| Practice dummy for close and ranged combat&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Target-Preview6.lsl|Myriad_Lite_Target-Preview6.lsl]] (v0.0.6-20120202.lsl)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Owner Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC|BAM Adventure Giver NPC]]&lt;br /&gt;
| Baroun's Adventure Machine NPC script to start quests off&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC-Preview6.lsl|BAM_Adventure_Giver_NPC-Preview6.lsl]] (v0.0.7-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal|BAM Collision Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered on collision&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal-Preview6.lsl|BAM_Collision_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal|BAM Location Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered by sensor&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal-Preview6.lsl|BAM_Location_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal|BAM Touch Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal trigger by touch&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal-Preview6.lsl|BAM_Touch_Goal-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Trap|BAM Trap]]&lt;br /&gt;
| A quest trap by [[User:Lani Global|Lani Global]]&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl|Myriad_Compatible_Trap-Preview6.lsl]] (v0.5.4-20120202)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Food_Potion|Food Potion]]&lt;br /&gt;
| Partial healing based one a one-time use edible or drinkable item by Yoshiko Fazuku&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad_Lite_Food_Potion-Preview6.lsl]] (v0.0.1-20120830)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Healing|Healing]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-Preview6.lsl|Myriad_Lite_Healing-Preview6.lsl]] (v0.0.2-20120130)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| BUG FIX: [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-v0.0.2-20120903.lsl|Myriad_Lite_Healing-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Narrator|Narrator]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Narrator-Preview6.lsl|Myriad_Lite_Narrator-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Critter_Goon|NPC Critter Goon]]&lt;br /&gt;
| Framework for Myriad simple, expendable Critters and Goons Non-Player Characters&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-Preview6.lsl|Myriad_Lite_NPC_Critter_Goon-Preview6.lsl]] (v0.0.0-20120708)&amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl|Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl]] (v0.0.1-20121227)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Specialist|NPC Specialist]]&lt;br /&gt;
| Framework for Myriad skill-specific specialist Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Detailed|NPC Detailed]]&lt;br /&gt;
| Framework for Myriad fully-detailed Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Status|Region Status]]&lt;br /&gt;
| Simple report for Myriad combat status of all players in region&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-Preview6.lsl|Myriad_Lite_Region_Status-Preview6.lsl]] (v0.0.0-20120810)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-v0.0.2-20120903.lsl|Myriad_Lite_Region_Status-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Rumor_Server|Rumor Server]]&lt;br /&gt;
| Rumor server script for serving moderated player-submitted rumors to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Rumor_Server-Preview6.lsl|Myriad_Lite_Rumor_Server-Preview6.lsl]] (v0.0.5-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Seed_Rumors|Seed Rumors]]&lt;br /&gt;
| Starting rumors notecard for &amp;quot;seeding&amp;quot; a set of rumors for the Rumor Server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Seed_Rumors-Preview6.lsl|Myriad_Lite_Seed_Rumors-Preview6.lsl]] (v0.0.0-20101108)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret|Turret]]&lt;br /&gt;
| Automated turret to track and shoot players&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret-Preview6.lsl|Myriad_Lite_Turret-Preview6.lsl]] (v0.0.1-20120807)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret_Bullet|Turret Bullet]]&lt;br /&gt;
| Modified Myriad Bullet for use inside automated Turrets and NPCs.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret_Bullet-Preview6.lsl|Myriad_Lite_Turret_Bullet-Preview6.lsl]] (v0.0.0-20120511)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Region Settings Server ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings|Region Settings]]&lt;br /&gt;
| Region settings notecard for region settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings-Preview6.lsl|Myriad_Lite_Region_Settings-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Client|Region Settings Client]]&lt;br /&gt;
| Test client script to list region settings and region setting data from Region Settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Client-Preview6.lsl|Myriad_Lite_Region_Settings_Client-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Server|Region Settings Server]]&lt;br /&gt;
| Region settings server script for serving Region Settings data to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Server-Preview6.lsl|Myriad_Lite_Region_Settings_Server-Preview6.lsl]] (v0.0.4-20120810)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater CSV Server ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Summary&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons]]&lt;br /&gt;
| Boon data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons-v0.0.0-20120326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Client]]&lt;br /&gt;
| Test client script to list boons and boon data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Server]]&lt;br /&gt;
| CSV server script for serving Boon data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Server-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment]]&lt;br /&gt;
| Equipment data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment-v0.0.1-20120424.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Client]]&lt;br /&gt;
| Test client script to list equipment and equipment data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Client-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Server]]&lt;br /&gt;
| CSV server script for serving Equipment data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws]]&lt;br /&gt;
| Flaws data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Client]]&lt;br /&gt;
| Test client script to list flaws and flaws data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Server]]&lt;br /&gt;
| CSV server script for serving Flaws data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools]]&lt;br /&gt;
| Point Pool data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools-v0.0.0-20110928.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Client]]&lt;br /&gt;
| Test client script to list Point Pools data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Server]]&lt;br /&gt;
| CSV server script for serving Point Pools data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences]]&lt;br /&gt;
| Resilience data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences-v0.0.0-20111005.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Client]]&lt;br /&gt;
| Test client script to list Resiliences data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Client-v0.0.0-20111005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Server]]&lt;br /&gt;
| CSV server script for serving Resiliences data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Server-v0.0.0-20121005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX]]&lt;br /&gt;
| Special Effect abilities data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Client]]&lt;br /&gt;
| Test client script to list SFX data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Client-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Server]]&lt;br /&gt;
| CSV server script for serving SFX data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Server-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills]]&lt;br /&gt;
| Skills data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills-v0.0.2-20120527.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Client]]&lt;br /&gt;
| Test client script to list Skills data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Client-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Server]]&lt;br /&gt;
| CSV server script for serving Skills data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics]]&lt;br /&gt;
| Statistics data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics-v0.0.0-20111001.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Client]]&lt;br /&gt;
| Test client script to list Statistics data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Server]]&lt;br /&gt;
| CSV server script for serving Statistics data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Server-v0.0.0-20111001.lsl]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
REQUIRES CSV AND TEMPLATE SERVER ABOVE TO BE SETUP FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current (Preview 6)&lt;br /&gt;
! Development&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Controller]]&lt;br /&gt;
| Starts/stops Character Creator scripts based on modes&lt;br /&gt;
| [[Myriad_Lite_Creator_Controller-v0.0.1-20120203.lsl]]&lt;br /&gt;
| Myriad_Lite_Creator_Controller-v0.0.2-20120525.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Points-Based]]&lt;br /&gt;
| Manage character creation using point pools to buy attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Points-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Random]]&lt;br /&gt;
| Manage character creation using random dice rolls for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Random-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Template]]&lt;br /&gt;
| Manage character creation using templates for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Template-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Gradual]]&lt;br /&gt;
| Manage character progress using Gradual method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Gradual-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Level-Based]]&lt;br /&gt;
| Manage character progress using Experience Point Level-based method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Level-Based-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Random]]&lt;br /&gt;
| Manage character progress using Random method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Random-v0.0.0-20120528.lsl&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Snapshot Previews ==&lt;br /&gt;
I as develop the system, I wrap up and post everything as a milestone snapshot called a Preview. Preview snapshots are archived below.&lt;br /&gt;
&lt;br /&gt;
The latest Preview Release is the recommended place to start if you are exploring the system.&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 February 2012]] - Combat and roleplaying HUD and accessories for players and region owners.&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_4 Myriad Lite Preview 4 September 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_3 Myriad Lite Preview 3 August 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_2 Myriad Lite Preview 2 June 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Preview Myriad Lite Preview 1 June 2011]&lt;br /&gt;
&lt;br /&gt;
=== Myriad Online Reference ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
U N D E R    C O N S T R U C T I O N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To provide an online reference for the rules and data, which can be used as comment links in the code, I have included the text of the original Myriad RPG system book here for reference.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Universal_RPG_System|Myriad Universal RPG System]]&lt;br /&gt;
&lt;br /&gt;
Note: Myriad Lite may include rule implementation and supporting data from the Special Extended Edition, which is not reprinted here.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Lite</id>
		<title>User:Allen Kerensky/Myriad Lite/Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Lite"/>
				<updated>2013-10-25T01:23:35Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&lt;br /&gt;
== Myriad Lite Concepts ==&lt;br /&gt;
The HUD is the core of the game system and is the only &amp;quot;mandatory&amp;quot; piece you need to play the game.&lt;br /&gt;
&lt;br /&gt;
The HUD is attached to a HUD slot, usually Lower Left.&lt;br /&gt;
&lt;br /&gt;
== Setting Up The Myriad Lite HUD ==&lt;br /&gt;
# Create a simple cube&lt;br /&gt;
## Size the cube to 0.250 meters for X,Y, and Z&lt;br /&gt;
## Apply the Myriad logo to it&lt;br /&gt;
## Set the cube to 50% transparent.&lt;br /&gt;
# Drag and Drop the following pieces from inventory into the cube:&lt;br /&gt;
## The Myriad Lite Module Armor script&lt;br /&gt;
## The Myriad Lite Module BAM script&lt;br /&gt;
## The Myriad Lite Module Character Sheet script&lt;br /&gt;
## The default character sheet notecard&lt;br /&gt;
## The Myriad Lite Module Meter script&lt;br /&gt;
## The Myriad Lite Module Resilience script&lt;br /&gt;
## The Myriad Lite Module Rumors script&lt;br /&gt;
## The Myriad Lite Module Skill Close Combat script&lt;br /&gt;
## The Myriad Lite Module Skill Ranged Combat script&lt;br /&gt;
## The Myriad Lite Module WELL script&lt;br /&gt;
## The Myriad Lite script itself (Must be compiled as Mono due to size)&lt;br /&gt;
# Edit the character sheet notecard to set a default character name for yourself at the top.&lt;br /&gt;
# Take the cube into inventory&lt;br /&gt;
# Right-click the cube in inventory and choose the &amp;quot;Attach to HUD -&amp;gt; Bottom Left&amp;quot; attachment point.&lt;br /&gt;
# You should see Myriad Lite begin loading your character from the character sheet and tell you when its ready to play.&lt;br /&gt;
# Edit the HUD attachment to position it.&lt;br /&gt;
# Detach the HUD back to inventory to &amp;quot;save&amp;quot; the position.&lt;br /&gt;
&lt;br /&gt;
== Quickstart For Players ==&lt;br /&gt;
* (required) Wear the HUD.&lt;br /&gt;
* (optional) Wear the hovertext meter&lt;br /&gt;
* (optional) Wear armor, which you should see reported in your chat window.&lt;br /&gt;
* (optional) Wear a holster&lt;br /&gt;
* (optional) Wear a melee or ranged combat weapon&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
Myriad Lite accepts a variety of chat commands on channel 5.&lt;br /&gt;
&lt;br /&gt;
Many commands are detailed below in context, and more are described in the additional module documentation as well.&lt;br /&gt;
&lt;br /&gt;
/5 &amp;lt;command&amp;gt; will activate that command.&lt;br /&gt;
&lt;br /&gt;
Scripters can also send the same commands as a link message.&lt;br /&gt;
&lt;br /&gt;
Custom HUDs can be constructed with buttons named each command, and the button will activate the command of the same name&lt;br /&gt;
&lt;br /&gt;
You can send commands to Myriad Lite on chat channel 5.&lt;br /&gt;
* /5 armoroff - turn off powered armor to save battery&lt;br /&gt;
* /5 armoron - turn on powered armor&lt;br /&gt;
* /5 checkammo - check the ammo left in your firearm&lt;br /&gt;
* /5 checkarmor - check what amount of armor you currently have on&lt;br /&gt;
* /5 checkbattery - check the battery level in powered armor&lt;br /&gt;
* /5 combatoff - disable the built in fist fighter&lt;br /&gt;
* /5 combaton - enable the built in fist fighter&lt;br /&gt;
* /5 credits - credit where credit is due&lt;br /&gt;
* /5 debugoff - turn off debugging messages if showing&lt;br /&gt;
* /5 debugon - turn on debug messages&lt;br /&gt;
* /5 drawboth - draw weapons in both hands if attached&lt;br /&gt;
* /5 drawleft - draw a weapon in your left hand, if attached&lt;br /&gt;
* /5 drawright - draw a weapon in your right hand, if attached&lt;br /&gt;
* /5 holsterboth - holster the firearms in both hands, if attached&lt;br /&gt;
* /5 holsterleft - holster the firearm in your left hand, if attached&lt;br /&gt;
* /5 holsterright - holster the firearm in your right hand, if attached&lt;br /&gt;
* /5 quest - see your current status in your current quest&lt;br /&gt;
* /5 recharge - recharge the batteries in powered armor&lt;br /&gt;
* /5 reload - reload your firearm&lt;br /&gt;
* /5 reset - reset your meter and reload your character sheet&lt;br /&gt;
* /5 safetyoff - unsafe your firearm&lt;br /&gt;
* /5 safetyon - safe your firearm&lt;br /&gt;
* /5 sheatheboth - sheathe the melee weapons in both hands, if attached&lt;br /&gt;
* /5 sheatheleft - sheathe the melee weapon in your left hand, if attached&lt;br /&gt;
* /5 sheatheright - sheathe the melee weapon in your right hand, if attached&lt;br /&gt;
* /5 version - show the credits which includes the HUD version number and date&lt;br /&gt;
&lt;br /&gt;
== Using the Talker/Emoter ==&lt;br /&gt;
A new roleplay talker/emoter module has been integrated into the HUD to send Out Of Character (OOC) and In-Character (IC) messages, emotes, and even thinking-out-loud.&lt;br /&gt;
&lt;br /&gt;
OOC messages and&lt;br /&gt;
To send an OOC message: /22 &amp;lt;message&amp;gt;&lt;br /&gt;
  Example: (( Allen Kerensky says, &amp;quot;this is an OOC message&amp;quot; ))&lt;br /&gt;
&lt;br /&gt;
To send an OOC emote: /23 &amp;lt;emote&amp;gt;&lt;br /&gt;
  Example: (( Allen Kerensky laughs as an OOC emote ))&lt;br /&gt;
&lt;br /&gt;
To send an IC message: /44 &amp;lt;message&amp;gt;&lt;br /&gt;
  Example: Allie Reiland says, &amp;quot;this is just talking out loud&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To send an IC &amp;quot;thinking out loud&amp;quot; message: /45 &amp;lt;thinking&amp;gt;&lt;br /&gt;
  Example: Allie Reiland thinks, 'hmmm why did they say that?'&lt;br /&gt;
&lt;br /&gt;
To send an IC emote: /66 &amp;lt;emote&amp;gt;&lt;br /&gt;
  Example: Allie Reiland runs for the hills.&lt;br /&gt;
&lt;br /&gt;
To send an IC narration message: /88 &amp;lt;narration&amp;gt;&lt;br /&gt;
  Example: The computer gives out a soft beep as the security software is cracked and crashes.&lt;br /&gt;
&lt;br /&gt;
== Using the Dice Roller ==&lt;br /&gt;
I've built a simple dice roller into the HUD that sends its results as an OOC message.&lt;br /&gt;
It will show the type of roll, individual dice results, and the total of adding the dice together.&lt;br /&gt;
It does not support +/- modifiers - those can be done in your head **grin**.&lt;br /&gt;
&lt;br /&gt;
To roll X number of dice with Y sides: /5 roll XdY&lt;br /&gt;
  Example:&lt;br /&gt;
  /5 roll 3d6&lt;br /&gt;
  ((Allen Kerensky rolls 3d6 resulting in 4, 5, 2,  totalling 11.))&lt;br /&gt;
&lt;br /&gt;
== The Myriad RPG Group ==&lt;br /&gt;
Join the Myriad RPG group for announcements and discussion around the Myriad RPG and Myriad Lite scripts.&lt;br /&gt;
&lt;br /&gt;
SecondLife: secondlife:///app/group/dbedc3be-729e-a123-d669-92f401e07a1e/about&lt;br /&gt;
&lt;br /&gt;
OSgrid: secondlife:///app/group/da0227e5-8a0d-4d99-b970-9411932c852d/about&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Medieval&lt;br /&gt;
! Modern&lt;br /&gt;
! Futuristic&lt;br /&gt;
! Universal&lt;br /&gt;
|-&lt;br /&gt;
| Scripter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|-&lt;br /&gt;
| Builder&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tester&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mentor/Teacher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
== Feature Requests ==&lt;br /&gt;
If you have a feature you would like to see added to Myriad Lite, write a new feature request on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best feature requests will have:&lt;br /&gt;
  Your SL name&lt;br /&gt;
  The name, version, and date of the script you are requesting new features in&lt;br /&gt;
  A description of the feature&lt;br /&gt;
  A sample implementation of the feature in LSL compatible with OSG and SL.&lt;br /&gt;
&lt;br /&gt;
== Bug Reports ==&lt;br /&gt;
If you find a bug or something that just doesn't seem right in how the Myriad Lite script works, file a bug report on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best bug reports will have:&lt;br /&gt;
  Your OSG or SL name&lt;br /&gt;
  The name, version, and date of the script you are having problems with&lt;br /&gt;
  A description of the problem itself&lt;br /&gt;
  Steps to follow to reproduce the problem&lt;br /&gt;
&lt;br /&gt;
== Contributing to Myriad Lite ==&lt;br /&gt;
If you would like to contribute to the Myriad Lite project, please do!&lt;br /&gt;
&lt;br /&gt;
The best contributions will have:&lt;br /&gt;
  Your SL Name&lt;br /&gt;
  A description of the contribution&lt;br /&gt;
  The patch, script, file, or object being contributed&lt;br /&gt;
  A release stating: &lt;br /&gt;
  * that you intend to contribute this to Myriad Lite&lt;br /&gt;
  * that you are the original creator of the contribution or are legally empowered to contribute it&lt;br /&gt;
  * that you acknowledge this contribution can be released under the Creative Commons BY 3.0 Unported and Modified BSD (3-clause) licenses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//============================================================================&lt;br /&gt;
// Myriad Lite &lt;br /&gt;
// Copyright (c) 2012 by Allen Kerensky (OSG/SL) All Rights Reserved.&lt;br /&gt;
// This work is dual-licensed under&lt;br /&gt;
// Creative Commons Attribution (CC BY) 3.0 Unported&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
// - or -&lt;br /&gt;
// Modified BSD License (3-clause)&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without&lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
// * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
//   this list of conditions and the following disclaimer.&lt;br /&gt;
// * Redistributions in binary form must reproduce the above copyright notice,&lt;br /&gt;
//   this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
//   and/or other materials provided with the distribution.&lt;br /&gt;
// * Neither the name of Myriad Lite nor the names of its contributors may be&lt;br /&gt;
//   used to endorse or promote products derived from this software without&lt;br /&gt;
//   specific prior written permission.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR&lt;br /&gt;
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;br /&gt;
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN&lt;br /&gt;
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT&lt;br /&gt;
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;br /&gt;
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai&lt;br /&gt;
// Myriad RPG System licensed under:&lt;br /&gt;
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales&lt;br /&gt;
// http://creativecommons.org/licenses/by/2.0/uk/&lt;br /&gt;
//============================================================================&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite</id>
		<title>User:Allen Kerensky/Myriad Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite"/>
				<updated>2013-09-06T00:51:55Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: convert contributor names to user page links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&lt;br /&gt;
== What Is Myriad Lite? ==&lt;br /&gt;
Before home computers were widely available, people played role-playing games (RPGs) by sitting around a table, telling shared stories, and rolling dice to determine if their &amp;quot;character&amp;quot; in the story succeeded or failed at the actions the player wanted them to take within the story.&lt;br /&gt;
&lt;br /&gt;
Myriad Lite is a project to adapt a pen-and-paper role-playing game rulebook into [http://opensimulator.org OpenSimulator] Xengine and [http://secondlife.com SecondLife] Mono scripts, and the related 3D objects, needed to implement a pen-and-paper role-playing game in 3D virtual worlds.&lt;br /&gt;
&lt;br /&gt;
== The Myriad Universal RPG System ==&lt;br /&gt;
Myriad Lite is based on the book [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 MYRIAD: A UNIVERSAL RPG SYSTEM] by Ashok Desai, which is freely downloadable as a PDF e-book from [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 Lulu].&lt;br /&gt;
&lt;br /&gt;
You also also purchase the &amp;quot;Myriad Special Extended Edition&amp;quot; printed book from that site, which includes for additional rules, many more examples, and other information.&lt;br /&gt;
&lt;br /&gt;
I do not make any financial gain if you purchase the book, but if you would like to support the original writer, I recommend it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
RECOMMENDED!&lt;br /&gt;
It is helpful to read through the original rulebook to understand the rules and assumptions &amp;quot;behind&amp;quot; Myriad Lite, before diving into the scripts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
In Alphabetical Order:&lt;br /&gt;
* [[User:Allen Kerensky|Allen Kerensky]] (SL/OSG) - contributed the initial LSL and OSSL scripting and basic system design converting a pen and paper game into the virtual world&lt;br /&gt;
* [[User:Artemis Tesla|Artemis Tesla]] (OSG) - improved health summary report scripting&lt;br /&gt;
* Ashok Desai - contributed the original Myriad RPG System and Myriad Special Extended Edition books that started this &lt;br /&gt;
* [[User:Baroun Tardis|Baroun Tardis]] (SL/OSG) - contributed Baroun's Adventure Machine (BAM) v1 design and scripts&lt;br /&gt;
* [[User:Gimisa Cerise|Gimisa Cerise]] - (OSG) kibbitzing and moral support - asking the fundamental questions to keep me on track with some of the goals&lt;br /&gt;
* [[User:Jeanie Weston|Jeanie Weston]] (SL) - contributed Jeanie's Heart sculpty&lt;br /&gt;
* [[User:Lani Global|Lani Global]] (OSG) - contributed animations, textures sounds, bullet and armor effects design, trap design and scripting, continual testing and feedback&lt;br /&gt;
* [[User:Pete Camino|Pete Camino]] (OSG) - contributed firearms, feedback and testing&lt;br /&gt;
* [[User:Snoopy Pfeffer|Snoopy Pfeffer]] (SL/OSG) - contributed the Ixi combat sandbox region for testing&lt;br /&gt;
* [[User:Vegaslon Plutonian|Vegaslon Plutonian]] (OSG) - kibbitzing and moral support - idea sounding board - second opinions&lt;br /&gt;
* [[User:Yoshiko Fazuku|Yoshiko Fazuku]] (SL/OSG/Avi) - Contributed Food/Potion scripting&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Roadmap|Myriad Lite Roadmap]] - High-level list of milestones leading to release&lt;br /&gt;
&lt;br /&gt;
== Current and Development ==&lt;br /&gt;
=== Player Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Armor|Armor]]&lt;br /&gt;
| Registers armor attachments with HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-Preview6.lsl|Myriad_Lite_Armor_Preview6.lsl]] (v0.0.6 20120212) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-v0.0.7-20120826.lsl|Myriad_Lite_Armor-v0.0.7-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Bullet|Bullet]]&lt;br /&gt;
| Fired from firearm to trigger Ranged Combat skill checks&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Bullet-Preview6.lsl|Myriad_Lite_Bullet-Preview6.lsl]] (v0.0.5 20120811)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Firearm|Firearm]]&lt;br /&gt;
| Firearm/bow attachment to fire bullets/arrows&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Firearm-Preview6.lsl|Myriad_Lite_Firearm-Preview6.lsl]] (v1.5-20120130)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Holster|Holster]]&lt;br /&gt;
| Holster/sheath attachment to show you carry a weapon&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Holster-Preview6.lsl|Myriad_Lite_Holster-Preview6.lsl]] (v0.0.1-20120201)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite|Lite]]&lt;br /&gt;
| The core script for the Myriad Lite HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-Preview6.lsl|Myriad_Lite-Preview6.lsl]] (v0.1.10-20120809) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| Myriad Bullets Only - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.11-20120826.lsl|Myriad_Lite-v0.1.11-20120826.lsl]] &lt;br /&gt;
Collision OR Myriad Bullets - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.12-20121219.lsl|Myriad_Lite-v0.1.12-20121219.lsl]] (may be withdrawn)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Armor|Lite Module: Armor]]&lt;br /&gt;
| HUD module for Armor attachments&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl|Myriad_Lite_Module_Armor-Preview6.lsl]] (v0.0.2-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl|Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_BAM|Lite Module: BAM]]&lt;br /&gt;
| HUD module for Baroun's Adventure Machine (Quests)&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-Preview6.lsl|Myriad_Lite_Module_BAM-Preview6.lsl]] (v0.0.4-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-v0.0.5.lsl|Myriad_Lite_Module_BAM-v0.0.5-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Character_Sheet|Lite Module: Character Sheet]]&lt;br /&gt;
| HUD module to load and manage character sheet data&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-Preview6.lsl|Myriad_Lite_Module_Character_Sheet-Preview6.lsl]] (v0.0.3-20120522) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl|Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Character_Sheet|Character Sheet]]&lt;br /&gt;
| HUD notecard for character sheet information and stats&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Character_Sheet-Preview6.txt|Myriad_Lite_Character_Sheet-Preview6.txt]] (v0.0.5-20120604))&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Meter|Lite Module: Meter]]&lt;br /&gt;
| HUD module to manage the hovertext meter attachment&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-Preview6.lsl|Myriad_Lite_Module_Meter-Preview6.lsl]] (v0.0.0-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl|Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Progression|Lite Module: Progression]]&lt;br /&gt;
| HUD module to track and spend Experience Points for progress&lt;br /&gt;
| &lt;br /&gt;
| Myriad_Lite_Module_Progression-v0.0.0-20120518.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Resilience|Lite Module: Resilience]]&lt;br /&gt;
| HUD module to track resilience, wounds, and healing&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-Preview6.lsl|Myriad_Lite_Module_Resilience-Preview6.lsl]] (v0.0.1-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl|Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Rumors|Lite Module: Rumors]]&lt;br /&gt;
| HUD module for region-specific rumors&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-Preview6.lsl|Myriad_Lite_Module_Rumors-Preview6.lsl]] (v0.0.1-20120317) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl|Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Close_Combat|Lite Module: Skill Close Combat]]&lt;br /&gt;
| HUD module for Close Combat skill, hand-to-hand combat, fist fighter&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl]] (v0.0.0-20120430) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl|Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Ranged_Combat|Lite Module: Skill Ranged Combat]]&lt;br /&gt;
| HUD module for Ranged Combat skill, thrown and fired projectiles&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl]] (v0.0.1-20120511) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_WELL|Lite Module: WELL]]&lt;br /&gt;
| HUD module for World Effect Language Library, utility functions&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-Preview6.lsl|Myriad_Lite_Module_WELL-Preview6.lsl]] (v0.0.2-20120626) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl|Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Melee|Melee]]&lt;br /&gt;
| Melee weapon attachment for clubs, knives, swords, etc.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Melee-Preview6.lsl|Myriad_Lite_Melee-Preview6.lsl]] (v0.0.6-20120508)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Meter|Meter]]&lt;br /&gt;
| Hovertext meter to see character status in-world&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-Preview6.lsl|Myriad_Lite_Meter-Preview6.lsl]] (v0.0.6-20120810) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-v0.0.7-20120827.lsl|Myriad_Lite_Meter-v0.0.7-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Target|Target]]&lt;br /&gt;
| Practice dummy for close and ranged combat&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Target-Preview6.lsl|Myriad_Lite_Target-Preview6.lsl]] (v0.0.6-20120202.lsl)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Owner Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC|BAM Adventure Giver NPC]]&lt;br /&gt;
| Baroun's Adventure Machine NPC script to start quests off&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC-Preview6.lsl|BAM_Adventure_Giver_NPC-Preview6.lsl]] (v0.0.7-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal|BAM Collision Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered on collision&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal-Preview6.lsl|BAM_Collision_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal|BAM Location Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered by sensor&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal-Preview6.lsl|BAM_Location_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal|BAM Touch Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal trigger by touch&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal-Preview6.lsl|BAM_Touch_Goal-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Trap|BAM Trap]]&lt;br /&gt;
| A quest trap by [[User:Lani Global|Lani Global]]&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl|Myriad_Compatible_Trap-Preview6.lsl]] (v0.5.4-20120202)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Food_Potion|Food Potion]]&lt;br /&gt;
| Partial healing based one a one-time use edible or drinkable item by Yoshiko Fazuku&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad_Lite_Food_Potion-Preview6.lsl]] (v0.0.1-20120830)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Healing|Healing]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-Preview6.lsl|Myriad_Lite_Healing-Preview6.lsl]] (v0.0.2-20120130)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| BUG FIX: [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-v0.0.2-20120903.lsl|Myriad_Lite_Healing-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Narrator|Narrator]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Narrator-Preview6.lsl|Myriad_Lite_Narrator-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Critter_Goon|NPC Critter Goon]]&lt;br /&gt;
| Framework for Myriad simple, expendable Critters and Goons Non-Player Characters&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-Preview6.lsl|Myriad_Lite_NPC_Critter_Goon-Preview6.lsl]] (v0.0.0-20120708)&amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl|Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl]] (v0.0.1-20121227)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Specialist|NPC Specialist]]&lt;br /&gt;
| Framework for Myriad skill-specific specialist Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Detailed|NPC Detailed]]&lt;br /&gt;
| Framework for Myriad fully-detailed Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Status|Region Status]]&lt;br /&gt;
| Simple report for Myriad combat status of all players in region&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-Preview6.lsl|Myriad_Lite_Region_Status-Preview6.lsl]] (v0.0.0-20120810)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-v0.0.2-20120903.lsl|Myriad_Lite_Region_Status-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Rumor_Server|Rumor Server]]&lt;br /&gt;
| Rumor server script for serving moderated player-submitted rumors to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Rumor_Server-Preview6.lsl|Myriad_Lite_Rumor_Server-Preview6.lsl]] (v0.0.5-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Seed_Rumors|Seed Rumors]]&lt;br /&gt;
| Starting rumors notecard for &amp;quot;seeding&amp;quot; a set of rumors for the Rumor Server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Seed_Rumors-Preview6.lsl|Myriad_Lite_Seed_Rumors-Preview6.lsl]] (v0.0.0-20101108)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret|Turret]]&lt;br /&gt;
| Automated turret to track and shoot players&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret-Preview6.lsl|Myriad_Lite_Turret-Preview6.lsl]] (v0.0.1-20120807)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret_Bullet|Turret Bullet]]&lt;br /&gt;
| Modified Myriad Bullet for use inside automated Turrets and NPCs.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret_Bullet-Preview6.lsl|Myriad_Lite_Turret_Bullet-Preview6.lsl]] (v0.0.0-20120511)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Region Settings Server ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings|Region Settings]]&lt;br /&gt;
| Region settings notecard for region settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings-Preview6.lsl|Myriad_Lite_Region_Settings-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Client|Region Settings Client]]&lt;br /&gt;
| Test client script to list region settings and region setting data from Region Settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Client-Preview6.lsl|Myriad_Lite_Region_Settings_Client-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Server|Region Settings Server]]&lt;br /&gt;
| Region settings server script for serving Region Settings data to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Server-Preview6.lsl|Myriad_Lite_Region_Settings_Server-Preview6.lsl]] (v0.0.4-20120810)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater CSV Server ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Summary&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons]]&lt;br /&gt;
| Boon data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons-v0.0.0-20120326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Client]]&lt;br /&gt;
| Test client script to list boons and boon data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Server]]&lt;br /&gt;
| CSV server script for serving Boon data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Server-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment]]&lt;br /&gt;
| Equipment data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment-v0.0.1-20120424.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Client]]&lt;br /&gt;
| Test client script to list equipment and equipment data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Client-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Server]]&lt;br /&gt;
| CSV server script for serving Equipment data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws]]&lt;br /&gt;
| Flaws data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Client]]&lt;br /&gt;
| Test client script to list flaws and flaws data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Server]]&lt;br /&gt;
| CSV server script for serving Flaws data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools]]&lt;br /&gt;
| Point Pool data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools-v0.0.0-20110928.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Client]]&lt;br /&gt;
| Test client script to list Point Pools data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Server]]&lt;br /&gt;
| CSV server script for serving Point Pools data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences]]&lt;br /&gt;
| Resilience data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences-v0.0.0-20111005.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Client]]&lt;br /&gt;
| Test client script to list Resiliences data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Client-v0.0.0-20111005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Server]]&lt;br /&gt;
| CSV server script for serving Resiliences data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Server-v0.0.0-20121005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX]]&lt;br /&gt;
| Special Effect abilities data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Client]]&lt;br /&gt;
| Test client script to list SFX data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Client-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Server]]&lt;br /&gt;
| CSV server script for serving SFX data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Server-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills]]&lt;br /&gt;
| Skills data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills-v0.0.2-20120527.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Client]]&lt;br /&gt;
| Test client script to list Skills data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Client-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Server]]&lt;br /&gt;
| CSV server script for serving Skills data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics]]&lt;br /&gt;
| Statistics data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics-v0.0.0-20111001.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Client]]&lt;br /&gt;
| Test client script to list Statistics data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Server]]&lt;br /&gt;
| CSV server script for serving Statistics data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Server-v0.0.0-20111001.lsl]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
REQUIRES CSV AND TEMPLATE SERVER ABOVE TO BE SETUP FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current (Preview 6)&lt;br /&gt;
! Development&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Controller]]&lt;br /&gt;
| Starts/stops Character Creator scripts based on modes&lt;br /&gt;
| [[Myriad_Lite_Creator_Controller-v0.0.1-20120203.lsl]]&lt;br /&gt;
| Myriad_Lite_Creator_Controller-v0.0.2-20120525.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Points-Based]]&lt;br /&gt;
| Manage character creation using point pools to buy attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Points-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Random]]&lt;br /&gt;
| Manage character creation using random dice rolls for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Random-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Template]]&lt;br /&gt;
| Manage character creation using templates for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Template-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Gradual]]&lt;br /&gt;
| Manage character progress using Gradual method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Gradual-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Level-Based]]&lt;br /&gt;
| Manage character progress using Experience Point Level-based method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Level-Based-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Random]]&lt;br /&gt;
| Manage character progress using Random method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Random-v0.0.0-20120528.lsl&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Snapshot Previews ==&lt;br /&gt;
I as develop the system, I wrap up and post everything as a milestone snapshot called a Preview. Preview snapshots are archived below.&lt;br /&gt;
&lt;br /&gt;
The latest Preview Release is the recommended place to start if you are exploring the system.&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 February 2012]] - Combat and roleplaying HUD and accessories for players and region owners.&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_4 Myriad Lite Preview 4 September 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_3 Myriad Lite Preview 3 August 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_2 Myriad Lite Preview 2 June 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Preview Myriad Lite Preview 1 June 2011]&lt;br /&gt;
&lt;br /&gt;
=== Myriad Online Reference ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
U N D E R    C O N S T R U C T I O N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To provide an online reference for the rules and data, which can be used as comment links in the code, I have included the text of the original Myriad RPG system book here for reference.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Universal_RPG_System|Myriad Universal RPG System]]&lt;br /&gt;
&lt;br /&gt;
Note: Myriad Lite may include rule implementation and supporting data from the Special Extended Edition, which is not reprinted here.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite</id>
		<title>User:Allen Kerensky/Myriad Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite"/>
				<updated>2013-09-06T00:45:26Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&lt;br /&gt;
== What Is Myriad Lite? ==&lt;br /&gt;
Before home computers were widely available, people played role-playing games (RPGs) by sitting around a table, telling shared stories, and rolling dice to determine if their &amp;quot;character&amp;quot; in the story succeeded or failed at the actions the player wanted them to take within the story.&lt;br /&gt;
&lt;br /&gt;
Myriad Lite is a project to adapt a pen-and-paper role-playing game rulebook into [http://opensimulator.org OpenSimulator] Xengine and [http://secondlife.com SecondLife] Mono scripts, and the related 3D objects, needed to implement a pen-and-paper role-playing game in 3D virtual worlds.&lt;br /&gt;
&lt;br /&gt;
== The Myriad Universal RPG System ==&lt;br /&gt;
Myriad Lite is based on the book [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 MYRIAD: A UNIVERSAL RPG SYSTEM] by Ashok Desai, which is freely downloadable as a PDF e-book from [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 Lulu].&lt;br /&gt;
&lt;br /&gt;
You also also purchase the &amp;quot;Myriad Special Extended Edition&amp;quot; printed book from that site, which includes for additional rules, many more examples, and other information.&lt;br /&gt;
&lt;br /&gt;
I do not make any financial gain if you purchase the book, but if you would like to support the original writer, I recommend it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
RECOMMENDED!&lt;br /&gt;
It is helpful to read through the original rulebook to understand the rules and assumptions &amp;quot;behind&amp;quot; Myriad Lite, before diving into the scripts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
In Alphabetical Order:&lt;br /&gt;
* Allen Kerensky (SL/OSG) - contributed the initial LSL and OSSL scripting and basic system design converting a pen and paper game into the virtual world&lt;br /&gt;
* Artemis Tesla (OSG) - improved health summary report scripting&lt;br /&gt;
* Ashok Desai - contributed the original Myriad RPG System and Myriad Special Extended Edition books that started this &lt;br /&gt;
* Baroun Tardis (SL/OSG) - contributed Baroun's Adventure Machine (BAM) v1 design and scripts&lt;br /&gt;
* Gimisa Cerise - (OSG) kibbitzing and moral support - asking the fundamental questions to keep me on track with some of the goals&lt;br /&gt;
* Jeanie Weston (SL) - contributed Jeanie's Heart sculpty&lt;br /&gt;
* Lani Global (OSG) - contributed animations, textures sounds, bullet and armor effects design, trap design and scripting, continual testing and feedback&lt;br /&gt;
* Pete Camino (OSG) - contributed firearms, feedback and testing&lt;br /&gt;
* Snoopy Pfeffer (SL/OSG) - contributed the Ixi combat sandbox region for testing&lt;br /&gt;
* Vegaslon Plutonian (OSG) - kibbitzing and moral support - idea sounding board - second opinions&lt;br /&gt;
* Yoshiko Fazuku (SL/OSG/Avi) - Contributed Food/Potion scripting&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Roadmap|Myriad Lite Roadmap]] - High-level list of milestones leading to release&lt;br /&gt;
&lt;br /&gt;
== Current and Development ==&lt;br /&gt;
=== Player Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Armor|Armor]]&lt;br /&gt;
| Registers armor attachments with HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-Preview6.lsl|Myriad_Lite_Armor_Preview6.lsl]] (v0.0.6 20120212) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-v0.0.7-20120826.lsl|Myriad_Lite_Armor-v0.0.7-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Bullet|Bullet]]&lt;br /&gt;
| Fired from firearm to trigger Ranged Combat skill checks&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Bullet-Preview6.lsl|Myriad_Lite_Bullet-Preview6.lsl]] (v0.0.5 20120811)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Firearm|Firearm]]&lt;br /&gt;
| Firearm/bow attachment to fire bullets/arrows&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Firearm-Preview6.lsl|Myriad_Lite_Firearm-Preview6.lsl]] (v1.5-20120130)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Holster|Holster]]&lt;br /&gt;
| Holster/sheath attachment to show you carry a weapon&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Holster-Preview6.lsl|Myriad_Lite_Holster-Preview6.lsl]] (v0.0.1-20120201)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite|Lite]]&lt;br /&gt;
| The core script for the Myriad Lite HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-Preview6.lsl|Myriad_Lite-Preview6.lsl]] (v0.1.10-20120809) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| Myriad Bullets Only - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.11-20120826.lsl|Myriad_Lite-v0.1.11-20120826.lsl]] &lt;br /&gt;
Collision OR Myriad Bullets - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.12-20121219.lsl|Myriad_Lite-v0.1.12-20121219.lsl]] (may be withdrawn)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Armor|Lite Module: Armor]]&lt;br /&gt;
| HUD module for Armor attachments&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl|Myriad_Lite_Module_Armor-Preview6.lsl]] (v0.0.2-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl|Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_BAM|Lite Module: BAM]]&lt;br /&gt;
| HUD module for Baroun's Adventure Machine (Quests)&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-Preview6.lsl|Myriad_Lite_Module_BAM-Preview6.lsl]] (v0.0.4-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-v0.0.5.lsl|Myriad_Lite_Module_BAM-v0.0.5-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Character_Sheet|Lite Module: Character Sheet]]&lt;br /&gt;
| HUD module to load and manage character sheet data&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-Preview6.lsl|Myriad_Lite_Module_Character_Sheet-Preview6.lsl]] (v0.0.3-20120522) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl|Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Character_Sheet|Character Sheet]]&lt;br /&gt;
| HUD notecard for character sheet information and stats&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Character_Sheet-Preview6.txt|Myriad_Lite_Character_Sheet-Preview6.txt]] (v0.0.5-20120604))&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Meter|Lite Module: Meter]]&lt;br /&gt;
| HUD module to manage the hovertext meter attachment&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-Preview6.lsl|Myriad_Lite_Module_Meter-Preview6.lsl]] (v0.0.0-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl|Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Progression|Lite Module: Progression]]&lt;br /&gt;
| HUD module to track and spend Experience Points for progress&lt;br /&gt;
| &lt;br /&gt;
| Myriad_Lite_Module_Progression-v0.0.0-20120518.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Resilience|Lite Module: Resilience]]&lt;br /&gt;
| HUD module to track resilience, wounds, and healing&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-Preview6.lsl|Myriad_Lite_Module_Resilience-Preview6.lsl]] (v0.0.1-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl|Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Rumors|Lite Module: Rumors]]&lt;br /&gt;
| HUD module for region-specific rumors&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-Preview6.lsl|Myriad_Lite_Module_Rumors-Preview6.lsl]] (v0.0.1-20120317) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl|Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Close_Combat|Lite Module: Skill Close Combat]]&lt;br /&gt;
| HUD module for Close Combat skill, hand-to-hand combat, fist fighter&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl]] (v0.0.0-20120430) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl|Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Ranged_Combat|Lite Module: Skill Ranged Combat]]&lt;br /&gt;
| HUD module for Ranged Combat skill, thrown and fired projectiles&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl]] (v0.0.1-20120511) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_WELL|Lite Module: WELL]]&lt;br /&gt;
| HUD module for World Effect Language Library, utility functions&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-Preview6.lsl|Myriad_Lite_Module_WELL-Preview6.lsl]] (v0.0.2-20120626) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl|Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Melee|Melee]]&lt;br /&gt;
| Melee weapon attachment for clubs, knives, swords, etc.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Melee-Preview6.lsl|Myriad_Lite_Melee-Preview6.lsl]] (v0.0.6-20120508)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Meter|Meter]]&lt;br /&gt;
| Hovertext meter to see character status in-world&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-Preview6.lsl|Myriad_Lite_Meter-Preview6.lsl]] (v0.0.6-20120810) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-v0.0.7-20120827.lsl|Myriad_Lite_Meter-v0.0.7-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Target|Target]]&lt;br /&gt;
| Practice dummy for close and ranged combat&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Target-Preview6.lsl|Myriad_Lite_Target-Preview6.lsl]] (v0.0.6-20120202.lsl)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Owner Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC|BAM Adventure Giver NPC]]&lt;br /&gt;
| Baroun's Adventure Machine NPC script to start quests off&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC-Preview6.lsl|BAM_Adventure_Giver_NPC-Preview6.lsl]] (v0.0.7-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal|BAM Collision Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered on collision&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal-Preview6.lsl|BAM_Collision_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal|BAM Location Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered by sensor&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal-Preview6.lsl|BAM_Location_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal|BAM Touch Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal trigger by touch&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal-Preview6.lsl|BAM_Touch_Goal-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Trap|BAM Trap]]&lt;br /&gt;
| A quest trap by [[User:Lani Global|Lani Global]]&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl|Myriad_Compatible_Trap-Preview6.lsl]] (v0.5.4-20120202)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Food_Potion|Food Potion]]&lt;br /&gt;
| Partial healing based one a one-time use edible or drinkable item by Yoshiko Fazuku&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad_Lite_Food_Potion-Preview6.lsl]] (v0.0.1-20120830)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Healing|Healing]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-Preview6.lsl|Myriad_Lite_Healing-Preview6.lsl]] (v0.0.2-20120130)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| BUG FIX: [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-v0.0.2-20120903.lsl|Myriad_Lite_Healing-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Narrator|Narrator]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Narrator-Preview6.lsl|Myriad_Lite_Narrator-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Critter_Goon|NPC Critter Goon]]&lt;br /&gt;
| Framework for Myriad simple, expendable Critters and Goons Non-Player Characters&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-Preview6.lsl|Myriad_Lite_NPC_Critter_Goon-Preview6.lsl]] (v0.0.0-20120708)&amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl|Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl]] (v0.0.1-20121227)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Specialist|NPC Specialist]]&lt;br /&gt;
| Framework for Myriad skill-specific specialist Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Detailed|NPC Detailed]]&lt;br /&gt;
| Framework for Myriad fully-detailed Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Status|Region Status]]&lt;br /&gt;
| Simple report for Myriad combat status of all players in region&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-Preview6.lsl|Myriad_Lite_Region_Status-Preview6.lsl]] (v0.0.0-20120810)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-v0.0.2-20120903.lsl|Myriad_Lite_Region_Status-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Rumor_Server|Rumor Server]]&lt;br /&gt;
| Rumor server script for serving moderated player-submitted rumors to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Rumor_Server-Preview6.lsl|Myriad_Lite_Rumor_Server-Preview6.lsl]] (v0.0.5-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Seed_Rumors|Seed Rumors]]&lt;br /&gt;
| Starting rumors notecard for &amp;quot;seeding&amp;quot; a set of rumors for the Rumor Server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Seed_Rumors-Preview6.lsl|Myriad_Lite_Seed_Rumors-Preview6.lsl]] (v0.0.0-20101108)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret|Turret]]&lt;br /&gt;
| Automated turret to track and shoot players&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret-Preview6.lsl|Myriad_Lite_Turret-Preview6.lsl]] (v0.0.1-20120807)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret_Bullet|Turret Bullet]]&lt;br /&gt;
| Modified Myriad Bullet for use inside automated Turrets and NPCs.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret_Bullet-Preview6.lsl|Myriad_Lite_Turret_Bullet-Preview6.lsl]] (v0.0.0-20120511)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Region Settings Server ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings|Region Settings]]&lt;br /&gt;
| Region settings notecard for region settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings-Preview6.lsl|Myriad_Lite_Region_Settings-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Client|Region Settings Client]]&lt;br /&gt;
| Test client script to list region settings and region setting data from Region Settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Client-Preview6.lsl|Myriad_Lite_Region_Settings_Client-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Server|Region Settings Server]]&lt;br /&gt;
| Region settings server script for serving Region Settings data to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Server-Preview6.lsl|Myriad_Lite_Region_Settings_Server-Preview6.lsl]] (v0.0.4-20120810)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater CSV Server ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Summary&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons]]&lt;br /&gt;
| Boon data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons-v0.0.0-20120326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Client]]&lt;br /&gt;
| Test client script to list boons and boon data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Server]]&lt;br /&gt;
| CSV server script for serving Boon data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Server-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment]]&lt;br /&gt;
| Equipment data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment-v0.0.1-20120424.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Client]]&lt;br /&gt;
| Test client script to list equipment and equipment data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Client-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Server]]&lt;br /&gt;
| CSV server script for serving Equipment data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws]]&lt;br /&gt;
| Flaws data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Client]]&lt;br /&gt;
| Test client script to list flaws and flaws data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Server]]&lt;br /&gt;
| CSV server script for serving Flaws data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools]]&lt;br /&gt;
| Point Pool data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools-v0.0.0-20110928.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Client]]&lt;br /&gt;
| Test client script to list Point Pools data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Server]]&lt;br /&gt;
| CSV server script for serving Point Pools data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences]]&lt;br /&gt;
| Resilience data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences-v0.0.0-20111005.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Client]]&lt;br /&gt;
| Test client script to list Resiliences data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Client-v0.0.0-20111005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Server]]&lt;br /&gt;
| CSV server script for serving Resiliences data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Server-v0.0.0-20121005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX]]&lt;br /&gt;
| Special Effect abilities data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Client]]&lt;br /&gt;
| Test client script to list SFX data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Client-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Server]]&lt;br /&gt;
| CSV server script for serving SFX data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Server-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills]]&lt;br /&gt;
| Skills data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills-v0.0.2-20120527.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Client]]&lt;br /&gt;
| Test client script to list Skills data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Client-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Server]]&lt;br /&gt;
| CSV server script for serving Skills data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics]]&lt;br /&gt;
| Statistics data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics-v0.0.0-20111001.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Client]]&lt;br /&gt;
| Test client script to list Statistics data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Server]]&lt;br /&gt;
| CSV server script for serving Statistics data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Server-v0.0.0-20111001.lsl]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
REQUIRES CSV AND TEMPLATE SERVER ABOVE TO BE SETUP FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current (Preview 6)&lt;br /&gt;
! Development&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Controller]]&lt;br /&gt;
| Starts/stops Character Creator scripts based on modes&lt;br /&gt;
| [[Myriad_Lite_Creator_Controller-v0.0.1-20120203.lsl]]&lt;br /&gt;
| Myriad_Lite_Creator_Controller-v0.0.2-20120525.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Points-Based]]&lt;br /&gt;
| Manage character creation using point pools to buy attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Points-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Random]]&lt;br /&gt;
| Manage character creation using random dice rolls for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Random-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Template]]&lt;br /&gt;
| Manage character creation using templates for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Template-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Gradual]]&lt;br /&gt;
| Manage character progress using Gradual method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Gradual-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Level-Based]]&lt;br /&gt;
| Manage character progress using Experience Point Level-based method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Level-Based-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Random]]&lt;br /&gt;
| Manage character progress using Random method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Random-v0.0.0-20120528.lsl&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Snapshot Previews ==&lt;br /&gt;
I as develop the system, I wrap up and post everything as a milestone snapshot called a Preview. Preview snapshots are archived below.&lt;br /&gt;
&lt;br /&gt;
The latest Preview Release is the recommended place to start if you are exploring the system.&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 February 2012]] - Combat and roleplaying HUD and accessories for players and region owners.&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_4 Myriad Lite Preview 4 September 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_3 Myriad Lite Preview 3 August 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_2 Myriad Lite Preview 2 June 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Preview Myriad Lite Preview 1 June 2011]&lt;br /&gt;
&lt;br /&gt;
=== Myriad Online Reference ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
U N D E R    C O N S T R U C T I O N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To provide an online reference for the rules and data, which can be used as comment links in the code, I have included the text of the original Myriad RPG system book here for reference.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Universal_RPG_System|Myriad Universal RPG System]]&lt;br /&gt;
&lt;br /&gt;
Note: Myriad Lite may include rule implementation and supporting data from the Special Extended Edition, which is not reprinted here.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite</id>
		<title>User:Allen Kerensky/Myriad Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite"/>
				<updated>2013-09-06T00:41:26Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added some contributors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&lt;br /&gt;
== What Is Myriad Lite? ==&lt;br /&gt;
Before home computers were widely available, people played role-playing games (RPGs) by sitting around a table, telling shared stories, and rolling dice to determine if their &amp;quot;character&amp;quot; in the story succeeded or failed at the actions the player wanted them to take within the story.&lt;br /&gt;
&lt;br /&gt;
Myriad Lite is a project to adapt a pen-and-paper role-playing game rulebook into [http://opensimulator.org OpenSimulator] Xengine and [http://secondlife.com SecondLife] Mono scripts, and the related 3D objects, needed to implement a pen-and-paper role-playing game in 3D virtual worlds.&lt;br /&gt;
&lt;br /&gt;
== The Myriad Universal RPG System ==&lt;br /&gt;
Myriad Lite is based on the book [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 MYRIAD: A UNIVERSAL RPG SYSTEM] by Ashok Desai, which is freely downloadable as a PDF e-book from [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 Lulu].&lt;br /&gt;
&lt;br /&gt;
You also also purchase the &amp;quot;Myriad Special Extended Edition&amp;quot; printed book from that site, which includes for additional rules, many more examples, and other information.&lt;br /&gt;
&lt;br /&gt;
I do not make any financial gain if you purchase the book, but if you would like to support the original writer, I recommend it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
RECOMMENDED!&lt;br /&gt;
It is helpful to read through the original rulebook to understand the rules and assumptions &amp;quot;behind&amp;quot; Myriad Lite, before diving into the scripts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
In Alphabetical Order:&lt;br /&gt;
* Allen Kerensky (SL/OSG) - contributed the initial LSL and OSSL scripting and basic system design converting a pen and paper game into the virtual world&lt;br /&gt;
* Artemis Tesla (OSG) - improved health summary report scripting&lt;br /&gt;
* Ashok Desai - contributed the original Myriad RPG System and Myriad Special Extended Edition books that started this &lt;br /&gt;
* Baroun Tardis (SL/OSG) - contributed Baroun's Adventure Machine (BAM) v1 design and scripts&lt;br /&gt;
* Gimisa Cerise - (OSG) kibbitzing and moral support - asking the fundamental questions to keep me on track with some of the goals&lt;br /&gt;
* Jeanie Weston (SL) - contributed Jeanie's Heart sculpty&lt;br /&gt;
* Lani Global (OSG) - contributed animations, textures sounds, bullet and armor effects design, trap design and scripting, continual testing and feedback&lt;br /&gt;
* Pete Camino (OSG) - contributed firearms, feedback and testing&lt;br /&gt;
* Snoopy Pfeffer (SL/OSG) - contributed the Ixi combat sandbox region for testing&lt;br /&gt;
* Vegaslon Plutonian - kibbitzing and moral support - idea sounding board - second opinions&lt;br /&gt;
* Yoshiko Fazuku (SL/OSG/Avi) - Contributed Food/Potion scripting&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Roadmap|Myriad Lite Roadmap]] - High-level list of milestones leading to release&lt;br /&gt;
&lt;br /&gt;
== Current and Development ==&lt;br /&gt;
=== Player Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Armor|Armor]]&lt;br /&gt;
| Registers armor attachments with HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-Preview6.lsl|Myriad_Lite_Armor_Preview6.lsl]] (v0.0.6 20120212) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-v0.0.7-20120826.lsl|Myriad_Lite_Armor-v0.0.7-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Bullet|Bullet]]&lt;br /&gt;
| Fired from firearm to trigger Ranged Combat skill checks&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Bullet-Preview6.lsl|Myriad_Lite_Bullet-Preview6.lsl]] (v0.0.5 20120811)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Firearm|Firearm]]&lt;br /&gt;
| Firearm/bow attachment to fire bullets/arrows&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Firearm-Preview6.lsl|Myriad_Lite_Firearm-Preview6.lsl]] (v1.5-20120130)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Holster|Holster]]&lt;br /&gt;
| Holster/sheath attachment to show you carry a weapon&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Holster-Preview6.lsl|Myriad_Lite_Holster-Preview6.lsl]] (v0.0.1-20120201)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite|Lite]]&lt;br /&gt;
| The core script for the Myriad Lite HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-Preview6.lsl|Myriad_Lite-Preview6.lsl]] (v0.1.10-20120809) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| Myriad Bullets Only - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.11-20120826.lsl|Myriad_Lite-v0.1.11-20120826.lsl]] &lt;br /&gt;
Collision OR Myriad Bullets - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.12-20121219.lsl|Myriad_Lite-v0.1.12-20121219.lsl]] (may be withdrawn)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Armor|Lite Module: Armor]]&lt;br /&gt;
| HUD module for Armor attachments&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl|Myriad_Lite_Module_Armor-Preview6.lsl]] (v0.0.2-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl|Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_BAM|Lite Module: BAM]]&lt;br /&gt;
| HUD module for Baroun's Adventure Machine (Quests)&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-Preview6.lsl|Myriad_Lite_Module_BAM-Preview6.lsl]] (v0.0.4-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-v0.0.5.lsl|Myriad_Lite_Module_BAM-v0.0.5-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Character_Sheet|Lite Module: Character Sheet]]&lt;br /&gt;
| HUD module to load and manage character sheet data&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-Preview6.lsl|Myriad_Lite_Module_Character_Sheet-Preview6.lsl]] (v0.0.3-20120522) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl|Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Character_Sheet|Character Sheet]]&lt;br /&gt;
| HUD notecard for character sheet information and stats&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Character_Sheet-Preview6.txt|Myriad_Lite_Character_Sheet-Preview6.txt]] (v0.0.5-20120604))&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Meter|Lite Module: Meter]]&lt;br /&gt;
| HUD module to manage the hovertext meter attachment&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-Preview6.lsl|Myriad_Lite_Module_Meter-Preview6.lsl]] (v0.0.0-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl|Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Progression|Lite Module: Progression]]&lt;br /&gt;
| HUD module to track and spend Experience Points for progress&lt;br /&gt;
| &lt;br /&gt;
| Myriad_Lite_Module_Progression-v0.0.0-20120518.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Resilience|Lite Module: Resilience]]&lt;br /&gt;
| HUD module to track resilience, wounds, and healing&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-Preview6.lsl|Myriad_Lite_Module_Resilience-Preview6.lsl]] (v0.0.1-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl|Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Rumors|Lite Module: Rumors]]&lt;br /&gt;
| HUD module for region-specific rumors&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-Preview6.lsl|Myriad_Lite_Module_Rumors-Preview6.lsl]] (v0.0.1-20120317) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl|Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Close_Combat|Lite Module: Skill Close Combat]]&lt;br /&gt;
| HUD module for Close Combat skill, hand-to-hand combat, fist fighter&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl]] (v0.0.0-20120430) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl|Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Ranged_Combat|Lite Module: Skill Ranged Combat]]&lt;br /&gt;
| HUD module for Ranged Combat skill, thrown and fired projectiles&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl]] (v0.0.1-20120511) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_WELL|Lite Module: WELL]]&lt;br /&gt;
| HUD module for World Effect Language Library, utility functions&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-Preview6.lsl|Myriad_Lite_Module_WELL-Preview6.lsl]] (v0.0.2-20120626) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl|Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Melee|Melee]]&lt;br /&gt;
| Melee weapon attachment for clubs, knives, swords, etc.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Melee-Preview6.lsl|Myriad_Lite_Melee-Preview6.lsl]] (v0.0.6-20120508)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Meter|Meter]]&lt;br /&gt;
| Hovertext meter to see character status in-world&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-Preview6.lsl|Myriad_Lite_Meter-Preview6.lsl]] (v0.0.6-20120810) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-v0.0.7-20120827.lsl|Myriad_Lite_Meter-v0.0.7-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Target|Target]]&lt;br /&gt;
| Practice dummy for close and ranged combat&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Target-Preview6.lsl|Myriad_Lite_Target-Preview6.lsl]] (v0.0.6-20120202.lsl)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Owner Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC|BAM Adventure Giver NPC]]&lt;br /&gt;
| Baroun's Adventure Machine NPC script to start quests off&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC-Preview6.lsl|BAM_Adventure_Giver_NPC-Preview6.lsl]] (v0.0.7-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal|BAM Collision Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered on collision&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal-Preview6.lsl|BAM_Collision_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal|BAM Location Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered by sensor&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal-Preview6.lsl|BAM_Location_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal|BAM Touch Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal trigger by touch&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal-Preview6.lsl|BAM_Touch_Goal-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Trap|BAM Trap]]&lt;br /&gt;
| A quest trap by [[User:Lani Global|Lani Global]]&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl|Myriad_Compatible_Trap-Preview6.lsl]] (v0.5.4-20120202)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Food_Potion|Food Potion]]&lt;br /&gt;
| Partial healing based one a one-time use edible or drinkable item by Yoshiko Fazuku&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad_Lite_Food_Potion-Preview6.lsl]] (v0.0.1-20120830)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Healing|Healing]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-Preview6.lsl|Myriad_Lite_Healing-Preview6.lsl]] (v0.0.2-20120130)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| BUG FIX: [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-v0.0.2-20120903.lsl|Myriad_Lite_Healing-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Narrator|Narrator]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Narrator-Preview6.lsl|Myriad_Lite_Narrator-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Critter_Goon|NPC Critter Goon]]&lt;br /&gt;
| Framework for Myriad simple, expendable Critters and Goons Non-Player Characters&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-Preview6.lsl|Myriad_Lite_NPC_Critter_Goon-Preview6.lsl]] (v0.0.0-20120708)&amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl|Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl]] (v0.0.1-20121227)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Specialist|NPC Specialist]]&lt;br /&gt;
| Framework for Myriad skill-specific specialist Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Detailed|NPC Detailed]]&lt;br /&gt;
| Framework for Myriad fully-detailed Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Status|Region Status]]&lt;br /&gt;
| Simple report for Myriad combat status of all players in region&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-Preview6.lsl|Myriad_Lite_Region_Status-Preview6.lsl]] (v0.0.0-20120810)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-v0.0.2-20120903.lsl|Myriad_Lite_Region_Status-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Rumor_Server|Rumor Server]]&lt;br /&gt;
| Rumor server script for serving moderated player-submitted rumors to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Rumor_Server-Preview6.lsl|Myriad_Lite_Rumor_Server-Preview6.lsl]] (v0.0.5-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Seed_Rumors|Seed Rumors]]&lt;br /&gt;
| Starting rumors notecard for &amp;quot;seeding&amp;quot; a set of rumors for the Rumor Server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Seed_Rumors-Preview6.lsl|Myriad_Lite_Seed_Rumors-Preview6.lsl]] (v0.0.0-20101108)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret|Turret]]&lt;br /&gt;
| Automated turret to track and shoot players&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret-Preview6.lsl|Myriad_Lite_Turret-Preview6.lsl]] (v0.0.1-20120807)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret_Bullet|Turret Bullet]]&lt;br /&gt;
| Modified Myriad Bullet for use inside automated Turrets and NPCs.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret_Bullet-Preview6.lsl|Myriad_Lite_Turret_Bullet-Preview6.lsl]] (v0.0.0-20120511)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Region Settings Server ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings|Region Settings]]&lt;br /&gt;
| Region settings notecard for region settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings-Preview6.lsl|Myriad_Lite_Region_Settings-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Client|Region Settings Client]]&lt;br /&gt;
| Test client script to list region settings and region setting data from Region Settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Client-Preview6.lsl|Myriad_Lite_Region_Settings_Client-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Server|Region Settings Server]]&lt;br /&gt;
| Region settings server script for serving Region Settings data to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Server-Preview6.lsl|Myriad_Lite_Region_Settings_Server-Preview6.lsl]] (v0.0.4-20120810)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater CSV Server ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Summary&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons]]&lt;br /&gt;
| Boon data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons-v0.0.0-20120326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Client]]&lt;br /&gt;
| Test client script to list boons and boon data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Server]]&lt;br /&gt;
| CSV server script for serving Boon data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Server-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment]]&lt;br /&gt;
| Equipment data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment-v0.0.1-20120424.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Client]]&lt;br /&gt;
| Test client script to list equipment and equipment data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Client-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Server]]&lt;br /&gt;
| CSV server script for serving Equipment data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws]]&lt;br /&gt;
| Flaws data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Client]]&lt;br /&gt;
| Test client script to list flaws and flaws data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Server]]&lt;br /&gt;
| CSV server script for serving Flaws data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools]]&lt;br /&gt;
| Point Pool data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools-v0.0.0-20110928.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Client]]&lt;br /&gt;
| Test client script to list Point Pools data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Server]]&lt;br /&gt;
| CSV server script for serving Point Pools data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences]]&lt;br /&gt;
| Resilience data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences-v0.0.0-20111005.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Client]]&lt;br /&gt;
| Test client script to list Resiliences data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Client-v0.0.0-20111005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Server]]&lt;br /&gt;
| CSV server script for serving Resiliences data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Server-v0.0.0-20121005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX]]&lt;br /&gt;
| Special Effect abilities data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Client]]&lt;br /&gt;
| Test client script to list SFX data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Client-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Server]]&lt;br /&gt;
| CSV server script for serving SFX data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Server-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills]]&lt;br /&gt;
| Skills data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills-v0.0.2-20120527.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Client]]&lt;br /&gt;
| Test client script to list Skills data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Client-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Server]]&lt;br /&gt;
| CSV server script for serving Skills data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics]]&lt;br /&gt;
| Statistics data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics-v0.0.0-20111001.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Client]]&lt;br /&gt;
| Test client script to list Statistics data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Server]]&lt;br /&gt;
| CSV server script for serving Statistics data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Server-v0.0.0-20111001.lsl]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
REQUIRES CSV AND TEMPLATE SERVER ABOVE TO BE SETUP FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current (Preview 6)&lt;br /&gt;
! Development&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Controller]]&lt;br /&gt;
| Starts/stops Character Creator scripts based on modes&lt;br /&gt;
| [[Myriad_Lite_Creator_Controller-v0.0.1-20120203.lsl]]&lt;br /&gt;
| Myriad_Lite_Creator_Controller-v0.0.2-20120525.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Points-Based]]&lt;br /&gt;
| Manage character creation using point pools to buy attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Points-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Random]]&lt;br /&gt;
| Manage character creation using random dice rolls for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Random-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Template]]&lt;br /&gt;
| Manage character creation using templates for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Template-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Gradual]]&lt;br /&gt;
| Manage character progress using Gradual method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Gradual-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Level-Based]]&lt;br /&gt;
| Manage character progress using Experience Point Level-based method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Level-Based-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Random]]&lt;br /&gt;
| Manage character progress using Random method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Random-v0.0.0-20120528.lsl&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Snapshot Previews ==&lt;br /&gt;
I as develop the system, I wrap up and post everything as a milestone snapshot called a Preview. Preview snapshots are archived below.&lt;br /&gt;
&lt;br /&gt;
The latest Preview Release is the recommended place to start if you are exploring the system.&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 February 2012]] - Combat and roleplaying HUD and accessories for players and region owners.&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_4 Myriad Lite Preview 4 September 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_3 Myriad Lite Preview 3 August 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_2 Myriad Lite Preview 2 June 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Preview Myriad Lite Preview 1 June 2011]&lt;br /&gt;
&lt;br /&gt;
=== Myriad Online Reference ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
U N D E R    C O N S T R U C T I O N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To provide an online reference for the rules and data, which can be used as comment links in the code, I have included the text of the original Myriad RPG system book here for reference.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Universal_RPG_System|Myriad Universal RPG System]]&lt;br /&gt;
&lt;br /&gt;
Note: Myriad Lite may include rule implementation and supporting data from the Special Extended Edition, which is not reprinted here.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Dev</id>
		<title>User:Allen Kerensky/Myriad Lite Dev</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Dev"/>
				<updated>2013-07-27T19:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: MARKED AS HISTORY&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
O U T D A T E D ! &lt;br /&gt;
GO TO MAIN MYRIAD LITE PAGE INSTEAD!&lt;br /&gt;
KEPT HERE FOR HISTORICAL PURPOSES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Go to Main page: [[User:Allen_Kerensky/Myriad_Lite]]&lt;br /&gt;
&lt;br /&gt;
== HISTORICAL NOTES ==&lt;br /&gt;
This space allows me to release at-whim snapshots of various parts of the Myriad Lite development as I go, for testing and feedback by live users.&lt;br /&gt;
&lt;br /&gt;
I will change this page as needed as I put various pieces together and all changes available here will roll up in the next Preview Release.&lt;br /&gt;
&lt;br /&gt;
This page will be wiped out and started fresh each preview release.&lt;br /&gt;
&lt;br /&gt;
Scripts I post here generally compile and run on OpenSim and OSgrid, but may not have ever been ported to SecondLife.&lt;br /&gt;
&lt;br /&gt;
Scripts I post here generally are checked with lslint before posting, but might not always be.&lt;br /&gt;
&lt;br /&gt;
== FIRST ==&lt;br /&gt;
BEFORE YOU CAN USE THE SCRIPTS AND ADD-ONS ON THIS DEV PAGE&lt;br /&gt;
&lt;br /&gt;
YOU NEED TO DOWNLOAD AND ASSEMBLE&lt;br /&gt;
&lt;br /&gt;
&amp;gt; &amp;gt; &amp;gt; [[User:Allen_Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5]] &amp;lt; &amp;lt; &amp;lt; &lt;br /&gt;
&lt;br /&gt;
The dev scripts and notes below replace parts of Preview 5, but you need the rest of the system which is not fully linked below.&lt;br /&gt;
&lt;br /&gt;
== Recent Updates ==&lt;br /&gt;
=== Region CSV Server ===&lt;br /&gt;
The CSV server contains a number of tables used for the character builder in comma-separated values (CSV) format.&lt;br /&gt;
&lt;br /&gt;
The Preview 5 equipment CSV table was missing a number of Resource Point (RP) costs for items.&lt;br /&gt;
&lt;br /&gt;
I have calculated those and entered them into an updated table here:&lt;br /&gt;
&lt;br /&gt;
# Delete the Equipment v0.0.0 CSV notecard from the CSV server.&lt;br /&gt;
# Copy the updated [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Equipment-v0.0.1-20120424.csv|Myriad Lite Equipment v0.0.1 20120424]] notecard into the region CSV server.&lt;br /&gt;
# Copy the updated [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl|Myriad Lite Equipment Server v0.0.2 20120424]] notecard into the region CSV server.&lt;br /&gt;
# You should see the server load the updated equipment table.&lt;br /&gt;
# You can test the new equipment data with the Equipment Client.&lt;br /&gt;
&lt;br /&gt;
The Myriad RPG and Special Edition RPG have a curious oversight - none of the additional skills outside of Close and Ranged combat list their base statistics.&lt;br /&gt;
&lt;br /&gt;
In order to build the XP/Level, XP/Gradual, XP/Random, and full skills system, I had to make up base statistics and update the CSV, Server code, and Client to include them.&lt;br /&gt;
&lt;br /&gt;
# Copy the updated [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Skills-v0.0.2-20120527.csv|Myriad Lite Skills v0.0.2 20120527]] notecard into the region CSV server.&lt;br /&gt;
# Copy the updated [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl|Myriad Lite Skills Server v0.0.1 20120527]] notecard into the region CSV server.&lt;br /&gt;
# You should see the server load the updated equipment table.&lt;br /&gt;
# Copy the updated [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Skill_Client-v0.0.1-20120527.lsl|Myriad Lite Skill Client 0.0.1 20120527]] notecard into the Region Skills Client prim.&lt;br /&gt;
# You can test the new Skill data with the Region Skills Client.&lt;br /&gt;
&lt;br /&gt;
=== Region Settings Server ===&lt;br /&gt;
Since LSL and OSSL do not support programmatically finding the current grid or estate names, I have added an ESTATE= and ESTATEOWNER= settings to the region server.&lt;br /&gt;
&lt;br /&gt;
The ESTATE settings are starting to be used by the Character Sheet Loader module to know to offer the same character to load regardless of which region in an estate you connect to.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Region_Settings_Server-v0.0.3-20120522.lsl|Myriad Lite Region Settings Server v0.0.3 20120522]]&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Region_Settings-v0.0.2-20120522.txt|Myriad Lite Region Settings v0.0.2 20120522]]&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Region_Settings_Client-v0.0.2-20120522.lsl|Myriad Lite Region Settings Client v0.0.2 20120522]]&lt;br /&gt;
&lt;br /&gt;
=== Rumor Server ===&lt;br /&gt;
The Rumor system is intended to allow regions to offer a way for players to start anonymous, but moderated, in character rumors for all other players to find through NPCs or quests.&lt;br /&gt;
&lt;br /&gt;
The Rumor System comes in two parts - a standalone server script with a notecard of &amp;quot;starting&amp;quot; or &amp;quot;seed&amp;quot; rumors that the region admin&lt;br /&gt;
&lt;br /&gt;
The second part is a Myriad Lite HUD module that provides the interface for the player to the rumor server.&lt;br /&gt;
&lt;br /&gt;
A better interface is planned, as well as integration with NPCs and quests.&lt;br /&gt;
&lt;br /&gt;
The Rumor Server has also been upgraded from my prototype versions to allow the owner's objects (like BAM quest goals) to add pre-approved rumors.&lt;br /&gt;
&lt;br /&gt;
# Copy the Anti-Delay Manager and Node scripts from http://wiki.secondlife.com/wiki/AntiDelay_Node in your inventory&lt;br /&gt;
# Copy the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Rumor_Server-v0.0.4-20120317.lsl|Myriad Lite Rumor Server v0.0.4 20120317]] script into an inventory script&lt;br /&gt;
# Create a server prim&lt;br /&gt;
# Drop in the Anti-Delay Manager and one or more copies of the Anti-Delay Node script into the server prim&lt;br /&gt;
# Copy the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Rumor_Seeds|seed rumors]] into a notecard in your inventory&lt;br /&gt;
# Edit the seed rumor notecard to contain the starter rumors you want in your region to begin with.&lt;br /&gt;
# Drop the Seed rumors notecard into the server prim&lt;br /&gt;
# Drop the rumor server script into the rumor server prim&lt;br /&gt;
# Use the Tools Menu (v1 viewers, v2+ viewers you're on your own) to reset all scripts in the selection.&lt;br /&gt;
# The server is now ready to serve rumors.&lt;br /&gt;
&lt;br /&gt;
==== Using The Rumor System ====&lt;br /&gt;
===== Players =====&lt;br /&gt;
* /5 RUMOR_GET - get a rumor&lt;br /&gt;
* /5 RUMOR_PUT|some rumor text - add a rumor to the system, requires approval by region admin&lt;br /&gt;
===== Admins =====&lt;br /&gt;
* /5 RUMOR_MAIN - show the admin main menu&lt;br /&gt;
* /5 RUMOR_LIST - list currently active rumors&lt;br /&gt;
* /5 RUMOR_MODERATE - moderate the list of pending rumors&lt;br /&gt;
* /5 RUMOR_RESET - reset the entire rumor system back to seed rumors only&lt;br /&gt;
&lt;br /&gt;
=== Automatic Turret ===&lt;br /&gt;
To test the new Resilience module, I hacked together an automatic turrent for Myriad which automatically aims and fires at the nearest target.&lt;br /&gt;
&lt;br /&gt;
An automatic turret is useful for NPC's, defensive emplacements and such as well.&lt;br /&gt;
&lt;br /&gt;
This turret is incomplete, since it is currently indestructible.&lt;br /&gt;
&lt;br /&gt;
Future updates will include Myriad damage so you can shoot and knock them out temporarily.&lt;br /&gt;
&lt;br /&gt;
==== Myriad Turret Bullets ====&lt;br /&gt;
A small change was required to the Myriad bullets in order for the turret to work.&lt;br /&gt;
&lt;br /&gt;
# Find (or make) a no script parcel to create your bullet on.&lt;br /&gt;
# Create your bullet model with the +X (red) axis facing in the direction you want the bullet to fire&lt;br /&gt;
# Drop in a puff of smoke texture.&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Bullet_Turret-v0.0.0-20120511.lsl|Myriad Lite Bullet Turret v0.0.0 20120511]] script&lt;br /&gt;
# Edit the script to know the name of your puff of smoke texture&lt;br /&gt;
# Set the bullet physical and temporary&lt;br /&gt;
# Quickly take the bullet into inventory before the temp-on-rez flag deletes it.&lt;br /&gt;
&lt;br /&gt;
==== The Automatic Turret ====&lt;br /&gt;
# Create a weapon model.&lt;br /&gt;
# Since this weapon uses llLookAt, switch your edit tool to Local ruler and  make sure the root prim of the weapon follows these rules:&lt;br /&gt;
## Forward Axis: The +Z (blue) arrows point in the direction you want the weapon to shoot.&lt;br /&gt;
## Down Axis: The +Y (green) arrows point in the direction you want the weapon's &amp;quot;down&amp;quot; direction to be.&lt;br /&gt;
# Note: the weapon pivot point will be the center point of the model&lt;br /&gt;
# Drop in the Myriad Bullet Turret you made above&lt;br /&gt;
# Drop in a sound effect for the turret shooting&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Turret-v0.0.0-20120510.lsl|Myriad Lite Turret v0.0.0 20120510]] script&lt;br /&gt;
# Edit the script to know the name of your bullet and sound effect&lt;br /&gt;
&lt;br /&gt;
To use the turret, wear a Myriad HUD and click the turret to activate it.&lt;br /&gt;
&lt;br /&gt;
If you are in range it should face you and begin shooting.&lt;br /&gt;
&lt;br /&gt;
Click again to deactivate the turret.&lt;br /&gt;
&lt;br /&gt;
=== Baroun's Adventure Machine ===&lt;br /&gt;
New feature: Each component of Baroun's Adventure Machine now adds rumors to the region rumor server if one is present as a player progresses through a quest.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
  Myriad Lite Rumors: RUMOR ADDED FOR Allen Kerensky: Allen Kerensky has started the Red Salt Adventure&lt;br /&gt;
  Myriad Lite Rumors: RUMOR ADDED FOR Allen Kerensky: Allen Kerensky found the red salt mines.&lt;br /&gt;
  Myriad Lite Rumors: RUMOR ADDED FOR Allen Kerensky: Allen Kerensky found the red salt.&lt;br /&gt;
  Myriad Lite Rumors: RUMOR ADDED FOR Allen Kerensky: Allen Kerensky has completed Red Salt Adventure&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite_Dev/BAM_Adventure_Giver_NPC-v0.0.7-20120704.lsl|BAM Adventure Giver NPC v0.0.7 20120704]]&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite_Dev/BAM_Collision_Goal-v0.0.8-20120704.lsl|BAM Collision Goal v0.0.8 20120704]]&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite_Dev/BAM_Location_Goal-v0.0.8-20120704.lsl|BAM Location Goal v0.0.8 20120704]]&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite_Dev/BAM_Touch_Goal-v0.0.9-20120704.lsl|BAM Touch Goal v0.0.9 20120704]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Narrator ===&lt;br /&gt;
New feature: The region Narrator now adds rumors that someone visited an area to the region rumor server if one is present.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  Myriad Lite Rumors: RUMOR ADDED FOR Allen Kerensky: Allen Kerensky visited the Myriad_Central example BAM area.&lt;br /&gt;
  &lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Narrator-v0.0.9-20120704.lsl|Myriad Lite Narrator v0.0.9 20120704]]&lt;br /&gt;
&lt;br /&gt;
=== HUD Attachment ===&lt;br /&gt;
Have recoded all of the link message handling to allow all module scripts to be in the root prim again without endless reflections.&lt;br /&gt;
&lt;br /&gt;
# Copy all scripts below into a Myriad Lite/Dev folder&lt;br /&gt;
# Create a 0.250 x 0.250 x 0.250 cube&lt;br /&gt;
# Name the cube &amp;quot;Myriad Lite v0.1.6 dev&amp;quot;&lt;br /&gt;
# Set it full permissions&lt;br /&gt;
# Texture it with a Myriad logo.&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Character_Sheet-v0.0.4-20120424.txt|Myriad Lite Character Sheet v0.0.4 20120424]] notecard &lt;br /&gt;
# Drop in the [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Module_Armor-v0.0.2-20120317.lsl|Myriad Lite Module Armor v0.0.2 20120317]] script from inventory&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Module_BAM-v0.0.4-20120317.lsl|Myriad Lite Module BAM v0.0.4 20120317]] script from inventory&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Module_Character_Sheet-v0.0.2-20120513.lsl|Myriad Lite Module Character Sheet v0.0.2 20120513]] script from inventory&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Module_Resilience-v0.0.0-20120510.lsl|Myriad Lite Module Resilience v0.0.0 20120510]] script from inventory&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Module_Rumors-v0.0.1-20120317.lsl|Myriad Lite Module Rumors v0.0.1 20120317]] script from inventory&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Module_Skill_Close_Combat-v0.0.0-20120430.lsl|Myriad Lite Module Skill Close Combat v0.0.0 20120430]] script from inventory&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.1-20120511.lsl|Myriad Lite Module Skill Ranged Combat v0.0.1 20120511]] script from inventory&lt;br /&gt;
# Drop in the [[User:Allen_Kerensky/Myriad_Lite_Dev/Myriad_Lite_Module_WELL-v0.0.2-20120626.lsl|Myriad Lite Module WELL v0.0.2 20120626]] script from inventory&lt;br /&gt;
# Drop in the [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite-v0.1.9-20120704.lsl|Myriad Lite v0.1.9 20120704]] script last&lt;br /&gt;
# Set all scripts and notecards full permissions&lt;br /&gt;
# Take the new HUD into inventory&lt;br /&gt;
# Attach to HUD Lower Left from inventory&lt;br /&gt;
# Edit and Position on screen&lt;br /&gt;
# You should see your armor piece register once the character sheet it loaded.&lt;br /&gt;
# If you have a Rumor Server in the region, you should see a notice that the region supports Rumors&lt;br /&gt;
# Take the HUD back into inventory to save its position&lt;br /&gt;
&lt;br /&gt;
==== Using the new Talker/Emoter ====&lt;br /&gt;
A new roleplay talker/emoter module has been integrated into the HUD to send Out Of Character (OOC) and In-Character (IC) messages, emotes, and even thinking-out-loud.&lt;br /&gt;
&lt;br /&gt;
OOC messages and&lt;br /&gt;
To send an OOC message: /22 &amp;lt;message&amp;gt;&lt;br /&gt;
  Example: (( Allen Kerensky says, &amp;quot;this is an OOC message&amp;quot; ))&lt;br /&gt;
&lt;br /&gt;
To send an OOC emote: /23 &amp;lt;emote&amp;gt;&lt;br /&gt;
  Example: (( Allen Kerensky laughs as an OOC emote ))&lt;br /&gt;
&lt;br /&gt;
To send an IC message: /44 &amp;lt;message&amp;gt;&lt;br /&gt;
  Example: Allie Reiland says, &amp;quot;this is just talking out loud&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To send an IC &amp;quot;thinking out loud&amp;quot; message: /45 &amp;lt;thinking&amp;gt;&lt;br /&gt;
  Example: Allie Reiland thinks, 'hmmm why did they say that?'&lt;br /&gt;
&lt;br /&gt;
To send an IC emote: /66 &amp;lt;emote&amp;gt;&lt;br /&gt;
  Example: Allie Reiland runs for the hills.&lt;br /&gt;
&lt;br /&gt;
To send an IC narration message: /88 &amp;lt;narration&amp;gt;&lt;br /&gt;
  Example: The computer gives out a soft beep as the security software is cracked and crashes.&lt;br /&gt;
&lt;br /&gt;
==== Using the Dice Roller =====&lt;br /&gt;
I've built a simple dice roller into the HUD that sends its results as an OOC message.&lt;br /&gt;
It will show the type of roll, individual dice results, and the total of adding the dice together.&lt;br /&gt;
It does not support +/- modifiers - those can be done in your head **grin**.&lt;br /&gt;
&lt;br /&gt;
To roll X number of dice with Y sides: /5 roll XdY&lt;br /&gt;
  Example:&lt;br /&gt;
  /5 roll 3d6&lt;br /&gt;
  ((Allen Kerensky rolls 3d6 resulting in 4, 5, 2,  totalling 11.))&lt;br /&gt;
&lt;br /&gt;
==== Using the Character Sheet Module ====&lt;br /&gt;
I've started adding multi-character support to the character sheet module.&lt;br /&gt;
&lt;br /&gt;
When you enter a region or reset - you will get a drop down menu asking for which character you want to load.&lt;br /&gt;
&lt;br /&gt;
There is a default option to load the hardcoded character sheet by name.&lt;br /&gt;
&lt;br /&gt;
Or, you can create custom character sheet notecards by estate named:&lt;br /&gt;
  charactername@estatename&lt;br /&gt;
&lt;br /&gt;
You can have up to 11 characters per estate (plus default) to pick from the menu, because I was too lazy to code for multi-page menus.&lt;br /&gt;
&lt;br /&gt;
* If there is a region server with ESTATE= set, then the notecards named player@estate will be listed on a dropdown menu, along with a choice for default.&lt;br /&gt;
* If there is no region server in the region, then the default notecard gets loaded.&lt;br /&gt;
&lt;br /&gt;
More development to do in this space, but this should get people started.&lt;br /&gt;
&lt;br /&gt;
=== Armor Attachment ===&lt;br /&gt;
Below is a snapshot of the improved armor code I've been working on to handle power armor better and provide more hooks for armor developers to trigger their own scripted special effects on armor-related events.&lt;br /&gt;
&lt;br /&gt;
Feel free to use the discussion page to ask questions or make comments.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Armor-v0.0.6-20120212.lsl|Myriad Lite Armor v0.0.6 20120212]]&lt;br /&gt;
&lt;br /&gt;
# Copy the [[User:Allen Kerensky/Myriad_Lite_Dev/Myriad_Lite_Armor-v0.0.6-20120212.lsl|Myriad Lite Armor v0.0.6 20120212]] attachment script into inventory&lt;br /&gt;
# Create an Armor attachment, named &amp;quot;Myriad Lite Armor (attachment pointname)&amp;quot;&lt;br /&gt;
# Attach the armor object someplace visible in-world&lt;br /&gt;
# Edit and position it onscreen&lt;br /&gt;
# Drop in the Myriad Lite Armor script from inventory&lt;br /&gt;
# Detach the Armor attachment back to inventory to save its position&lt;br /&gt;
# Re-atttach it&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite</id>
		<title>User:Allen Kerensky/Myriad Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite"/>
				<updated>2013-07-27T18:29:30Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: strikeout any script replaced by dev version - people were downloading originals instead of fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&lt;br /&gt;
== What Is Myriad Lite? ==&lt;br /&gt;
Before home computers were widely available, people played role-playing games (RPGs) by sitting around a table, telling shared stories, and rolling dice to determine if their &amp;quot;character&amp;quot; in the story succeeded or failed at the actions the player wanted them to take within the story.&lt;br /&gt;
&lt;br /&gt;
Myriad Lite is a project to adapt a pen-and-paper role-playing game rulebook into [http://opensimulator.org OpenSimulator] Xengine and [http://secondlife.com SecondLife] Mono scripts, and the related 3D objects, needed to implement a pen-and-paper role-playing game in 3D virtual worlds.&lt;br /&gt;
&lt;br /&gt;
== The Myriad Universal RPG System ==&lt;br /&gt;
Myriad Lite is based on the book [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 MYRIAD: A UNIVERSAL RPG SYSTEM] by Ashok Desai, which is freely downloadable as a PDF e-book from [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 Lulu].&lt;br /&gt;
&lt;br /&gt;
You also also purchase the &amp;quot;Myriad Special Extended Edition&amp;quot; printed book from that site, which includes for additional rules, many more examples, and other information.&lt;br /&gt;
&lt;br /&gt;
I do not make any financial gain if you purchase the book, but if you would like to support the original writer, I recommend it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
RECOMMENDED!&lt;br /&gt;
It is helpful to read through the original rulebook to understand the rules and assumptions &amp;quot;behind&amp;quot; Myriad Lite, before diving into the scripts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
In Alphabetical Order:&lt;br /&gt;
* Allen Kerensky (SL/OSG) - contributed the initial LSL and OSSL scripting and basic system design converting a pen and paper game into the virtual world&lt;br /&gt;
* Artemis Tesla (OSG) - improved health summary report scripting&lt;br /&gt;
* Ashok Desai - contributed the original Myriad RPG System and Myriad Special Extended Edition books that started this &lt;br /&gt;
* Baroun Tardis (SL/OSG) - contributed Baroun's Adventure Machine (BAM) v1 design and scripts&lt;br /&gt;
* Jeanie Weston (SL) - contributed Jeanie's Heart sculpty&lt;br /&gt;
* Lani Global (OSG) - contributed animations, textures sounds, bullet and armor effects design, trap design and scripting, continual testing and feedback&lt;br /&gt;
* Pete Camino (OSG) - contributed firearms, feedback and testing&lt;br /&gt;
* Snoopy Pfeffer (SL/OSG) - contributed the Ixi combat sandbox region for testing&lt;br /&gt;
* Yoshiko Fazuku (SL/OSG/Avi) - Contributed Food/Potion scripting&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Roadmap|Myriad Lite Roadmap]] - High-level list of milestones leading to release&lt;br /&gt;
&lt;br /&gt;
== Current and Development ==&lt;br /&gt;
=== Player Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Armor|Armor]]&lt;br /&gt;
| Registers armor attachments with HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-Preview6.lsl|Myriad_Lite_Armor_Preview6.lsl]] (v0.0.6 20120212) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-v0.0.7-20120826.lsl|Myriad_Lite_Armor-v0.0.7-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Bullet|Bullet]]&lt;br /&gt;
| Fired from firearm to trigger Ranged Combat skill checks&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Bullet-Preview6.lsl|Myriad_Lite_Bullet-Preview6.lsl]] (v0.0.5 20120811)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Firearm|Firearm]]&lt;br /&gt;
| Firearm/bow attachment to fire bullets/arrows&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Firearm-Preview6.lsl|Myriad_Lite_Firearm-Preview6.lsl]] (v1.5-20120130)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Holster|Holster]]&lt;br /&gt;
| Holster/sheath attachment to show you carry a weapon&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Holster-Preview6.lsl|Myriad_Lite_Holster-Preview6.lsl]] (v0.0.1-20120201)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite|Lite]]&lt;br /&gt;
| The core script for the Myriad Lite HUD&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-Preview6.lsl|Myriad_Lite-Preview6.lsl]] (v0.1.10-20120809) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| Myriad Bullets Only - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.11-20120826.lsl|Myriad_Lite-v0.1.11-20120826.lsl]] &lt;br /&gt;
Collision OR Myriad Bullets - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.12-20121219.lsl|Myriad_Lite-v0.1.12-20121219.lsl]] (may be withdrawn)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Armor|Lite Module: Armor]]&lt;br /&gt;
| HUD module for Armor attachments&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl|Myriad_Lite_Module_Armor-Preview6.lsl]] (v0.0.2-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl|Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_BAM|Lite Module: BAM]]&lt;br /&gt;
| HUD module for Baroun's Adventure Machine (Quests)&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-Preview6.lsl|Myriad_Lite_Module_BAM-Preview6.lsl]] (v0.0.4-20120317) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-v0.0.5.lsl|Myriad_Lite_Module_BAM-v0.0.5-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Character_Sheet|Lite Module: Character Sheet]]&lt;br /&gt;
| HUD module to load and manage character sheet data&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-Preview6.lsl|Myriad_Lite_Module_Character_Sheet-Preview6.lsl]] (v0.0.3-20120522) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl|Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Character_Sheet|Character Sheet]]&lt;br /&gt;
| HUD notecard for character sheet information and stats&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Character_Sheet-Preview6.txt|Myriad_Lite_Character_Sheet-Preview6.txt]] (v0.0.5-20120604))&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Meter|Lite Module: Meter]]&lt;br /&gt;
| HUD module to manage the hovertext meter attachment&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-Preview6.lsl|Myriad_Lite_Module_Meter-Preview6.lsl]] (v0.0.0-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl|Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Progression|Lite Module: Progression]]&lt;br /&gt;
| HUD module to track and spend Experience Points for progress&lt;br /&gt;
| &lt;br /&gt;
| Myriad_Lite_Module_Progression-v0.0.0-20120518.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Resilience|Lite Module: Resilience]]&lt;br /&gt;
| HUD module to track resilience, wounds, and healing&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-Preview6.lsl|Myriad_Lite_Module_Resilience-Preview6.lsl]] (v0.0.1-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl|Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Rumors|Lite Module: Rumors]]&lt;br /&gt;
| HUD module for region-specific rumors&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-Preview6.lsl|Myriad_Lite_Module_Rumors-Preview6.lsl]] (v0.0.1-20120317) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl|Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Close_Combat|Lite Module: Skill Close Combat]]&lt;br /&gt;
| HUD module for Close Combat skill, hand-to-hand combat, fist fighter&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl]] (v0.0.0-20120430) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl|Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Ranged_Combat|Lite Module: Skill Ranged Combat]]&lt;br /&gt;
| HUD module for Ranged Combat skill, thrown and fired projectiles&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl]] (v0.0.1-20120511) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_WELL|Lite Module: WELL]]&lt;br /&gt;
| HUD module for World Effect Language Library, utility functions&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-Preview6.lsl|Myriad_Lite_Module_WELL-Preview6.lsl]] (v0.0.2-20120626) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl|Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Melee|Melee]]&lt;br /&gt;
| Melee weapon attachment for clubs, knives, swords, etc.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Melee-Preview6.lsl|Myriad_Lite_Melee-Preview6.lsl]] (v0.0.6-20120508)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Meter|Meter]]&lt;br /&gt;
| Hovertext meter to see character status in-world&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-Preview6.lsl|Myriad_Lite_Meter-Preview6.lsl]] (v0.0.6-20120810) &amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-v0.0.7-20120827.lsl|Myriad_Lite_Meter-v0.0.7-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Target|Target]]&lt;br /&gt;
| Practice dummy for close and ranged combat&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Target-Preview6.lsl|Myriad_Lite_Target-Preview6.lsl]] (v0.0.6-20120202.lsl)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Owner Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC|BAM Adventure Giver NPC]]&lt;br /&gt;
| Baroun's Adventure Machine NPC script to start quests off&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC-Preview6.lsl|BAM_Adventure_Giver_NPC-Preview6.lsl]] (v0.0.7-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal|BAM Collision Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered on collision&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal-Preview6.lsl|BAM_Collision_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal|BAM Location Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered by sensor&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal-Preview6.lsl|BAM_Location_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal|BAM Touch Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal trigger by touch&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal-Preview6.lsl|BAM_Touch_Goal-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Trap|BAM Trap]]&lt;br /&gt;
| A quest trap by [[User:Lani Global|Lani Global]]&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl|Myriad_Compatible_Trap-Preview6.lsl]] (v0.5.4-20120202)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Food_Potion|Food Potion]]&lt;br /&gt;
| Partial healing based one a one-time use edible or drinkable item by Yoshiko Fazuku&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad_Lite_Food_Potion-Preview6.lsl]] (v0.0.1-20120830)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Healing|Healing]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-Preview6.lsl|Myriad_Lite_Healing-Preview6.lsl]] (v0.0.2-20120130)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| BUG FIX: [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-v0.0.2-20120903.lsl|Myriad_Lite_Healing-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Narrator|Narrator]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Narrator-Preview6.lsl|Myriad_Lite_Narrator-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Critter_Goon|NPC Critter Goon]]&lt;br /&gt;
| Framework for Myriad simple, expendable Critters and Goons Non-Player Characters&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-Preview6.lsl|Myriad_Lite_NPC_Critter_Goon-Preview6.lsl]] (v0.0.0-20120708)&amp;lt;/strike&amp;gt; &lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl|Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl]] (v0.0.1-20121227)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Specialist|NPC Specialist]]&lt;br /&gt;
| Framework for Myriad skill-specific specialist Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Detailed|NPC Detailed]]&lt;br /&gt;
| Framework for Myriad fully-detailed Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Status|Region Status]]&lt;br /&gt;
| Simple report for Myriad combat status of all players in region&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-Preview6.lsl|Myriad_Lite_Region_Status-Preview6.lsl]] (v0.0.0-20120810)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-v0.0.2-20120903.lsl|Myriad_Lite_Region_Status-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Rumor_Server|Rumor Server]]&lt;br /&gt;
| Rumor server script for serving moderated player-submitted rumors to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Rumor_Server-Preview6.lsl|Myriad_Lite_Rumor_Server-Preview6.lsl]] (v0.0.5-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Seed_Rumors|Seed Rumors]]&lt;br /&gt;
| Starting rumors notecard for &amp;quot;seeding&amp;quot; a set of rumors for the Rumor Server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Seed_Rumors-Preview6.lsl|Myriad_Lite_Seed_Rumors-Preview6.lsl]] (v0.0.0-20101108)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret|Turret]]&lt;br /&gt;
| Automated turret to track and shoot players&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret-Preview6.lsl|Myriad_Lite_Turret-Preview6.lsl]] (v0.0.1-20120807)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret_Bullet|Turret Bullet]]&lt;br /&gt;
| Modified Myriad Bullet for use inside automated Turrets and NPCs.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret_Bullet-Preview6.lsl|Myriad_Lite_Turret_Bullet-Preview6.lsl]] (v0.0.0-20120511)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Region Settings Server ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings|Region Settings]]&lt;br /&gt;
| Region settings notecard for region settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings-Preview6.lsl|Myriad_Lite_Region_Settings-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Client|Region Settings Client]]&lt;br /&gt;
| Test client script to list region settings and region setting data from Region Settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Client-Preview6.lsl|Myriad_Lite_Region_Settings_Client-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Server|Region Settings Server]]&lt;br /&gt;
| Region settings server script for serving Region Settings data to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Server-Preview6.lsl|Myriad_Lite_Region_Settings_Server-Preview6.lsl]] (v0.0.4-20120810)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater CSV Server ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Summary&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons]]&lt;br /&gt;
| Boon data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons-v0.0.0-20120326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Client]]&lt;br /&gt;
| Test client script to list boons and boon data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Server]]&lt;br /&gt;
| CSV server script for serving Boon data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Server-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment]]&lt;br /&gt;
| Equipment data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment-v0.0.1-20120424.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Client]]&lt;br /&gt;
| Test client script to list equipment and equipment data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Client-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Server]]&lt;br /&gt;
| CSV server script for serving Equipment data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws]]&lt;br /&gt;
| Flaws data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Client]]&lt;br /&gt;
| Test client script to list flaws and flaws data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Server]]&lt;br /&gt;
| CSV server script for serving Flaws data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools]]&lt;br /&gt;
| Point Pool data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools-v0.0.0-20110928.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Client]]&lt;br /&gt;
| Test client script to list Point Pools data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Server]]&lt;br /&gt;
| CSV server script for serving Point Pools data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences]]&lt;br /&gt;
| Resilience data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences-v0.0.0-20111005.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Client]]&lt;br /&gt;
| Test client script to list Resiliences data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Client-v0.0.0-20111005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Server]]&lt;br /&gt;
| CSV server script for serving Resiliences data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Server-v0.0.0-20121005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX]]&lt;br /&gt;
| Special Effect abilities data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Client]]&lt;br /&gt;
| Test client script to list SFX data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Client-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Server]]&lt;br /&gt;
| CSV server script for serving SFX data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Server-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills]]&lt;br /&gt;
| Skills data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills-v0.0.2-20120527.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Client]]&lt;br /&gt;
| Test client script to list Skills data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Client-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Server]]&lt;br /&gt;
| CSV server script for serving Skills data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics]]&lt;br /&gt;
| Statistics data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics-v0.0.0-20111001.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Client]]&lt;br /&gt;
| Test client script to list Statistics data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Server]]&lt;br /&gt;
| CSV server script for serving Statistics data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Server-v0.0.0-20111001.lsl]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
REQUIRES CSV AND TEMPLATE SERVER ABOVE TO BE SETUP FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current (Preview 6)&lt;br /&gt;
! Development&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Controller]]&lt;br /&gt;
| Starts/stops Character Creator scripts based on modes&lt;br /&gt;
| [[Myriad_Lite_Creator_Controller-v0.0.1-20120203.lsl]]&lt;br /&gt;
| Myriad_Lite_Creator_Controller-v0.0.2-20120525.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Points-Based]]&lt;br /&gt;
| Manage character creation using point pools to buy attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Points-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Random]]&lt;br /&gt;
| Manage character creation using random dice rolls for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Random-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Template]]&lt;br /&gt;
| Manage character creation using templates for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Template-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Gradual]]&lt;br /&gt;
| Manage character progress using Gradual method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Gradual-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Level-Based]]&lt;br /&gt;
| Manage character progress using Experience Point Level-based method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Level-Based-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Random]]&lt;br /&gt;
| Manage character progress using Random method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Random-v0.0.0-20120528.lsl&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Snapshot Previews ==&lt;br /&gt;
I as develop the system, I wrap up and post everything as a milestone snapshot called a Preview. Preview snapshots are archived below.&lt;br /&gt;
&lt;br /&gt;
The latest Preview Release is the recommended place to start if you are exploring the system.&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 February 2012]] - Combat and roleplaying HUD and accessories for players and region owners.&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_4 Myriad Lite Preview 4 September 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_3 Myriad Lite Preview 3 August 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_2 Myriad Lite Preview 2 June 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Preview Myriad Lite Preview 1 June 2011]&lt;br /&gt;
&lt;br /&gt;
=== Myriad Online Reference ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
U N D E R    C O N S T R U C T I O N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To provide an online reference for the rules and data, which can be used as comment links in the code, I have included the text of the original Myriad RPG system book here for reference.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Universal_RPG_System|Myriad Universal RPG System]]&lt;br /&gt;
&lt;br /&gt;
Note: Myriad Lite may include rule implementation and supporting data from the Special Extended Edition, which is not reprinted here.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl</id>
		<title>User:Allen Kerensky/Myriad Lite/Myriad Lite Module Armor-Preview6.lsl</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl"/>
				<updated>2013-07-27T18:20:01Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: fixed a stupid FLAG_DEBUG = TRUE I had left in the setup - generates spammy nonsense by default which annoys me&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad_Lite_Module_Armor-Preview6.lsl =&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
// Myriad_Lite_Module_Armor-Preview6.lsl &lt;br /&gt;
// Copyright (c) 2012 by Allen Kerensky (OSG/SL) All Rights Reserved.&lt;br /&gt;
// This work is dual-licensed under&lt;br /&gt;
// Creative Commons Attribution (CC BY) 3.0 Unported&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
// - or -&lt;br /&gt;
// Modified BSD License (3-clause)&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without&lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
// * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
//   this list of conditions and the following disclaimer.&lt;br /&gt;
// * Redistributions in binary form must reproduce the above copyright notice,&lt;br /&gt;
//   this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
//   and/or other materials provided with the distribution.&lt;br /&gt;
// * Neither the name of Myriad Lite nor the names of its contributors may be&lt;br /&gt;
//   used to endorse or promote products derived from this software without&lt;br /&gt;
//   specific prior written permission.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR&lt;br /&gt;
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;br /&gt;
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN&lt;br /&gt;
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT&lt;br /&gt;
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;br /&gt;
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai&lt;br /&gt;
// Myriad RPG System licensed under:&lt;br /&gt;
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales&lt;br /&gt;
// http://creativecommons.org/licenses/by/2.0/uk/&lt;br /&gt;
&lt;br /&gt;
string VERSION = &amp;quot;0.0.2&amp;quot;;&lt;br /&gt;
string VERDATE = &amp;quot;20120317&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
integer FLAG_DEBUG; // configure in setup&lt;br /&gt;
&lt;br /&gt;
key PLAYERID = NULL_KEY; // cached player UUID&lt;br /&gt;
&lt;br /&gt;
integer MINATTACH = 1; // min valid attach point&lt;br /&gt;
integer MAXWEAR = 30; // max valid in-world wearable attach point&lt;br /&gt;
integer MINARMOR = 1; // min armor defense value&lt;br /&gt;
integer MAXARMOR = 5; // max armor defense value&lt;br /&gt;
integer CURARMOR = 0; // highest armor value worn out of all armor worn, not a total&lt;br /&gt;
&lt;br /&gt;
list ARMOR = [];&lt;br /&gt;
list ARMORPOWER = [];&lt;br /&gt;
integer POWERARMOR;&lt;br /&gt;
integer BATTERY;&lt;br /&gt;
integer MAXBATTERY;&lt;br /&gt;
integer MAXEFFECTTIME = 3; // maximum time to show armor hit/blocked effects&lt;br /&gt;
integer EFFECTTIME; // how much time is left to show armor effects&lt;br /&gt;
integer ARMOR_ON; // is armor &amp;quot;on&amp;quot; and protecting?&lt;br /&gt;
&lt;br /&gt;
// string names for each attach point - waste of memory?&lt;br /&gt;
list ATTACHPOINTS = [&amp;quot;INVALID&amp;quot;,&amp;quot;chest&amp;quot;,&amp;quot;head&amp;quot;,&amp;quot;left shoulder&amp;quot;,&amp;quot;right shoulder&amp;quot;,&amp;quot;left hand&amp;quot;,&amp;quot;right hand&amp;quot;,&amp;quot;left foot&amp;quot;,&amp;quot;right foot&amp;quot;,&amp;quot;back&amp;quot;,&amp;quot;pelvis&amp;quot;,&amp;quot;mouth&amp;quot;,&amp;quot;chin&amp;quot;,&amp;quot;left ear&amp;quot;,&amp;quot;right ear&amp;quot;,&amp;quot;left eye&amp;quot;,&amp;quot;right eye&amp;quot;,&amp;quot;nose&amp;quot;,&amp;quot;right upper arm&amp;quot;,&amp;quot;right lower arm&amp;quot;,&amp;quot;left upper arm&amp;quot;,&amp;quot;left lower arm&amp;quot;,&amp;quot;right hip&amp;quot;,&amp;quot;right upper leg&amp;quot;,&amp;quot;right lower leg&amp;quot;,&amp;quot;left hip&amp;quot;,&amp;quot;left upper leg&amp;quot;,&amp;quot;left lower leg&amp;quot;,&amp;quot;stomach&amp;quot;,&amp;quot;left pectoral&amp;quot;,&amp;quot;right pectoral&amp;quot;,&amp;quot;HUD Center 2&amp;quot;,&amp;quot;HUD Top Right&amp;quot;,&amp;quot;HUD Top&amp;quot;,&amp;quot;HUD Top Left&amp;quot;,&amp;quot;HUD Center&amp;quot;,&amp;quot;HUD Bottom Left&amp;quot;,&amp;quot;HUD Bottom&amp;quot;,&amp;quot;HUD Bottom Right&amp;quot; ];&lt;br /&gt;
&lt;br /&gt;
// Module to Module Messaging Constants&lt;br /&gt;
//integer MODULE_HUD = -1;&lt;br /&gt;
//integer MODULE_CHARSHEET = -2;&lt;br /&gt;
integer MODULE_ARMOR = -3;&lt;br /&gt;
//integer MODULE_BAM = -4;&lt;br /&gt;
//integer MODULE_RUMORS = -5;&lt;br /&gt;
integer LM_SENDTOATTACHMENT = 0x80000000;&lt;br /&gt;
string DIV = &amp;quot;|&amp;quot;; // message divider&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// SETUP - begin&lt;br /&gt;
//============================================================================&lt;br /&gt;
SETUP() {&lt;br /&gt;
    FLAG_DEBUG = FALSE; // do we want debug messages&lt;br /&gt;
    ARMOR_ON = FALSE; // is armor &amp;quot;on&amp;quot; and protecting? off by default to save battery&lt;br /&gt;
    BATTERY = 3600; // start with charged battery FIXME how to save state from wear to wear&lt;br /&gt;
    MAXBATTERY = 3600; // total battery capacity when fully charged - in seconds&lt;br /&gt;
    PLAYERID = llGetOwner(); // remember the owner's UUID&lt;br /&gt;
    integer attachpoints = MAXWEAR; // counting from 0 to 30&lt;br /&gt;
    while ( attachpoints-- ) {&lt;br /&gt;
        ARMOR = ARMOR + [0]; // create 30 empty armor slots - avoids SL stack depth error and LSLINT warning&lt;br /&gt;
        ARMORPOWER = ARMORPOWER + [FALSE]; // create 30 empty power armor flags - avoid SL stack depth and LSLINT warning&lt;br /&gt;
    }&lt;br /&gt;
    llSetTimerEvent(0.0); // stop any running timer&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// RESET - shut down running animations then reset the script to reload character sheet&lt;br /&gt;
//============================================================================&lt;br /&gt;
RESET() {&lt;br /&gt;
    llResetScript(); // now reset&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// DEBUG - show errors on debug channel with wearer name for sorting&lt;br /&gt;
//============================================================================&lt;br /&gt;
DEBUG(string dmessage) {&lt;br /&gt;
    if ( FLAG_DEBUG == TRUE ) llSay(DEBUG_CHANNEL,&amp;quot;(&amp;quot;+llKey2Name(PLAYERID)+&amp;quot;) MOD ARMOR: &amp;quot;+dmessage);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// ERROR - show errors on debug channel with wearer name for sorting&lt;br /&gt;
//============================================================================&lt;br /&gt;
ERROR(string emessage) {&lt;br /&gt;
    llSay(DEBUG_CHANNEL,&amp;quot;ERROR (&amp;quot;+llKey2Name(PLAYERID)+&amp;quot;): &amp;quot;+emessage);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// GETVERSION&lt;br /&gt;
//============================================================================&lt;br /&gt;
GETVERSION() {&lt;br /&gt;
    SENDTOHUD(&amp;quot;VERSION=&amp;quot;+VERSION+DIV+&amp;quot;VERSIONDATE=&amp;quot;+VERDATE+DIV+llGetObjectName());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// SENDTOHUD - send reponses to HUD as Link Messages&lt;br /&gt;
//============================================================================&lt;br /&gt;
SENDTOHUD(string str) {&lt;br /&gt;
    DEBUG(&amp;quot;SENDTOHUD(&amp;quot;+str+&amp;quot;)&amp;quot;);&lt;br /&gt;
    llMessageLinked(LINK_THIS,LM_SENDTOATTACHMENT,str,PLAYERID);    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// WEARARMOR - Wearing a piece of armor&lt;br /&gt;
//============================================================================&lt;br /&gt;
WEARARMOR(integer waattachpoint,integer waamount,integer wapower,string waname) {&lt;br /&gt;
    DEBUG(&amp;quot;ATTACH Attachpoint=[&amp;quot;+(string)waattachpoint+&amp;quot;] Amount=[&amp;quot;+(string)waamount+&amp;quot;] Power=[&amp;quot;+(string)wapower+&amp;quot;] Name=[&amp;quot;+waname+&amp;quot;]&amp;quot;);&lt;br /&gt;
    if ( waattachpoint &amp;lt; MINATTACH || waattachpoint &amp;gt; MAXWEAR ) { // valid attach point?&lt;br /&gt;
        ERROR(&amp;quot;Invalid armor attachment point &amp;quot;+llList2String(ATTACHPOINTS,waattachpoint));&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    if ( waamount &amp;lt; MINARMOR || waamount &amp;gt; MAXARMOR ) { // is armor rating valid or legal?&lt;br /&gt;
        ERROR(&amp;quot;Invalid armor amount &amp;quot;+(string)waamount+&amp;quot; out of range &amp;quot;+(string)MINARMOR+&amp;quot;-&amp;quot;+(string)MAXARMOR);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    if ( wapower != TRUE &amp;amp;&amp;amp; wapower != FALSE ) {&lt;br /&gt;
        ERROR(&amp;quot;Cannot determine if worn armor is power armor.&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    // FIXME move ARMOR and POWERARMOR into single list?&lt;br /&gt;
    ARMORPOWER = llListReplaceList(ARMORPOWER,[wapower],waattachpoint,waattachpoint); // insert armor value into armor list&lt;br /&gt;
    // FIXME move ARMOR to 3-element strided list? [attachpoint,value,name?]&lt;br /&gt;
    ARMOR = llListReplaceList(ARMOR,[waamount],waattachpoint,waattachpoint); // insert armor value into armor list&lt;br /&gt;
    llOwnerSay(&amp;quot;Armor &amp;quot;+waname+&amp;quot; (&amp;quot;+(string)waamount+&amp;quot;) attached to &amp;quot;+llList2String(ATTACHPOINTS,waattachpoint));&lt;br /&gt;
    RECALCULATE_ARMOR(); // find new highest armor value&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// REMOVEARMOR - Removing a piece of armor&lt;br /&gt;
//============================================================================&lt;br /&gt;
REMOVEARMOR(integer raattachpoint,integer raamount,integer rapower,string raname) {&lt;br /&gt;
    DEBUG(&amp;quot;DETACH Attachpoint=[&amp;quot;+(string)raattachpoint+&amp;quot;] Amount=[&amp;quot;+(string)raamount+&amp;quot;] Power=[&amp;quot;+(string)rapower+&amp;quot;] Name=[&amp;quot;+raname+&amp;quot;]&amp;quot;);&lt;br /&gt;
    if ( raattachpoint &amp;lt; MINATTACH || raattachpoint &amp;gt; MAXWEAR ) { // valid attach point?&lt;br /&gt;
        ERROR(&amp;quot;Invalid armor detachment point &amp;quot;+llList2String(ATTACHPOINTS,raattachpoint));&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    if ( raamount &amp;lt; MINARMOR || raamount &amp;gt; MAXARMOR ) { // is armor rating valid or legal?&lt;br /&gt;
        ERROR(&amp;quot;Invalid armor amount &amp;quot;+(string)raamount+&amp;quot; out of range &amp;quot;+(string)MINARMOR+&amp;quot;-&amp;quot;+(string)MAXARMOR);&lt;br /&gt;
        return;&lt;br /&gt;
    }    &lt;br /&gt;
    if ( rapower != TRUE &amp;amp;&amp;amp; rapower != FALSE ) {&lt;br /&gt;
        ERROR(&amp;quot;Cannot determine if detached armor is power armor.&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    // FIXME move ARMOR and POWERARMOR into single list?&lt;br /&gt;
    ARMORPOWER = llListReplaceList(ARMORPOWER,[FALSE],raattachpoint,raattachpoint); // insert armor value into armor list&lt;br /&gt;
    // FIXME move ARMOR to 3-element strided list? [attachpoint,value,name?]&lt;br /&gt;
    ARMOR = llListReplaceList(ARMOR,[0],raattachpoint,raattachpoint); // zero out the armor value in armor list&lt;br /&gt;
    llOwnerSay(&amp;quot;Armor &amp;quot;+raname+&amp;quot; (&amp;quot;+(string)raamount+&amp;quot;) detached from &amp;quot;+llList2String(ATTACHPOINTS,raattachpoint));&lt;br /&gt;
    RECALCULATE_ARMOR(); // find new highest armor value&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// RECALCULATE_ARMOR - sets CURARMOR to highest armor value worn after attach or detach&lt;br /&gt;
//============================================================================&lt;br /&gt;
RECALCULATE_ARMOR() {&lt;br /&gt;
    CURARMOR = 0; // start with zero armor&lt;br /&gt;
    POWERARMOR = FALSE;&lt;br /&gt;
    integer racount = llGetListLength(ARMOR); // how long is armor list?&lt;br /&gt;
    while (racount--) { // look at each list item from last to first&lt;br /&gt;
        integer rapoints = llList2Integer(ARMOR,racount); // what is armor value at this point in list?&lt;br /&gt;
        integer pa = llList2Integer(ARMORPOWER,racount);&lt;br /&gt;
        if ( pa == FALSE ) { // not power armor in this slot, so do check regardless of power state&lt;br /&gt;
            if ( rapoints &amp;gt; CURARMOR ) { // is this armor value higher than current max?&lt;br /&gt;
                CURARMOR = rapoints; // yes, save new highest amount&lt;br /&gt;
            }&lt;br /&gt;
        } else { // this is power armor in this slot.&lt;br /&gt;
            POWERARMOR = TRUE;&lt;br /&gt;
            if ( ARMOR_ON == TRUE &amp;amp;&amp;amp; BATTERY &amp;gt; 0 &amp;amp;&amp;amp; rapoints &amp;gt; CURARMOR ) {&lt;br /&gt;
                CURARMOR = rapoints; // yes armor is on, has power, and current value is higher, save new highest amount&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if ( POWERARMOR == TRUE ) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Power Armor Rating is &amp;quot;+(string)CURARMOR);&lt;br /&gt;
    } else {&lt;br /&gt;
        llOwnerSay(&amp;quot;Non-Power Armor Rating is &amp;quot;+(string)CURARMOR);&lt;br /&gt;
    }&lt;br /&gt;
    SENDTOHUD(&amp;quot;ARMORCURRENT|&amp;quot;+(string)CURARMOR);&lt;br /&gt;
    // FIXME tell world too?&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// ARMOR ON&lt;br /&gt;
//============================================================================&lt;br /&gt;
ARMORON() {&lt;br /&gt;
    //llWhisper(CHANATTACH,&amp;quot;ARMORON&amp;quot;); // tell attachment to do some inworld special effect if needed&lt;br /&gt;
    if ( BATTERY &amp;lt;= 0 &amp;amp;&amp;amp; POWERARMOR == TRUE ) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Power armor out of power. Recharge.&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    if ( POWERARMOR == TRUE ) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Power armor activating.&amp;quot;);&lt;br /&gt;
        ARMOR_ON = TRUE;&lt;br /&gt;
        SENDTOHUD(&amp;quot;ARMORON&amp;quot;);&lt;br /&gt;
        llSetTimerEvent(1.0); // run a battery drain timer, battery already checked &amp;gt; 0    &lt;br /&gt;
    }&lt;br /&gt;
    RECALCULATE_ARMOR();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// ARMOROFF&lt;br /&gt;
//============================================================================&lt;br /&gt;
ARMOROFF() {&lt;br /&gt;
    //llWhisper(CHANATTACH,&amp;quot;ARMOROFF&amp;quot;); // tell attachments to do some inworld special effects if needed&lt;br /&gt;
    if ( POWERARMOR == TRUE ) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Power armor deactivated.&amp;quot;);&lt;br /&gt;
        ARMOR_ON = FALSE;&lt;br /&gt;
        SENDTOHUD(&amp;quot;ARMOROFF&amp;quot;);&lt;br /&gt;
        llSetTimerEvent(0.0); // stop battery drain timer - FIXME does this kill effect timers?&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    RECALCULATE_ARMOR();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// CHECKBATTERY&lt;br /&gt;
//============================================================================&lt;br /&gt;
CHECKBATTERY() {&lt;br /&gt;
    //llWhisper(CHANATTACH,&amp;quot;ARMORBATTERY&amp;quot;);&lt;br /&gt;
    if ( POWERARMOR != TRUE ) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Cannot check battery level for non-powered armor.&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    llOwnerSay(&amp;quot;Armor battery level: &amp;quot;+(string)BATTERY+&amp;quot; of &amp;quot;+(string)MAXBATTERY+&amp;quot; total.&amp;quot;);&lt;br /&gt;
    SENDTOHUD(&amp;quot;ARMORBATTERY&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// RECHARGE&lt;br /&gt;
//============================================================================&lt;br /&gt;
RECHARGE() {&lt;br /&gt;
    //llWhisper(CHANATTACH,&amp;quot;ARMORRECHARGE&amp;quot;);&lt;br /&gt;
    if ( POWERARMOR != TRUE ) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Cannot recharge non-powered armor.&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    // TODO Partial Recharges?&lt;br /&gt;
    BATTERY = MAXBATTERY;&lt;br /&gt;
    llOwnerSay(&amp;quot;Armor recharged.&amp;quot;);&lt;br /&gt;
    SENDTOHUD(&amp;quot;ARMORRECHARGE&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// EFFECTHIT() - SHOW SPECIAL ARMOR EFFECTS WHEN ARMOR HIT BUT FAILS TO BLOCK&lt;br /&gt;
//============================================================================&lt;br /&gt;
EFFECTHIT() {&lt;br /&gt;
    //llWhisper(CHANATTACH,&amp;quot;ARMOREFFECTHIT&amp;quot;);&lt;br /&gt;
    SENDTOHUD(&amp;quot;ARMOREFFECTHIT&amp;quot;);&lt;br /&gt;
    EFFECTTIME = MAXEFFECTTIME; // load the countdown&lt;br /&gt;
    llSetTimerEvent(1.0); // start the effect timer&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// EFFECTBLOCKED - CHANGE ARMOR EFFECT WHEN ARMOR HIT AND BLOCKS DAMAGE&lt;br /&gt;
//============================================================================&lt;br /&gt;
EFFECTBLOCKED() {&lt;br /&gt;
    // your commands go here for armor special effect when armor BLOCKS a hit&lt;br /&gt;
    // llWhisper(CHANATTACH,&amp;quot;ARMOREFFECTBLOCKED&amp;quot;);&lt;br /&gt;
    SENDTOHUD(&amp;quot;ARMOREFFECTBLOCKED&amp;quot;);&lt;br /&gt;
    EFFECTTIME = MAXEFFECTTIME; // load the countdown&lt;br /&gt;
    llSetTimerEvent(1.0); // start the effect timer&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// EFFECTOFF - RESET ARMOR TO NORMAL VIEW&lt;br /&gt;
//============================================================================&lt;br /&gt;
EFFECTOFF() {&lt;br /&gt;
    //llWhisper(CHANATTACH,&amp;quot;ARMOREFFECTOFF&amp;quot;);&lt;br /&gt;
    SENDTOHUD(&amp;quot;ARMOREFFECTOFF&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// COMMAND processor&lt;br /&gt;
//============================================================================&lt;br /&gt;
COMMAND(string message) {&lt;br /&gt;
    list fields = llParseString2List(message,[DIV],[]); // break into list of fields based on DIVider&lt;br /&gt;
    string command = llToLower(llStringTrim(llList2String(fields,0),STRING_TRIM)); // assume the first field is a Myriad Lite command&lt;br /&gt;
&lt;br /&gt;
    // General Myriad Module Commnads&lt;br /&gt;
    if ( command == &amp;quot;reset&amp;quot; ) { RESET(); return;} // reset when told&lt;br /&gt;
    if ( command == &amp;quot;version&amp;quot; ) { GETVERSION(); return;} // get version when needed&lt;br /&gt;
    if ( command == &amp;quot;debugon&amp;quot; ) { FLAG_DEBUG = TRUE; return;} // enable debugging&lt;br /&gt;
    if ( command == &amp;quot;debugoff&amp;quot; ) { FLAG_DEBUG = FALSE; return;} // disable debugging&lt;br /&gt;
    &lt;br /&gt;
    // Armor-Specific Module Commands&lt;br /&gt;
    if ( command == &amp;quot;armorattach&amp;quot; ) { // player attached armor somewhere&lt;br /&gt;
        integer armorrating = llList2Integer(fields,1); // get armor value&lt;br /&gt;
        integer armorpower =  llList2Integer(fields,2); // get power armor or not&lt;br /&gt;
        integer attachpoint = llList2Integer(fields,3); // get armor location&lt;br /&gt;
        string armorname = llList2String(fields,4); // get armor's name&lt;br /&gt;
        WEARARMOR(attachpoint,armorrating,armorpower,armorname); // add armor to set of armor worn&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    if ( command == &amp;quot;armordetach&amp;quot; ) { // player attached armor somewhere&lt;br /&gt;
        integer armorrating = llList2Integer(fields,1); // get armor value&lt;br /&gt;
        integer armorpower = llList2Integer(fields,2); // get power armor or not&lt;br /&gt;
        integer attachpoint = llList2Integer(fields,3); // get armor location&lt;br /&gt;
        string armorname = llList2String(fields,4); // get armor's name&lt;br /&gt;
        REMOVEARMOR(attachpoint,armorrating,armorpower,armorname); // detach armor from set of armor worn&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    // armorcurrent skipped intentionally&lt;br /&gt;
    if ( command == &amp;quot;armorreset&amp;quot; ) { RESET(); return;} // reset HUD&lt;br /&gt;
    if ( command == &amp;quot;armoron&amp;quot; ) { ARMORON(); return;} // turn on power armor&lt;br /&gt;
    if ( command == &amp;quot;armoroff&amp;quot; ) { ARMOROFF(); return;} // turn off power armor&lt;br /&gt;
    if ( command == &amp;quot;armorbattery&amp;quot;) { CHECKBATTERY(); return;}  // check power armor battery&lt;br /&gt;
    if ( command == &amp;quot;armorrecharge&amp;quot; ) { RECHARGE(); return;} // recharge power armor battery&lt;br /&gt;
    if ( command == &amp;quot;armorcheck&amp;quot; ) { RECALCULATE_ARMOR(); return; } // check our current armor value&lt;br /&gt;
    if ( command == &amp;quot;armoreffecthit&amp;quot; ) { EFFECTHIT(); return;} // show SFX on hit&lt;br /&gt;
    if ( command == &amp;quot;armoreffectblocked&amp;quot; ) { EFFECTBLOCKED(); return;} // show SFX on hit&lt;br /&gt;
    if ( command == &amp;quot;armoreffectoff&amp;quot; ) { EFFECTOFF(); return;} // show SFX on hit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//============================================================================&lt;br /&gt;
// DEFAULT STATE&lt;br /&gt;
//============================================================================&lt;br /&gt;
default {&lt;br /&gt;
&lt;br /&gt;
    //------------------------------------------------------------------------    &lt;br /&gt;
    // STATE_ENTRY - the script starts here&lt;br /&gt;
    //------------------------------------------------------------------------        &lt;br /&gt;
    state_entry() {&lt;br /&gt;
        SETUP(); // setup defaults and go into event wait&lt;br /&gt;
    }&lt;br /&gt;
    //------------------------------------------------------------------------    &lt;br /&gt;
    // ON REZ - RESET to force through state entry&lt;br /&gt;
    //------------------------------------------------------------------------        &lt;br /&gt;
    on_rez(integer params) {&lt;br /&gt;
        params = 0; // LSLINT&lt;br /&gt;
        RESET();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //------------------------------------------------------------------------    &lt;br /&gt;
    // ON ATTACH - RESET to force through state entry&lt;br /&gt;
    //------------------------------------------------------------------------    &lt;br /&gt;
    attach(key id) {&lt;br /&gt;
        id = NULL_KEY; // LSLINT&lt;br /&gt;
        RESET();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //------------------------------------------------------------------------&lt;br /&gt;
    // CHANGED - triggered for many changes to the avatar&lt;br /&gt;
    // TODO reload sim-specific settings on region change&lt;br /&gt;
    //------------------------------------------------------------------------    &lt;br /&gt;
    changed(integer changes) {&lt;br /&gt;
        if ( changes &amp;amp; CHANGED_INVENTORY ) { // inventory changed somehow?&lt;br /&gt;
            RESET();&lt;br /&gt;
        }&lt;br /&gt;
        if ( changes &amp;amp; CHANGED_REGION || changes &amp;amp; CHANGED_TELEPORT ) {&lt;br /&gt;
            RESET();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //------------------------------------------------------------------------&lt;br /&gt;
    // INCOMING LINK MESSSAGES&lt;br /&gt;
    //------------------------------------------------------------------------    &lt;br /&gt;
    link_message(integer sender_num,integer sending_module,string str,key id) {&lt;br /&gt;
        if ( sending_module == MODULE_ARMOR || sending_module == LM_SENDTOATTACHMENT ) return; // ignore our own messages&lt;br /&gt;
        DEBUG(&amp;quot;link_message str=[&amp;quot;+str+&amp;quot;]&amp;quot;);&lt;br /&gt;
        sender_num = 0; // LSLINT&lt;br /&gt;
        id = NULL_KEY; // LSLINT&lt;br /&gt;
        if ( llGetSubString(llStringTrim(llToLower(str),STRING_TRIM),0,4) == &amp;quot;armor&amp;quot; ) { // if armor command&lt;br /&gt;
            COMMAND(str); // jump to command processor&lt;br /&gt;
            return; // return here too in case we add later commands&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
        &lt;br /&gt;
    //------------------------------------------------------------------------&lt;br /&gt;
    // TIMER CALLED TO TURN OFF THE SPECIAL EFFECTS AND DRAIN BATTERIES&lt;br /&gt;
    //------------------------------------------------------------------------&lt;br /&gt;
    timer() {&lt;br /&gt;
        if ( EFFECTTIME &amp;gt; 0 ) {&lt;br /&gt;
            EFFECTTIME--;&lt;br /&gt;
            if ( EFFECTTIME == 0 ) { &lt;br /&gt;
                EFFECTOFF(); // turn off special effects&lt;br /&gt;
            } // timer expired, turn off effect&lt;br /&gt;
        }&lt;br /&gt;
        if ( EFFECTTIME &amp;lt; 0 ) { // we should never have this happen, but just in case, catch and cleanup.&lt;br /&gt;
            EFFECTTIME = 0;&lt;br /&gt;
            EFFECTOFF();&lt;br /&gt;
        }&lt;br /&gt;
        if ( POWERARMOR == TRUE &amp;amp;&amp;amp; ARMOR_ON == TRUE &amp;amp;&amp;amp; BATTERY &amp;gt; 0 ) {&lt;br /&gt;
            BATTERY--; // remove some battery&lt;br /&gt;
            if ( BATTERY == 0 ) {&lt;br /&gt;
                llOwnerSay(&amp;quot;Armor battery drained. Shutting down.&amp;quot;);&lt;br /&gt;
                ARMOROFF(); // turn off armor&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        if ( BATTERY &amp;lt; 0 ) { // we should never have this happen, but just in case, catch and cleanup&lt;br /&gt;
            BATTERY = 0;&lt;br /&gt;
            ARMOROFF();&lt;br /&gt;
        }&lt;br /&gt;
        if ( EFFECTTIME &amp;lt;= 0 &amp;amp;&amp;amp; ARMOR_ON == FALSE ) llSetTimerEvent(0.0); // all timers done, stop timer events&lt;br /&gt;
    } // end timer&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Roadmap</id>
		<title>User:Allen Kerensky/Myriad Lite Roadmap</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite_Roadmap"/>
				<updated>2013-06-20T18:30:08Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: re shuffle previews based on current development trends&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Roadmap =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
Unless my RL finances change, I (Allen Kerensky) may have to suspend my personal development work on Myriad Lite.&lt;br /&gt;
&lt;br /&gt;
A community is welcome to form up and take over with the new open licensing established in Preview 6.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 1: Shooting (June 2011) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Character Sheet Loader&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Non-Powered Armor&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Firearm&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Bullet&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Ranged Combat Skill Handler&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Opposed Test Handler&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Practice Target&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 2: Fists, Melee, Healing (June 2011) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;Healing&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Melee Weapon&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Built in Fist Fighter&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Close Combat Skill Handler&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Hovertext Meter&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 3: Commenting (August 2011) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;Heavily Commented Code&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 4: Quests ( Sept. 2011 ) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM Adventure Giver NPC&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM Collision Goal&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM Location Goal&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM Touch Goal&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD BAM Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Holster&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Power Armor&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 5: Character Builder (Feb. 2012) ==&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Unopposed Test Handler&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Region CSVs Servers&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Region Settings Server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Region Templates Server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Character Builder&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Narrators&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Contributed: BAM-compatible Traps&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preview 6: Modular HUD, NPCs, Re-icense (August 2012) ==&lt;br /&gt;
The focus of preview 6 is creating the rest of the foundation roleplaying platform and lay the groundwork for character builder/updater: modularize HUD to work around script memory constraints, NPCs, and re-license&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Improved Armor HUD Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Improved Armor Attachment&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.1&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Rumor Server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Rumor HUD Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.2&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;CSV Server: Equipment with defined Resource Point costs&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Character Sheet Loader with support for default or region specific character sheets&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.3&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Close Combat Skill (Fist Fighter / Melee)&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.4&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Ranged Combat Skill (Firearms)&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.5&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Character Sheet Loader with drop down menu for multiple characters per region if needed&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.6&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Update character sheet module to pick default character sheet if drop down menu is ignored&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add ESTATE= keyword to region setting server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Damage and Health&amp;lt;/del&amp;gt; &lt;br /&gt;
* &amp;lt;del&amp;gt;Myriad Lite v0.1.7&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Turret script for autofire - Myriad damage to players&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add ESTATE= check to Character Sheet Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Damage and Health Movelock&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module Talker/Emoter&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add PROGRESSION= options to Region Settings Server&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add base stats to all example skills for random progression, publish new Skills CSV and Skills CSV Server Code&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;HUD Module World Effect Library Language (WELL)&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add dice roller to Talker/Emoter&amp;lt;/del&amp;gt; (Myriad Lite v0.1.9 20120704)&lt;br /&gt;
* &amp;lt;del&amp;gt;BAM Adventure Giver NPC generates Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;BAM Collision Goal Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;BAM Location Goal generates Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;BAM Touch Goal generates Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Narrator generates Rumors&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;NPC Goons&amp;lt;/del&amp;gt; framework built, need more design and input&lt;br /&gt;
* &amp;lt;del&amp;gt;Meter code moved from HUD into its own Module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Meter Attach: Custom format strings&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Meter Attach: Species/Career/Faction support&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Region Status Board for character health/combat stats&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add RESPAWNPOINT to region server, notecard, and client for osTeleportAgent configuration&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add DEATHPOINT to region server, notecard, and client for osTeleportAgent configuration&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Add TeleportAgentHome or osTeleportAgent to DEATHPOINT on die, RESPAWNPOINT on respawn into Module_Resilience&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Relicense in CC-BY and BSD for full OpenSim adoption&amp;lt;/del&amp;gt; (4 previews early!)&lt;br /&gt;
&lt;br /&gt;
== Preview 7: Character Builder/Updater ==&lt;br /&gt;
The focus of Preview 7 will be to finish the character builder/updater started in Preview 5 and 6.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Create Myriad Adventurer Handbook&amp;lt;/del&amp;gt; &lt;br /&gt;
* &amp;lt;del&amp;gt;Create Myriad Region Owners Handbook&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Develop a persistent character sheet database which runs in-world&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Split out the character notecard reader/menu from the base character sheet module&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Convert Module Character Sheet to PPMA&amp;lt;/del&amp;gt;&lt;br /&gt;
[[User:Allen_Kerensky/Myriad_Lite_Dev|DEV IN PROGRESS]]&lt;br /&gt;
* Convert Myriad Lite to PPMA&lt;br /&gt;
* Convert Module Armor to PPMA&lt;br /&gt;
* Convert Module BAM to PPMA&lt;br /&gt;
* Convert Module Character Notecard to PPMA&lt;br /&gt;
* Convert Module Meter to PPMA&lt;br /&gt;
* Convert Module Progression to PPMA&lt;br /&gt;
* Convert Module Resilience to PPMA&lt;br /&gt;
* Convert Module Rumors to PPMA&lt;br /&gt;
* Convert Module Skill Close Combat to PPMA&lt;br /&gt;
* Convert Module Skill Ranged Combat to PPMA&lt;br /&gt;
* Convert Module WELL to PPMA&lt;br /&gt;
&lt;br /&gt;
* Implement PPMA for the character builder&lt;br /&gt;
* Character Builder Controller - rewrite to load/store/control in correlation with region servers and character sheet module&lt;br /&gt;
* Character Builder integration with updated character sheet module&lt;br /&gt;
** Points-Based Creator - loads/stores intial points to character sheet module&lt;br /&gt;
** Template-Based Creator - loads/stores initial templates and remaining GP to/from character sheet module&lt;br /&gt;
** Random Creator - loads/stores random allocations and spends to/from character sheet module&lt;br /&gt;
* Progression (client in testing, character updater in testing)&lt;br /&gt;
** Level-Based Progression (client in testing, character updater pending)&lt;br /&gt;
** Gradual Progression (client in testing, character updater not started)&lt;br /&gt;
** Random Progression (client in testing, character updater not started)&lt;br /&gt;
&lt;br /&gt;
== Preview 8: Critters and Conflicts ==&lt;br /&gt;
The focus for Preview 8 will be to provide the opponents to fight and NPCs to interact with and remaining combat systems&lt;br /&gt;
&lt;br /&gt;
* NPC Critters/Goons (Revised)&lt;br /&gt;
* NPC Specialists&lt;br /&gt;
* NPC Detailed&lt;br /&gt;
* Social Combat&lt;br /&gt;
* Mortal Combat Stunts&lt;br /&gt;
* Social Combat Quotes&lt;br /&gt;
&lt;br /&gt;
== Preview 9: Setting Specifics ==&lt;br /&gt;
The focus of this preview will be to build out all of the setting-specific parts of the core Myriad RPG book.&lt;br /&gt;
&lt;br /&gt;
NOTE: The ORDER of development is being revised due to survey results.&lt;br /&gt;
&lt;br /&gt;
* Implement Medieval setting specifics&lt;br /&gt;
** Statistics&lt;br /&gt;
** Resiliences&lt;br /&gt;
** Templates&lt;br /&gt;
** Boons&lt;br /&gt;
** Flaws&lt;br /&gt;
** Skills&lt;br /&gt;
** Special Effect Abilities including Magic, Occult, and Psionic abilities&lt;br /&gt;
** Equipment&lt;br /&gt;
&lt;br /&gt;
* Implement Modern setting specifics&lt;br /&gt;
** Statistics&lt;br /&gt;
** Resiliences&lt;br /&gt;
** Templates&lt;br /&gt;
** Boons&lt;br /&gt;
** Flaws&lt;br /&gt;
** Skills&lt;br /&gt;
** Special Effect Abilities including Magic, Occult, and Psionic abilities&lt;br /&gt;
** Equipment&lt;br /&gt;
&lt;br /&gt;
* Implement Futuristic setting specifics&lt;br /&gt;
** Statistics&lt;br /&gt;
** Resiliences&lt;br /&gt;
** Templates&lt;br /&gt;
** Boons&lt;br /&gt;
** Flaws&lt;br /&gt;
** Skills&lt;br /&gt;
** Special Effect Abilities including Magic, Occult, and Psionic abilities&lt;br /&gt;
** Equipment&lt;br /&gt;
&lt;br /&gt;
* Implement any remaining Universal setting specifics&lt;br /&gt;
** Statistics&lt;br /&gt;
** Resiliences&lt;br /&gt;
** Templates&lt;br /&gt;
** Boons&lt;br /&gt;
** Flaws&lt;br /&gt;
** Skills&lt;br /&gt;
** Special Effect Abilities including Magic, Occult, and Psionic abilities&lt;br /&gt;
** Equipment&lt;br /&gt;
&lt;br /&gt;
== Preview 10: Cleanup and Release 1.0 ==&lt;br /&gt;
The focus of Preview 10 will be 3 things:&lt;br /&gt;
# Visit all scripts to update message formats and processing to use a universal format/specification.&lt;br /&gt;
# Embed updater capabilities&lt;br /&gt;
# Fix remaining script-by-script minor issues such as OpenSim-compatible attach/detach, region change and teleport script restart, etc.&lt;br /&gt;
&lt;br /&gt;
* Design universal Myriad message format to be used between all Myriad scripts&lt;br /&gt;
* Revised Armor Module to avoid lack of opensim detach&lt;br /&gt;
* Revised attachment code to reset/resume after changed teleport and changed region events&lt;br /&gt;
* Revised server code to reset/resume after changed region restart events&lt;br /&gt;
* Updaters (possible llLoadRemoteScriptPin setup)&lt;br /&gt;
* Final bugfixes&lt;br /&gt;
* Release 1.0 to Community Development&lt;br /&gt;
&lt;br /&gt;
== Beyond 1.0: Expansions ==&lt;br /&gt;
* Resource Gathering&lt;br /&gt;
* Crop Harvesting&lt;br /&gt;
* Crafting&lt;br /&gt;
* Technology Tree&lt;br /&gt;
* Roleplay Currency&lt;br /&gt;
* Intersim Trade and Economics&lt;br /&gt;
* Expanded vehicle combat&lt;br /&gt;
* Your suggestions here...&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Food_Potion</id>
		<title>User:Allen Kerensky/Myriad Lite/Food Potion</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Food_Potion"/>
				<updated>2013-03-19T22:23:09Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Healing =&lt;br /&gt;
== Healing Concepts ==&lt;br /&gt;
Many combat-based games offer a heal-up object that will partly or fully restore the player's health when activated.&lt;br /&gt;
&lt;br /&gt;
The Myriad Lite Food Potion script was designed to sit in an edible food, or drinkable potion form.&lt;br /&gt;
&lt;br /&gt;
When used, the item could reduce a charge, allowing for fewer limited uses, or be destroyed, as the programmer chooses.&lt;br /&gt;
&lt;br /&gt;
This script is NOT complete, but includes a framework and specific notes in specific sections for an item builder to include their own specific tailoring.&lt;br /&gt;
&lt;br /&gt;
This script contributed by Yoshiko Fazuku (SL/OSG/Avi). Thanks, Yoshiko!&lt;br /&gt;
&lt;br /&gt;
== Healing Setup ==&lt;br /&gt;
# Create an edible or drinkable object&lt;br /&gt;
# Drag and Drop the [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad Lite Food Potion]] script from inventory into the object&lt;br /&gt;
# Edit the script to configure HEALAMOUNT provide full healing or partial healing as desired.&lt;br /&gt;
# Edit the script to configure what happens when the item is used and provides its healing&lt;br /&gt;
## Does it have a few uses that run out? &lt;br /&gt;
## Does it take time to recharge?&lt;br /&gt;
# Distribute copies of the healing food or potion items where desired to give combatants a chance to heal up.&lt;br /&gt;
&lt;br /&gt;
== The Myriad RPG Group ==&lt;br /&gt;
Join the Myriad RPG group for announcements and discussion around the Myriad RPG and Myriad Lite scripts.&lt;br /&gt;
&lt;br /&gt;
SecondLife: secondlife:///app/group/dbedc3be-729e-a123-d669-92f401e07a1e/about&lt;br /&gt;
&lt;br /&gt;
OSgrid: secondlife:///app/group/da0227e5-8a0d-4d99-b970-9411932c852d/about&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Medieval&lt;br /&gt;
! Modern&lt;br /&gt;
! Futuristic&lt;br /&gt;
! Universal&lt;br /&gt;
|-&lt;br /&gt;
| Scripter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|-&lt;br /&gt;
| Builder&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tester&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mentor/Teacher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
== Feature Requests ==&lt;br /&gt;
If you have a feature you would like to see added to Myriad Lite Healing, write a new feature request on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best feature requests will have:&lt;br /&gt;
  Your SL name&lt;br /&gt;
  The name, version, and date of the script you are requesting new features in&lt;br /&gt;
  A description of the feature&lt;br /&gt;
  A sample implementation of the feature in LSL compatible with OSG and SL.&lt;br /&gt;
&lt;br /&gt;
== Bug Reports ==&lt;br /&gt;
If you find a bug or something that just doesn't seem right in how the Myriad Lite Healing script works, file a bug report on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best bug reports will have:&lt;br /&gt;
  Your OSG or SL name&lt;br /&gt;
  The name, version, and date of the script you are having problems with&lt;br /&gt;
  A description of the problem itself&lt;br /&gt;
  Steps to follow to reproduce the problem&lt;br /&gt;
&lt;br /&gt;
== Contributing to Myriad Lite ==&lt;br /&gt;
If you would like to contribute to the Myriad Lite project, please do!&lt;br /&gt;
&lt;br /&gt;
The best contributions will have:&lt;br /&gt;
  Your SL Name&lt;br /&gt;
  A description of the contribution&lt;br /&gt;
  The patch, script, file, or object being contributed&lt;br /&gt;
  A release stating: &lt;br /&gt;
  * that you intend to contribute this to Myriad Lite&lt;br /&gt;
  * that you are the original creator of the contribution or are legally empowered to contribute it&lt;br /&gt;
  * that you acknowledge this contribution can be released under the Creative Commons BY 3.0 Unported and Modified BSD (3-clause) licenses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Myriad_Lite_Food_Potion-Preview6.lsl&lt;br /&gt;
// Copyright (c) 2012 Allen Kerensky (OSG/SL) All Rights Reserved.&lt;br /&gt;
// Copyright (c) 2012 Yoshiko Fazuku (Avination/OSG/SL) All Rights Reserved.&lt;br /&gt;
// This work is dual-licensed under&lt;br /&gt;
// Creative Commons Attribution (CC BY) 3.0 Unported&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
// - or -&lt;br /&gt;
// Modified BSD License (3-clause)&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without&lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
// * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
//   this list of conditions and the following disclaimer.&lt;br /&gt;
// * Redistributions in binary form must reproduce the above copyright notice,&lt;br /&gt;
//   this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
//   and/or other materials provided with the distribution.&lt;br /&gt;
// * Neither the name of Myriad Lite nor the names of its contributors may be&lt;br /&gt;
//   used to endorse or promote products derived from this software without&lt;br /&gt;
//   specific prior written permission.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR&lt;br /&gt;
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;br /&gt;
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN&lt;br /&gt;
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT&lt;br /&gt;
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;br /&gt;
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai&lt;br /&gt;
// Myriad RPG System licensed under:&lt;br /&gt;
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales&lt;br /&gt;
// http://creativecommons.org/licenses/by/2.0/uk/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Food_Potion</id>
		<title>User:Allen Kerensky/Myriad Lite/Food Potion</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Food_Potion"/>
				<updated>2013-03-19T22:22:35Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added script link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Healing =&lt;br /&gt;
== Healing Concepts ==&lt;br /&gt;
Many combat-based games offer a heal-up object that will partly or fully restore the player's health when activated.&lt;br /&gt;
&lt;br /&gt;
The Myriad Lite Food Potion script was designed to sit in an edible food, or drinkable potion form.&lt;br /&gt;
&lt;br /&gt;
When used, the item could reduce a charge, allowing for fewer limited uses, or be destroyed, as the programmer chooses.&lt;br /&gt;
&lt;br /&gt;
This script is NOT complete, but includes a framework and specific notes in specific sections for an item builder to include their own specific tailoring.&lt;br /&gt;
&lt;br /&gt;
This script contributed by Yoshiko Fazuku (SL/OSG/Avi). Thanks, Yoshiko!&lt;br /&gt;
&lt;br /&gt;
== Healing Setup ==&lt;br /&gt;
# Create an edible or drinkable object&lt;br /&gt;
# Drag and Drop the [[http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad Lite Food Potion]] script from inventory into the object&lt;br /&gt;
# Edit the script to configure HEALAMOUNT provide full healing or partial healing as desired.&lt;br /&gt;
# Edit the script to configure what happens when the item is used and provides its healing&lt;br /&gt;
## Does it have a few uses that run out? &lt;br /&gt;
## Does it take time to recharge?&lt;br /&gt;
# Distribute copies of the healing food or potion items where desired to give combatants a chance to heal up.&lt;br /&gt;
&lt;br /&gt;
== The Myriad RPG Group ==&lt;br /&gt;
Join the Myriad RPG group for announcements and discussion around the Myriad RPG and Myriad Lite scripts.&lt;br /&gt;
&lt;br /&gt;
SecondLife: secondlife:///app/group/dbedc3be-729e-a123-d669-92f401e07a1e/about&lt;br /&gt;
&lt;br /&gt;
OSgrid: secondlife:///app/group/da0227e5-8a0d-4d99-b970-9411932c852d/about&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Medieval&lt;br /&gt;
! Modern&lt;br /&gt;
! Futuristic&lt;br /&gt;
! Universal&lt;br /&gt;
|-&lt;br /&gt;
| Scripter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|-&lt;br /&gt;
| Builder&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tester&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mentor/Teacher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
== Feature Requests ==&lt;br /&gt;
If you have a feature you would like to see added to Myriad Lite Healing, write a new feature request on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best feature requests will have:&lt;br /&gt;
  Your SL name&lt;br /&gt;
  The name, version, and date of the script you are requesting new features in&lt;br /&gt;
  A description of the feature&lt;br /&gt;
  A sample implementation of the feature in LSL compatible with OSG and SL.&lt;br /&gt;
&lt;br /&gt;
== Bug Reports ==&lt;br /&gt;
If you find a bug or something that just doesn't seem right in how the Myriad Lite Healing script works, file a bug report on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best bug reports will have:&lt;br /&gt;
  Your OSG or SL name&lt;br /&gt;
  The name, version, and date of the script you are having problems with&lt;br /&gt;
  A description of the problem itself&lt;br /&gt;
  Steps to follow to reproduce the problem&lt;br /&gt;
&lt;br /&gt;
== Contributing to Myriad Lite ==&lt;br /&gt;
If you would like to contribute to the Myriad Lite project, please do!&lt;br /&gt;
&lt;br /&gt;
The best contributions will have:&lt;br /&gt;
  Your SL Name&lt;br /&gt;
  A description of the contribution&lt;br /&gt;
  The patch, script, file, or object being contributed&lt;br /&gt;
  A release stating: &lt;br /&gt;
  * that you intend to contribute this to Myriad Lite&lt;br /&gt;
  * that you are the original creator of the contribution or are legally empowered to contribute it&lt;br /&gt;
  * that you acknowledge this contribution can be released under the Creative Commons BY 3.0 Unported and Modified BSD (3-clause) licenses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Myriad_Lite_Food_Potion-Preview6.lsl&lt;br /&gt;
// Copyright (c) 2012 Allen Kerensky (OSG/SL) All Rights Reserved.&lt;br /&gt;
// Copyright (c) 2012 Yoshiko Fazuku (Avination/OSG/SL) All Rights Reserved.&lt;br /&gt;
// This work is dual-licensed under&lt;br /&gt;
// Creative Commons Attribution (CC BY) 3.0 Unported&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
// - or -&lt;br /&gt;
// Modified BSD License (3-clause)&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without&lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
// * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
//   this list of conditions and the following disclaimer.&lt;br /&gt;
// * Redistributions in binary form must reproduce the above copyright notice,&lt;br /&gt;
//   this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
//   and/or other materials provided with the distribution.&lt;br /&gt;
// * Neither the name of Myriad Lite nor the names of its contributors may be&lt;br /&gt;
//   used to endorse or promote products derived from this software without&lt;br /&gt;
//   specific prior written permission.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR&lt;br /&gt;
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;br /&gt;
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN&lt;br /&gt;
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT&lt;br /&gt;
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;br /&gt;
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai&lt;br /&gt;
// Myriad RPG System licensed under:&lt;br /&gt;
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales&lt;br /&gt;
// http://creativecommons.org/licenses/by/2.0/uk/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Food_Potion</id>
		<title>User:Allen Kerensky/Myriad Lite/Food Potion</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Food_Potion"/>
				<updated>2013-03-19T20:27:38Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: fixed the license block at the bottom&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Healing =&lt;br /&gt;
== Healing Concepts ==&lt;br /&gt;
Many combat-based games offer a heal-up object that will partly or fully restore the player's health when activated.&lt;br /&gt;
&lt;br /&gt;
The Myriad Lite Food Potion script was designed to sit in an edible food, or drinkable potion form.&lt;br /&gt;
&lt;br /&gt;
When used, the item could reduce a charge, allowing for fewer limited uses, or be destroyed, as the programmer chooses.&lt;br /&gt;
&lt;br /&gt;
This script is NOT complete, but includes a framework and specific notes in specific sections for an item builder to include their own specific tailoring.&lt;br /&gt;
&lt;br /&gt;
This script contributed by Yoshiko Fazuku (SL/OSG/Avi). Thanks, Yoshiko!&lt;br /&gt;
&lt;br /&gt;
== Healing Setup ==&lt;br /&gt;
# Create an edible or drinkable object&lt;br /&gt;
# Drag and Drop the Myriad Lite Food Potion script from inventory into the object&lt;br /&gt;
# Edit the script to configure HEALAMOUNT provide full healing or partial healing as desired.&lt;br /&gt;
# Edit the script to configure what happens when the item is used and provides its healing&lt;br /&gt;
## Does it have a few uses that run out? &lt;br /&gt;
## Does it take time to recharge?&lt;br /&gt;
# Distribute copies of the healing food or potion items where desired to give combatants a chance to heal up.&lt;br /&gt;
&lt;br /&gt;
== The Myriad RPG Group ==&lt;br /&gt;
Join the Myriad RPG group for announcements and discussion around the Myriad RPG and Myriad Lite scripts.&lt;br /&gt;
&lt;br /&gt;
SecondLife: secondlife:///app/group/dbedc3be-729e-a123-d669-92f401e07a1e/about&lt;br /&gt;
&lt;br /&gt;
OSgrid: secondlife:///app/group/da0227e5-8a0d-4d99-b970-9411932c852d/about&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Medieval&lt;br /&gt;
! Modern&lt;br /&gt;
! Futuristic&lt;br /&gt;
! Universal&lt;br /&gt;
|-&lt;br /&gt;
| Scripter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|-&lt;br /&gt;
| Builder&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tester&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mentor/Teacher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
== Feature Requests ==&lt;br /&gt;
If you have a feature you would like to see added to Myriad Lite Healing, write a new feature request on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best feature requests will have:&lt;br /&gt;
  Your SL name&lt;br /&gt;
  The name, version, and date of the script you are requesting new features in&lt;br /&gt;
  A description of the feature&lt;br /&gt;
  A sample implementation of the feature in LSL compatible with OSG and SL.&lt;br /&gt;
&lt;br /&gt;
== Bug Reports ==&lt;br /&gt;
If you find a bug or something that just doesn't seem right in how the Myriad Lite Healing script works, file a bug report on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best bug reports will have:&lt;br /&gt;
  Your OSG or SL name&lt;br /&gt;
  The name, version, and date of the script you are having problems with&lt;br /&gt;
  A description of the problem itself&lt;br /&gt;
  Steps to follow to reproduce the problem&lt;br /&gt;
&lt;br /&gt;
== Contributing to Myriad Lite ==&lt;br /&gt;
If you would like to contribute to the Myriad Lite project, please do!&lt;br /&gt;
&lt;br /&gt;
The best contributions will have:&lt;br /&gt;
  Your SL Name&lt;br /&gt;
  A description of the contribution&lt;br /&gt;
  The patch, script, file, or object being contributed&lt;br /&gt;
  A release stating: &lt;br /&gt;
  * that you intend to contribute this to Myriad Lite&lt;br /&gt;
  * that you are the original creator of the contribution or are legally empowered to contribute it&lt;br /&gt;
  * that you acknowledge this contribution can be released under the Creative Commons BY 3.0 Unported and Modified BSD (3-clause) licenses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Myriad_Lite_Food_Potion-Preview6.lsl&lt;br /&gt;
// Copyright (c) 2012 Allen Kerensky (OSG/SL) All Rights Reserved.&lt;br /&gt;
// Copyright (c) 2012 Yoshiko Fazuku (Avination/OSG/SL) All Rights Reserved.&lt;br /&gt;
// This work is dual-licensed under&lt;br /&gt;
// Creative Commons Attribution (CC BY) 3.0 Unported&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
// - or -&lt;br /&gt;
// Modified BSD License (3-clause)&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without&lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
// * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
//   this list of conditions and the following disclaimer.&lt;br /&gt;
// * Redistributions in binary form must reproduce the above copyright notice,&lt;br /&gt;
//   this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
//   and/or other materials provided with the distribution.&lt;br /&gt;
// * Neither the name of Myriad Lite nor the names of its contributors may be&lt;br /&gt;
//   used to endorse or promote products derived from this software without&lt;br /&gt;
//   specific prior written permission.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR&lt;br /&gt;
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;br /&gt;
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN&lt;br /&gt;
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT&lt;br /&gt;
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;br /&gt;
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai&lt;br /&gt;
// Myriad RPG System licensed under:&lt;br /&gt;
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales&lt;br /&gt;
// http://creativecommons.org/licenses/by/2.0/uk/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Food_Potion</id>
		<title>User:Allen Kerensky/Myriad Lite/Food Potion</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Food_Potion"/>
				<updated>2013-03-19T20:26:41Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite Healing =&lt;br /&gt;
== Healing Concepts ==&lt;br /&gt;
Many combat-based games offer a heal-up object that will partly or fully restore the player's health when activated.&lt;br /&gt;
&lt;br /&gt;
The Myriad Lite Food Potion script was designed to sit in an edible food, or drinkable potion form.&lt;br /&gt;
&lt;br /&gt;
When used, the item could reduce a charge, allowing for fewer limited uses, or be destroyed, as the programmer chooses.&lt;br /&gt;
&lt;br /&gt;
This script is NOT complete, but includes a framework and specific notes in specific sections for an item builder to include their own specific tailoring.&lt;br /&gt;
&lt;br /&gt;
This script contributed by Yoshiko Fazuku (SL/OSG/Avi). Thanks, Yoshiko!&lt;br /&gt;
&lt;br /&gt;
== Healing Setup ==&lt;br /&gt;
# Create an edible or drinkable object&lt;br /&gt;
# Drag and Drop the Myriad Lite Food Potion script from inventory into the object&lt;br /&gt;
# Edit the script to configure HEALAMOUNT provide full healing or partial healing as desired.&lt;br /&gt;
# Edit the script to configure what happens when the item is used and provides its healing&lt;br /&gt;
## Does it have a few uses that run out? &lt;br /&gt;
## Does it take time to recharge?&lt;br /&gt;
# Distribute copies of the healing food or potion items where desired to give combatants a chance to heal up.&lt;br /&gt;
&lt;br /&gt;
== The Myriad RPG Group ==&lt;br /&gt;
Join the Myriad RPG group for announcements and discussion around the Myriad RPG and Myriad Lite scripts.&lt;br /&gt;
&lt;br /&gt;
SecondLife: secondlife:///app/group/dbedc3be-729e-a123-d669-92f401e07a1e/about&lt;br /&gt;
&lt;br /&gt;
OSgrid: secondlife:///app/group/da0227e5-8a0d-4d99-b970-9411932c852d/about&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Medieval&lt;br /&gt;
! Modern&lt;br /&gt;
! Futuristic&lt;br /&gt;
! Universal&lt;br /&gt;
|-&lt;br /&gt;
| Scripter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|-&lt;br /&gt;
| Builder&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tester&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mentor/Teacher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
== Feature Requests ==&lt;br /&gt;
If you have a feature you would like to see added to Myriad Lite Healing, write a new feature request on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best feature requests will have:&lt;br /&gt;
  Your SL name&lt;br /&gt;
  The name, version, and date of the script you are requesting new features in&lt;br /&gt;
  A description of the feature&lt;br /&gt;
  A sample implementation of the feature in LSL compatible with OSG and SL.&lt;br /&gt;
&lt;br /&gt;
== Bug Reports ==&lt;br /&gt;
If you find a bug or something that just doesn't seem right in how the Myriad Lite Healing script works, file a bug report on the talk page for this article.&lt;br /&gt;
&lt;br /&gt;
The best bug reports will have:&lt;br /&gt;
  Your OSG or SL name&lt;br /&gt;
  The name, version, and date of the script you are having problems with&lt;br /&gt;
  A description of the problem itself&lt;br /&gt;
  Steps to follow to reproduce the problem&lt;br /&gt;
&lt;br /&gt;
== Contributing to Myriad Lite ==&lt;br /&gt;
If you would like to contribute to the Myriad Lite project, please do!&lt;br /&gt;
&lt;br /&gt;
The best contributions will have:&lt;br /&gt;
  Your SL Name&lt;br /&gt;
  A description of the contribution&lt;br /&gt;
  The patch, script, file, or object being contributed&lt;br /&gt;
  A release stating: &lt;br /&gt;
  * that you intend to contribute this to Myriad Lite&lt;br /&gt;
  * that you are the original creator of the contribution or are legally empowered to contribute it&lt;br /&gt;
  * that you acknowledge this contribution can be released under the Creative Commons BY 3.0 Unported and Modified BSD (3-clause) licenses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//============================================================================&lt;br /&gt;
// Myriad Lite Healing&lt;br /&gt;
// Copyright (c) 2012 by Lani Global Systems and Allen Kerensky (OSG/SL) All Rights Reserved.&lt;br /&gt;
// This work is dual-licensed under&lt;br /&gt;
// Creative Commons Attribution (CC BY) 3.0 Unported&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
// - or -&lt;br /&gt;
// Modified BSD License (3-clause)&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without&lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
// * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
//   this list of conditions and the following disclaimer.&lt;br /&gt;
// * Redistributions in binary form must reproduce the above copyright notice,&lt;br /&gt;
//   this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
//   and/or other materials provided with the distribution.&lt;br /&gt;
// * Neither the name of Myriad Lite nor the names of its contributors may be&lt;br /&gt;
//   used to endorse or promote products derived from this software without&lt;br /&gt;
//   specific prior written permission.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR&lt;br /&gt;
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;br /&gt;
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN&lt;br /&gt;
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT&lt;br /&gt;
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;br /&gt;
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai&lt;br /&gt;
// Myriad RPG System licensed under:&lt;br /&gt;
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales&lt;br /&gt;
// http://creativecommons.org/licenses/by/2.0/uk/&lt;br /&gt;
//============================================================================&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl</id>
		<title>User:Allen Kerensky/Myriad Lite/Myriad Lite Food Potion-Preview6.lsl</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl"/>
				<updated>2013-03-19T20:19:21Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: created Myriad_Lite_Food_Potion-Preview6.lsl&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad_Lite_Food_Potion-Preview6.lsl =&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
// Myriad_Lite_Food_Potion-Preview6.lsl&lt;br /&gt;
// Copyright (c) 2012 Allen Kerensky (OSG/SL) All Rights Reserved.&lt;br /&gt;
// Copyright (c) 2012 Yoshiko Fazuku (Avination/OSG/SL) All Rights Reserved.&lt;br /&gt;
// This work is dual-licensed under&lt;br /&gt;
// Creative Commons Attribution (CC BY) 3.0 Unported&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
// - or -&lt;br /&gt;
// Modified BSD License (3-clause)&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without&lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
// * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
//   this list of conditions and the following disclaimer.&lt;br /&gt;
// * Redistributions in binary form must reproduce the above copyright notice,&lt;br /&gt;
//   this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
//   and/or other materials provided with the distribution.&lt;br /&gt;
// * Neither the name of Myriad Lite nor the names of its contributors may be&lt;br /&gt;
//   used to endorse or promote products derived from this software without&lt;br /&gt;
//   specific prior written permission.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR&lt;br /&gt;
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;br /&gt;
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN&lt;br /&gt;
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT&lt;br /&gt;
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;br /&gt;
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai&lt;br /&gt;
// Myriad RPG System licensed under:&lt;br /&gt;
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales&lt;br /&gt;
// http://creativecommons.org/licenses/by/2.0/uk/&lt;br /&gt;
&lt;br /&gt;
string  VERSION = &amp;quot;0.0.1&amp;quot;; // version number&lt;br /&gt;
string  VERDATE = &amp;quot;20120830&amp;quot;; // version date&lt;br /&gt;
&lt;br /&gt;
integer CHANMYRIAD = -999;      // channel for Myriad RP events&lt;br /&gt;
string  DIV = &amp;quot;|&amp;quot;;              // Myriad message field divider&lt;br /&gt;
integer HEALAMOUNT = 5;         // heal how many critical/wound boxes?&lt;br /&gt;
&lt;br /&gt;
list choices = [&amp;quot;Cancel&amp;quot;, &amp;quot;Eat Now!&amp;quot;];&lt;br /&gt;
string msg = &amp;quot;Please make a choice. You can only eat this food once&amp;quot;;&lt;br /&gt;
key ToucherID;&lt;br /&gt;
integer channel_dialog;&lt;br /&gt;
integer listen_id;&lt;br /&gt;
 &lt;br /&gt;
default{&lt;br /&gt;
&lt;br /&gt;
  state_entry() {&lt;br /&gt;
    channel_dialog = ( -1 * (integer)(&amp;quot;0x&amp;quot;+llGetSubString((string)llGetKey(),-5,-1)) );&lt;br /&gt;
    llRequestPermissions( llGetOwner(), PERMISSION_ATTACH );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  run_time_permissions( integer vBitPermissions )&lt;br /&gt;
  {&lt;br /&gt;
        if (PERMISSION_ATTACH &amp;amp; vBitPermissions)&lt;br /&gt;
        {&lt;br /&gt;
            llAttachToAvatar(ATTACH_RHAND);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay( &amp;quot;You must attach item to use&amp;quot; );&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  on_rez(integer rez)&lt;br /&gt;
    {&lt;br /&gt;
        if(!llGetAttached())&lt;br /&gt;
        { //reset the script if it's not attached.&lt;br /&gt;
            llResetScript();&lt;br /&gt;
        }&lt;br /&gt;
        ToucherID = llGetOwner();&lt;br /&gt;
        llDialog(ToucherID, msg, choices, channel_dialog);&lt;br /&gt;
        listen_id = llListen( channel_dialog, &amp;quot;&amp;quot;, ToucherID, &amp;quot;&amp;quot;);&lt;br /&gt;
        llSetTimerEvent(60); //HERE WE SET A TIME LIMIT&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
  touch_start(integer total_number) {&lt;br /&gt;
    ToucherID = llDetectedKey(0);&lt;br /&gt;
    llDialog(ToucherID, msg, choices, channel_dialog);&lt;br /&gt;
    listen_id = llListen( channel_dialog, &amp;quot;&amp;quot;, ToucherID, &amp;quot;&amp;quot;);&lt;br /&gt;
    llSetTimerEvent(60); //HERE WE SET A TIME LIMIT&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  listen(integer channel, string name, key id, string choice) { &lt;br /&gt;
    key who = llGetOwner();&lt;br /&gt;
    integer chanplayer = (integer)(&amp;quot;0x&amp;quot;+llGetSubString((string)who,0,6));&lt;br /&gt;
    if (choice == &amp;quot;Eat Now!&amp;quot;) {&lt;br /&gt;
        llListenRemove(listen_id); &lt;br /&gt;
        llRegionSay(CHANMYRIAD,llKey2Name(who)+&amp;quot; has eaten an apple!&amp;quot;);&lt;br /&gt;
        llWhisper(chanplayer,&amp;quot;HEALPARTIAL&amp;quot;+DIV+(string)HEALAMOUNT); // tell player HUD to heal some damage&lt;br /&gt;
        // change aperance or deleate &lt;br /&gt;
    }else{ &lt;br /&gt;
        //do something nothing.&lt;br /&gt;
        llListenRemove(listen_id);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  timer() { //TIME’S UP!&lt;br /&gt;
    llListenRemove(listen_id);&lt;br /&gt;
    llSetTimerEvent(0.0); //Stop the timer from being called repeatedly&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite</id>
		<title>User:Allen Kerensky/Myriad Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite"/>
				<updated>2013-03-19T20:18:12Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: nicer links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
H E L P   W A N T E D&lt;br /&gt;
&lt;br /&gt;
Tanja Darwin has stepped forward to investigate  Myriad-style roleplaying&lt;br /&gt;
rules and abilities as a C# OpenSim server module and C++ viewer patch&lt;br /&gt;
working together.&lt;br /&gt;
&lt;br /&gt;
C# Developers are needed to create an OpenSim module which implements the&lt;br /&gt;
Myriad RPG System in a region as middleware which talks to a region database&lt;br /&gt;
&lt;br /&gt;
C++ Developers are needed to create a Third Party Viewer patch to implement&lt;br /&gt;
Myriad RPG System in the viewer/client&lt;br /&gt;
&lt;br /&gt;
Please contact Tanja Darwin (OSG) or Allen Kerensky (OSG/SL) if you can help!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== What Is Myriad Lite? ==&lt;br /&gt;
Before home computers were widely available, people played role-playing games (RPGs) by sitting around a table, telling shared stories, and rolling dice to determine if their &amp;quot;character&amp;quot; in the story succeeded or failed at the actions the player wanted them to take within the story.&lt;br /&gt;
&lt;br /&gt;
Myriad Lite is a project to adapt a pen-and-paper role-playing game rulebook into [http://opensimulator.org OpenSimulator] Xengine and [http://secondlife.com SecondLife] Mono scripts, and the related 3D objects, needed to implement a pen-and-paper role-playing game in 3D virtual worlds.&lt;br /&gt;
&lt;br /&gt;
== The Myriad Universal RPG System ==&lt;br /&gt;
Myriad Lite is based on the book [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 MYRIAD: A UNIVERSAL RPG SYSTEM] by Ashok Desai, which is freely downloadable as a PDF e-book from [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 Lulu].&lt;br /&gt;
&lt;br /&gt;
You also also purchase the &amp;quot;Myriad Special Extended Edition&amp;quot; printed book from that site, which includes for additional rules, many more examples, and other information.&lt;br /&gt;
&lt;br /&gt;
I do not make any financial gain if you purchase the book, but if you would like to support the original writer, I recommend it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
It is helpful to read through the original rulebook to understand the rules and assumptions &amp;quot;behind&amp;quot; Myriad Lite, before diving into the scripts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
In Alphabetical Order:&lt;br /&gt;
* Allen Kerensky (SL/OSG) - contributed the initial LSL and OSSL scripting and basic system design converting a pen and paper game into the virtual world&lt;br /&gt;
* Artemis Tesla (OSG) - improved health summary report scripting&lt;br /&gt;
* Ashok Desai - contributed the original Myriad RPG System and Myriad Special Extended Edition books that started this &lt;br /&gt;
* Baroun Tardis (SL/OSG) - contributed Baroun's Adventure Machine (BAM) v1 design and scripts&lt;br /&gt;
* Jeanie Weston (SL) - contributed Jeanie's Heart sculpty&lt;br /&gt;
* Lani Global (OSG) - contributed animations, textures sounds, bullet and armor effects design, trap design and scripting, continual testing and feedback&lt;br /&gt;
* Pete Camino (OSG) - contributed firearms, feedback and testing&lt;br /&gt;
* Snoopy Pfeffer (SL/OSG) - contributed the Ixi combat sandbox region for testing&lt;br /&gt;
* Yoshiko Fazuku (SL/OSG/Avi) - Contributed Food/Potion scripting&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Roadmap|Myriad Lite Roadmap]] - High-level list of milestones leading to release&lt;br /&gt;
&lt;br /&gt;
== Current and Development ==&lt;br /&gt;
=== Player Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Armor|Armor]]&lt;br /&gt;
| Registers armor attachments with HUD&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-Preview6.lsl|Myriad_Lite_Armor_Preview6.lsl]] (v0.0.6 20120212)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-v0.0.7-20120826.lsl|Myriad_Lite_Armor-v0.0.7-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Bullet|Bullet]]&lt;br /&gt;
| Fired from firearm to trigger Ranged Combat skill checks&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Bullet-Preview6.lsl|Myriad_Lite_Bullet-Preview6.lsl]] (v0.0.5 20120811)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Firearm|Firearm]]&lt;br /&gt;
| Firearm/bow attachment to fire bullets/arrows&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Firearm-Preview6.lsl|Myriad_Lite_Firearm-Preview6.lsl]] (v1.5-20120130)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Holster|Holster]]&lt;br /&gt;
| Holster/sheath attachment to show you carry a weapon&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Holster-Preview6.lsl|Myriad_Lite_Holster-Preview6.lsl]] (v0.0.1-20120201)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite|Lite]]&lt;br /&gt;
| The core script for the Myriad Lite HUD&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-Preview6.lsl|Myriad_Lite-Preview6.lsl]] (v0.1.10-20120809)&lt;br /&gt;
| Myriad Bullets Only - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.11-20120826.lsl|Myriad_Lite-v0.1.11-20120826.lsl]] &lt;br /&gt;
Collision OR Myriad Bullets - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.12-20121219.lsl|Myriad_Lite-v0.1.12-20121219.lsl]] (may be withdrawn)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Armor|Lite Module: Armor]]&lt;br /&gt;
| HUD module for Armor attachments&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl|Myriad_Lite_Module_Armor-Preview6.lsl]] (v0.0.2-20120317)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl|Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_BAM|Lite Module: BAM]]&lt;br /&gt;
| HUD module for Baroun's Adventure Machine (Quests)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-Preview6.lsl|Myriad_Lite_Module_BAM-Preview6.lsl]] (v0.0.4-20120317)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-v0.0.5.lsl|Myriad_Lite_Module_BAM-v0.0.5-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Character_Sheet|Lite Module: Character Sheet]]&lt;br /&gt;
| HUD module to load and manage character sheet data&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-Preview6.lsl|Myriad_Lite_Module_Character_Sheet-Preview6.lsl]] (v0.0.3-20120522) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl|Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Character_Sheet|Character Sheet]]&lt;br /&gt;
| HUD notecard for character sheet information and stats&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Character_Sheet-Preview6.txt|Myriad_Lite_Character_Sheet-Preview6.txt]] (v0.0.5-20120604))&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Meter|Lite Module: Meter]]&lt;br /&gt;
| HUD module to manage the hovertext meter attachment&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-Preview6.lsl|Myriad_Lite_Module_Meter-Preview6.lsl]] (v0.0.0-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl|Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Progression|Lite Module: Progression]]&lt;br /&gt;
| HUD module to track and spend Experience Points for progress&lt;br /&gt;
| &lt;br /&gt;
| Myriad_Lite_Module_Progression-v0.0.0-20120518.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Resilience|Lite Module: Resilience]]&lt;br /&gt;
| HUD module to track resilience, wounds, and healing&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-Preview6.lsl|Myriad_Lite_Module_Resilience-Preview6.lsl]] (v0.0.1-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl|Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Rumors|Lite Module: Rumors]]&lt;br /&gt;
| HUD module for region-specific rumors&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-Preview6.lsl|Myriad_Lite_Module_Rumors-Preview6.lsl]] (v0.0.1-20120317)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl|Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Close_Combat|Lite Module: Skill Close Combat]]&lt;br /&gt;
| HUD module for Close Combat skill, hand-to-hand combat, fist fighter&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl]] (v0.0.0-20120430)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl|Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Ranged_Combat|Lite Module: Skill Ranged Combat]]&lt;br /&gt;
| HUD module for Ranged Combat skill, thrown and fired projectiles&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl]] (v0.0.1-20120511)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_WELL|Lite Module: WELL]]&lt;br /&gt;
| HUD module for World Effect Language Library, utility functions&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-Preview6.lsl|Myriad_Lite_Module_WELL-Preview6.lsl]] (v0.0.2-20120626)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl|Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Melee|Melee]]&lt;br /&gt;
| Melee weapon attachment for clubs, knives, swords, etc.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Melee-Preview6.lsl|Myriad_Lite_Melee-Preview6.lsl]] (v0.0.6-20120508)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Meter|Meter]]&lt;br /&gt;
| Hovertext meter to see character status in-world&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-Preview6.lsl|Myriad_Lite_Meter-Preview6.lsl]] (v0.0.6-20120810)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-v0.0.7-20120827.lsl|Myriad_Lite_Meter-v0.0.7-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Target|Target]]&lt;br /&gt;
| Practice dummy for close and ranged combat&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Target-Preview6.lsl|Myriad_Lite_Target-Preview6.lsl]] (v0.0.6-20120202.lsl)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Owner Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC|BAM Adventure Giver NPC]]&lt;br /&gt;
| Baroun's Adventure Machine NPC script to start quests off&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC-Preview6.lsl|BAM_Adventure_Giver_NPC-Preview6.lsl]] (v0.0.7-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal|BAM Collision Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered on collision&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal-Preview6.lsl|BAM_Collision_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal|BAM Location Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered by sensor&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal-Preview6.lsl|BAM_Location_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal|BAM Touch Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal trigger by touch&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal-Preview6.lsl|BAM_Touch_Goal-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Trap|BAM Trap]]&lt;br /&gt;
| A quest trap by [[User:Lani Global|Lani Global]]&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl|Myriad_Compatible_Trap-Preview6.lsl]] (v0.5.4-20120202)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Food_Potion|Food Potion]]&lt;br /&gt;
| Partial healing based one a one-time use edible or drinkable item by Yoshiko Fazuku&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl|Myriad_Lite_Food_Potion-Preview6.lsl]] (v0.0.1-20120830)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Healing|Healing]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-Preview6.lsl|Myriad_Lite_Healing-Preview6.lsl]] (v0.0.2-20120130)&lt;br /&gt;
| BUG FIX: [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-v0.0.2-20120903.lsl|Myriad_Lite_Healing-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Narrator|Narrator]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Narrator-Preview6.lsl|Myriad_Lite_Narrator-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Critter_Goon|NPC Critter Goon]]&lt;br /&gt;
| Framework for Myriad simple, expendable Critters and Goons Non-Player Characters&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-Preview6.lsl|Myriad_Lite_NPC_Critter_Goon-Preview6.lsl]] (v0.0.0-20120708)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl|Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl]] (v0.0.1-20121227)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Specialist|NPC Specialist]]&lt;br /&gt;
| Framework for Myriad skill-specific specialist Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Detailed|NPC Detailed]]&lt;br /&gt;
| Framework for Myriad fully-detailed Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Status|Region Status]]&lt;br /&gt;
| Simple report for Myriad combat status of all players in region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-Preview6.lsl|Myriad_Lite_Region_Status-Preview6.lsl]] (v0.0.0-20120810)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-v0.0.2-20120903.lsl|Myriad_Lite_Region_Status-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Rumor_Server|Rumor Server]]&lt;br /&gt;
| Rumor server script for serving moderated player-submitted rumors to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Rumor_Server-Preview6.lsl|Myriad_Lite_Rumor_Server-Preview6.lsl]] (v0.0.5-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Seed_Rumors|Seed Rumors]]&lt;br /&gt;
| Starting rumors notecard for &amp;quot;seeding&amp;quot; a set of rumors for the Rumor Server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Seed_Rumors-Preview6.lsl|Myriad_Lite_Seed_Rumors-Preview6.lsl]] (v0.0.0-20101108)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret|Turret]]&lt;br /&gt;
| Automated turret to track and shoot players&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret-Preview6.lsl|Myriad_Lite_Turret-Preview6.lsl]] (v0.0.1-20120807)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret_Bullet|Turret Bullet]]&lt;br /&gt;
| Modified Myriad Bullet for use inside automated Turrets and NPCs.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret_Bullet-Preview6.lsl|Myriad_Lite_Turret_Bullet-Preview6.lsl]] (v0.0.0-20120511)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Region Settings Server ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings|Region Settings]]&lt;br /&gt;
| Region settings notecard for region settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings-Preview6.lsl|Myriad_Lite_Region_Settings-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Client|Region Settings Client]]&lt;br /&gt;
| Test client script to list region settings and region setting data from Region Settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Client-Preview6.lsl|Myriad_Lite_Region_Settings_Client-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Server|Region Settings Server]]&lt;br /&gt;
| Region settings server script for serving Region Settings data to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Server-Preview6.lsl|Myriad_Lite_Region_Settings_Server-Preview6.lsl]] (v0.0.4-20120810)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater CSV Server ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Summary&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons]]&lt;br /&gt;
| Boon data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons-v0.0.0-20120326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Client]]&lt;br /&gt;
| Test client script to list boons and boon data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Server]]&lt;br /&gt;
| CSV server script for serving Boon data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Server-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment]]&lt;br /&gt;
| Equipment data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment-v0.0.1-20120424.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Client]]&lt;br /&gt;
| Test client script to list equipment and equipment data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Client-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Server]]&lt;br /&gt;
| CSV server script for serving Equipment data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws]]&lt;br /&gt;
| Flaws data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Client]]&lt;br /&gt;
| Test client script to list flaws and flaws data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Server]]&lt;br /&gt;
| CSV server script for serving Flaws data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools]]&lt;br /&gt;
| Point Pool data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools-v0.0.0-20110928.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Client]]&lt;br /&gt;
| Test client script to list Point Pools data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Server]]&lt;br /&gt;
| CSV server script for serving Point Pools data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences]]&lt;br /&gt;
| Resilience data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences-v0.0.0-20111005.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Client]]&lt;br /&gt;
| Test client script to list Resiliences data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Client-v0.0.0-20111005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Server]]&lt;br /&gt;
| CSV server script for serving Resiliences data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Server-v0.0.0-20121005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX]]&lt;br /&gt;
| Special Effect abilities data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Client]]&lt;br /&gt;
| Test client script to list SFX data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Client-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Server]]&lt;br /&gt;
| CSV server script for serving SFX data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Server-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills]]&lt;br /&gt;
| Skills data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills-v0.0.2-20120527.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Client]]&lt;br /&gt;
| Test client script to list Skills data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Client-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Server]]&lt;br /&gt;
| CSV server script for serving Skills data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics]]&lt;br /&gt;
| Statistics data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics-v0.0.0-20111001.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Client]]&lt;br /&gt;
| Test client script to list Statistics data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Server]]&lt;br /&gt;
| CSV server script for serving Statistics data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Server-v0.0.0-20111001.lsl]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
REQUIRES CSV AND TEMPLATE SERVER ABOVE TO BE SETUP FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current (Preview 6)&lt;br /&gt;
! Development&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Controller]]&lt;br /&gt;
| Starts/stops Character Creator scripts based on modes&lt;br /&gt;
| [[Myriad_Lite_Creator_Controller-v0.0.1-20120203.lsl]]&lt;br /&gt;
| Myriad_Lite_Creator_Controller-v0.0.2-20120525.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Points-Based]]&lt;br /&gt;
| Manage character creation using point pools to buy attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Points-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Random]]&lt;br /&gt;
| Manage character creation using random dice rolls for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Random-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Template]]&lt;br /&gt;
| Manage character creation using templates for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Template-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Gradual]]&lt;br /&gt;
| Manage character progress using Gradual method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Gradual-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Level-Based]]&lt;br /&gt;
| Manage character progress using Experience Point Level-based method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Level-Based-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Random]]&lt;br /&gt;
| Manage character progress using Random method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Random-v0.0.0-20120528.lsl&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Snapshot Previews ==&lt;br /&gt;
I as develop the system, I wrap up and post everything as a milestone snapshot called a Preview. Preview snapshots are archived below.&lt;br /&gt;
&lt;br /&gt;
The latest Preview Release is the recommended place to start if you are exploring the system.&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 February 2012]] - Combat and roleplaying HUD and accessories for players and region owners.&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_4 Myriad Lite Preview 4 September 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_3 Myriad Lite Preview 3 August 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_2 Myriad Lite Preview 2 June 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Preview Myriad Lite Preview 1 June 2011]&lt;br /&gt;
&lt;br /&gt;
=== Myriad Online Reference ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
U N D E R    C O N S T R U C T I O N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To provide an online reference for the rules and data, which can be used as comment links in the code, I have included the text of the original Myriad RPG system book here for reference.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Universal_RPG_System|Myriad Universal RPG System]]&lt;br /&gt;
&lt;br /&gt;
Note: Myriad Lite may include rule implementation and supporting data from the Special Extended Edition, which is not reprinted here.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite</id>
		<title>User:Allen Kerensky/Myriad Lite</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Myriad_Lite"/>
				<updated>2013-03-19T20:17:16Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Added Yoshiko's contributed food potion script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Myriad Lite =&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
H E L P   W A N T E D&lt;br /&gt;
&lt;br /&gt;
Tanja Darwin has stepped forward to investigate  Myriad-style roleplaying&lt;br /&gt;
rules and abilities as a C# OpenSim server module and C++ viewer patch&lt;br /&gt;
working together.&lt;br /&gt;
&lt;br /&gt;
C# Developers are needed to create an OpenSim module which implements the&lt;br /&gt;
Myriad RPG System in a region as middleware which talks to a region database&lt;br /&gt;
&lt;br /&gt;
C++ Developers are needed to create a Third Party Viewer patch to implement&lt;br /&gt;
Myriad RPG System in the viewer/client&lt;br /&gt;
&lt;br /&gt;
Please contact Tanja Darwin (OSG) or Allen Kerensky (OSG/SL) if you can help!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== What Is Myriad Lite? ==&lt;br /&gt;
Before home computers were widely available, people played role-playing games (RPGs) by sitting around a table, telling shared stories, and rolling dice to determine if their &amp;quot;character&amp;quot; in the story succeeded or failed at the actions the player wanted them to take within the story.&lt;br /&gt;
&lt;br /&gt;
Myriad Lite is a project to adapt a pen-and-paper role-playing game rulebook into [http://opensimulator.org OpenSimulator] Xengine and [http://secondlife.com SecondLife] Mono scripts, and the related 3D objects, needed to implement a pen-and-paper role-playing game in 3D virtual worlds.&lt;br /&gt;
&lt;br /&gt;
== The Myriad Universal RPG System ==&lt;br /&gt;
Myriad Lite is based on the book [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 MYRIAD: A UNIVERSAL RPG SYSTEM] by Ashok Desai, which is freely downloadable as a PDF e-book from [http://www.lulu.com/product/file-download/myriad-rpg-system/307787 Lulu].&lt;br /&gt;
&lt;br /&gt;
You also also purchase the &amp;quot;Myriad Special Extended Edition&amp;quot; printed book from that site, which includes for additional rules, many more examples, and other information.&lt;br /&gt;
&lt;br /&gt;
I do not make any financial gain if you purchase the book, but if you would like to support the original writer, I recommend it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
It is helpful to read through the original rulebook to understand the rules and assumptions &amp;quot;behind&amp;quot; Myriad Lite, before diving into the scripts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
In Alphabetical Order:&lt;br /&gt;
* Allen Kerensky (SL/OSG) - contributed the initial LSL and OSSL scripting and basic system design converting a pen and paper game into the virtual world&lt;br /&gt;
* Artemis Tesla (OSG) - improved health summary report scripting&lt;br /&gt;
* Ashok Desai - contributed the original Myriad RPG System and Myriad Special Extended Edition books that started this &lt;br /&gt;
* Baroun Tardis (SL/OSG) - contributed Baroun's Adventure Machine (BAM) v1 design and scripts&lt;br /&gt;
* Jeanie Weston (SL) - contributed Jeanie's Heart sculpty&lt;br /&gt;
* Lani Global (OSG) - contributed animations, textures sounds, bullet and armor effects design, trap design and scripting, continual testing and feedback&lt;br /&gt;
* Pete Camino (OSG) - contributed firearms, feedback and testing&lt;br /&gt;
* Snoopy Pfeffer (SL/OSG) - contributed the Ixi combat sandbox region for testing&lt;br /&gt;
* Yoshiko Fazuku (SL/OSG/Avi) - Contributed Food/Potion scripting&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Roadmap|Myriad Lite Roadmap]] - High-level list of milestones leading to release&lt;br /&gt;
&lt;br /&gt;
== Current and Development ==&lt;br /&gt;
=== Player Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Armor|Armor]]&lt;br /&gt;
| Registers armor attachments with HUD&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-Preview6.lsl|Myriad_Lite_Armor_Preview6.lsl]] (v0.0.6 20120212)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Armor-v0.0.7-20120826.lsl|Myriad_Lite_Armor-v0.0.7-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Bullet|Bullet]]&lt;br /&gt;
| Fired from firearm to trigger Ranged Combat skill checks&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Bullet-Preview6.lsl|Myriad_Lite_Bullet-Preview6.lsl]] (v0.0.5 20120811)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Firearm|Firearm]]&lt;br /&gt;
| Firearm/bow attachment to fire bullets/arrows&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Firearm-Preview6.lsl|Myriad_Lite_Firearm-Preview6.lsl]] (v1.5-20120130)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Holster|Holster]]&lt;br /&gt;
| Holster/sheath attachment to show you carry a weapon&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Holster-Preview6.lsl|Myriad_Lite_Holster-Preview6.lsl]] (v0.0.1-20120201)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite|Lite]]&lt;br /&gt;
| The core script for the Myriad Lite HUD&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-Preview6.lsl|Myriad_Lite-Preview6.lsl]] (v0.1.10-20120809)&lt;br /&gt;
| Myriad Bullets Only - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.11-20120826.lsl|Myriad_Lite-v0.1.11-20120826.lsl]] &lt;br /&gt;
Collision OR Myriad Bullets - [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite-v0.1.12-20121219.lsl|Myriad_Lite-v0.1.12-20121219.lsl]] (may be withdrawn)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Armor|Lite Module: Armor]]&lt;br /&gt;
| HUD module for Armor attachments&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-Preview6.lsl|Myriad_Lite_Module_Armor-Preview6.lsl]] (v0.0.2-20120317)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl|Myriad_Lite_Module_Armor-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_BAM|Lite Module: BAM]]&lt;br /&gt;
| HUD module for Baroun's Adventure Machine (Quests)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-Preview6.lsl|Myriad_Lite_Module_BAM-Preview6.lsl]] (v0.0.4-20120317)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_BAM-v0.0.5.lsl|Myriad_Lite_Module_BAM-v0.0.5-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Character_Sheet|Lite Module: Character Sheet]]&lt;br /&gt;
| HUD module to load and manage character sheet data&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-Preview6.lsl|Myriad_Lite_Module_Character_Sheet-Preview6.lsl]] (v0.0.3-20120522) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl|Myriad_Lite_Module_Character_Sheet-v0.0.6-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Character_Sheet|Character Sheet]]&lt;br /&gt;
| HUD notecard for character sheet information and stats&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Character_Sheet-Preview6.txt|Myriad_Lite_Character_Sheet-Preview6.txt]] (v0.0.5-20120604))&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Meter|Lite Module: Meter]]&lt;br /&gt;
| HUD module to manage the hovertext meter attachment&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-Preview6.lsl|Myriad_Lite_Module_Meter-Preview6.lsl]] (v0.0.0-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl|Myriad_Lite_Module_Meter-v0.0.3-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Progression|Lite Module: Progression]]&lt;br /&gt;
| HUD module to track and spend Experience Points for progress&lt;br /&gt;
| &lt;br /&gt;
| Myriad_Lite_Module_Progression-v0.0.0-20120518.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Resilience|Lite Module: Resilience]]&lt;br /&gt;
| HUD module to track resilience, wounds, and healing&lt;br /&gt;
| &amp;lt;strike&amp;gt; [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-Preview6.lsl|Myriad_Lite_Module_Resilience-Preview6.lsl]] (v0.0.1-20120810) &amp;lt;/strike&amp;gt;&lt;br /&gt;
| CRITICAL FIX [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl|Myriad_Lite_Module_Resilience-v0.0.5-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Rumors|Lite Module: Rumors]]&lt;br /&gt;
| HUD module for region-specific rumors&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-Preview6.lsl|Myriad_Lite_Module_Rumors-Preview6.lsl]] (v0.0.1-20120317)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl|Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Close_Combat|Lite Module: Skill Close Combat]]&lt;br /&gt;
| HUD module for Close Combat skill, hand-to-hand combat, fist fighter&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Close_Combat-Preview6.lsl]] (v0.0.0-20120430)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl|Myriad_Lite_Module_Skill_Close_Combat-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_Skill_Ranged_Combat|Lite Module: Skill Ranged Combat]]&lt;br /&gt;
| HUD module for Ranged Combat skill, thrown and fired projectiles&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-Preview6.lsl]] (v0.0.1-20120511)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl|Myriad_Lite_Module_Skill_Ranged_Combat-v0.0.3-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Lite_Module_WELL|Lite Module: WELL]]&lt;br /&gt;
| HUD module for World Effect Language Library, utility functions&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-Preview6.lsl|Myriad_Lite_Module_WELL-Preview6.lsl]] (v0.0.2-20120626)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl|Myriad_Lite_Module_WELL-v0.0.3-20120826.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Melee|Melee]]&lt;br /&gt;
| Melee weapon attachment for clubs, knives, swords, etc.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Melee-Preview6.lsl|Myriad_Lite_Melee-Preview6.lsl]] (v0.0.6-20120508)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Meter|Meter]]&lt;br /&gt;
| Hovertext meter to see character status in-world&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-Preview6.lsl|Myriad_Lite_Meter-Preview6.lsl]] (v0.0.6-20120810)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Meter-v0.0.7-20120827.lsl|Myriad_Lite_Meter-v0.0.7-20120827.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Target|Target]]&lt;br /&gt;
| Practice dummy for close and ranged combat&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Target-Preview6.lsl|Myriad_Lite_Target-Preview6.lsl]] (v0.0.6-20120202.lsl)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Region Owner Scripts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC|BAM Adventure Giver NPC]]&lt;br /&gt;
| Baroun's Adventure Machine NPC script to start quests off&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Adventure_Giver_NPC-Preview6.lsl|BAM_Adventure_Giver_NPC-Preview6.lsl]] (v0.0.7-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal|BAM Collision Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered on collision&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Collision_Goal-Preview6.lsl|BAM_Collision_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal|BAM Location Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal triggered by sensor&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Location_Goal-Preview6.lsl|BAM_Location_Goal-Preview6.lsl]] (v0.0.8-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal|BAM Touch Goal]]&lt;br /&gt;
| Baroun's Adventure Machine quest goal trigger by touch&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Touch_Goal-Preview6.lsl|BAM_Touch_Goal-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/BAM_Trap|BAM Trap]]&lt;br /&gt;
| A quest trap by [[User:Lani Global|Lani Global]]&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl|Myriad_Compatible_Trap-Preview6.lsl]] (v0.5.4-20120202)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Food_Potion]]&lt;br /&gt;
| Partial healing based one a one-time use edible or drinkable item by Yoshiko Fazuku&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Food_Potion-Preview6.lsl]] (v0.0.1-20120830)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Healing|Healing]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-Preview6.lsl|Myriad_Lite_Healing-Preview6.lsl]] (v0.0.2-20120130)&lt;br /&gt;
| BUG FIX: [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Healing-v0.0.2-20120903.lsl|Myriad_Lite_Healing-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Narrator|Narrator]]&lt;br /&gt;
| Provide narrated location-specific descriptions and clues&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Narrator-Preview6.lsl|Myriad_Lite_Narrator-Preview6.lsl]] (v0.0.9-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Critter_Goon|NPC Critter Goon]]&lt;br /&gt;
| Framework for Myriad simple, expendable Critters and Goons Non-Player Characters&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-Preview6.lsl|Myriad_Lite_NPC_Critter_Goon-Preview6.lsl]] (v0.0.0-20120708)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl|Myriad_Lite_NPC_Critter_Goon-v0.0.1-20121227.lsl]] (v0.0.1-20121227)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Specialist|NPC Specialist]]&lt;br /&gt;
| Framework for Myriad skill-specific specialist Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/NPC_Detailed|NPC Detailed]]&lt;br /&gt;
| Framework for Myriad fully-detailed Non-Player Characters&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Status|Region Status]]&lt;br /&gt;
| Simple report for Myriad combat status of all players in region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-Preview6.lsl|Myriad_Lite_Region_Status-Preview6.lsl]] (v0.0.0-20120810)&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Status-v0.0.2-20120903.lsl|Myriad_Lite_Region_Status-v0.0.2-20120903.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Rumor_Server|Rumor Server]]&lt;br /&gt;
| Rumor server script for serving moderated player-submitted rumors to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Rumor_Server-Preview6.lsl|Myriad_Lite_Rumor_Server-Preview6.lsl]] (v0.0.5-20120704)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Seed_Rumors|Seed Rumors]]&lt;br /&gt;
| Starting rumors notecard for &amp;quot;seeding&amp;quot; a set of rumors for the Rumor Server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Seed_Rumors-Preview6.lsl|Myriad_Lite_Seed_Rumors-Preview6.lsl]] (v0.0.0-20101108)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret|Turret]]&lt;br /&gt;
| Automated turret to track and shoot players&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret-Preview6.lsl|Myriad_Lite_Turret-Preview6.lsl]] (v0.0.1-20120807)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Turret_Bullet|Turret Bullet]]&lt;br /&gt;
| Modified Myriad Bullet for use inside automated Turrets and NPCs.&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Turret_Bullet-Preview6.lsl|Myriad_Lite_Turret_Bullet-Preview6.lsl]] (v0.0.0-20120511)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Region Settings Server ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings|Region Settings]]&lt;br /&gt;
| Region settings notecard for region settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings-Preview6.lsl|Myriad_Lite_Region_Settings-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Client|Region Settings Client]]&lt;br /&gt;
| Test client script to list region settings and region setting data from Region Settings server&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Client-Preview6.lsl|Myriad_Lite_Region_Settings_Client-Preview6.lsl]] (v0.0.3-20120810)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Region_Settings_Server|Region Settings Server]]&lt;br /&gt;
| Region settings server script for serving Region Settings data to a region&lt;br /&gt;
| [[User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Region_Settings_Server-Preview6.lsl|Myriad_Lite_Region_Settings_Server-Preview6.lsl]] (v0.0.4-20120810)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater CSV Server ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Summary&lt;br /&gt;
! Current Script (Preview 6)&lt;br /&gt;
! Development Script&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons]]&lt;br /&gt;
| Boon data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons-v0.0.0-20120326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Client]]&lt;br /&gt;
| Test client script to list boons and boon data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Boons Server]]&lt;br /&gt;
| CSV server script for serving Boon data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Boons_Server-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment]]&lt;br /&gt;
| Equipment data notecard for Myriad CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment-v0.0.1-20120424.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Client]]&lt;br /&gt;
| Test client script to list equipment and equipment data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Client-v0.0.1-20120124.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Equipment Server]]&lt;br /&gt;
| CSV server script for serving Equipment data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Equipment_Server-v0.0.2-20120424.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws]]&lt;br /&gt;
| Flaws data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Client]]&lt;br /&gt;
| Test client script to list flaws and flaws data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Client-v0.0.0-20111006.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Flaws Server]]&lt;br /&gt;
| CSV server script for serving Flaws data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Flaws_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools]]&lt;br /&gt;
| Point Pool data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools-v0.0.0-20110928.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Client]]&lt;br /&gt;
| Test client script to list Point Pools data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Point Pools Server]]&lt;br /&gt;
| CSV server script for serving Point Pools data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Point_Pools_Server-v0.0.1-20120129.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences]]&lt;br /&gt;
| Resilience data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences-v0.0.0-20111005.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Client]]&lt;br /&gt;
| Test client script to list Resiliences data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Client-v0.0.0-20111005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Resiliences Server]]&lt;br /&gt;
| CSV server script for serving Resiliences data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Resiliences_Server-v0.0.0-20121005.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX]]&lt;br /&gt;
| Special Effect abilities data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX-v0.0.0-20100326.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Client]]&lt;br /&gt;
| Test client script to list SFX data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Client-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server SFX Server]]&lt;br /&gt;
| CSV server script for serving SFX data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_SFX_Server-v0.0.0-20111008.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills]]&lt;br /&gt;
| Skills data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills-v0.0.2-20120527.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Client]]&lt;br /&gt;
| Test client script to list Skills data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Client-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Skills Server]]&lt;br /&gt;
| CSV server script for serving Skills data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Skills_Server-v0.0.1-20120527.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics]]&lt;br /&gt;
| Statistics data notecard for CSV Server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics-v0.0.0-20111001.csv]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Client]]&lt;br /&gt;
| Test client script to list Statistics data from CSV server&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Client-v0.0.0-20110928.lsl]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CSV Server Statistics Server]]&lt;br /&gt;
| CSV server script for serving Statistics data to a region&lt;br /&gt;
|&lt;br /&gt;
| [[Myriad_Lite_Statistics_Server-v0.0.0-20111001.lsl]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Character Creator/Updater ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
OPTIONAL - NOT READY FOR PRIME TIME UNTIL END OF PREVIEW 7!&lt;br /&gt;
REQUIRES CSV AND TEMPLATE SERVER ABOVE TO BE SETUP FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Instructions&lt;br /&gt;
! Description&lt;br /&gt;
! Current (Preview 6)&lt;br /&gt;
! Development&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Controller]]&lt;br /&gt;
| Starts/stops Character Creator scripts based on modes&lt;br /&gt;
| [[Myriad_Lite_Creator_Controller-v0.0.1-20120203.lsl]]&lt;br /&gt;
| Myriad_Lite_Creator_Controller-v0.0.2-20120525.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Points-Based]]&lt;br /&gt;
| Manage character creation using point pools to buy attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Points-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Random]]&lt;br /&gt;
| Manage character creation using random dice rolls for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Random-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Creator Template]]&lt;br /&gt;
| Manage character creation using templates for attributes&lt;br /&gt;
| [[Myriad_Lite_Creator_Template-v0.0.1-20120203.lsl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Gradual]]&lt;br /&gt;
| Manage character progress using Gradual method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Gradual-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Level-Based]]&lt;br /&gt;
| Manage character progress using Experience Point Level-based method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Level-Based-v0.0.0-20120528.lsl&lt;br /&gt;
|-&lt;br /&gt;
| [[Character Updater Random]]&lt;br /&gt;
| Manage character progress using Random method&lt;br /&gt;
|&lt;br /&gt;
| Myriad_Lite_Updater_Random-v0.0.0-20120528.lsl&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Snapshot Previews ==&lt;br /&gt;
I as develop the system, I wrap up and post everything as a milestone snapshot called a Preview. Preview snapshots are archived below.&lt;br /&gt;
&lt;br /&gt;
The latest Preview Release is the recommended place to start if you are exploring the system.&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 February 2012]] - Combat and roleplaying HUD and accessories for players and region owners.&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_4 Myriad Lite Preview 4 September 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_3 Myriad Lite Preview 3 August 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Lite_Preview_2 Myriad Lite Preview 2 June 2011]&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/User:Allen_Kerensky/Myriad_Preview Myriad Lite Preview 1 June 2011]&lt;br /&gt;
&lt;br /&gt;
=== Myriad Online Reference ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
U N D E R    C O N S T R U C T I O N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To provide an online reference for the rules and data, which can be used as comment links in the code, I have included the text of the original Myriad RPG system book here for reference.&lt;br /&gt;
&lt;br /&gt;
* [[User:Allen Kerensky/Myriad_Universal_RPG_System|Myriad Universal RPG System]]&lt;br /&gt;
&lt;br /&gt;
Note: Myriad Lite may include rule implementation and supporting data from the Special Extended Edition, which is not reprinted here.&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-03-06T18:58:28Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added links to pages on specific hypergrid versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
[[File:background.png|border|alt=Ice Moon Exillion|Ice Moon Exillion science outpost]]&lt;br /&gt;
&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[File:Myriad_Logo.jpg|link=User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading user simstats with JSON&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_Grid_SimStats|JSON Grid SimStats]] - Reading grid simstats with JSON&lt;br /&gt;
&lt;br /&gt;
== Contributed OpenSim Code ==&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6537]] [PATCH] Additional ThreadPool worker and IOCP thread startup logic&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6538]] [PATCH] Added Unix and MacOSX platform checkin for Util.isEnvironmentSupported&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6544]] [PATCH] Refactor m_console.Command to remove gendarme warning&lt;br /&gt;
 &lt;br /&gt;
== Wiki Contributions ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[Hypergrid 2.0]] - Diva Cant's HG 2.0 protocol&lt;br /&gt;
* [[Hypergrid]] - Diva Canto's Hypergrid protocols&lt;br /&gt;
* [[Offline_Instant_Messaging_v2]] - Diva Canto's new offline IM module&lt;br /&gt;
* [[ConciergeModule]] - Concierge module&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[Profile]] - the OpenProfileModule&lt;br /&gt;
* [[Offline_Messaging]] - the OfflineMessagingModule v1 module&lt;br /&gt;
* [[OsGetAgentIP]] - OSSL call to get an avatar's IP address&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim&lt;br /&gt;
** [[LsSetWindlightSceneTargeted]] - set Windlight for a specific user, via [[LightShare]]&lt;br /&gt;
** [[LsSetWindlightScene]] - Set Windlight for everyone in the region, via [[LightShare]]&lt;br /&gt;
** [[LsGetWindlightScene]] - read the list of Windlight settings used, via [[LightShare]]&lt;br /&gt;
** [[LightShare Parameters]] - the [[LightShare]] parameter for getting or setting scene values&lt;br /&gt;
** [[Talk:Database:Regionwindlight]] - notes from the [[LightShare]] experiments related to the core database&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
* [[Enabling_Groups]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid_2.0</id>
		<title>Hypergrid 2.0</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid_2.0"/>
				<updated>2013-03-06T18:56:08Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hypergrid 2.0 =&lt;br /&gt;
&lt;br /&gt;
== Diva's Articles ==&lt;br /&gt;
* [http://metaverseink.com/blog/?p=459|How HG 2.0 is coming along]&lt;br /&gt;
* [http://metaverseink.com/blog/?p=299|Towards HG 2.0]&lt;br /&gt;
&lt;br /&gt;
== GatekeeperService ==&lt;br /&gt;
  [GatekeeperService]&lt;br /&gt;
&lt;br /&gt;
=== Foreign Agents Allowed ===&lt;br /&gt;
  ;; Allow outsiders to hypergrid in?&lt;br /&gt;
  ; ForeignAgentsAllowed = true&lt;br /&gt;
&lt;br /&gt;
=== AllowExcept ===&lt;br /&gt;
  ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept.&lt;br /&gt;
  ;; Leave blank or commented for no exceptions.&lt;br /&gt;
  AllowExcept = &amp;quot;http://griefer.com:8002, http://enemy.com:8002&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== DisallowExcept ===&lt;br /&gt;
  ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept&lt;br /&gt;
  ;; Leave blank or commented for no exceptions.&lt;br /&gt;
  ; DisallowExcept = &amp;quot;http://myfriendgrid.com:8002, http://myboss.com:8002&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== HGAssetService ==&lt;br /&gt;
  [HGAssetService]&lt;br /&gt;
&lt;br /&gt;
=== HomeURI ===&lt;br /&gt;
   HomeURI = &amp;quot;http://127.0.0.1:9000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== DisallowExport ===&lt;br /&gt;
  ;; The asset types that will never be exported&lt;br /&gt;
  DisallowExport =&amp;quot;LSLText, LSLBytecode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== DisallowImport ===&lt;br /&gt;
  ;; The asset types that will never be imported&lt;br /&gt;
  DisallowImport =&amp;quot;LSLBytecode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== HGInventoryService ==&lt;br /&gt;
=== My Suitcase ===&lt;br /&gt;
&lt;br /&gt;
== UserAgentService ==&lt;br /&gt;
  [UserAgentService]&lt;br /&gt;
&lt;br /&gt;
=== ForeignTripsAllowed_Level_x ===&lt;br /&gt;
  ;; Are local users allowed to visit other grids?&lt;br /&gt;
  ;; What user level? Use variables of this form:&lt;br /&gt;
  ;; ForeignTripsAllowed_Level_&amp;lt;UserLevel&amp;gt; = true | false&lt;br /&gt;
  ;; For example:&lt;br /&gt;
  ForeignTripsAllowed_Level_0 = false&lt;br /&gt;
  ForeignTripsAllowed_Level_10 = true ; true is default&lt;br /&gt;
&lt;br /&gt;
=== AllowExcept_Level_10 ===&lt;br /&gt;
  ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept.&lt;br /&gt;
  ;; Leave blank or commented for no exceptions.&lt;br /&gt;
  AllowExcept_Level_10 = &amp;quot;http://griefer.com:8002, http://enemy.com:8002&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Disallow_Except_Level_0 ===&lt;br /&gt;
  ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept&lt;br /&gt;
  ;; Leave blank or commented for no exceptions.&lt;br /&gt;
  DisallowExcept_Level_0 = &amp;quot;http://myfriendgrid.com:8002, http://myboss.com:8002&amp;quot;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid</id>
		<title>Hypergrid</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid"/>
				<updated>2013-03-06T18:37:09Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added links to pages on specific hypergrid versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The OpenSimulator Hypergrid ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What is the hypergrid? ===&lt;br /&gt;
&amp;lt;!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hypergrid is an extension to opensim that allows you to link your opensim to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds. &lt;br /&gt;
&lt;br /&gt;
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.&lt;br /&gt;
&lt;br /&gt;
The hypergrid started as a GForge project, but it is now included in the standard distribution of OpenSimulator. To run your OpenSimulator instance in hypergrid mode, please see [[Installing and Running Hypergrid|Installing and Running]].&lt;br /&gt;
&lt;br /&gt;
=== Hypergrid Versions ===&lt;br /&gt;
* [[Hypergrid 2.0]] - upcoming Hypergrid with greater security controls for region operators&lt;br /&gt;
* [[Hypergrid 1.5]] - current Hypergrid with greater asset security and expanded services &lt;br /&gt;
* [[Hypergrid 1.0]] - the original Hypergrid described below&lt;br /&gt;
&lt;br /&gt;
=== Virtual World Hyperlinks ===&lt;br /&gt;
[[Image:hghyperlink.jpg|250px|thumb|A Virtual World Hyperlink]]&lt;br /&gt;
&lt;br /&gt;
We're all familiar with hypertext links on the Web. But what is a virtual world hyperlink?&lt;br /&gt;
&lt;br /&gt;
In the hypergrid model, we consider the 2D map of the virtual world as the equivalent of a web page. As such, a VW hyperlink is simply a region on that map. &lt;br /&gt;
&lt;br /&gt;
The default model of opensim-based virtual worlds already supports this concept of hyperlink, to some extent. When you teleport from one region to another via the map, chances are you are migrating your agent into a different opensim server. This migration is a glorified &amp;quot;agent transfer&amp;quot; that also exists, in rudimentary form, on the web when hypertext links are followed. The default model, however, imposes two very strong constraints on these hyperlinks: &lt;br /&gt;
# The entire map of regions is controlled by a central service known as the grid service, whose job is to provide a uniform view of the world to all of its regions.&lt;br /&gt;
# The only agents that can be transferred are those pertaining to users known to another central service, the user service; if the incoming user is not on that service's database, the agent transfer doesn't go through.&lt;br /&gt;
&lt;br /&gt;
The hypergrid simply removes these two constraints. &lt;br /&gt;
&lt;br /&gt;
First, it allows individual opensim instances to add &amp;quot;neighbors&amp;quot; to their local map, shifting the control of the map down from the grid server to individual opensim instances (although hyperlinks can also be served by grid servers if grid admins so wish). In doing so, the world becomes a lot more interesting and varied. The map that you see in one opensim instance may be completely different from the map that you see after you teleport via an hyperlink. As an opensim administrator, you are free to define what other opensims you want to see on your map.&lt;br /&gt;
&lt;br /&gt;
Second, it allows the transfer of agents pertaining to foreigner users, i.e. users who are registered elsewhere. Instead of assuming one central user service, the hypergrid assumes an arbitrarily large number of such services distributed all over the world. As such, when agents are transferred among hypergrided opensims, a lot more information is passed about the corresponding user. That information includes the collection of servers that the transferring user needs.&lt;br /&gt;
&lt;br /&gt;
=== Usage Scenarios ===&lt;br /&gt;
&lt;br /&gt;
The following are some usage scenarios. There isn't a clear separation between these scenarios, there's a large overlap between them. This is also not an exhaustive list. The purpose of these descriptions is to give you some starting ideas for how to use the hypergrid in practice. Please feel free to add other interesting scenarios to this list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:topoA.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Personal Worlds'''&lt;br /&gt;
&lt;br /&gt;
This first scenario pertains to standalone opensims. Normally, standalones are completely disconnected from the internet. However, when run in hypergrid mode, standalones become network-able. As such, you can run your own world in your own computer, and link your world to whoever you want. For example, you can link to your friends' hypergrided opensims and to hypergrid gateways in open grids such as OSGrid. &lt;br /&gt;
&lt;br /&gt;
The great thing about this scenario is that all of your assets are stored on your computer, and not on somebody else's server. You can back them up using ordinary backend tools. The not so great thing about this scenario is that all of your assets are stored on your computer! If your disk goes berserk, you loose them. (so make sure you make external backups regularly)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:topoB.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Communities'''&lt;br /&gt;
&lt;br /&gt;
This second scenario is about communities, broadly construed. The idea here is that a group of people come together to support a small community grid, i.e. a common world where shared activities take place. But at the same time, the members of the community maintain their own standalone worlds. The standalones link to the community grid, and the community grid may link back to the individual members' worlds and other places of interest.&lt;br /&gt;
&lt;br /&gt;
The members' identities are probably the identities they have on their standalones, and their assets are also probably stored there. The assets present in the community regions, however, are stored on the grid asset server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:topoC.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Grid Public Regions'''&lt;br /&gt;
&lt;br /&gt;
Walled-gardens are here to stay, and they serve many useful purposes. There is a hybrid mode for the hypergrid that some walled-garden grid operators may be interested in supporting. In this hybrid mode, most opensim instances on the grid run in normal, wall-garden mode, so no foreign visitors are allowed there - technically it is impossible to reach them. However, a few opensim instances on that grid can run in hypergrid mode, so that foreign visitors are allowed. This way, there is a gateway for grid-local users and arbitrary visitors to meet. This is also a good strategy for attracting new users to the grid, since random users are able to visit those gateway regions without having to sign up for an account upfront.&lt;br /&gt;
&lt;br /&gt;
This hybrid mode is very similar to what happens on the web. For example, anyone can visit Facebook's public pages without having to sign up for a Facebook account. However, only Facebook users can go further inside.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:topoD.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Level Games'''&lt;br /&gt;
&lt;br /&gt;
The normal version of OpenSimulator enforces a common map for all the regions on a grid. The hypergrid removes that constraint. As such, it becomes easy to design VW games where the world looks different depending of where the player is. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hypergrid Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Hyperlinks and Agent Transfers ===&lt;br /&gt;
&lt;br /&gt;
When you establish a link between your opensim and another, a message is sent out to that other opensim requesting information about it; the required information includes the network information of that opensim host, and the coordinates of its first region on its local grid in the form of a region handle. For example, suppose you are linking node X.com:9000, placing it in your local map at 900, 900. That opensim runs one or more regions that likely are not in 900, 900 on their own map; suppose the first region of that opensim is at 1100, 1100. From your point of view, it doesn't matter what those other coordinates are, and you don't need to know -- that's the key to being able to decentralize the &amp;quot;world&amp;quot; as given by a 2D map; you want to place it in your map at 900, 900. The &amp;quot;true&amp;quot; position of that simulator only matters for the LL viewer, when there are teleports between your world and that other opensim. This mapping between coordinate systems is the essence of hyperlinks for opensim; it's one simple but critical thing that the hypergrid implementation does. The mapping happens on the TeleportFinish event; instead of sending the local coordinates to the viewer, the hypergrid teleport wrapper sends the remote coordinates.&lt;br /&gt;
&lt;br /&gt;
When an agent teleports through that hyperlink the following happens. First, before InformRegionOfChildAgent, the local opensim notifies the remote opensim of this foreign user via the &amp;quot;expect_hg_user&amp;quot; method. That message sends along the addresses of all the servers that this user uses, i.e. user, inventory and asset servers. The remote opensim places an entry for that user in its local user profile cache but not in its user database; the foreign user information is non-persistent. After that, the teleport process is exactly the same as the normal teleport process; the only difference is that the region handles are switched between the remote region's hyperlink position on the local grid and its actual position on its grid. &lt;br /&gt;
&lt;br /&gt;
In summary, the two new concepts introduced by the hypergrid are the concept of an hyperlink and the concept of a &amp;quot;local user&amp;quot; vs. &amp;quot;[[Banning Foreign Users in Hypergrid|foreign user]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Inventory Access ===&lt;br /&gt;
&lt;br /&gt;
Inventory access from abroad is done by wrapping the existing scene-inventory interactions with additional code that gets or posts inventory assets from/to the user's asset server. When inventory is accessed, the hypergrid wrapper checks if the user is foreign and, if she is, the wrapper simply brings the necessary assets from the user's asset server to the local asset cache and server; from then on, the wrapper passes the control to the existing inventory access functions. When something is added to inventory, the hypergrid wrapper is notified via an event, and posts the assets to the user's asset server. A cache of the exchanged item identifiers is maintained so that they aren't brought back over and over again.&lt;br /&gt;
&lt;br /&gt;
The result is that hypergrided opensim instances end up interacting with several asset servers, instead of just one. That interaction is implemented in a straightforward manner by instantiating several GridAssetClient objects, instead of just one.&lt;br /&gt;
&lt;br /&gt;
=== The Hypergrid Classes ===&lt;br /&gt;
&lt;br /&gt;
Currently, the hypergrid is implemented outside of the OpenSimulator namespace, so that there is complete separation between what already exists and this new behavior. It has its own namespace, HyperGrid. In it, there are 4 sub-namespaces that follow directly the software architecture of OpenSim, namely:&lt;br /&gt;
&lt;br /&gt;
* '''OpenSim.Framework''':&lt;br /&gt;
** ForeignUserProfileData extends UserProfileData by introducing information about the user's &amp;quot;home&amp;quot;, namely the home address, port and remoting port. The user's home is not that user's user service; it's the opensim that the user has defined to be her home. This is necessary for supporting the home jump (Ctrl-Shift-H).&lt;br /&gt;
** HGNetworkServersInfo follows the spirit of NetworkServersInfo, although it neither extends it nor uses it. For now, it's a utility class whose two main functions are to convert domain names of servers to IP addresses, and to uniformly provide the answer to the question bool IsLocalUser(...).&lt;br /&gt;
&lt;br /&gt;
* '''OpenSim.Region.Framework.Scenes.Hypergrid''':&lt;br /&gt;
** HGSceneCommunicationService extends SceneCommunicationService, overriding RequestTeleportToLocation. There are two very small but critical changes to the base method: (a) on the TeleportFinish event, we switch the region handles when the destination region is an hyperlink; (b) the connections at the end are always closed for hyperlink TPs.&lt;br /&gt;
** HGScene extends Scene, overriding TeleportClientHome(...). The only change to the base method is to stay away from the user server, for now, because the user service is still not completely wrapped up for foreign users. Once the user service is properly wrapped up, this class will become unnecessary.&lt;br /&gt;
** HGScene.Inventory is a partial class of HGScene, just like what happens in the OpenSimulator framework. This part of HGScene overrides some inventory-scene interaction methods, so that assets are fetched/posted from/to the user's asset server. Once that extra fetching/posting is done, these methods simply pass the ball to the base methods.&lt;br /&gt;
** HGAssetMapper: this is a new class specific to the hypergrid that manages the fetching and posting of assets between foreign regions where the user is and the user's asset server.&lt;br /&gt;
&lt;br /&gt;
* '''OpenSim.Region.Communications.HyperGrid''' is a mashup of OpenSim.Region.Communications.*. This is the place where most of the hypergrid extension lies. One of the reasons for this is that the hypergrid communications part is doing one additional thing: it is making standalones network-able.&lt;br /&gt;
** HGCommunicationsStandalone extends CommuniationsLocal. Just as its base, it is a hub for the several network services available in standalone mode. The main difference is that those services are extensions of what's in OpenSimulator.&lt;br /&gt;
** HGCommunicationsGridMode extends CommunicationsManager directly. Again, it's a hub for the network services available in grid mode, those services being extensions of OpenSimulator.&lt;br /&gt;
** The cluster HGGridServices (superclass), HGGridServicesStandalone and HGGridServicesGridMode (subclasses) implements the OpenSimulator interfaces IGridServices and IInterRegionCommunications. The 2 subclasses are wrappers for LocalBackEndServices and OGS1GridServices, respectively. There is one common pattern throughout these classes: check if the region to talk to is an hyperlink; if it's not, simply delegate the work to LocalBackEndServices/OGS1GridServices; if it is, push the work to the base class HGGridServices. HGGridServices, in turn, does the management of hyperlink regions, and defines two additional pieces of inter-region protocol:&lt;br /&gt;
*** region_uuid: for linking regions&lt;br /&gt;
*** expect_hg_user: similar to the existing expect_user interface, but with a lot more information about the user being passed around, namely all the user's servers (inventory, asset, user, home, etc.)&lt;br /&gt;
** HGInventoryService extends LocalInventoryService and implements ISecureInventoryService. This class is the most obvious mashup of the pack, mixing local service access for standalone users and remote inventory access for when users are out and about. Right now, there is a fair amount of selective copy-and-paste, to stay away from the ugliness coming from OGS1InventoryService and OGS1SecureInventoryService. HGInventoryService is always a ISecureInventoryService. Its methods all follow the same pattern: check if the user is a local standalone user; if it is, pass the work to the base method (in LocalInventoryService); if it's not perform secure remote access.&lt;br /&gt;
** HGUserServices wraps OSG1UserServices, but it's not functional yet.&lt;br /&gt;
&lt;br /&gt;
* '''OpenSim.Region.CoreModules.HyperGrid''' is a collection of 3 region modules:&lt;br /&gt;
** HGWorldMapModule extends WorldMapModule. It reuses almost everything from the base class. The only small change is in RequestMapBlocks, where it tries to send Offline mapblocks to the client.&lt;br /&gt;
** HGStandaloneInventoryService and HGStandaloneAssetService do what their names say. They are region modules that allow access to inventory and assets for standalones, when the standalone user is out and about. In spirit, there is a lot in common between these modules and the REST inventory/asset plugin. Unfortunately, that plugin could not be used because it defines a completely different interface than that used by existing inventory and asset servers, and the access for the hypergrid must use a consistent interface.&lt;br /&gt;
&lt;br /&gt;
== Installing and Running ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Installing and Running Hypergrid]]&lt;br /&gt;
&lt;br /&gt;
== Hypergrid and Security ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Hypergrid Security]]&lt;br /&gt;
&lt;br /&gt;
== Banning Foreign Users ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Banning Foreign Users in Hypergrid]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Public Hypergrid Nodes ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Public Hypergrid Nodes]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hypergrid Lists ==&lt;br /&gt;
Please see [[Hypergrid Lists]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Development Meetings ==&lt;br /&gt;
&lt;br /&gt;
[[Hypergrid Meetings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hypergrid]]&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
Also see [[Grider]]; [[Virtual World Model]]; [[HyperGrid Team]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Documentation</id>
		<title>Database:Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Documentation"/>
				<updated>2013-03-04T20:19:32Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added notes about differences in GridUser and UserAccounts tables.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
This page documents the databases tables used in OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Tables are split up into Common, Services and Simulator. &lt;br /&gt;
&lt;br /&gt;
On a grid, the grid services will contain the Services and Common tables, whilst each simulator instance will access the Simulator tables.&lt;br /&gt;
&lt;br /&gt;
A standalone will contain Common, Services and Simulator tables, with the exception of the regions table, which is not currently persisted for standalones.&lt;br /&gt;
&lt;br /&gt;
SQLite is generally not considered appropriate for this use case and will not be covered here; however the table structures are very similar and most of what is here will be useful in that context as well.&lt;br /&gt;
&lt;br /&gt;
Note that some of these tables may be relics, some may be planned for future use, and some may see heavy use but have columns which are relics, not yet properly updated or not yet used at all. Alpha code FTW!! :D&lt;br /&gt;
&lt;br /&gt;
== OpenSimulator 0.7.2 onwards ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;migrations&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Supports automatic upgrade to new database formats&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Avatars&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Persistence of the visual appearance of avatars between logins and attached objects&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Friends&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Friends list registration&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[GridUser]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Information about a user in this particular grid, for everyone who uses the grid, local and foreign. This includes their home region, last region, online status and last login/logout.  This is distinct from auth information&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Presence&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Region and session information for currently logged in users.  Used for IM routing amongst other things.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;UserAccounts&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;User account information, such as name, user level and e-mail. Just local accounts.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[assets]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Grid assets including such things as textures and sounds&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[auth]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;User authentication information&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[inventoryfolders]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Inventory folder-related details *except contents*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Contents are in the [[inventoryitems]] table and point back to [[inventoryfolders]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[inventoryitems]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;All inventory item details (including folder associations) except contents - contents are referenced in the [[assets]] table&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[regions]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Regions known to the grid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;tokens&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Unused.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simulator ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate groups]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Narrowly purposed at present. Appears to associate UUIDs under an Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate managers]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Associates UUIDs with Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate map]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Associates Regions with Estates By Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate settings]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Settings for Estates&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate users]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Users allowed on the Estate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estateban]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Users banned from the Estate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[land]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Parcel Properties&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[landaccesslist]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Parcel Access List&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[primitems]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Contains the prim's inventory, which is not at all unlike the avatars'&amp;lt;br /&amp;gt;inventory with the exception of folders&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[prims]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;All rezzed prim details *except shape and contents*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;primshapes&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Properties of all rezzed prims&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;regionban&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Per-Region ban list&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Database:regionsettings|regionsettings]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Per-Region settings&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;regionwindlight&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Windlight region settings&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[terrain]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Terrain mesh revision history&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Older information ==&lt;br /&gt;
&lt;br /&gt;
This mainly pertains to OpenSimulator 0.6.9.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=left&amp;gt;Services:&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[agents]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Records agent (Avatar/User) login details&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[assets]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Comprehensive grid assets including textures and avatar inventories&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[avatarappearance]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Persistence of the visual appearance of avatars between logins&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[avatarattachments]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Items attached to avatars&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[inventoryfolders]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Inventory folder-related details *except contents*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Contents are in the [[inventoryitems]] table and point back to [[inventoryfolders]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[inventoryitems]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;All inventory item details (including folder associations) except contents - contents are referenced&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;in the [[assets]] table&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[migrations]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Supports 'automagic' migration to new database formats&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regions]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Regions known to the grid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[userfriends]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Friends list registration&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[users]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Stored user profile&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=left&amp;gt;Simulator:&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate groups]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Narrowly purposed at present. Appears to associate UUIDs under an Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate managers]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Associates UUIDs with Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate map]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Associates Regions with Estates By Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate settings]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Settings for Estates&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate users]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Users allowed on the Estate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estateban]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Users banned from the Estate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[land]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Parcel Properties&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[landaccesslist]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Parcel Access List&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[migrations]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Supports 'automagic' upgrade to new database formats&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[primitems]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;contains the prim's inventory, which is not at all unlike the avatars'&amp;lt;br /&amp;gt;inventory with the exception of folders&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[prims]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;All rezzed prim details *except shape and contents*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[primshapes]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Properties of all rezzed prims&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regionban]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Per-Region ban list&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regionsettings]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Per-Region settings&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[terrain]]&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Terrain mesh revision history&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-21T17:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: fixed image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
[[File:background.png|border|alt=Ice Moon Exillion|Ice Moon Exillion science outpost]]&lt;br /&gt;
&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[File:Myriad_Logo.jpg|link=User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading user simstats with JSON&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_Grid_SimStats|JSON Grid SimStats]] - Reading grid simstats with JSON&lt;br /&gt;
&lt;br /&gt;
== Contributed OpenSim Code ==&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6537]] [PATCH] Additional ThreadPool worker and IOCP thread startup logic&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6538]] [PATCH] Added Unix and MacOSX platform checkin for Util.isEnvironmentSupported&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6544]] [PATCH] Refactor m_console.Command to remove gendarme warning&lt;br /&gt;
 &lt;br /&gt;
== Wiki Contributions ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[Offline_Instant_Messaging_v2]] - Diva Canto's new offline IM module&lt;br /&gt;
* [[ConciergeModule]] - Concierge module&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[Profile]] - the OpenProfileModule&lt;br /&gt;
* [[Offline_Messaging]] - the OfflineMessagingModule v1 module&lt;br /&gt;
* [[OsGetAgentIP]] - OSSL call to get an avatar's IP address&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim&lt;br /&gt;
** [[LsSetWindlightSceneTargeted]] - set Windlight for a specific user, via [[LightShare]]&lt;br /&gt;
** [[LsSetWindlightScene]] - Set Windlight for everyone in the region, via [[LightShare]]&lt;br /&gt;
** [[LsGetWindlightScene]] - read the list of Windlight settings used, via [[LightShare]]&lt;br /&gt;
** [[LightShare Parameters]] - the [[LightShare]] parameter for getting or setting scene values&lt;br /&gt;
** [[Talk:Database:Regionwindlight]] - notes from the [[LightShare]] experiments related to the core database&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
* [[Enabling_Groups]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/File:Myriad_Logo.jpg</id>
		<title>File:Myriad Logo.jpg</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/File:Myriad_Logo.jpg"/>
				<updated>2013-02-21T17:15:22Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Myriad Logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myriad Logo&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/File:Myriad_Logo.gif</id>
		<title>File:Myriad Logo.gif</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/File:Myriad_Logo.gif"/>
				<updated>2013-02-21T17:12:31Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Myriad Logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myriad Logo&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-21T17:11:55Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: linked Myriad Logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
[[File:background.png|border|alt=Ice Moon Exillion|Ice Moon Exillion science outpost]]&lt;br /&gt;
&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[File:Myriad_Logo.gif|link=User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading user simstats with JSON&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_Grid_SimStats|JSON Grid SimStats]] - Reading grid simstats with JSON&lt;br /&gt;
&lt;br /&gt;
== Contributed OpenSim Code ==&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6537]] [PATCH] Additional ThreadPool worker and IOCP thread startup logic&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6538]] [PATCH] Added Unix and MacOSX platform checkin for Util.isEnvironmentSupported&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6544]] [PATCH] Refactor m_console.Command to remove gendarme warning&lt;br /&gt;
 &lt;br /&gt;
== Wiki Contributions ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[Offline_Instant_Messaging_v2]] - Diva Canto's new offline IM module&lt;br /&gt;
* [[ConciergeModule]] - Concierge module&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[Profile]] - the OpenProfileModule&lt;br /&gt;
* [[Offline_Messaging]] - the OfflineMessagingModule v1 module&lt;br /&gt;
* [[OsGetAgentIP]] - OSSL call to get an avatar's IP address&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim&lt;br /&gt;
** [[LsSetWindlightSceneTargeted]] - set Windlight for a specific user, via [[LightShare]]&lt;br /&gt;
** [[LsSetWindlightScene]] - Set Windlight for everyone in the region, via [[LightShare]]&lt;br /&gt;
** [[LsGetWindlightScene]] - read the list of Windlight settings used, via [[LightShare]]&lt;br /&gt;
** [[LightShare Parameters]] - the [[LightShare]] parameter for getting or setting scene values&lt;br /&gt;
** [[Talk:Database:Regionwindlight]] - notes from the [[LightShare]] experiments related to the core database&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
* [[Enabling_Groups]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/File:Background.png</id>
		<title>File:Background.png</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/File:Background.png"/>
				<updated>2013-02-21T17:09:15Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: uploaded a new version of &amp;amp;quot;File:Background.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ice Moon Exillion science outpost&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/File:Background.png</id>
		<title>File:Background.png</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/File:Background.png"/>
				<updated>2013-02-21T17:07:38Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Ice Moon Exillion science outpost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ice Moon Exillion science outpost&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-21T17:06:43Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added image link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
[[File:background.png|border|alt=Ice Moon Exillion|Ice Moon Exillion science outpost]]&lt;br /&gt;
&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading user simstats with JSON&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_Grid_SimStats|JSON Grid SimStats]] - Reading grid simstats with JSON&lt;br /&gt;
&lt;br /&gt;
== Contributed OpenSim Code ==&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6537]] [PATCH] Additional ThreadPool worker and IOCP thread startup logic&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6538]] [PATCH] Added Unix and MacOSX platform checkin for Util.isEnvironmentSupported&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6544]] [PATCH] Refactor m_console.Command to remove gendarme warning&lt;br /&gt;
 &lt;br /&gt;
== Wiki Contributions ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[Offline_Instant_Messaging_v2]] - Diva Canto's new offline IM module&lt;br /&gt;
* [[ConciergeModule]] - Concierge module&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[Profile]] - the OpenProfileModule&lt;br /&gt;
* [[Offline_Messaging]] - the OfflineMessagingModule v1 module&lt;br /&gt;
* [[OsGetAgentIP]] - OSSL call to get an avatar's IP address&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim&lt;br /&gt;
** [[LsSetWindlightSceneTargeted]] - set Windlight for a specific user, via [[LightShare]]&lt;br /&gt;
** [[LsSetWindlightScene]] - Set Windlight for everyone in the region, via [[LightShare]]&lt;br /&gt;
** [[LsGetWindlightScene]] - read the list of Windlight settings used, via [[LightShare]]&lt;br /&gt;
** [[LightShare Parameters]] - the [[LightShare]] parameter for getting or setting scene values&lt;br /&gt;
** [[Talk:Database:Regionwindlight]] - notes from the [[LightShare]] experiments related to the core database&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
* [[Enabling_Groups]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Offline_Instant_Messaging_v2</id>
		<title>Offline Instant Messaging v2</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Offline_Instant_Messaging_v2"/>
				<updated>2013-02-19T14:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Updated MySQL and OpenSim.ini bits for updated module commit r/22089&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Offline Instant Messaging v2 =&lt;br /&gt;
&lt;br /&gt;
Diva Canto has contributed a new Offline Instant Messaging v2 module for OpenSim 0.7.6-dev r/22086 and later.&lt;br /&gt;
&lt;br /&gt;
To configure this, instead of the [[Offline Messaging]] module which requires an external PHP script.&lt;br /&gt;
&lt;br /&gt;
== OpenSim.ini ==&lt;br /&gt;
&lt;br /&gt;
Enabled the chosen instant messaging module in the [Messaging] block:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Messaging]&lt;br /&gt;
    ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule &amp;quot;Offline Message Module V2&amp;quot; *}&lt;br /&gt;
    ;; Module to handle offline messaging. The core module requires an external&lt;br /&gt;
    ;; web service to do this. See OpenSim wiki.&lt;br /&gt;
    ; OfflineMessageModule = OfflineMessageModule&lt;br /&gt;
	;; Or, alternatively, use this one, which works for both standalones and grids&lt;br /&gt;
    ; OfflineMessageModule = &amp;quot;Offline Message Module V2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule Offline Message Module V2:Offline Message Module V2} {URL of offline messaging service} {}&lt;br /&gt;
    ;; URL of web service for offline message storage. Leave it commented if your service is local to the sim.&lt;br /&gt;
    ; OfflineMessageURL = http://yourserver/Offline.php or http://yourrobustserver:8003&lt;br /&gt;
&lt;br /&gt;
    ;# {StorageProvider} {Offline Message Module V2:Offline Message Module V2} {DLL that provides the storage interface} {OpenSim.Data.MySQL.dll}&lt;br /&gt;
	;; For standalones, this is the storage dll.&lt;br /&gt;
	; StorageProvider = OpenSim.Data.MySQL.dll&lt;br /&gt;
&lt;br /&gt;
    ;# {MuteListModule} {OfflineMessageModule:OfflineMessageModule} {} {} MuteListModule&lt;br /&gt;
    ;; Mute list handler (not yet implemented). MUST BE SET to allow offline&lt;br /&gt;
    ;; messages to work&lt;br /&gt;
    ; MuteListModule = MuteListModule&lt;br /&gt;
&lt;br /&gt;
    ;# {MuteListURL} {OfflineMessageModule:OfflineMessageModule} {} {} http://yourserver/Mute.php&lt;br /&gt;
    ;; URL of the web service that serves mute lists. Not currently used, but&lt;br /&gt;
    ;; must be set to allow offline messaging to work.&lt;br /&gt;
    ; MuteListURL = http://yourserver/Mute.php&lt;br /&gt;
&lt;br /&gt;
    ;; Control whether group messages are forwarded to offline users.&lt;br /&gt;
    ;; Default is true.&lt;br /&gt;
    ;; This applies to the core groups module (Flotsam) only.&lt;br /&gt;
    ; ForwardOfflineGroupMessages = true&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Robust.ini ==&lt;br /&gt;
If you use a Robust server, the Robust.ini needs the following updates:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
... initial INI stuff&lt;br /&gt;
&lt;br /&gt;
;; Uncomment this if you want offline IM to work&lt;br /&gt;
;OfflineIMServiceConnector = &amp;quot;8003/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector&amp;quot;&lt;br /&gt;
&lt;br /&gt;
... more INI stuff deleted ...&lt;br /&gt;
&lt;br /&gt;
[Messaging]&lt;br /&gt;
    ; OfflineIM&lt;br /&gt;
    StorageProvider = &amp;quot;OpenSim.Addons.OfflineIM.dll&amp;quot;&lt;br /&gt;
    OfflineIMService = &amp;quot;OpenSim.Addons.OfflineIM.dll:OfflineIMService&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Robust.HG.ini ==&lt;br /&gt;
If you use a Robust server with Hypergrid enabled, the Robust.HG.ini needs the following updates:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
... initial INI stuff&lt;br /&gt;
&lt;br /&gt;
;; Uncomment this if you want offline IM to work&lt;br /&gt;
;OfflineIMServiceConnector = &amp;quot;8003/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector&amp;quot;&lt;br /&gt;
&lt;br /&gt;
... more INI stuff deleted ...&lt;br /&gt;
&lt;br /&gt;
[Messaging]&lt;br /&gt;
    ; OfflineIM&lt;br /&gt;
    StorageProvider = &amp;quot;OpenSim.Addons.OfflineIM.dll&amp;quot;&lt;br /&gt;
    OfflineIMService = &amp;quot;OpenSim.Addons.OfflineIM.dll:OfflineIMService&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MySQL Database ==&lt;br /&gt;
The Offline Instant Messaging v2 Module uses the following MySQL storage and migrations:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
:VERSION 1         # --------------------------&lt;br /&gt;
&lt;br /&gt;
BEGIN;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `im_offline` (&lt;br /&gt;
  `ID` MEDIUMINT NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  `PrincipalID` char(36) NOT NULL default '',&lt;br /&gt;
  `Message` text NOT NULL,&lt;br /&gt;
  `TMStamp` timestamp NOT NULL,&lt;br /&gt;
  PRIMARY KEY  (`ID`),&lt;br /&gt;
  KEY `PrincipalID` (`PrincipalID`)&lt;br /&gt;
) ENGINE=MyISAM;&lt;br /&gt;
&lt;br /&gt;
COMMIT;&lt;br /&gt;
&lt;br /&gt;
:VERSION 2         # --------------------------&lt;br /&gt;
&lt;br /&gt;
BEGIN;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `im_offline` SELECT * from `diva_im_offline`;&lt;br /&gt;
DROP TABLE `diva_im_offline`;&lt;br /&gt;
DELETE FROM `migrations` WHERE name='diva_im_Store';&lt;br /&gt;
&lt;br /&gt;
COMMIT;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-19T01:02:43Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added links to patch 3, and new offline IM v2 module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading user simstats with JSON&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_Grid_SimStats|JSON Grid SimStats]] - Reading grid simstats with JSON&lt;br /&gt;
&lt;br /&gt;
== Contributed OpenSim Code ==&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6537]] [PATCH] Additional ThreadPool worker and IOCP thread startup logic&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6538]] [PATCH] Added Unix and MacOSX platform checkin for Util.isEnvironmentSupported&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6544]] [PATCH] Refactor m_console.Command to remove gendarme warning&lt;br /&gt;
 &lt;br /&gt;
== Wiki Contributions ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[Offline_Instant_Messaging_v2]] - Diva Canto's new offline IM module&lt;br /&gt;
* [[ConciergeModule]] - Concierge module&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[Profile]] - the OpenProfileModule&lt;br /&gt;
* [[Offline_Messaging]] - the OfflineMessagingModule v1 module&lt;br /&gt;
* [[OsGetAgentIP]] - OSSL call to get an avatar's IP address&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim&lt;br /&gt;
** [[LsSetWindlightSceneTargeted]] - set Windlight for a specific user, via [[LightShare]]&lt;br /&gt;
** [[LsSetWindlightScene]] - Set Windlight for everyone in the region, via [[LightShare]]&lt;br /&gt;
** [[LsGetWindlightScene]] - read the list of Windlight settings used, via [[LightShare]]&lt;br /&gt;
** [[LightShare Parameters]] - the [[LightShare]] parameter for getting or setting scene values&lt;br /&gt;
** [[Talk:Database:Regionwindlight]] - notes from the [[LightShare]] experiments related to the core database&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
* [[Enabling_Groups]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Offline_Instant_Messaging_v2</id>
		<title>Offline Instant Messaging v2</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Offline_Instant_Messaging_v2"/>
				<updated>2013-02-19T00:55:36Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Offline Instant Messaging v2 =&lt;br /&gt;
&lt;br /&gt;
Diva Canto has contributed a new Offline Instant Messaging v2 module for OpenSim 0.7.6-dev r/22086 and later.&lt;br /&gt;
&lt;br /&gt;
To configure this, instead of the [[Offline Messaging]] module which requires an external PHP script.&lt;br /&gt;
&lt;br /&gt;
== OpenSim.ini ==&lt;br /&gt;
&lt;br /&gt;
Enabled the chosen instant messaging module in the [Messaging] block:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Messaging]&lt;br /&gt;
    ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule &amp;quot;Offline Message Module V2&amp;quot; *}&lt;br /&gt;
    ;; Module to handle offline messaging. The core module requires an external&lt;br /&gt;
    ;; web service to do this. See OpenSim wiki.&lt;br /&gt;
    ; OfflineMessageModule = OfflineMessageModule&lt;br /&gt;
	;; Or, alternatively, use this one, which works for both standalones and grids&lt;br /&gt;
    ; OfflineMessageModule = &amp;quot;Offline Message Module V2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule Offline Message Module V2:Offline Message Module V2} {URL of offline messaging service} {}&lt;br /&gt;
    ;; URL of web service for offline message storage. Leave it commented if your service is local to the sim.&lt;br /&gt;
    ; OfflineMessageURL = http://yourserver/Offline.php or http://yourrobustserver:8003&lt;br /&gt;
&lt;br /&gt;
    ;# {StorageProvider} {Offline Message Module V2:Offline Message Module V2} {DLL that provides the storage interface} {OpenSim.Addons.OfflineIM}&lt;br /&gt;
	;; For standalones, use the service directly. This is the storage dll.&lt;br /&gt;
	; StorageProvider = OpenSim.Addons.OfflineIM.dll&lt;br /&gt;
&lt;br /&gt;
    ;# {MuteListModule} {OfflineMessageModule:OfflineMessageModule} {} {} MuteListModule&lt;br /&gt;
    ;; Mute list handler (not yet implemented). MUST BE SET to allow offline&lt;br /&gt;
    ;; messages to work&lt;br /&gt;
    ; MuteListModule = MuteListModule&lt;br /&gt;
&lt;br /&gt;
    ;# {MuteListURL} {OfflineMessageModule:OfflineMessageModule} {} {} http://yourserver/Mute.php&lt;br /&gt;
    ;; URL of the web service that serves mute lists. Not currently used, but&lt;br /&gt;
    ;; must be set to allow offline messaging to work.&lt;br /&gt;
    ; MuteListURL = http://yourserver/Mute.php&lt;br /&gt;
&lt;br /&gt;
    ;; Control whether group messages are forwarded to offline users.&lt;br /&gt;
    ;; Default is true.&lt;br /&gt;
    ;; This applies to the core groups module (Flotsam) only.&lt;br /&gt;
    ; ForwardOfflineGroupMessages = true&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Robust.ini ==&lt;br /&gt;
If you use a Robust server, the Robust.ini needs the following updates:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
... initial INI stuff&lt;br /&gt;
&lt;br /&gt;
;; Uncomment this if you want offline IM to work&lt;br /&gt;
;OfflineIMServiceConnector = &amp;quot;8003/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector&amp;quot;&lt;br /&gt;
&lt;br /&gt;
... more INI stuff deleted ...&lt;br /&gt;
&lt;br /&gt;
[Messaging]&lt;br /&gt;
    ; OfflineIM&lt;br /&gt;
    StorageProvider = &amp;quot;OpenSim.Addons.OfflineIM.dll&amp;quot;&lt;br /&gt;
    OfflineIMService = &amp;quot;OpenSim.Addons.OfflineIM.dll:OfflineIMService&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Robust.HG.ini ==&lt;br /&gt;
If you use a Robust server with Hypergrid enabled, the Robust.HG.ini needs the following updates:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
... initial INI stuff&lt;br /&gt;
&lt;br /&gt;
;; Uncomment this if you want offline IM to work&lt;br /&gt;
;OfflineIMServiceConnector = &amp;quot;8003/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector&amp;quot;&lt;br /&gt;
&lt;br /&gt;
... more INI stuff deleted ...&lt;br /&gt;
&lt;br /&gt;
[Messaging]&lt;br /&gt;
    ; OfflineIM&lt;br /&gt;
    StorageProvider = &amp;quot;OpenSim.Addons.OfflineIM.dll&amp;quot;&lt;br /&gt;
    OfflineIMService = &amp;quot;OpenSim.Addons.OfflineIM.dll:OfflineIMService&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MySQL Database ==&lt;br /&gt;
The Offline Instant Messaging v2 Module uses the following MySQL storage:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
:VERSION 1         # --------------------------&lt;br /&gt;
&lt;br /&gt;
BEGIN;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `im_offline` (&lt;br /&gt;
  `ID` MEDIUMINT NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  `PrincipalID` char(36) NOT NULL default '',&lt;br /&gt;
  `Message` text NOT NULL,&lt;br /&gt;
  `TMStamp` timestamp NOT NULL,&lt;br /&gt;
  PRIMARY KEY  (`ID`),&lt;br /&gt;
  KEY `PrincipalID` (`PrincipalID`)&lt;br /&gt;
) ENGINE=MyISAM;&lt;br /&gt;
&lt;br /&gt;
COMMIT;&lt;br /&gt;
&lt;br /&gt;
:VERSION 2         # --------------------------&lt;br /&gt;
&lt;br /&gt;
BEGIN;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `im_offline` SELECT * from `diva_im_offline`;&lt;br /&gt;
DROP TABLE `diva_im_offline`;&lt;br /&gt;
&lt;br /&gt;
COMMIT;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Offline_Messaging</id>
		<title>Offline Messaging</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Offline_Messaging"/>
				<updated>2013-02-19T00:43:26Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Add link to offline IM v2 module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
Offline Messaging makes it possible to send IM's to people who are not online.&lt;br /&gt;
&lt;br /&gt;
Instead, the messages are saved to a database and delivered the next time the recipient logs in.&lt;br /&gt;
&lt;br /&gt;
NOTE: Diva Canto has contributed a new [[Offline Instant Messaging v2]] module in 0.7.6 dev revision r/22086 which does not need an external PHP script.&lt;br /&gt;
&lt;br /&gt;
=== Disclaimer ===&lt;br /&gt;
&amp;lt;b&amp;gt;Please note that these are third party modules which you use at your own risk!&amp;lt;br /&amp;gt;&lt;br /&gt;
OpenSimulator takes no responsibility for these modules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OfflineMessagingModule Configuration Steps ===&lt;br /&gt;
The OfflineMessagingModule is already compiled and ready for use in current versions of OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
However, you will need to setup the &amp;quot;back-end&amp;quot; database and PHP connector scripts to support the OfflineMessagingModule.&lt;br /&gt;
&lt;br /&gt;
# Configure the Offline_IM database table in your MySQL using commands in Offline_IM.sql (below)&lt;br /&gt;
# Upload the mysql.php (below) into your web server&lt;br /&gt;
# Upload the offline.php (below) into your web server&lt;br /&gt;
# Enable the OfflineMessagingModule in your OpenSim.ini file&lt;br /&gt;
&lt;br /&gt;
=== STEP 1: Offline_IM.sql ===&lt;br /&gt;
Save these SQL commands to an Offline_IM.sql file on your MySQL server.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `Offline_IM` (&lt;br /&gt;
 `uuid` varchar(36) NOT NULL,&lt;br /&gt;
 `message` text NOT NULL,&lt;br /&gt;
  KEY `uuid` (`uuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to your MySQL (Linux commands shown):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mysql --user=$mysqluser --password=$mysqlpassword $databasename&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace $mysqluser, $mysqlpassword, and $databasename with your specific configuration.&lt;br /&gt;
&lt;br /&gt;
At the mysql prompt, source the Offline_IM.sql file to configure your database to hold offline IMs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; source Offline_IM.sql&lt;br /&gt;
... ensure no error messages appear here ...&lt;br /&gt;
mysql&amp;gt; quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 2: mysql.php ===&lt;br /&gt;
Copy this PHP script to a file called mysql.php and upload the script file to your web server.&lt;br /&gt;
&lt;br /&gt;
No edits of the script should be necessary.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2007, 2008 Contributors, http://opensimulator.org/&lt;br /&gt;
 * See CONTRIBUTORS for a full list of copyright holders.&lt;br /&gt;
 *&lt;br /&gt;
 * See LICENSE for the full licensing terms of this file.&lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// This looks like its lifted from http://www.weberdev.com/get_example-4372.html&lt;br /&gt;
// I'd contact the original developer for licensing info, but his website is broken.&lt;br /&gt;
&lt;br /&gt;
class DB&lt;br /&gt;
{&lt;br /&gt;
	var $Host = C_DB_HOST;				// Hostname of our MySQL server&lt;br /&gt;
	var $Database = C_DB_NAME;			// Logical database name on that server&lt;br /&gt;
	var $User = C_DB_USER;				// Database user&lt;br /&gt;
	var $Password = C_DB_PASS;			// Database user's password&lt;br /&gt;
	var $Link_ID = 0;				// Result of mysql_connect()&lt;br /&gt;
	var $Query_ID = 0;				// Result of most recent mysql_query()&lt;br /&gt;
	var $Record	= array();			// Current mysql_fetch_array()-result&lt;br /&gt;
	var $Row;					// Current row number&lt;br /&gt;
	var $Errno = 0;					// Error state of query&lt;br /&gt;
	var $Error = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	function halt($msg)&lt;br /&gt;
	{&lt;br /&gt;
		echo(&amp;quot;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&amp;lt;B&amp;gt;Database error:&amp;lt;/B&amp;gt; $msg&amp;lt;BR&amp;gt;\n&amp;quot;);&lt;br /&gt;
		echo(&amp;quot;&amp;lt;B&amp;gt;MySQL error&amp;lt;/B&amp;gt;: $this-&amp;gt;Errno ($this-&amp;gt;Error)&amp;lt;BR&amp;gt;\n&amp;quot;);&lt;br /&gt;
		die(&amp;quot;Session halted.&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function connect()&lt;br /&gt;
	{&lt;br /&gt;
		if($this-&amp;gt;Link_ID == 0)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;Link_ID = mysql_connect($this-&amp;gt;Host, $this-&amp;gt;User, $this-&amp;gt;Password);&lt;br /&gt;
			if (!$this-&amp;gt;Link_ID)&lt;br /&gt;
			{&lt;br /&gt;
				$this-&amp;gt;halt(&amp;quot;Link_ID == false, connect failed&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			$SelectResult = mysql_select_db($this-&amp;gt;Database, $this-&amp;gt;Link_ID);&lt;br /&gt;
			if(!$SelectResult)&lt;br /&gt;
			{&lt;br /&gt;
				$this-&amp;gt;Errno = mysql_errno($this-&amp;gt;Link_ID);&lt;br /&gt;
				$this-&amp;gt;Error = mysql_error($this-&amp;gt;Link_ID);&lt;br /&gt;
				$this-&amp;gt;halt(&amp;quot;cannot select database &amp;lt;I&amp;gt;&amp;quot;.$this-&amp;gt;Database.&amp;quot;&amp;lt;/I&amp;gt;&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
 	function escape($String)&lt;br /&gt;
 	{&lt;br /&gt;
 		return mysql_escape_string($String);&lt;br /&gt;
 	}&lt;br /&gt;
&lt;br /&gt;
	function query($Query_String)&lt;br /&gt;
	{&lt;br /&gt;
		$this-&amp;gt;connect();&lt;br /&gt;
		$this-&amp;gt;Query_ID = mysql_query($Query_String,$this-&amp;gt;Link_ID);&lt;br /&gt;
		$this-&amp;gt;Row = 0;&lt;br /&gt;
		$this-&amp;gt;Errno = mysql_errno();&lt;br /&gt;
		$this-&amp;gt;Error = mysql_error();&lt;br /&gt;
		if (!$this-&amp;gt;Query_ID)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;halt(&amp;quot;Invalid SQL: &amp;quot;.$Query_String);&lt;br /&gt;
		}&lt;br /&gt;
		return $this-&amp;gt;Query_ID;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function next_record()&lt;br /&gt;
	{&lt;br /&gt;
		$this-&amp;gt;Record = @mysql_fetch_array($this-&amp;gt;Query_ID);&lt;br /&gt;
		$this-&amp;gt;Row += 1;&lt;br /&gt;
		$this-&amp;gt;Errno = mysql_errno();&lt;br /&gt;
		$this-&amp;gt;Error = mysql_error();&lt;br /&gt;
		$stat = is_array($this-&amp;gt;Record);&lt;br /&gt;
		if (!$stat)&lt;br /&gt;
		{&lt;br /&gt;
			@mysql_free_result($this-&amp;gt;Query_ID);&lt;br /&gt;
			$this-&amp;gt;Query_ID = 0;&lt;br /&gt;
		}&lt;br /&gt;
		return $this-&amp;gt;Record;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function num_rows()&lt;br /&gt;
	{&lt;br /&gt;
		return mysql_num_rows($this-&amp;gt;Query_ID);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function affected_rows()&lt;br /&gt;
	{&lt;br /&gt;
		return mysql_affected_rows($this-&amp;gt;Link_ID);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function optimize($tbl_name)&lt;br /&gt;
	{&lt;br /&gt;
		$this-&amp;gt;connect();&lt;br /&gt;
		$this-&amp;gt;Query_ID = @mysql_query(&amp;quot;OPTIMIZE TABLE $tbl_name&amp;quot;,$this-&amp;gt;Link_ID);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function clean_results()&lt;br /&gt;
	{&lt;br /&gt;
		if($this-&amp;gt;Query_ID != 0) mysql_freeresult($this-&amp;gt;Query_ID);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function close()&lt;br /&gt;
	{&lt;br /&gt;
		if($this-&amp;gt;Link_ID != 0) mysql_close($this-&amp;gt;Link_ID);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 3: offline.php ===&lt;br /&gt;
Copy this PHP script to a file called offline.php and upload the script file to your web server.&lt;br /&gt;
&lt;br /&gt;
Edit the $dbName, $dbHost, $dbUser, and $dbPassword lines at the top of the script to match your database and server information.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$dbName = &amp;quot;comunity&amp;quot;;&lt;br /&gt;
$dbHost = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
$dbUser = &amp;quot;root&amp;quot;;&lt;br /&gt;
$dbPassword =&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
define(&amp;quot;C_DB_TYPE&amp;quot;,&amp;quot;mysql&amp;quot;);&lt;br /&gt;
define(&amp;quot;C_DB_HOST&amp;quot;,$dbHost);&lt;br /&gt;
define(&amp;quot;C_DB_NAME&amp;quot;,$dbName);&lt;br /&gt;
define(&amp;quot;C_DB_USER&amp;quot;,$dbUser);&lt;br /&gt;
define(&amp;quot;C_DB_PASS&amp;quot;,$dbPassword);&lt;br /&gt;
define(&amp;quot;C_OFFLINE_IM_TBL&amp;quot;, &amp;quot;Offline_IM&amp;quot;);&lt;br /&gt;
include(&amp;quot;mysql.php&amp;quot;);&lt;br /&gt;
$DbLink = new DB;&lt;br /&gt;
$method = $_SERVER[&amp;quot;PATH_INFO&amp;quot;];&lt;br /&gt;
if ($method == &amp;quot;/SaveMessage/&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
$msg = $HTTP_RAW_POST_DATA;&lt;br /&gt;
$start = strpos($msg, &amp;quot;?&amp;gt;&amp;quot;);&lt;br /&gt;
if ($start != -1)&lt;br /&gt;
{&lt;br /&gt;
$start+=2;&lt;br /&gt;
$msg = substr($msg, $start);&lt;br /&gt;
$parts = split(&amp;quot;[&amp;lt;&amp;gt;]&amp;quot;, $msg);&lt;br /&gt;
$to_agent = $parts[12];&lt;br /&gt;
$DbLink-&amp;gt;query(&amp;quot;insert into &amp;quot;.C_OFFLINE_IM_TBL.&amp;quot; (uuid, message) values ('&amp;quot; .&lt;br /&gt;
mysql_escape_string($to_agent) . &amp;quot;', '&amp;quot; .&lt;br /&gt;
mysql_escape_string($msg) . &amp;quot;')&amp;quot;);&lt;br /&gt;
echo &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf-8\&amp;quot;?&amp;gt;&amp;lt;boolean&amp;gt;true&amp;lt;/boolean&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
echo &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf-8\&amp;quot;?&amp;gt;&amp;lt;boolean&amp;gt;false&amp;lt;/boolean&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
exit;&lt;br /&gt;
}&lt;br /&gt;
if ($method == &amp;quot;/RetrieveMessages/&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
$parms = $HTTP_RAW_POST_DATA;&lt;br /&gt;
$parts = split(&amp;quot;[&amp;lt;&amp;gt;]&amp;quot;, $parms);&lt;br /&gt;
$agent_id = $parts[6];&lt;br /&gt;
$DbLink-&amp;gt;query(&amp;quot;select message from &amp;quot;.C_OFFLINE_IM_TBL.&amp;quot; where uuid='&amp;quot; .&lt;br /&gt;
mysql_escape_string($agent_id) . &amp;quot;'&amp;quot;);&lt;br /&gt;
echo &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf-8\&amp;quot;?&amp;gt;&amp;lt;ArrayOfGridInstantMessage xmlns:xsi=\&amp;quot;http://www.w3.org/2001/XMLSchema-instance\&amp;quot; xmlns:xsd=\&amp;quot;http://www.w3.org/2001/XMLSchema\&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
while(list($message) = $DbLink-&amp;gt;next_record())&lt;br /&gt;
{&lt;br /&gt;
echo $message;&lt;br /&gt;
}&lt;br /&gt;
echo &amp;quot;&amp;lt;/ArrayOfGridInstantMessage&amp;gt;&amp;quot;;&lt;br /&gt;
$DbLink-&amp;gt;query(&amp;quot;delete from &amp;quot;.C_OFFLINE_IM_TBL.&amp;quot; where uuid='&amp;quot; .&lt;br /&gt;
mysql_escape_string($agent_id) . &amp;quot;'&amp;quot;);&lt;br /&gt;
exit;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 4: OfflineMessageModule ===&lt;br /&gt;
Shutdown your simulator.&lt;br /&gt;
&lt;br /&gt;
Edit the OpenSim.ini [Messaging] block.&lt;br /&gt;
&lt;br /&gt;
An example configuration is shown below:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Messaging]&lt;br /&gt;
; Control which region module is used for instant messaging.&lt;br /&gt;
; Default is InstantMessageModule (this is the name of the core IM module as well as the setting)&lt;br /&gt;
InstantMessageModule = InstantMessageModule&lt;br /&gt;
; MessageTransferModule = MessageTransferModule&lt;br /&gt;
OfflineMessageModule = OfflineMessageModule&lt;br /&gt;
OfflineMessageURL = http://yourserver/offline.php&lt;br /&gt;
MuteListModule = MuteListModule&lt;br /&gt;
MuteListURL = http://yourserver/mute.php&lt;br /&gt;
ForwardOfflineGroupMessages = true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
P.D: The MuteListModule and URL must be uncommented in order for the offline module to work, even if there is no mute.php file in the web folder.&lt;br /&gt;
&lt;br /&gt;
Once the edits are made, save your OpenSim.ini and restart your simulator.&lt;br /&gt;
&lt;br /&gt;
=== Using the OfflineMessageModule ===&lt;br /&gt;
&lt;br /&gt;
Login and try to send a message to an offline person.&lt;br /&gt;
You should see the message: &amp;quot;System: User is not logged in. Message saved.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you see &amp;quot;Message not saved.&amp;quot; check your web server error log.&lt;br /&gt;
&lt;br /&gt;
Check the database Offline_IM table to verify whether or not offline.php has written a record there.&lt;br /&gt;
&lt;br /&gt;
Next time the person you messaged logs in, they will get the message and the database will be updated.&lt;br /&gt;
&lt;br /&gt;
=== Testing Notes ===&lt;br /&gt;
These steps and configuration tested working on 2013-Jan-13 with:&lt;br /&gt;
* OpenSimulator 0.7.5 r21607 from 2013-Jan-09&lt;br /&gt;
* Nant 0.90&lt;br /&gt;
* Mono 2.10.8&lt;br /&gt;
* MySQL 5.5.28&lt;br /&gt;
* PHP XMLRPC 5.4.10&lt;br /&gt;
* PHP 5.4.1&lt;br /&gt;
* Apache 2.2.22&lt;br /&gt;
* Linux Kernel 3.6.11&lt;br /&gt;
* Fedora Linux 17 (Beefy Miracle)&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Profile</id>
		<title>Profile</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Profile"/>
				<updated>2013-02-11T17:37:35Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: fixed some stuff to say profile.sql and tables rather than offline_ims where I copy and paste those steps from another page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
The OpenProfileModule makes it possible to create your own Profile and see other peoples' Profiles as well.&lt;br /&gt;
&lt;br /&gt;
=== Disclaimer ===&lt;br /&gt;
&amp;lt;b&amp;gt;Please note that these are third party modules which you use at your own risk!&amp;lt;br /&amp;gt;&lt;br /&gt;
OpenSimulator takes no responsibility for these modules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenProfileModule Configuration Steps ===&lt;br /&gt;
The OpenProfileModule is already compiled and ready for use in current versions of OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
However, you will need to setup the &amp;quot;back-end&amp;quot; database and PHP connector scripts to support the OpenProfileModule. &lt;br /&gt;
&lt;br /&gt;
# Upload the profile.sql (below) to your database server&lt;br /&gt;
# Upload the profile.php (below) to your web server&lt;br /&gt;
# Enable the OpenProfileModule in your OpenSim.ini file&lt;br /&gt;
&lt;br /&gt;
=== STEP 1: profile.sql ===&lt;br /&gt;
Save these SQL commands to a profile.sql file on your MySQL database server.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_classifieds` &lt;br /&gt;
(&lt;br /&gt;
  &lt;br /&gt;
`classifieduuid` char(36) NOT NULL,&lt;br /&gt;
  `creatoruuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`creationdate` int(20) NOT NULL,&lt;br /&gt;
  `expirationdate` int(20) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`category` varchar(20) NOT NULL,&lt;br /&gt;
  `name` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`description` text NOT NULL,&lt;br /&gt;
  `parceluuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`parentestate` int(11) NOT NULL,&lt;br /&gt;
  `snapshotuuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`simname` varchar(255) NOT NULL,&lt;br /&gt;
  `posglobal` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`parcelname` varchar(255) NOT NULL,&lt;br /&gt;
  `classifiedflags` int(8) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`priceforlisting` int(5) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`classifieduuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_notes` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`targetuuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`notes` text NOT NULL,&lt;br /&gt;
  UNIQUE KEY `useruuid` (`useruuid`,`targetuuid`)&lt;br /&gt;
)&lt;br /&gt;
 ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_picks` (&lt;br /&gt;
  &lt;br /&gt;
`pickuuid` varchar(36) NOT NULL,&lt;br /&gt;
  `creatoruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`toppick` enum('true','false') NOT NULL,&lt;br /&gt;
  `parceluuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`name` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`description` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`snapshotuuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`user` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`originalname` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`simname` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`posglobal` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`sortorder` int(2) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`enabled` enum('true','false') NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`pickuuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profilePartner` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileAllowPublish` binary(1) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileMaturePublish` binary(1) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileURL` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileWantToMask` int(3) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileWantToText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileSkillsMask` int(3) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileSkillsText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileLanguages` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileImage` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileAboutText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileFirstImage` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileFirstText` text NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`useruuid`)&lt;br /&gt;
) &lt;br /&gt;
ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_settings` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`imviaemail` enum('true','false') NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`visible` enum('true','false') NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`email` varchar(254) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`useruuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to your MySQL (Linux commands shown):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mysql --user=$mysqluser --password=$mysqlpassword $databasename&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace $mysqluser, $mysqlpassword, and $databasename with your specific configuration.&lt;br /&gt;
&lt;br /&gt;
At the mysql prompt, source the profile.sql file to configure your database to hold additional profile information:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; source profile.sql&lt;br /&gt;
... ensure no error messages appear here ...&lt;br /&gt;
mysql&amp;gt; quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 2: profile.php ===&lt;br /&gt;
Copy this PHP script to a file called profile.php and upload the script file to your web server.&lt;br /&gt;
&lt;br /&gt;
Edit the $dbName, $dbHost, $dbUser, and $dbPassword lines at the top of the script to match your database and server information. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?PHP&lt;br /&gt;
$dbName = &amp;quot;comunity&amp;quot;;&lt;br /&gt;
$dbHost = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
$dbUser = &amp;quot;root&amp;quot;;&lt;br /&gt;
$dbPassword =&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
mysql_connect ($dbHost,$dbUser,$dbPassword);&lt;br /&gt;
mysql_select_db ($dbName);&lt;br /&gt;
&lt;br /&gt;
$zeroUUID = &amp;quot;00000000-0000-0000-0000-000000000000&amp;quot;;&lt;br /&gt;
$xmlrpc_server = xmlrpc_server_create();&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarclassifiedsrequest&amp;quot;,&lt;br /&gt;
        &amp;quot;avatarclassifiedsrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarclassifiedsrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['uuid'];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $data = array();&lt;br /&gt;
&lt;br /&gt;
    while (($row = mysql_fetch_assoc($result)))&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;classifiedid&amp;quot; =&amp;gt; $row[&amp;quot;classifieduuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Classifieds Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;classified_update&amp;quot;,&lt;br /&gt;
        &amp;quot;classified_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function classified_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $classifieduuid = $req['classifiedUUID'];&lt;br /&gt;
    $creator        = $req['creatorUUID'];&lt;br /&gt;
    $category       = $req['category'];&lt;br /&gt;
    $name           = $req['name'];&lt;br /&gt;
    $description    = $req['description'];&lt;br /&gt;
    $parceluuid     = $req['parcelUUID'];&lt;br /&gt;
    $parentestate   = $req['parentestate'];&lt;br /&gt;
    $snapshotuuid   = $req['snapshotUUID'];&lt;br /&gt;
    $simname        = $req['sim_name'];&lt;br /&gt;
    $globalpos      = $req['globalpos'];&lt;br /&gt;
    $parcelname     = $req['parcelname'];&lt;br /&gt;
    $classifiedflag = $req['classifiedFlags'];&lt;br /&gt;
    $priceforlist   = $req['classifiedPrice'];&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;classifieduuid = '&amp;quot;. mysql_escape_string($classifieduuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    while ($row = mysql_fetch_row($check))&lt;br /&gt;
    {&lt;br /&gt;
        $ready = $row[0];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ($ready == 0)&lt;br /&gt;
    {&lt;br /&gt;
        // Doing some late checking&lt;br /&gt;
        // Should be done by the module but let's see what happens when&lt;br /&gt;
        // I do it here&lt;br /&gt;
&lt;br /&gt;
        if($parcelname == &amp;quot;&amp;quot;)&lt;br /&gt;
            $parcelname = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if($parceluuid == &amp;quot;&amp;quot;)&lt;br /&gt;
            $parceluuid = $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
        if($description == &amp;quot;&amp;quot;)&lt;br /&gt;
            $description = &amp;quot;No Description&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if($classifiedflag == 2)&lt;br /&gt;
        {&lt;br /&gt;
            $creationdate = time();&lt;br /&gt;
            $expirationdate = time() + (7 * 24 * 60 * 60);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            $creationdate = time();&lt;br /&gt;
            $expirationdate = time() + (365 * 24 * 60 * 60);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $insertquery = &amp;quot;INSERT INTO profile_classifieds VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($classifieduuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($creator) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($creationdate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($expirationdate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($category) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($name) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($description) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parceluuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($parentestate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($snapshotuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($simname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($globalpos) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parcelname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($classifiedflag) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($priceforlist) .&amp;quot;)&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        // Create a new record for this classified&lt;br /&gt;
        $result = mysql_query($insertquery);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Classifieds Delete&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;classified_delete&amp;quot;,&lt;br /&gt;
        &amp;quot;classified_delete&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function classified_delete($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $classifieduuid = $req['classifiedID'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;DELETE FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;classifieduuid = '&amp;quot;.mysql_escape_string($classifieduuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&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;
# Picks&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Avatar Picks Request&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarpicksrequest&amp;quot;, &amp;quot;avatarpicksrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarpicksrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
    $uuid           = $req['uuid'];&lt;br /&gt;
    $data = array();&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT `pickuuid`,`name` FROM profile_picks WHERE &amp;quot;. &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    while (($row = mysql_fetch_assoc($result)))&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;pickid&amp;quot; =&amp;gt; $row[&amp;quot;pickuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Request Picks for User&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;pickinforequest&amp;quot;,&lt;br /&gt;
        &amp;quot;pickinforequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function pickinforequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $pick           = $req['pick_id'];&lt;br /&gt;
&lt;br /&gt;
    $data = array();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pick) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        if ($row[&amp;quot;description&amp;quot;] == null || $row[&amp;quot;description&amp;quot;] == &amp;quot;&amp;quot;)&lt;br /&gt;
            $row[&amp;quot;description&amp;quot;] = &amp;quot;No description given&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;pickuuid&amp;quot; =&amp;gt; $row[&amp;quot;pickuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;creatoruuid&amp;quot; =&amp;gt; $row[&amp;quot;creatoruuid&amp;quot;],&lt;br /&gt;
                &amp;quot;toppick&amp;quot; =&amp;gt; $row[&amp;quot;toppick&amp;quot;],&lt;br /&gt;
                &amp;quot;parceluuid&amp;quot; =&amp;gt; $row[&amp;quot;parceluuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;],&lt;br /&gt;
                &amp;quot;description&amp;quot; =&amp;gt; $row[&amp;quot;description&amp;quot;],&lt;br /&gt;
                &amp;quot;snapshotuuid&amp;quot; =&amp;gt; $row[&amp;quot;snapshotuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;user&amp;quot; =&amp;gt; $row[&amp;quot;user&amp;quot;],&lt;br /&gt;
                &amp;quot;originalname&amp;quot; =&amp;gt; $row[&amp;quot;originalname&amp;quot;],&lt;br /&gt;
                &amp;quot;simname&amp;quot; =&amp;gt; $row[&amp;quot;simname&amp;quot;],&lt;br /&gt;
                &amp;quot;posglobal&amp;quot; =&amp;gt; $row[&amp;quot;posglobal&amp;quot;],&lt;br /&gt;
                &amp;quot;sortorder&amp;quot;=&amp;gt; $row[&amp;quot;sortorder&amp;quot;],&lt;br /&gt;
                &amp;quot;enabled&amp;quot; =&amp;gt; $row[&amp;quot;enabled&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Picks Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;picks_update&amp;quot;,&lt;br /&gt;
        &amp;quot;picks_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function picks_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $pickuuid       = $req['pick_id'];&lt;br /&gt;
    $creator        = $req['creator_id'];&lt;br /&gt;
    $toppick        = $req['top_pick'];&lt;br /&gt;
    $name           = $req['name'];&lt;br /&gt;
    $description    = $req['desc'];&lt;br /&gt;
    $parceluuid     = $req['parcel_uuid'];&lt;br /&gt;
    $snapshotuuid   = $req['snapshot_id'];&lt;br /&gt;
    $user           = $req['user'];&lt;br /&gt;
    $simname        = $req['sim_name'];&lt;br /&gt;
    $posglobal      = $req['pos_global'];&lt;br /&gt;
    $sortorder      = $req['sort_order'];&lt;br /&gt;
    $enabled        = $req['enabled'];&lt;br /&gt;
&lt;br /&gt;
    if($parceluuid == &amp;quot;&amp;quot;)&lt;br /&gt;
        $parceluuid = $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    if($description == &amp;quot;&amp;quot;)&lt;br /&gt;
        $description = &amp;quot;No Description&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($check);&lt;br /&gt;
&lt;br /&gt;
    if ($row[0] == 0)&lt;br /&gt;
    {&lt;br /&gt;
        if($user == null || $user == &amp;quot;&amp;quot;)&lt;br /&gt;
            $user = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        //The original parcel name is the same as the name of the&lt;br /&gt;
        //profile pick when a new profile pick is being created.&lt;br /&gt;
        $original = $name;&lt;br /&gt;
&lt;br /&gt;
        $query = &amp;quot;INSERT INTO profile_picks VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($creator) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($toppick) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parceluuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($name) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($description) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($snapshotuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($user) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($original) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($simname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($posglobal) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($sortorder) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($enabled) .&amp;quot;')&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        $query = &amp;quot;UPDATE profile_picks SET &amp;quot; .&lt;br /&gt;
            &amp;quot;parceluuid = '&amp;quot;. mysql_escape_string($parceluuid) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;name = '&amp;quot;. mysql_escape_string($name) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;description = '&amp;quot;. mysql_escape_string($description) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;snapshotuuid = '&amp;quot;. mysql_escape_string($snapshotuuid) . &amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query($query);&lt;br /&gt;
    if ($result != False)&lt;br /&gt;
        $result = True;&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Picks Delete&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;picks_delete&amp;quot;,&lt;br /&gt;
        &amp;quot;picks_delete&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function picks_delete($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $pickuuid       = $req['pick_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;DELETE FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;.mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if ($result != False)&lt;br /&gt;
        $result = True;&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Notes&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Avatar Notes Request&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarnotesrequest&amp;quot;,&lt;br /&gt;
        &amp;quot;avatarnotesrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarnotesrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $targetuuid     = $req['uuid'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT notes FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($result);&lt;br /&gt;
    if ($row == False)&lt;br /&gt;
        $notes = &amp;quot;&amp;quot;;&lt;br /&gt;
    else&lt;br /&gt;
        $notes = $row[0];&lt;br /&gt;
&lt;br /&gt;
    $data[] = array(&lt;br /&gt;
            &amp;quot;targetid&amp;quot; =&amp;gt; $targetuuid,&lt;br /&gt;
            &amp;quot;notes&amp;quot; =&amp;gt; $notes);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Avatar Notes Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_notes_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_notes_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_notes_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $targetuuid     = $req['target_id'];&lt;br /&gt;
    $notes          = $req['notes'];&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($check);&lt;br /&gt;
&lt;br /&gt;
    if ($row[0] == 0)&lt;br /&gt;
    {&lt;br /&gt;
        // Create a new record for this avatar note&lt;br /&gt;
        $result = mysql_query(&amp;quot;INSERT INTO profile_notes VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($uuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($notes) .&amp;quot;')&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if ($notes == &amp;quot;&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        // Delete the record for this avatar note&lt;br /&gt;
        $result = mysql_query(&amp;quot;DELETE FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        // Update the existing record&lt;br /&gt;
        $result = mysql_query(&amp;quot;UPDATE profile_notes SET &amp;quot;.&lt;br /&gt;
            &amp;quot;notes = '&amp;quot;. mysql_escape_string($notes) .&amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Profile bits&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_properties_request&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_properties_request&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_properties_request($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;ProfileUrl&amp;quot; =&amp;gt; $row[&amp;quot;profileURL&amp;quot;],&lt;br /&gt;
                &amp;quot;Image&amp;quot; =&amp;gt; $row[&amp;quot;profileImage&amp;quot;],&lt;br /&gt;
                &amp;quot;AboutText&amp;quot; =&amp;gt; $row[&amp;quot;profileAboutText&amp;quot;],&lt;br /&gt;
                &amp;quot;FirstLifeImage&amp;quot; =&amp;gt; $row[&amp;quot;profileFirstImage&amp;quot;],&lt;br /&gt;
                &amp;quot;FirstLifeAboutText&amp;quot; =&amp;gt; $row[&amp;quot;profileFirstText&amp;quot;],&lt;br /&gt;
                &amp;quot;Partner&amp;quot; =&amp;gt; $row[&amp;quot;profilePartner&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
                //Return interest data along with avatar properties&lt;br /&gt;
                &amp;quot;wantmask&amp;quot;   =&amp;gt; $row[&amp;quot;profileWantToMask&amp;quot;],&lt;br /&gt;
                &amp;quot;wanttext&amp;quot;   =&amp;gt; $row[&amp;quot;profileWantToText&amp;quot;],&lt;br /&gt;
                &amp;quot;skillsmask&amp;quot; =&amp;gt; $row[&amp;quot;profileSkillsMask&amp;quot;],&lt;br /&gt;
                &amp;quot;skillstext&amp;quot; =&amp;gt; $row[&amp;quot;profileSkillsText&amp;quot;],&lt;br /&gt;
                &amp;quot;languages&amp;quot;  =&amp;gt; $row[&amp;quot;profileLanguages&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        //Insert empty record for avatar.&lt;br /&gt;
        //FIXME: Should this only be done when asking for ones own profile?&lt;br /&gt;
        $sql = &amp;quot;INSERT INTO profile VALUES ( &amp;quot;.&lt;br /&gt;
                &amp;quot;'&amp;quot;. mysql_escape_string($uuid) .&amp;quot;', &amp;quot;.&lt;br /&gt;
                &amp;quot;'$zeroUUID', 0, 0, '', 0, '', 0, '', '', &amp;quot;.&lt;br /&gt;
                &amp;quot;'$zeroUUID', '', '$zeroUUID', '')&amp;quot;;&lt;br /&gt;
        $result = mysql_query($sql);&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;ProfileUrl&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;Image&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
                &amp;quot;AboutText&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;FirstLifeImage&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
                &amp;quot;FirstLifeAboutText&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;Partner&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
&lt;br /&gt;
                &amp;quot;wantmask&amp;quot;   =&amp;gt; 0,&lt;br /&gt;
                &amp;quot;wanttext&amp;quot;   =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;skillsmask&amp;quot; =&amp;gt; 0,&lt;br /&gt;
                &amp;quot;skillstext&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;languages&amp;quot;  =&amp;gt; &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_properties_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_properties_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_properties_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $profileURL     = $req['ProfileUrl'];&lt;br /&gt;
    $image          = $req['Image'];&lt;br /&gt;
    $abouttext      = $req['AboutText'];&lt;br /&gt;
    $firstlifeimage = $req['FirstLifeImage'];&lt;br /&gt;
    $firstlifetext  = $req['FirstLifeAboutText'];&lt;br /&gt;
&lt;br /&gt;
    $result=mysql_query(&amp;quot;UPDATE profile SET &amp;quot;.&lt;br /&gt;
            &amp;quot;profileURL='&amp;quot;. mysql_escape_string($profileURL) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileImage='&amp;quot;. mysql_escape_string($image) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileAboutText='&amp;quot;. mysql_escape_string($abouttext) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileFirstImage='&amp;quot;. mysql_escape_string($firstlifeimage) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileFirstText='&amp;quot;. mysql_escape_string($firstlifetext) .&amp;quot;' &amp;quot;.&lt;br /&gt;
            &amp;quot;WHERE useruuid='&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Profile Interests&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_interests_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_interests_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_interests_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $wanttext       = $req['wanttext'];&lt;br /&gt;
    $wantmask       = $req['wantmask'];&lt;br /&gt;
    $skillstext     = $req['skillstext'];&lt;br /&gt;
    $skillsmask     = $req['skillsmask'];&lt;br /&gt;
    $languages      = $req['languages'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;UPDATE profile SET &amp;quot;.&lt;br /&gt;
            &amp;quot;profileWantToMask = &amp;quot;. mysql_escape_string($wantmask) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;profileWantToText = '&amp;quot;. mysql_escape_string($wanttext) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;profileSkillsMask = &amp;quot;. mysql_escape_string($skillsmask) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;profileSkillsText = '&amp;quot;. mysql_escape_string($skillstext) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;profileLanguages = '&amp;quot;. mysql_escape_string($languages) .&amp;quot;' &amp;quot;.&lt;br /&gt;
            &amp;quot;WHERE useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// User Preferences&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;user_preferences_request&amp;quot;,&lt;br /&gt;
        &amp;quot;user_preferences_request&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function user_preferences_request($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT imviaemail,visible,email FROM profile_settings WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;imviaemail&amp;quot; =&amp;gt; $row[&amp;quot;imviaemail&amp;quot;],&lt;br /&gt;
                &amp;quot;visible&amp;quot; =&amp;gt; $row[&amp;quot;visible&amp;quot;],&lt;br /&gt;
                &amp;quot;email&amp;quot; =&amp;gt; $row[&amp;quot;email&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        //Insert empty record for avatar.&lt;br /&gt;
        //NOTE: The 'false' values here are enums defined in database&lt;br /&gt;
        $sql = &amp;quot;INSERT INTO profile_settings VALUES &amp;quot;.&lt;br /&gt;
                &amp;quot;('&amp;quot;. mysql_escape_string($uuid) .&amp;quot;', &amp;quot;.&lt;br /&gt;
                &amp;quot;'false', 'false', '')&amp;quot;;&lt;br /&gt;
        $result = mysql_query($sql);&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;imviaemail&amp;quot; =&amp;gt; False,&lt;br /&gt;
                &amp;quot;visible&amp;quot; =&amp;gt; False,&lt;br /&gt;
                &amp;quot;email&amp;quot; =&amp;gt; &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;user_preferences_update&amp;quot;,&lt;br /&gt;
        &amp;quot;user_preferences_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function user_preferences_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $wantim         = $req['imViaEmail'];&lt;br /&gt;
    $directory      = $req['visible'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;UPDATE profile_settings SET &amp;quot;.&lt;br /&gt;
            &amp;quot;imviaemail = '&amp;quot;.mysql_escape_string($wantim) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;visible = '&amp;quot;.mysql_escape_string($directory) .&amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Process the request&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$request_xml = $HTTP_RAW_POST_DATA;&lt;br /&gt;
xmlrpc_server_call_method($xmlrpc_server, $request_xml, '');&lt;br /&gt;
xmlrpc_server_destroy($xmlrpc_server);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 3: OpenProfileModule ===&lt;br /&gt;
Shutdown your simulator.&lt;br /&gt;
&lt;br /&gt;
Edit the OpenSim.ini [Profile] block.&lt;br /&gt;
&lt;br /&gt;
An example configuration is shown below:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Profile]&lt;br /&gt;
    Module = &amp;quot;OpenProfileModule&amp;quot;&lt;br /&gt;
    ProfileURL = &amp;quot;http://yourwebserverdomainname/pathto/profile.php&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the edits are made, save your OpenSim.ini and restart your simulator. &lt;br /&gt;
&lt;br /&gt;
=== Using the OpenProfileModule ===&lt;br /&gt;
Login to your simulator and try to create your profile.&lt;br /&gt;
&lt;br /&gt;
Check the database profile table to verify whether or not profile.php has written a record there. &lt;br /&gt;
&lt;br /&gt;
P.D: OpenProfileModule only works while you are on your home grid, not when you are connected to other grids over hypergrid.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
Error shown in Apache error_log:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
PHP Fatal error:  Call to undefined function xmlrpc_server_create() in /var/www/html/opensim/profile.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cause:&lt;br /&gt;
&amp;lt;pre&amp;gt;Many Linux distributions may not ship with PHP XML RPC extensions.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Steps to Fix:&lt;br /&gt;
* Fedora 17:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum install php-xmlrpc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing Notes ===&lt;br /&gt;
These steps and configuration tested working on 2013-Jan-13 with:&lt;br /&gt;
* OpenSimulator 0.7.5 r21607 from 2013-Jan-09&lt;br /&gt;
* Nant 0.90&lt;br /&gt;
* Mono 2.10.8&lt;br /&gt;
* MySQL 5.5.28&lt;br /&gt;
* PHP XMLRPC 5.4.10&lt;br /&gt;
* PHP 5.4.1&lt;br /&gt;
* Apache 2.2.22&lt;br /&gt;
* Linux Kernel 3.6.11&lt;br /&gt;
* Fedora Linux 17 (Beefy Miracle)&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-10T22:36:22Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: concierge module and mantis patch contribs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading user simstats with JSON&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_Grid_SimStats|JSON Grid SimStats]] - Reading grid simstats with JSON&lt;br /&gt;
&lt;br /&gt;
== Contributed OpenSim Code ==&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6537]] [PATCH] Additional ThreadPool worker and IOCP thread startup logic&lt;br /&gt;
* [[http://opensimulator.org/mantis/view.php?id=6538]] [PATCH] Added Unix and MacOSX platform checkin for Util.isEnvironmentSupported&lt;br /&gt;
&lt;br /&gt;
== Wiki Contributions ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[ConciergeModule]] - Concierge module&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[Profile]] - the OpenProfileModule&lt;br /&gt;
* [[Offline_Messaging]] - the OfflineMessagingModule module&lt;br /&gt;
* [[OsGetAgentIP]] - OSSL call to get an avatar's IP address&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim&lt;br /&gt;
** [[LsSetWindlightSceneTargeted]] - set Windlight for a specific user, via [[LightShare]]&lt;br /&gt;
** [[LsSetWindlightScene]] - Set Windlight for everyone in the region, via [[LightShare]]&lt;br /&gt;
** [[LsGetWindlightScene]] - read the list of Windlight settings used, via [[LightShare]]&lt;br /&gt;
** [[LightShare Parameters]] - the [[LightShare]] parameter for getting or setting scene values&lt;br /&gt;
** [[Talk:Database:Regionwindlight]] - notes from the [[LightShare]] experiments related to the core database&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
* [[Enabling_Groups]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/ConciergeModule</id>
		<title>ConciergeModule</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/ConciergeModule"/>
				<updated>2013-02-10T22:32:42Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: updated for new OpenSimDefaults.ini info and full options table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The ConciergeModule is an optional region module that tries to provide &amp;quot;concierge services&amp;quot; for online meetings and events.&lt;br /&gt;
&lt;br /&gt;
== Region Administrators ==&lt;br /&gt;
The Concierge Module currently:&lt;br /&gt;
* can send a welcome message to each avatar entering the region&lt;br /&gt;
* announces to every avatar in the region when a new avatar enters or leaves the region&lt;br /&gt;
* keeps an attendee list of avatars in a region&lt;br /&gt;
* can post the attendee list to an outside broker whenever the attendee list changes&lt;br /&gt;
&lt;br /&gt;
=== Default Configuration ===&lt;br /&gt;
&lt;br /&gt;
The OpenSimDefaults.ini file contains the following configuration items which can be copied to OpenSim.ini and modified to get started using the Concierge module:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Concierge]&lt;br /&gt;
    ; Enable concierge module&lt;br /&gt;
    ; Default is false&lt;br /&gt;
    enabled = false&lt;br /&gt;
&lt;br /&gt;
    ; name of the concierge&lt;br /&gt;
    whoami = &amp;quot;jeeves&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ; password for updating the welcome message templates via XmlRpc&lt;br /&gt;
    password = SECRET&lt;br /&gt;
&lt;br /&gt;
    ; regex specifying for which regions concierge service is desired; if&lt;br /&gt;
    ; empty, then for all&lt;br /&gt;
    regions = &amp;quot;^MeetingSpace-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ; for each region that matches the regions regexp you can provide&lt;br /&gt;
    ; (optionally) a welcome template using format substitution:&lt;br /&gt;
    ; {0} is replaced with the name of the avatar entering the region&lt;br /&gt;
    ; {1} is replaced with the name of the region&lt;br /&gt;
    ; {2} is replaced with the name of the concierge (whoami variable above)&lt;br /&gt;
&lt;br /&gt;
    welcomes = /path/to/welcome/template/directory&lt;br /&gt;
&lt;br /&gt;
    ; Concierge can send attendee lists to an event broker whenever an&lt;br /&gt;
    ; avatar enters or leaves a concierged region. the URL is subject&lt;br /&gt;
    ; to format substitution:&lt;br /&gt;
    ; {0} is replaced with the region's name&lt;br /&gt;
    ; {1} is replaced with the region's UUID&lt;br /&gt;
    broker = &amp;quot;http://broker.place.com/{1}&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Full Configuration ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Keyword&lt;br /&gt;
! Default Value&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| enabled&lt;br /&gt;
| false&lt;br /&gt;
| Enable concierge module&lt;br /&gt;
|-&lt;br /&gt;
| concierge_channel&lt;br /&gt;
| 42&lt;br /&gt;
| private chatr channel number for concierge commands&lt;br /&gt;
|-&lt;br /&gt;
| whoami&lt;br /&gt;
| conferencier&lt;br /&gt;
| name of the concierge&lt;br /&gt;
|-&lt;br /&gt;
| welcomes&lt;br /&gt;
| null&lt;br /&gt;
| path to optional welcome message template files using format substitution: {0} avatarname , {1} region name, {2} whoami concierge name&lt;br /&gt;
|-&lt;br /&gt;
| announce_entering&lt;br /&gt;
| {0} enters {1} (now {2} visitors in this region)&lt;br /&gt;
| avatar arriving message using format substitution: {0} avatar name, {1} region name, {2} number of avatars&lt;br /&gt;
|-&lt;br /&gt;
| announce_leaving&lt;br /&gt;
| {0} leaves {1} (back to {2} visitors in this region)&lt;br /&gt;
| avatar leaving message using format substitution: {0} avatar name, {1} region name, {2} number of avatars&lt;br /&gt;
|-&lt;br /&gt;
| password&lt;br /&gt;
| Empty string&lt;br /&gt;
| password for updating the welcome message templates via XmlRpc&lt;br /&gt;
|-&lt;br /&gt;
| broker&lt;br /&gt;
| Empty string&lt;br /&gt;
| The URL where avatar counts and lists will be sent.&lt;br /&gt;
|-&lt;br /&gt;
| broker_timeout&lt;br /&gt;
| 300&lt;br /&gt;
| Number of seconds to timeout a broker post request&lt;br /&gt;
|-&lt;br /&gt;
| regions&lt;br /&gt;
| null&lt;br /&gt;
| A regular expression list of region names to provide Concierge service to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chat Amplification ===&lt;br /&gt;
The ConciergeModule can also replace OpenSim's normal Chat module and &amp;quot;amplify&amp;quot; speech in a region so that it is heard region-wide.&lt;br /&gt;
&lt;br /&gt;
When used like this, whispering will still be range limited.&lt;br /&gt;
&lt;br /&gt;
There is not a specific OpenSim.ini configuration option for this.&lt;br /&gt;
&lt;br /&gt;
It will be enabled depending on the combination of chat and concierge enabled options.&lt;br /&gt;
&lt;br /&gt;
If [Chat] enabled = true, then the Concierge chat override will be disabled.&lt;br /&gt;
&lt;br /&gt;
If [Chat] enable = false, then the Concierge chat override will become active.&lt;br /&gt;
&lt;br /&gt;
=== Welcomes ===&lt;br /&gt;
If you create a directory for it, and configure that in the welcomes option, you can create specific welcome message templates for regions, avatars, or both.&lt;br /&gt;
&lt;br /&gt;
=== Concierge Chat Commands ===&lt;br /&gt;
You can update welcome message templates by sending a message to the concierge private channel:&lt;br /&gt;
&lt;br /&gt;
  /42 password &amp;lt;password&amp;gt; region &amp;lt;regionname&amp;gt; welcome &amp;lt;new welcome template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Broker Messages ===&lt;br /&gt;
The broker feature will format an XML message and send it to the broker URL defined in your configuration.&lt;br /&gt;
&lt;br /&gt;
The broker message is sent with the HTTP POST method.&lt;br /&gt;
&lt;br /&gt;
The broker message content type is: text/xml&lt;br /&gt;
&lt;br /&gt;
The broker message User Agent will be: OpenSim.Concierge&lt;br /&gt;
&lt;br /&gt;
Example XML message:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;avatars count=&amp;quot;{0}&amp;quot; region_name=&amp;quot;{1}&amp;quot; region_uuid=&amp;quot;{2}&amp;quot; timestamp=&amp;quot;{3}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;avatar name=&amp;quot;{0}&amp;quot; uuid=&amp;quot;{1}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/avatars&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Helper Script ===&lt;br /&gt;
You will need an external helper script in order to capture and act on the broker data.&lt;br /&gt;
&lt;br /&gt;
Have the script configured at the broker URL before starting your region, otherwise each avatar arriving will generate an error stack trace in red on your console when the broken URL is unreachable.&lt;br /&gt;
&lt;br /&gt;
== Feature Requests ==&lt;br /&gt;
Your help is needed to extend the Concierge Module further!&lt;br /&gt;
&lt;br /&gt;
Additional feature requests for the Concierge Module include:&lt;br /&gt;
* a default sample Concierge broker script, such as a PHP to parse the XML message and write a log file.&lt;br /&gt;
* allow each participant to have meeting notes send by email&lt;br /&gt;
* post meeting notes to the broker&lt;br /&gt;
* allow &amp;quot;/jeeves please...&amp;quot; style commands (instead of using private channels)&lt;br /&gt;
* have an OAR file POSTed capturing the current state of the meeting space&lt;br /&gt;
* grant and revoke group membership and permissions (once group and permission system is more evolved)&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-09T05:12:15Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added links to other pages I contribute to or watch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading user simstats with JSON&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_Grid_SimStats|JSON Grid SimStats]] - Reading grid simstats with JSON&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
* [[Enabling_Groups]]&lt;br /&gt;
&lt;br /&gt;
== Wiki Contributions ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[Profile]] - the OpenProfileModule&lt;br /&gt;
* [[Offline_Messaging]] - the OfflineMessagingModule module&lt;br /&gt;
* [[OsGetAgentIP]] - OSSL call to get an avatar's IP address&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim&lt;br /&gt;
** [[LsSetWindlightSceneTargeted]] - set Windlight for a specific user, via [[LightShare]]&lt;br /&gt;
** [[LsSetWindlightScene]] - Set Windlight for everyone in the region, via [[LightShare]]&lt;br /&gt;
** [[LsGetWindlightScene]] - read the list of Windlight settings used, via [[LightShare]]&lt;br /&gt;
** [[LightShare Parameters]] - the [[LightShare]] parameter for getting or setting scene values&lt;br /&gt;
** [[Talk:Database:Regionwindlight]] - notes from the [[LightShare]] experiments related to the core database&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/JSON_Grid_SimStats</id>
		<title>User:Allen Kerensky/JSON Grid SimStats</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/JSON_Grid_SimStats"/>
				<updated>2013-02-09T04:52:55Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: archived JSON grid simstats from test page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JSON Grid Simstats =&lt;br /&gt;
Archived from [[Test Page]]&lt;br /&gt;
&lt;br /&gt;
Python example to gain the region data from a grid service&lt;br /&gt;
 - should work but this version not tested -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' value shown is an example, get this from your grid database each time - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' My region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' My region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' create an *UPPERCASE* SHA1 hash from the regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' data includes TimeZoneName , TimeZoneOffs, UxTime, Memory, Version and OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI is the uri to query the OpenSim instance. return same data as the user set uri '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-09T04:52:11Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added JSON grid simstats archive page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading user simstats with JSON&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_Grid_SimStats|JSON Grid SimStats]] - Reading grid simstats with JSON&lt;br /&gt;
&lt;br /&gt;
== OpenSim Pages ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim and OSgrid&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/JSON_User_SimStats</id>
		<title>User:Allen Kerensky/JSON User SimStats</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/JSON_User_SimStats"/>
				<updated>2013-02-09T04:50:52Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added link to testpage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JSON User SimStats =&lt;br /&gt;
Archived here from [[Test Page]]&lt;br /&gt;
&lt;br /&gt;
As of OpenSim svn 9529 the xtended stats reporting will return a jsonp&lt;br /&gt;
callback to allow popular javascript toolkits to use the returned data to&lt;br /&gt;
create ajax monitoring applications in the browser. This is an advantage&lt;br /&gt;
because after the page is loaded, the browser will interact directly with&lt;br /&gt;
the region, eliminating traffic through the website (polling the region and&lt;br /&gt;
servicing the browser). It also allows the creation of mashups to create&lt;br /&gt;
mini-monitor apps in other pages.&lt;br /&gt;
&lt;br /&gt;
To enable your stats reporting, set the following in your OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...the URI can be anything you want, and is case sensitive. You can query&lt;br /&gt;
the URI directly to return a json string to use in php, python, java, etc.&lt;br /&gt;
or you may use one of the popular javascript toolkits to have OpenSim&lt;br /&gt;
generate a callback for jsonp. The json serialization carries the following&lt;br /&gt;
data...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ascent.bluewallgroup.com/jquery-1.3.2.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ascent.bluewallgroup.com/timer.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
  SimFPS = 0;&lt;br /&gt;
  PhyFPS = 0;&lt;br /&gt;
  Memory = 0;&lt;br /&gt;
  RootAg = 0;&lt;br /&gt;
  ChldAg = 0;&lt;br /&gt;
  Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
  Version = &amp;quot;&amp;quot;;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  $.timer(15000, function(timer) {&lt;br /&gt;
  $.getJSON(&amp;quot;http://ascent.bluewallgroup.com:9300/jsonSimStats/?callback=?&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  function(data){&lt;br /&gt;
&lt;br /&gt;
      SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
      PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
      Memory = Math.round(data.Memory);&lt;br /&gt;
      ChldAg = data.ChldAg;&lt;br /&gt;
      RootAg = data.RootAg;&lt;br /&gt;
      Uptime = data.Uptime;&lt;br /&gt;
      Version = data.Version;&lt;br /&gt;
      drawChart();&lt;br /&gt;
      setTags();&lt;br /&gt;
      timer.reset(15000);&lt;br /&gt;
  });&lt;br /&gt;
  });&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
  google.setOnLoadCallback(drawChart);&lt;br /&gt;
  function drawChart() {&lt;br /&gt;
    var cdata = new google.visualization.DataTable();&lt;br /&gt;
    cdata.addColumn('string', 'Label');&lt;br /&gt;
    cdata.addColumn('number', 'Value');&lt;br /&gt;
    cdata.addRows(3);&lt;br /&gt;
    cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
    cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
    cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
    cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
    cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
    cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
    var chart = new&lt;br /&gt;
 google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
    var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
        yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
    chart.draw(cdata, options);&lt;br /&gt;
  }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
   function setTags() {&lt;br /&gt;
      $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
      $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
      $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
      $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
   }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/head&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;h1&amp;gt;BlueWall Development Region&amp;lt;/h1&amp;gt;&lt;br /&gt;
 &amp;lt;table&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/JSON_User_SimStats</id>
		<title>User:Allen Kerensky/JSON User SimStats</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/JSON_User_SimStats"/>
				<updated>2013-02-09T04:49:30Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JSON User SimStats =&lt;br /&gt;
&lt;br /&gt;
As of OpenSim svn 9529 the xtended stats reporting will return a jsonp&lt;br /&gt;
callback to allow popular javascript toolkits to use the returned data to&lt;br /&gt;
create ajax monitoring applications in the browser. This is an advantage&lt;br /&gt;
because after the page is loaded, the browser will interact directly with&lt;br /&gt;
the region, eliminating traffic through the website (polling the region and&lt;br /&gt;
servicing the browser). It also allows the creation of mashups to create&lt;br /&gt;
mini-monitor apps in other pages.&lt;br /&gt;
&lt;br /&gt;
To enable your stats reporting, set the following in your OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...the URI can be anything you want, and is case sensitive. You can query&lt;br /&gt;
the URI directly to return a json string to use in php, python, java, etc.&lt;br /&gt;
or you may use one of the popular javascript toolkits to have OpenSim&lt;br /&gt;
generate a callback for jsonp. The json serialization carries the following&lt;br /&gt;
data...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ascent.bluewallgroup.com/jquery-1.3.2.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ascent.bluewallgroup.com/timer.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
  SimFPS = 0;&lt;br /&gt;
  PhyFPS = 0;&lt;br /&gt;
  Memory = 0;&lt;br /&gt;
  RootAg = 0;&lt;br /&gt;
  ChldAg = 0;&lt;br /&gt;
  Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
  Version = &amp;quot;&amp;quot;;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  $.timer(15000, function(timer) {&lt;br /&gt;
  $.getJSON(&amp;quot;http://ascent.bluewallgroup.com:9300/jsonSimStats/?callback=?&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  function(data){&lt;br /&gt;
&lt;br /&gt;
      SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
      PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
      Memory = Math.round(data.Memory);&lt;br /&gt;
      ChldAg = data.ChldAg;&lt;br /&gt;
      RootAg = data.RootAg;&lt;br /&gt;
      Uptime = data.Uptime;&lt;br /&gt;
      Version = data.Version;&lt;br /&gt;
      drawChart();&lt;br /&gt;
      setTags();&lt;br /&gt;
      timer.reset(15000);&lt;br /&gt;
  });&lt;br /&gt;
  });&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
  google.setOnLoadCallback(drawChart);&lt;br /&gt;
  function drawChart() {&lt;br /&gt;
    var cdata = new google.visualization.DataTable();&lt;br /&gt;
    cdata.addColumn('string', 'Label');&lt;br /&gt;
    cdata.addColumn('number', 'Value');&lt;br /&gt;
    cdata.addRows(3);&lt;br /&gt;
    cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
    cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
    cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
    cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
    cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
    cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
    var chart = new&lt;br /&gt;
 google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
    var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
        yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
    chart.draw(cdata, options);&lt;br /&gt;
  }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
   function setTags() {&lt;br /&gt;
      $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
      $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
      $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
      $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
   }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/head&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;h1&amp;gt;BlueWall Development Region&amp;lt;/h1&amp;gt;&lt;br /&gt;
 &amp;lt;table&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-09T04:49:02Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: added JSON user simstats archive page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
* [[User:Allen_Kerensky/JSON_User_SimStats|JSON User SimStats]] - Reading sim stats with JSON&lt;br /&gt;
== OpenSim Pages ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim and OSgrid&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Environment_Variables</id>
		<title>User:Allen Kerensky/Environment Variables</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Environment_Variables"/>
				<updated>2013-02-09T04:15:10Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Environment Variables =&lt;br /&gt;
Archived here from [Test Page] to prevent disappearance.&lt;br /&gt;
&lt;br /&gt;
== MONO_THREADS_PER_CPU ==&lt;br /&gt;
By default, OpenSimulator only recognizes one shell environment variable: MONO_THREADS_PER_CPU&lt;br /&gt;
&lt;br /&gt;
If this variable is set in your shell before starting OpenSimulator, it will allow you to control the number of threads Mono will host per CPU.&lt;br /&gt;
&lt;br /&gt;
The proper setting for this variable somewhat subject to religious interpretation.&lt;br /&gt;
&lt;br /&gt;
Common recommendations including bumping it up to around 100 on many OpenSim installations.&lt;br /&gt;
&lt;br /&gt;
Others have recommended numbers as high as 2048.&lt;br /&gt;
&lt;br /&gt;
This article on [http://www.mono-project.com/Article:ThreadPool_Deadlocks Threadpool Deadlocks] may help.&lt;br /&gt;
&lt;br /&gt;
== Using shell environment variables in OpenSim configuration ==&lt;br /&gt;
&lt;br /&gt;
We will need to use two new things in our configurations: a section [Environment] to tell us what variables we need to look at in the shell and we will need to use the Nini key expansion. Nini, can have keys that look like ${SECTION|VARIABLE} and can expand those to the variables we assign.&lt;br /&gt;
&lt;br /&gt;
In your shell you will export your values and check the ones you want to use that are predefined by your system ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export RT_ZONE=Zone_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# You can see your HOSTNAME (It will be set by the system)...&lt;br /&gt;
echo $HOSTNAME&lt;br /&gt;
OSERV_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ini you will include an [Environment] section...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/${Environment|RT_ZONE}/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;${Environment|HOSTNAME}:${Environment|RT_ZONE} &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=${Environment|RT_ZONE};User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When OpenSim picks up the variables in your shell and processes all the configurations, the variable keys will be filled in with the variables picked up from the shell ...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/Zone_00/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;OSERV_00:Zone_09 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=Zone_00;User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a pretty good start. I think there will be a couple of places we might be able to use this to help us setup really flexible configuration systems for OpenSim. &lt;br /&gt;
&lt;br /&gt;
Have Fun!&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky/Environment_Variables</id>
		<title>User:Allen Kerensky/Environment Variables</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky/Environment_Variables"/>
				<updated>2013-02-09T04:08:26Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: created from Test Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Environment Variables =&lt;br /&gt;
Archived here from [Test Page] to prevent disappearance.&lt;br /&gt;
&lt;br /&gt;
== MONO_THREADS_PER_CPU ==&lt;br /&gt;
By default, OpenSimulator only recognizes one shell environment variable: MONO_THREADS_PER_CPU&lt;br /&gt;
&lt;br /&gt;
If this variable is set in your shell before starting OpenSimulator, it will allow you to control the number of threads Mono will host per CPU.&lt;br /&gt;
&lt;br /&gt;
The proper setting for this variable somewhat subject to religious interpretation.&lt;br /&gt;
&lt;br /&gt;
Common recommendations including bumping it up to around 100 on many OpenSim installations.&lt;br /&gt;
&lt;br /&gt;
Others have recommended numbers as high as 2048.&lt;br /&gt;
&lt;br /&gt;
This article [[http://www.mono-project.com/Article:ThreadPool_Deadlocks|Threadpool Deadlocks]] may help.&lt;br /&gt;
&lt;br /&gt;
== Using shell environment variables in OpenSim configuration ==&lt;br /&gt;
&lt;br /&gt;
We will need to use two new things in our configurations: a section [Environment] to tell us what variables we need to look at in the shell and we will need to use the Nini key expansion. Nini, can have keys that look like ${SECTION|VARIABLE} and can expand those to the variables we assign.&lt;br /&gt;
&lt;br /&gt;
In your shell you will export your values and check the ones you want to use that are predefined by your system ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export RT_ZONE=Zone_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# You can see your HOSTNAME (It will be set by the system)...&lt;br /&gt;
echo $HOSTNAME&lt;br /&gt;
OSERV_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ini you will include an [Environment] section...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/${Environment|RT_ZONE}/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;${Environment|HOSTNAME}:${Environment|RT_ZONE} &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=${Environment|RT_ZONE};User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When OpenSim picks up the variables in your shell and processes all the configurations, the variable keys will be filled in with the variables picked up from the shell ...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/Zone_00/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;OSERV_00:Zone_09 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=Zone_00;User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a pretty good start. I think there will be a couple of places we might be able to use this to help us setup really flexible configuration systems for OpenSim. &lt;br /&gt;
&lt;br /&gt;
Have Fun!&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User:Allen_Kerensky</id>
		<title>User:Allen Kerensky</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User:Allen_Kerensky"/>
				<updated>2013-02-09T04:02:24Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: rearranged&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allen Kerensky =&lt;br /&gt;
== Personal Pages ==&lt;br /&gt;
* [[User:Allen_Kerensky/Myriad_Lite|Myriad Lite]] - converting a pen-and-paper RPG to virtual world scripts&lt;br /&gt;
* [[User:Allen_Kerensky/Environment_Variables|Environment Variables]] - Using Shell Environment Variables in OpenSim&lt;br /&gt;
&lt;br /&gt;
== OpenSim Pages ==&lt;br /&gt;
I have contributed edits to the following:&lt;br /&gt;
* [[OpenSim.exe_Command_Line_Options]] - OpenSim Command Line Arguments&lt;br /&gt;
* [[LightShare]] - updated LightShare notes and scripts for OpenSim and OSgrid&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OpenSim.exe_Command_Line_Options</id>
		<title>OpenSim.exe Command Line Options</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OpenSim.exe_Command_Line_Options"/>
				<updated>2013-02-09T03:40:38Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Rewrote for End Users, Content Builders, Simulator Operators, and Developers - verified for 0.7.6-dev&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Command line arguments, also known as switches, helpful to modify the behavior of your OpenSimulator for customized environments or debugging.&lt;br /&gt;
&lt;br /&gt;
== For End Users ==&lt;br /&gt;
End users of OpenSim will not usually encounter the Simulator command line switches.&lt;br /&gt;
&lt;br /&gt;
== For Content Builders ==&lt;br /&gt;
Content builders on OpenSim will not usually encounter the Simulator command line switches.&lt;br /&gt;
&lt;br /&gt;
== For Simulator Operators ==&lt;br /&gt;
These can be used on the command line to customize the current startup session, or they can be used in startup scripts.&lt;br /&gt;
&lt;br /&gt;
=== Switch Syntax ===&lt;br /&gt;
* Windows: ''&amp;quot;/key:value&amp;quot; or &amp;quot;/key value&amp;quot; ''&lt;br /&gt;
* Unix, Linux ''&amp;quot;-key=value&amp;quot; or &amp;quot;-key value&amp;quot; ''&lt;br /&gt;
* MacOSX: FIXME&lt;br /&gt;
&lt;br /&gt;
If you want to use a value which contains spaces, contain the entire values and spaces inside of double-quotes(&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;--&amp;quot; switches, like &amp;quot;--key=value&amp;quot; do not work.&lt;br /&gt;
&lt;br /&gt;
It seems a bug in the regular syntax in the external Nini command line parser used by OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
=== Current Switches ===&lt;br /&gt;
&lt;br /&gt;
The following command line switches are known:&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! Switch !! Values !! Description !! Default&lt;br /&gt;
|-&lt;br /&gt;
|logconfig&lt;br /&gt;
|String(filepath)&lt;br /&gt;
|OpenSimulator will configure log4net using this file as configuration file&lt;br /&gt;
|OpenSim.exe.config&lt;br /&gt;
|-&lt;br /&gt;
|background&lt;br /&gt;
|Boolean&lt;br /&gt;
|If true, OpenSimulator will run in the background&lt;br /&gt;
|false&lt;br /&gt;
|-&lt;br /&gt;
|inifile&lt;br /&gt;
|String(filepath)&lt;br /&gt;
|The path to ini file&lt;br /&gt;
|OpenSim.ini&lt;br /&gt;
|-&lt;br /&gt;
|inimaster&lt;br /&gt;
|String(filepath)&lt;br /&gt;
|The path to master ini file&lt;br /&gt;
|OpenSimDefaults.ini&lt;br /&gt;
|-&lt;br /&gt;
|inidirectory&lt;br /&gt;
|String(filepath)&lt;br /&gt;
|The path to folder for config ini files. OpenSimulator will read all of *.ini files in this directory and override OpenSim.ini settings.&lt;br /&gt;
|config&lt;br /&gt;
|-&lt;br /&gt;
|physics&lt;br /&gt;
|&amp;quot;OpenDynamicsEngine&amp;quot;, &amp;quot;basicphysics&amp;quot;, &amp;quot;POS&amp;quot;, &amp;quot;modified_BulletX&amp;quot;&lt;br /&gt;
|The name of the physics engine. It is the same as physics property in [Startup] section. See OpenSim.ini.example for the detailed information. It will override the settings in OpenSim.ini.&lt;br /&gt;
|OpenDynamicsEngine&lt;br /&gt;
|-&lt;br /&gt;
|gui&lt;br /&gt;
|Boolean&lt;br /&gt;
|&amp;quot;old-style&amp;quot; console ([http://opensimulator.org/mantis/view.php?id=4794 deprecated from Opensim 0.7], use -console=basic instead)&lt;br /&gt;
|false&lt;br /&gt;
|-&lt;br /&gt;
|console&lt;br /&gt;
|&amp;quot;basic&amp;quot;,&amp;quot;rest&amp;quot;&lt;br /&gt;
|If &amp;quot;basic&amp;quot;, OpenSimulator will launch a simple console capable of processing commands. If &amp;quot;rest&amp;quot;, a [[RestConsole]]. If others including empty, a console that uses cursor control and context help(default).&lt;br /&gt;
|(empty)&lt;br /&gt;
|-&lt;br /&gt;
|save_crashes&lt;br /&gt;
|Boolean&lt;br /&gt;
|If true, OpenSimulator will dump stacktraces into the file in the directory specified with 'crash_dir' when it crashes. Note: As of 0.7.1, it doesn't work. It works in 0.7.2-dev.&lt;br /&gt;
|false&lt;br /&gt;
|-&lt;br /&gt;
|crash_dir&lt;br /&gt;
|String(filepath)&lt;br /&gt;
|The path to the directory where crash logs will be created. When OpenSimulator crashes, it will be automatically created if not exists. Note: As of 0.7.1, it doesn't work. It works in 0.7.2-dev.&lt;br /&gt;
|crashes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NOTE:&lt;br /&gt;
* filepath - The path relative to the working directory of the user or application, in the most cases, it will be bin/.&lt;br /&gt;
* Boolean - See [[#Boolean Aliases]] below.&lt;br /&gt;
&lt;br /&gt;
=== Boolean Aliases ===&lt;br /&gt;
Boolean values support several interchangeable aliases starting with OpenSimulator 0.7.2-dev:&lt;br /&gt;
* True is the same as On or Yes&lt;br /&gt;
* False is the same as Off or No&lt;br /&gt;
&lt;br /&gt;
They are not case-sensitive.&lt;br /&gt;
&lt;br /&gt;
For example, you can type &amp;quot;True&amp;quot;, &amp;quot;TRUE&amp;quot; or &amp;quot;tRue&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Related INI File Sections ===&lt;br /&gt;
In the OpenSim.ini and OpenSimDefaults.ini:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[StartUp]&lt;br /&gt;
    ; Set this to true if you want to log crashes to disk&lt;br /&gt;
    ; this can be useful when submitting bug reports.&lt;br /&gt;
    ; However, this will only log crashes within OpenSimulator that cause the entire program to exit&lt;br /&gt;
    ; It will not log crashes caused by virtual machine failures, which includes mono and ODE failures.&lt;br /&gt;
    ; You will need to capture these native stack traces by recording the session log itself.&lt;br /&gt;
    save_crashes = false&lt;br /&gt;
&lt;br /&gt;
    ; Directory to save crashes to if above is enabled&lt;br /&gt;
    ; (default is /opensimdir/crashes/*.txt or C:\opensim\crashes\*.txt)&lt;br /&gt;
    crash_dir = &amp;quot;crashes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For Developers ==&lt;br /&gt;
OpenSimulator internally uses [http://nini.sourceforge.net/ Nini] as a command line parser.&lt;br /&gt;
&lt;br /&gt;
Command line arguments are parsed in OpenSim/Region/Application/Application.cs&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Profile</id>
		<title>Profile</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Profile"/>
				<updated>2013-01-17T14:26:01Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Undo revision 31596 by Allen Kerensky (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
The OpenProfileModule makes it possible to create your own Profile and see other peoples' Profiles as well.&lt;br /&gt;
&lt;br /&gt;
=== Disclaimer ===&lt;br /&gt;
&amp;lt;b&amp;gt;Please note that these are third party modules which you use at your own risk!&amp;lt;br /&amp;gt;&lt;br /&gt;
OpenSimulator takes no responsibility for these modules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenProfileModule Configuration Steps ===&lt;br /&gt;
The OpenProfileModule is already compiled and ready for use in current versions of OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
However, you will need to setup the &amp;quot;back-end&amp;quot; database and PHP connector scripts to support the OpenProfileModule. &lt;br /&gt;
&lt;br /&gt;
# Upload the profile.sql (below) to your database server&lt;br /&gt;
# Upload the profile.php (below) to your web server&lt;br /&gt;
# Enable the OpenProfileModule in your OpenSim.ini file&lt;br /&gt;
&lt;br /&gt;
=== STEP 1: profile.sql ===&lt;br /&gt;
Save these SQL commands to a profile.sql file on your MySQL database server.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_classifieds` &lt;br /&gt;
(&lt;br /&gt;
  &lt;br /&gt;
`classifieduuid` char(36) NOT NULL,&lt;br /&gt;
  `creatoruuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`creationdate` int(20) NOT NULL,&lt;br /&gt;
  `expirationdate` int(20) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`category` varchar(20) NOT NULL,&lt;br /&gt;
  `name` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`description` text NOT NULL,&lt;br /&gt;
  `parceluuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`parentestate` int(11) NOT NULL,&lt;br /&gt;
  `snapshotuuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`simname` varchar(255) NOT NULL,&lt;br /&gt;
  `posglobal` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`parcelname` varchar(255) NOT NULL,&lt;br /&gt;
  `classifiedflags` int(8) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`priceforlisting` int(5) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`classifieduuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_notes` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`targetuuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`notes` text NOT NULL,&lt;br /&gt;
  UNIQUE KEY `useruuid` (`useruuid`,`targetuuid`)&lt;br /&gt;
)&lt;br /&gt;
 ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_picks` (&lt;br /&gt;
  &lt;br /&gt;
`pickuuid` varchar(36) NOT NULL,&lt;br /&gt;
  `creatoruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`toppick` enum('true','false') NOT NULL,&lt;br /&gt;
  `parceluuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`name` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`description` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`snapshotuuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`user` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`originalname` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`simname` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`posglobal` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`sortorder` int(2) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`enabled` enum('true','false') NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`pickuuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profilePartner` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileAllowPublish` binary(1) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileMaturePublish` binary(1) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileURL` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileWantToMask` int(3) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileWantToText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileSkillsMask` int(3) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileSkillsText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileLanguages` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileImage` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileAboutText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileFirstImage` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileFirstText` text NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`useruuid`)&lt;br /&gt;
) &lt;br /&gt;
ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_settings` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`imviaemail` enum('true','false') NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`visible` enum('true','false') NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`email` varchar(254) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`useruuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to your MySQL (Linux commands shown):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mysql --user=$mysqluser --password=$mysqlpassword $databasename&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace $mysqluser, $mysqlpassword, and $databasename with your specific configuration.&lt;br /&gt;
&lt;br /&gt;
At the mysql prompt, source the Offline_IM.sql file to configure your database to hold offline IMs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; source profile.sql&lt;br /&gt;
... ensure no error messages appear here ...&lt;br /&gt;
mysql&amp;gt; quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 2: profile.php ===&lt;br /&gt;
Copy this PHP script to a file called profile.php and upload the script file to your web server.&lt;br /&gt;
&lt;br /&gt;
Edit the $dbName, $dbHost, $dbUser, and $dbPassword lines at the top of the script to match your database and server information. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?PHP&lt;br /&gt;
$dbName = &amp;quot;comunity&amp;quot;;&lt;br /&gt;
$dbHost = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
$dbUser = &amp;quot;root&amp;quot;;&lt;br /&gt;
$dbPassword =&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
mysql_connect ($dbHost,$dbUser,$dbPassword);&lt;br /&gt;
mysql_select_db ($dbName);&lt;br /&gt;
&lt;br /&gt;
$zeroUUID = &amp;quot;00000000-0000-0000-0000-000000000000&amp;quot;;&lt;br /&gt;
$xmlrpc_server = xmlrpc_server_create();&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarclassifiedsrequest&amp;quot;,&lt;br /&gt;
        &amp;quot;avatarclassifiedsrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarclassifiedsrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['uuid'];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $data = array();&lt;br /&gt;
&lt;br /&gt;
    while (($row = mysql_fetch_assoc($result)))&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;classifiedid&amp;quot; =&amp;gt; $row[&amp;quot;classifieduuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Classifieds Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;classified_update&amp;quot;,&lt;br /&gt;
        &amp;quot;classified_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function classified_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $classifieduuid = $req['classifiedUUID'];&lt;br /&gt;
    $creator        = $req['creatorUUID'];&lt;br /&gt;
    $category       = $req['category'];&lt;br /&gt;
    $name           = $req['name'];&lt;br /&gt;
    $description    = $req['description'];&lt;br /&gt;
    $parceluuid     = $req['parcelUUID'];&lt;br /&gt;
    $parentestate   = $req['parentestate'];&lt;br /&gt;
    $snapshotuuid   = $req['snapshotUUID'];&lt;br /&gt;
    $simname        = $req['sim_name'];&lt;br /&gt;
    $globalpos      = $req['globalpos'];&lt;br /&gt;
    $parcelname     = $req['parcelname'];&lt;br /&gt;
    $classifiedflag = $req['classifiedFlags'];&lt;br /&gt;
    $priceforlist   = $req['classifiedPrice'];&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;classifieduuid = '&amp;quot;. mysql_escape_string($classifieduuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    while ($row = mysql_fetch_row($check))&lt;br /&gt;
    {&lt;br /&gt;
        $ready = $row[0];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ($ready == 0)&lt;br /&gt;
    {&lt;br /&gt;
        // Doing some late checking&lt;br /&gt;
        // Should be done by the module but let's see what happens when&lt;br /&gt;
        // I do it here&lt;br /&gt;
&lt;br /&gt;
        if($parcelname == &amp;quot;&amp;quot;)&lt;br /&gt;
            $parcelname = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if($parceluuid == &amp;quot;&amp;quot;)&lt;br /&gt;
            $parceluuid = $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
        if($description == &amp;quot;&amp;quot;)&lt;br /&gt;
            $description = &amp;quot;No Description&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if($classifiedflag == 2)&lt;br /&gt;
        {&lt;br /&gt;
            $creationdate = time();&lt;br /&gt;
            $expirationdate = time() + (7 * 24 * 60 * 60);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            $creationdate = time();&lt;br /&gt;
            $expirationdate = time() + (365 * 24 * 60 * 60);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $insertquery = &amp;quot;INSERT INTO profile_classifieds VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($classifieduuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($creator) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($creationdate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($expirationdate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($category) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($name) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($description) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parceluuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($parentestate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($snapshotuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($simname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($globalpos) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parcelname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($classifiedflag) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($priceforlist) .&amp;quot;)&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        // Create a new record for this classified&lt;br /&gt;
        $result = mysql_query($insertquery);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Classifieds Delete&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;classified_delete&amp;quot;,&lt;br /&gt;
        &amp;quot;classified_delete&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function classified_delete($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $classifieduuid = $req['classifiedID'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;DELETE FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;classifieduuid = '&amp;quot;.mysql_escape_string($classifieduuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&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;
# Picks&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Avatar Picks Request&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarpicksrequest&amp;quot;, &amp;quot;avatarpicksrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarpicksrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
    $uuid           = $req['uuid'];&lt;br /&gt;
    $data = array();&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT `pickuuid`,`name` FROM profile_picks WHERE &amp;quot;. &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    while (($row = mysql_fetch_assoc($result)))&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;pickid&amp;quot; =&amp;gt; $row[&amp;quot;pickuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Request Picks for User&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;pickinforequest&amp;quot;,&lt;br /&gt;
        &amp;quot;pickinforequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function pickinforequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $pick           = $req['pick_id'];&lt;br /&gt;
&lt;br /&gt;
    $data = array();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pick) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        if ($row[&amp;quot;description&amp;quot;] == null || $row[&amp;quot;description&amp;quot;] == &amp;quot;&amp;quot;)&lt;br /&gt;
            $row[&amp;quot;description&amp;quot;] = &amp;quot;No description given&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;pickuuid&amp;quot; =&amp;gt; $row[&amp;quot;pickuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;creatoruuid&amp;quot; =&amp;gt; $row[&amp;quot;creatoruuid&amp;quot;],&lt;br /&gt;
                &amp;quot;toppick&amp;quot; =&amp;gt; $row[&amp;quot;toppick&amp;quot;],&lt;br /&gt;
                &amp;quot;parceluuid&amp;quot; =&amp;gt; $row[&amp;quot;parceluuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;],&lt;br /&gt;
                &amp;quot;description&amp;quot; =&amp;gt; $row[&amp;quot;description&amp;quot;],&lt;br /&gt;
                &amp;quot;snapshotuuid&amp;quot; =&amp;gt; $row[&amp;quot;snapshotuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;user&amp;quot; =&amp;gt; $row[&amp;quot;user&amp;quot;],&lt;br /&gt;
                &amp;quot;originalname&amp;quot; =&amp;gt; $row[&amp;quot;originalname&amp;quot;],&lt;br /&gt;
                &amp;quot;simname&amp;quot; =&amp;gt; $row[&amp;quot;simname&amp;quot;],&lt;br /&gt;
                &amp;quot;posglobal&amp;quot; =&amp;gt; $row[&amp;quot;posglobal&amp;quot;],&lt;br /&gt;
                &amp;quot;sortorder&amp;quot;=&amp;gt; $row[&amp;quot;sortorder&amp;quot;],&lt;br /&gt;
                &amp;quot;enabled&amp;quot; =&amp;gt; $row[&amp;quot;enabled&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Picks Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;picks_update&amp;quot;,&lt;br /&gt;
        &amp;quot;picks_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function picks_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $pickuuid       = $req['pick_id'];&lt;br /&gt;
    $creator        = $req['creator_id'];&lt;br /&gt;
    $toppick        = $req['top_pick'];&lt;br /&gt;
    $name           = $req['name'];&lt;br /&gt;
    $description    = $req['desc'];&lt;br /&gt;
    $parceluuid     = $req['parcel_uuid'];&lt;br /&gt;
    $snapshotuuid   = $req['snapshot_id'];&lt;br /&gt;
    $user           = $req['user'];&lt;br /&gt;
    $simname        = $req['sim_name'];&lt;br /&gt;
    $posglobal      = $req['pos_global'];&lt;br /&gt;
    $sortorder      = $req['sort_order'];&lt;br /&gt;
    $enabled        = $req['enabled'];&lt;br /&gt;
&lt;br /&gt;
    if($parceluuid == &amp;quot;&amp;quot;)&lt;br /&gt;
        $parceluuid = $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    if($description == &amp;quot;&amp;quot;)&lt;br /&gt;
        $description = &amp;quot;No Description&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($check);&lt;br /&gt;
&lt;br /&gt;
    if ($row[0] == 0)&lt;br /&gt;
    {&lt;br /&gt;
        if($user == null || $user == &amp;quot;&amp;quot;)&lt;br /&gt;
            $user = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        //The original parcel name is the same as the name of the&lt;br /&gt;
        //profile pick when a new profile pick is being created.&lt;br /&gt;
        $original = $name;&lt;br /&gt;
&lt;br /&gt;
        $query = &amp;quot;INSERT INTO profile_picks VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($creator) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($toppick) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parceluuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($name) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($description) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($snapshotuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($user) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($original) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($simname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($posglobal) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($sortorder) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($enabled) .&amp;quot;')&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        $query = &amp;quot;UPDATE profile_picks SET &amp;quot; .&lt;br /&gt;
            &amp;quot;parceluuid = '&amp;quot;. mysql_escape_string($parceluuid) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;name = '&amp;quot;. mysql_escape_string($name) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;description = '&amp;quot;. mysql_escape_string($description) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;snapshotuuid = '&amp;quot;. mysql_escape_string($snapshotuuid) . &amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query($query);&lt;br /&gt;
    if ($result != False)&lt;br /&gt;
        $result = True;&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Picks Delete&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;picks_delete&amp;quot;,&lt;br /&gt;
        &amp;quot;picks_delete&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function picks_delete($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $pickuuid       = $req['pick_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;DELETE FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;.mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if ($result != False)&lt;br /&gt;
        $result = True;&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Notes&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Avatar Notes Request&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarnotesrequest&amp;quot;,&lt;br /&gt;
        &amp;quot;avatarnotesrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarnotesrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $targetuuid     = $req['uuid'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT notes FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($result);&lt;br /&gt;
    if ($row == False)&lt;br /&gt;
        $notes = &amp;quot;&amp;quot;;&lt;br /&gt;
    else&lt;br /&gt;
        $notes = $row[0];&lt;br /&gt;
&lt;br /&gt;
    $data[] = array(&lt;br /&gt;
            &amp;quot;targetid&amp;quot; =&amp;gt; $targetuuid,&lt;br /&gt;
            &amp;quot;notes&amp;quot; =&amp;gt; $notes);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Avatar Notes Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_notes_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_notes_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_notes_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $targetuuid     = $req['target_id'];&lt;br /&gt;
    $notes          = $req['notes'];&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($check);&lt;br /&gt;
&lt;br /&gt;
    if ($row[0] == 0)&lt;br /&gt;
    {&lt;br /&gt;
        // Create a new record for this avatar note&lt;br /&gt;
        $result = mysql_query(&amp;quot;INSERT INTO profile_notes VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($uuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($notes) .&amp;quot;')&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if ($notes == &amp;quot;&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        // Delete the record for this avatar note&lt;br /&gt;
        $result = mysql_query(&amp;quot;DELETE FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        // Update the existing record&lt;br /&gt;
        $result = mysql_query(&amp;quot;UPDATE profile_notes SET &amp;quot;.&lt;br /&gt;
            &amp;quot;notes = '&amp;quot;. mysql_escape_string($notes) .&amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Profile bits&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_properties_request&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_properties_request&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_properties_request($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;ProfileUrl&amp;quot; =&amp;gt; $row[&amp;quot;profileURL&amp;quot;],&lt;br /&gt;
                &amp;quot;Image&amp;quot; =&amp;gt; $row[&amp;quot;profileImage&amp;quot;],&lt;br /&gt;
                &amp;quot;AboutText&amp;quot; =&amp;gt; $row[&amp;quot;profileAboutText&amp;quot;],&lt;br /&gt;
                &amp;quot;FirstLifeImage&amp;quot; =&amp;gt; $row[&amp;quot;profileFirstImage&amp;quot;],&lt;br /&gt;
                &amp;quot;FirstLifeAboutText&amp;quot; =&amp;gt; $row[&amp;quot;profileFirstText&amp;quot;],&lt;br /&gt;
                &amp;quot;Partner&amp;quot; =&amp;gt; $row[&amp;quot;profilePartner&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
                //Return interest data along with avatar properties&lt;br /&gt;
                &amp;quot;wantmask&amp;quot;   =&amp;gt; $row[&amp;quot;profileWantToMask&amp;quot;],&lt;br /&gt;
                &amp;quot;wanttext&amp;quot;   =&amp;gt; $row[&amp;quot;profileWantToText&amp;quot;],&lt;br /&gt;
                &amp;quot;skillsmask&amp;quot; =&amp;gt; $row[&amp;quot;profileSkillsMask&amp;quot;],&lt;br /&gt;
                &amp;quot;skillstext&amp;quot; =&amp;gt; $row[&amp;quot;profileSkillsText&amp;quot;],&lt;br /&gt;
                &amp;quot;languages&amp;quot;  =&amp;gt; $row[&amp;quot;profileLanguages&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        //Insert empty record for avatar.&lt;br /&gt;
        //FIXME: Should this only be done when asking for ones own profile?&lt;br /&gt;
        $sql = &amp;quot;INSERT INTO profile VALUES ( &amp;quot;.&lt;br /&gt;
                &amp;quot;'&amp;quot;. mysql_escape_string($uuid) .&amp;quot;', &amp;quot;.&lt;br /&gt;
                &amp;quot;'$zeroUUID', 0, 0, '', 0, '', 0, '', '', &amp;quot;.&lt;br /&gt;
                &amp;quot;'$zeroUUID', '', '$zeroUUID', '')&amp;quot;;&lt;br /&gt;
        $result = mysql_query($sql);&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;ProfileUrl&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;Image&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
                &amp;quot;AboutText&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;FirstLifeImage&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
                &amp;quot;FirstLifeAboutText&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;Partner&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
&lt;br /&gt;
                &amp;quot;wantmask&amp;quot;   =&amp;gt; 0,&lt;br /&gt;
                &amp;quot;wanttext&amp;quot;   =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;skillsmask&amp;quot; =&amp;gt; 0,&lt;br /&gt;
                &amp;quot;skillstext&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;languages&amp;quot;  =&amp;gt; &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_properties_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_properties_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_properties_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $profileURL     = $req['ProfileUrl'];&lt;br /&gt;
    $image          = $req['Image'];&lt;br /&gt;
    $abouttext      = $req['AboutText'];&lt;br /&gt;
    $firstlifeimage = $req['FirstLifeImage'];&lt;br /&gt;
    $firstlifetext  = $req['FirstLifeAboutText'];&lt;br /&gt;
&lt;br /&gt;
    $result=mysql_query(&amp;quot;UPDATE profile SET &amp;quot;.&lt;br /&gt;
            &amp;quot;profileURL='&amp;quot;. mysql_escape_string($profileURL) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileImage='&amp;quot;. mysql_escape_string($image) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileAboutText='&amp;quot;. mysql_escape_string($abouttext) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileFirstImage='&amp;quot;. mysql_escape_string($firstlifeimage) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileFirstText='&amp;quot;. mysql_escape_string($firstlifetext) .&amp;quot;' &amp;quot;.&lt;br /&gt;
            &amp;quot;WHERE useruuid='&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Profile Interests&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_interests_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_interests_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_interests_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $wanttext       = $req['wanttext'];&lt;br /&gt;
    $wantmask       = $req['wantmask'];&lt;br /&gt;
    $skillstext     = $req['skillstext'];&lt;br /&gt;
    $skillsmask     = $req['skillsmask'];&lt;br /&gt;
    $languages      = $req['languages'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;UPDATE profile SET &amp;quot;.&lt;br /&gt;
            &amp;quot;profileWantToMask = &amp;quot;. mysql_escape_string($wantmask) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;profileWantToText = '&amp;quot;. mysql_escape_string($wanttext) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;profileSkillsMask = &amp;quot;. mysql_escape_string($skillsmask) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;profileSkillsText = '&amp;quot;. mysql_escape_string($skillstext) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;profileLanguages = '&amp;quot;. mysql_escape_string($languages) .&amp;quot;' &amp;quot;.&lt;br /&gt;
            &amp;quot;WHERE useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// User Preferences&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;user_preferences_request&amp;quot;,&lt;br /&gt;
        &amp;quot;user_preferences_request&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function user_preferences_request($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT imviaemail,visible,email FROM profile_settings WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;imviaemail&amp;quot; =&amp;gt; $row[&amp;quot;imviaemail&amp;quot;],&lt;br /&gt;
                &amp;quot;visible&amp;quot; =&amp;gt; $row[&amp;quot;visible&amp;quot;],&lt;br /&gt;
                &amp;quot;email&amp;quot; =&amp;gt; $row[&amp;quot;email&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        //Insert empty record for avatar.&lt;br /&gt;
        //NOTE: The 'false' values here are enums defined in database&lt;br /&gt;
        $sql = &amp;quot;INSERT INTO profile_settings VALUES &amp;quot;.&lt;br /&gt;
                &amp;quot;('&amp;quot;. mysql_escape_string($uuid) .&amp;quot;', &amp;quot;.&lt;br /&gt;
                &amp;quot;'false', 'false', '')&amp;quot;;&lt;br /&gt;
        $result = mysql_query($sql);&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;imviaemail&amp;quot; =&amp;gt; False,&lt;br /&gt;
                &amp;quot;visible&amp;quot; =&amp;gt; False,&lt;br /&gt;
                &amp;quot;email&amp;quot; =&amp;gt; &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;user_preferences_update&amp;quot;,&lt;br /&gt;
        &amp;quot;user_preferences_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function user_preferences_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $wantim         = $req['imViaEmail'];&lt;br /&gt;
    $directory      = $req['visible'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;UPDATE profile_settings SET &amp;quot;.&lt;br /&gt;
            &amp;quot;imviaemail = '&amp;quot;.mysql_escape_string($wantim) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;visible = '&amp;quot;.mysql_escape_string($directory) .&amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Process the request&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$request_xml = $HTTP_RAW_POST_DATA;&lt;br /&gt;
xmlrpc_server_call_method($xmlrpc_server, $request_xml, '');&lt;br /&gt;
xmlrpc_server_destroy($xmlrpc_server);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 3: OpenProfileModule ===&lt;br /&gt;
Shutdown your simulator.&lt;br /&gt;
&lt;br /&gt;
Edit the OpenSim.ini [Profile] block.&lt;br /&gt;
&lt;br /&gt;
An example configuration is shown below:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Profile]&lt;br /&gt;
    Module = &amp;quot;OpenProfileModule&amp;quot;&lt;br /&gt;
    ProfileURL = &amp;quot;http://yourwebserverdomainname/pathto/profile.php&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the edits are made, save your OpenSim.ini and restart your simulator. &lt;br /&gt;
&lt;br /&gt;
=== Using the OpenProfileModule ===&lt;br /&gt;
Login to your simulator and try to create your profile.&lt;br /&gt;
&lt;br /&gt;
Check the database profile table to verify whether or not profile.php has written a record there. &lt;br /&gt;
&lt;br /&gt;
P.D: OpenProfileModule only works while you are on your home grid, not when you are connected to other grids over hypergrid.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
Error shown in Apache error_log:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
PHP Fatal error:  Call to undefined function xmlrpc_server_create() in /var/www/html/opensim/profile.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cause:&lt;br /&gt;
&amp;lt;pre&amp;gt;Many Linux distributions may not ship with PHP XML RPC extensions.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Steps to Fix:&lt;br /&gt;
* Fedora 17:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum install php-xmlrpc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing Notes ===&lt;br /&gt;
These steps and configuration tested working on 2013-Jan-13 with:&lt;br /&gt;
* OpenSimulator 0.7.5 r21607 from 2013-Jan-09&lt;br /&gt;
* Nant 0.90&lt;br /&gt;
* Mono 2.10.8&lt;br /&gt;
* MySQL 5.5.28&lt;br /&gt;
* PHP XMLRPC 5.4.10&lt;br /&gt;
* PHP 5.4.1&lt;br /&gt;
* Apache 2.2.22&lt;br /&gt;
* Linux Kernel 3.6.11&lt;br /&gt;
* Fedora Linux 17 (Beefy Miracle)&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Profile</id>
		<title>Profile</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Profile"/>
				<updated>2013-01-17T14:16:18Z</updated>
		
		<summary type="html">&lt;p&gt;Allen Kerensky: Removed MODULE = line from [Profile] block - holdover from older version of the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
The OpenProfileModule makes it possible to create your own Profile and see other peoples' Profiles as well.&lt;br /&gt;
&lt;br /&gt;
=== Disclaimer ===&lt;br /&gt;
&amp;lt;b&amp;gt;Please note that these are third party modules which you use at your own risk!&amp;lt;br /&amp;gt;&lt;br /&gt;
OpenSimulator takes no responsibility for these modules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenProfileModule Configuration Steps ===&lt;br /&gt;
The OpenProfileModule is already compiled and ready for use in current versions of OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
However, you will need to setup the &amp;quot;back-end&amp;quot; database and PHP connector scripts to support the OpenProfileModule. &lt;br /&gt;
&lt;br /&gt;
# Upload the profile.sql (below) to your database server&lt;br /&gt;
# Upload the profile.php (below) to your web server&lt;br /&gt;
# Enable the OpenProfileModule in your OpenSim.ini file&lt;br /&gt;
&lt;br /&gt;
=== STEP 1: profile.sql ===&lt;br /&gt;
Save these SQL commands to a profile.sql file on your MySQL database server.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_classifieds` &lt;br /&gt;
(&lt;br /&gt;
  &lt;br /&gt;
`classifieduuid` char(36) NOT NULL,&lt;br /&gt;
  `creatoruuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`creationdate` int(20) NOT NULL,&lt;br /&gt;
  `expirationdate` int(20) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`category` varchar(20) NOT NULL,&lt;br /&gt;
  `name` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`description` text NOT NULL,&lt;br /&gt;
  `parceluuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`parentestate` int(11) NOT NULL,&lt;br /&gt;
  `snapshotuuid` char(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`simname` varchar(255) NOT NULL,&lt;br /&gt;
  `posglobal` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`parcelname` varchar(255) NOT NULL,&lt;br /&gt;
  `classifiedflags` int(8) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`priceforlisting` int(5) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`classifieduuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_notes` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`targetuuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`notes` text NOT NULL,&lt;br /&gt;
  UNIQUE KEY `useruuid` (`useruuid`,`targetuuid`)&lt;br /&gt;
)&lt;br /&gt;
 ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_picks` (&lt;br /&gt;
  &lt;br /&gt;
`pickuuid` varchar(36) NOT NULL,&lt;br /&gt;
  `creatoruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`toppick` enum('true','false') NOT NULL,&lt;br /&gt;
  `parceluuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`name` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`description` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`snapshotuuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`user` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`originalname` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`simname` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`posglobal` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`sortorder` int(2) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`enabled` enum('true','false') NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`pickuuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profilePartner` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileAllowPublish` binary(1) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileMaturePublish` binary(1) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileURL` varchar(255) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileWantToMask` int(3) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileWantToText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileSkillsMask` int(3) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileSkillsText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileLanguages` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileImage` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileAboutText` text NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileFirstImage` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`profileFirstText` text NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`useruuid`)&lt;br /&gt;
) &lt;br /&gt;
ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `profile_settings` (&lt;br /&gt;
  &lt;br /&gt;
`useruuid` varchar(36) NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`imviaemail` enum('true','false') NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`visible` enum('true','false') NOT NULL,&lt;br /&gt;
  &lt;br /&gt;
`email` varchar(254) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`useruuid`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to your MySQL (Linux commands shown):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mysql --user=$mysqluser --password=$mysqlpassword $databasename&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace $mysqluser, $mysqlpassword, and $databasename with your specific configuration.&lt;br /&gt;
&lt;br /&gt;
At the mysql prompt, source the Offline_IM.sql file to configure your database to hold offline IMs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; source profile.sql&lt;br /&gt;
... ensure no error messages appear here ...&lt;br /&gt;
mysql&amp;gt; quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 2: profile.php ===&lt;br /&gt;
Copy this PHP script to a file called profile.php and upload the script file to your web server.&lt;br /&gt;
&lt;br /&gt;
Edit the $dbName, $dbHost, $dbUser, and $dbPassword lines at the top of the script to match your database and server information. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?PHP&lt;br /&gt;
$dbName = &amp;quot;comunity&amp;quot;;&lt;br /&gt;
$dbHost = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
$dbUser = &amp;quot;root&amp;quot;;&lt;br /&gt;
$dbPassword =&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
mysql_connect ($dbHost,$dbUser,$dbPassword);&lt;br /&gt;
mysql_select_db ($dbName);&lt;br /&gt;
&lt;br /&gt;
$zeroUUID = &amp;quot;00000000-0000-0000-0000-000000000000&amp;quot;;&lt;br /&gt;
$xmlrpc_server = xmlrpc_server_create();&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarclassifiedsrequest&amp;quot;,&lt;br /&gt;
        &amp;quot;avatarclassifiedsrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarclassifiedsrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['uuid'];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $data = array();&lt;br /&gt;
&lt;br /&gt;
    while (($row = mysql_fetch_assoc($result)))&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;classifiedid&amp;quot; =&amp;gt; $row[&amp;quot;classifieduuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Classifieds Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;classified_update&amp;quot;,&lt;br /&gt;
        &amp;quot;classified_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function classified_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $classifieduuid = $req['classifiedUUID'];&lt;br /&gt;
    $creator        = $req['creatorUUID'];&lt;br /&gt;
    $category       = $req['category'];&lt;br /&gt;
    $name           = $req['name'];&lt;br /&gt;
    $description    = $req['description'];&lt;br /&gt;
    $parceluuid     = $req['parcelUUID'];&lt;br /&gt;
    $parentestate   = $req['parentestate'];&lt;br /&gt;
    $snapshotuuid   = $req['snapshotUUID'];&lt;br /&gt;
    $simname        = $req['sim_name'];&lt;br /&gt;
    $globalpos      = $req['globalpos'];&lt;br /&gt;
    $parcelname     = $req['parcelname'];&lt;br /&gt;
    $classifiedflag = $req['classifiedFlags'];&lt;br /&gt;
    $priceforlist   = $req['classifiedPrice'];&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;classifieduuid = '&amp;quot;. mysql_escape_string($classifieduuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    while ($row = mysql_fetch_row($check))&lt;br /&gt;
    {&lt;br /&gt;
        $ready = $row[0];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ($ready == 0)&lt;br /&gt;
    {&lt;br /&gt;
        // Doing some late checking&lt;br /&gt;
        // Should be done by the module but let's see what happens when&lt;br /&gt;
        // I do it here&lt;br /&gt;
&lt;br /&gt;
        if($parcelname == &amp;quot;&amp;quot;)&lt;br /&gt;
            $parcelname = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if($parceluuid == &amp;quot;&amp;quot;)&lt;br /&gt;
            $parceluuid = $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
        if($description == &amp;quot;&amp;quot;)&lt;br /&gt;
            $description = &amp;quot;No Description&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if($classifiedflag == 2)&lt;br /&gt;
        {&lt;br /&gt;
            $creationdate = time();&lt;br /&gt;
            $expirationdate = time() + (7 * 24 * 60 * 60);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            $creationdate = time();&lt;br /&gt;
            $expirationdate = time() + (365 * 24 * 60 * 60);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $insertquery = &amp;quot;INSERT INTO profile_classifieds VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($classifieduuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($creator) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($creationdate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($expirationdate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($category) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($name) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($description) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parceluuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($parentestate) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($snapshotuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($simname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($globalpos) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parcelname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($classifiedflag) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;&amp;quot;. mysql_escape_string($priceforlist) .&amp;quot;)&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        // Create a new record for this classified&lt;br /&gt;
        $result = mysql_query($insertquery);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Classifieds Delete&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;classified_delete&amp;quot;,&lt;br /&gt;
        &amp;quot;classified_delete&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function classified_delete($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $classifieduuid = $req['classifiedID'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;DELETE FROM profile_classifieds WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;classifieduuid = '&amp;quot;.mysql_escape_string($classifieduuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&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;
# Picks&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Avatar Picks Request&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarpicksrequest&amp;quot;, &amp;quot;avatarpicksrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarpicksrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
    $uuid           = $req['uuid'];&lt;br /&gt;
    $data = array();&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT `pickuuid`,`name` FROM profile_picks WHERE &amp;quot;. &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    while (($row = mysql_fetch_assoc($result)))&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;pickid&amp;quot; =&amp;gt; $row[&amp;quot;pickuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Request Picks for User&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;pickinforequest&amp;quot;,&lt;br /&gt;
        &amp;quot;pickinforequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function pickinforequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $pick           = $req['pick_id'];&lt;br /&gt;
&lt;br /&gt;
    $data = array();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;creatoruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pick) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        if ($row[&amp;quot;description&amp;quot;] == null || $row[&amp;quot;description&amp;quot;] == &amp;quot;&amp;quot;)&lt;br /&gt;
            $row[&amp;quot;description&amp;quot;] = &amp;quot;No description given&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;pickuuid&amp;quot; =&amp;gt; $row[&amp;quot;pickuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;creatoruuid&amp;quot; =&amp;gt; $row[&amp;quot;creatoruuid&amp;quot;],&lt;br /&gt;
                &amp;quot;toppick&amp;quot; =&amp;gt; $row[&amp;quot;toppick&amp;quot;],&lt;br /&gt;
                &amp;quot;parceluuid&amp;quot; =&amp;gt; $row[&amp;quot;parceluuid&amp;quot;],&lt;br /&gt;
                &amp;quot;name&amp;quot; =&amp;gt; $row[&amp;quot;name&amp;quot;],&lt;br /&gt;
                &amp;quot;description&amp;quot; =&amp;gt; $row[&amp;quot;description&amp;quot;],&lt;br /&gt;
                &amp;quot;snapshotuuid&amp;quot; =&amp;gt; $row[&amp;quot;snapshotuuid&amp;quot;],&lt;br /&gt;
                &amp;quot;user&amp;quot; =&amp;gt; $row[&amp;quot;user&amp;quot;],&lt;br /&gt;
                &amp;quot;originalname&amp;quot; =&amp;gt; $row[&amp;quot;originalname&amp;quot;],&lt;br /&gt;
                &amp;quot;simname&amp;quot; =&amp;gt; $row[&amp;quot;simname&amp;quot;],&lt;br /&gt;
                &amp;quot;posglobal&amp;quot; =&amp;gt; $row[&amp;quot;posglobal&amp;quot;],&lt;br /&gt;
                &amp;quot;sortorder&amp;quot;=&amp;gt; $row[&amp;quot;sortorder&amp;quot;],&lt;br /&gt;
                &amp;quot;enabled&amp;quot; =&amp;gt; $row[&amp;quot;enabled&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Picks Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;picks_update&amp;quot;,&lt;br /&gt;
        &amp;quot;picks_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function picks_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $pickuuid       = $req['pick_id'];&lt;br /&gt;
    $creator        = $req['creator_id'];&lt;br /&gt;
    $toppick        = $req['top_pick'];&lt;br /&gt;
    $name           = $req['name'];&lt;br /&gt;
    $description    = $req['desc'];&lt;br /&gt;
    $parceluuid     = $req['parcel_uuid'];&lt;br /&gt;
    $snapshotuuid   = $req['snapshot_id'];&lt;br /&gt;
    $user           = $req['user'];&lt;br /&gt;
    $simname        = $req['sim_name'];&lt;br /&gt;
    $posglobal      = $req['pos_global'];&lt;br /&gt;
    $sortorder      = $req['sort_order'];&lt;br /&gt;
    $enabled        = $req['enabled'];&lt;br /&gt;
&lt;br /&gt;
    if($parceluuid == &amp;quot;&amp;quot;)&lt;br /&gt;
        $parceluuid = $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    if($description == &amp;quot;&amp;quot;)&lt;br /&gt;
        $description = &amp;quot;No Description&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($check);&lt;br /&gt;
&lt;br /&gt;
    if ($row[0] == 0)&lt;br /&gt;
    {&lt;br /&gt;
        if($user == null || $user == &amp;quot;&amp;quot;)&lt;br /&gt;
            $user = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        //The original parcel name is the same as the name of the&lt;br /&gt;
        //profile pick when a new profile pick is being created.&lt;br /&gt;
        $original = $name;&lt;br /&gt;
&lt;br /&gt;
        $query = &amp;quot;INSERT INTO profile_picks VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($creator) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($toppick) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($parceluuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($name) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($description) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($snapshotuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($user) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($original) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($simname) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($posglobal) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($sortorder) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($enabled) .&amp;quot;')&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        $query = &amp;quot;UPDATE profile_picks SET &amp;quot; .&lt;br /&gt;
            &amp;quot;parceluuid = '&amp;quot;. mysql_escape_string($parceluuid) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;name = '&amp;quot;. mysql_escape_string($name) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;description = '&amp;quot;. mysql_escape_string($description) . &amp;quot;', &amp;quot; .&lt;br /&gt;
            &amp;quot;snapshotuuid = '&amp;quot;. mysql_escape_string($snapshotuuid) . &amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;. mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query($query);&lt;br /&gt;
    if ($result != False)&lt;br /&gt;
        $result = True;&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Picks Delete&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;picks_delete&amp;quot;,&lt;br /&gt;
        &amp;quot;picks_delete&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function picks_delete($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $pickuuid       = $req['pick_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;DELETE FROM profile_picks WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;pickuuid = '&amp;quot;.mysql_escape_string($pickuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if ($result != False)&lt;br /&gt;
        $result = True;&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Notes&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Avatar Notes Request&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatarnotesrequest&amp;quot;,&lt;br /&gt;
        &amp;quot;avatarnotesrequest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatarnotesrequest($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $targetuuid     = $req['uuid'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT notes FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($result);&lt;br /&gt;
    if ($row == False)&lt;br /&gt;
        $notes = &amp;quot;&amp;quot;;&lt;br /&gt;
    else&lt;br /&gt;
        $notes = $row[0];&lt;br /&gt;
&lt;br /&gt;
    $data[] = array(&lt;br /&gt;
            &amp;quot;targetid&amp;quot; =&amp;gt; $targetuuid,&lt;br /&gt;
            &amp;quot;notes&amp;quot; =&amp;gt; $notes);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Avatar Notes Update&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_notes_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_notes_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_notes_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $targetuuid     = $req['target_id'];&lt;br /&gt;
    $notes          = $req['notes'];&lt;br /&gt;
&lt;br /&gt;
    // Check if we already have this one in the database&lt;br /&gt;
&lt;br /&gt;
    $check = mysql_query(&amp;quot;SELECT COUNT(*) FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_row($check);&lt;br /&gt;
&lt;br /&gt;
    if ($row[0] == 0)&lt;br /&gt;
    {&lt;br /&gt;
        // Create a new record for this avatar note&lt;br /&gt;
        $result = mysql_query(&amp;quot;INSERT INTO profile_notes VALUES &amp;quot;.&lt;br /&gt;
            &amp;quot;('&amp;quot;. mysql_escape_string($uuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;'&amp;quot;. mysql_escape_string($notes) .&amp;quot;')&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if ($notes == &amp;quot;&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        // Delete the record for this avatar note&lt;br /&gt;
        $result = mysql_query(&amp;quot;DELETE FROM profile_notes WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        // Update the existing record&lt;br /&gt;
        $result = mysql_query(&amp;quot;UPDATE profile_notes SET &amp;quot;.&lt;br /&gt;
            &amp;quot;notes = '&amp;quot;. mysql_escape_string($notes) .&amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;' AND &amp;quot;.&lt;br /&gt;
            &amp;quot;targetuuid = '&amp;quot;. mysql_escape_string($targetuuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Profile bits&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_properties_request&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_properties_request&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_properties_request($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    global $zeroUUID;&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT * FROM profile WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;ProfileUrl&amp;quot; =&amp;gt; $row[&amp;quot;profileURL&amp;quot;],&lt;br /&gt;
                &amp;quot;Image&amp;quot; =&amp;gt; $row[&amp;quot;profileImage&amp;quot;],&lt;br /&gt;
                &amp;quot;AboutText&amp;quot; =&amp;gt; $row[&amp;quot;profileAboutText&amp;quot;],&lt;br /&gt;
                &amp;quot;FirstLifeImage&amp;quot; =&amp;gt; $row[&amp;quot;profileFirstImage&amp;quot;],&lt;br /&gt;
                &amp;quot;FirstLifeAboutText&amp;quot; =&amp;gt; $row[&amp;quot;profileFirstText&amp;quot;],&lt;br /&gt;
                &amp;quot;Partner&amp;quot; =&amp;gt; $row[&amp;quot;profilePartner&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
                //Return interest data along with avatar properties&lt;br /&gt;
                &amp;quot;wantmask&amp;quot;   =&amp;gt; $row[&amp;quot;profileWantToMask&amp;quot;],&lt;br /&gt;
                &amp;quot;wanttext&amp;quot;   =&amp;gt; $row[&amp;quot;profileWantToText&amp;quot;],&lt;br /&gt;
                &amp;quot;skillsmask&amp;quot; =&amp;gt; $row[&amp;quot;profileSkillsMask&amp;quot;],&lt;br /&gt;
                &amp;quot;skillstext&amp;quot; =&amp;gt; $row[&amp;quot;profileSkillsText&amp;quot;],&lt;br /&gt;
                &amp;quot;languages&amp;quot;  =&amp;gt; $row[&amp;quot;profileLanguages&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        //Insert empty record for avatar.&lt;br /&gt;
        //FIXME: Should this only be done when asking for ones own profile?&lt;br /&gt;
        $sql = &amp;quot;INSERT INTO profile VALUES ( &amp;quot;.&lt;br /&gt;
                &amp;quot;'&amp;quot;. mysql_escape_string($uuid) .&amp;quot;', &amp;quot;.&lt;br /&gt;
                &amp;quot;'$zeroUUID', 0, 0, '', 0, '', 0, '', '', &amp;quot;.&lt;br /&gt;
                &amp;quot;'$zeroUUID', '', '$zeroUUID', '')&amp;quot;;&lt;br /&gt;
        $result = mysql_query($sql);&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;ProfileUrl&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;Image&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
                &amp;quot;AboutText&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;FirstLifeImage&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
                &amp;quot;FirstLifeAboutText&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;Partner&amp;quot; =&amp;gt; $zeroUUID,&lt;br /&gt;
&lt;br /&gt;
                &amp;quot;wantmask&amp;quot;   =&amp;gt; 0,&lt;br /&gt;
                &amp;quot;wanttext&amp;quot;   =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;skillsmask&amp;quot; =&amp;gt; 0,&lt;br /&gt;
                &amp;quot;skillstext&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;languages&amp;quot;  =&amp;gt; &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_properties_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_properties_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_properties_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $profileURL     = $req['ProfileUrl'];&lt;br /&gt;
    $image          = $req['Image'];&lt;br /&gt;
    $abouttext      = $req['AboutText'];&lt;br /&gt;
    $firstlifeimage = $req['FirstLifeImage'];&lt;br /&gt;
    $firstlifetext  = $req['FirstLifeAboutText'];&lt;br /&gt;
&lt;br /&gt;
    $result=mysql_query(&amp;quot;UPDATE profile SET &amp;quot;.&lt;br /&gt;
            &amp;quot;profileURL='&amp;quot;. mysql_escape_string($profileURL) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileImage='&amp;quot;. mysql_escape_string($image) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileAboutText='&amp;quot;. mysql_escape_string($abouttext) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileFirstImage='&amp;quot;. mysql_escape_string($firstlifeimage) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;profileFirstText='&amp;quot;. mysql_escape_string($firstlifetext) .&amp;quot;' &amp;quot;.&lt;br /&gt;
            &amp;quot;WHERE useruuid='&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; $result,&lt;br /&gt;
        'errorMessage' =&amp;gt; mysql_error()&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Profile Interests&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;avatar_interests_update&amp;quot;,&lt;br /&gt;
        &amp;quot;avatar_interests_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function avatar_interests_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $wanttext       = $req['wanttext'];&lt;br /&gt;
    $wantmask       = $req['wantmask'];&lt;br /&gt;
    $skillstext     = $req['skillstext'];&lt;br /&gt;
    $skillsmask     = $req['skillsmask'];&lt;br /&gt;
    $languages      = $req['languages'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;UPDATE profile SET &amp;quot;.&lt;br /&gt;
            &amp;quot;profileWantToMask = &amp;quot;. mysql_escape_string($wantmask) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;profileWantToText = '&amp;quot;. mysql_escape_string($wanttext) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;profileSkillsMask = &amp;quot;. mysql_escape_string($skillsmask) .&amp;quot;,&amp;quot;.&lt;br /&gt;
            &amp;quot;profileSkillsText = '&amp;quot;. mysql_escape_string($skillstext) .&amp;quot;',&amp;quot;.&lt;br /&gt;
            &amp;quot;profileLanguages = '&amp;quot;. mysql_escape_string($languages) .&amp;quot;' &amp;quot;.&lt;br /&gt;
            &amp;quot;WHERE useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// User Preferences&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;user_preferences_request&amp;quot;,&lt;br /&gt;
        &amp;quot;user_preferences_request&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function user_preferences_request($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;SELECT imviaemail,visible,email FROM profile_settings WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $row = mysql_fetch_assoc($result);&lt;br /&gt;
&lt;br /&gt;
    if ($row != False)&lt;br /&gt;
    {&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;imviaemail&amp;quot; =&amp;gt; $row[&amp;quot;imviaemail&amp;quot;],&lt;br /&gt;
                &amp;quot;visible&amp;quot; =&amp;gt; $row[&amp;quot;visible&amp;quot;],&lt;br /&gt;
                &amp;quot;email&amp;quot; =&amp;gt; $row[&amp;quot;email&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        //Insert empty record for avatar.&lt;br /&gt;
        //NOTE: The 'false' values here are enums defined in database&lt;br /&gt;
        $sql = &amp;quot;INSERT INTO profile_settings VALUES &amp;quot;.&lt;br /&gt;
                &amp;quot;('&amp;quot;. mysql_escape_string($uuid) .&amp;quot;', &amp;quot;.&lt;br /&gt;
                &amp;quot;'false', 'false', '')&amp;quot;;&lt;br /&gt;
        $result = mysql_query($sql);&lt;br /&gt;
&lt;br /&gt;
        $data[] = array(&lt;br /&gt;
                &amp;quot;imviaemail&amp;quot; =&amp;gt; False,&lt;br /&gt;
                &amp;quot;visible&amp;quot; =&amp;gt; False,&lt;br /&gt;
                &amp;quot;email&amp;quot; =&amp;gt; &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
xmlrpc_server_register_method($xmlrpc_server, &amp;quot;user_preferences_update&amp;quot;,&lt;br /&gt;
        &amp;quot;user_preferences_update&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function user_preferences_update($method_name, $params, $app_data)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    $req            = $params[0];&lt;br /&gt;
&lt;br /&gt;
    $uuid           = $req['avatar_id'];&lt;br /&gt;
    $wantim         = $req['imViaEmail'];&lt;br /&gt;
    $directory      = $req['visible'];&lt;br /&gt;
&lt;br /&gt;
    $result = mysql_query(&amp;quot;UPDATE profile_settings SET &amp;quot;.&lt;br /&gt;
            &amp;quot;imviaemail = '&amp;quot;.mysql_escape_string($wantim) .&amp;quot;', &amp;quot;.&lt;br /&gt;
            &amp;quot;visible = '&amp;quot;.mysql_escape_string($directory) .&amp;quot;' WHERE &amp;quot;.&lt;br /&gt;
            &amp;quot;useruuid = '&amp;quot;. mysql_escape_string($uuid) .&amp;quot;'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $response_xml = xmlrpc_encode(array(&lt;br /&gt;
        'success' =&amp;gt; True,&lt;br /&gt;
        'data' =&amp;gt; $data&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    print $response_xml;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Process the request&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$request_xml = $HTTP_RAW_POST_DATA;&lt;br /&gt;
xmlrpc_server_call_method($xmlrpc_server, $request_xml, '');&lt;br /&gt;
xmlrpc_server_destroy($xmlrpc_server);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STEP 3: OpenProfileModule ===&lt;br /&gt;
Shutdown your simulator.&lt;br /&gt;
&lt;br /&gt;
Edit the OpenSim.ini [Profile] block.&lt;br /&gt;
&lt;br /&gt;
An example configuration is shown below:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Profile]&lt;br /&gt;
    ProfileURL = &amp;quot;http://yourwebserverdomainname/pathto/profile.php&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the edits are made, save your OpenSim.ini and restart your simulator. &lt;br /&gt;
&lt;br /&gt;
=== Using the OpenProfileModule ===&lt;br /&gt;
Login to your simulator and try to create your profile.&lt;br /&gt;
&lt;br /&gt;
Check the database profile table to verify whether or not profile.php has written a record there. &lt;br /&gt;
&lt;br /&gt;
P.D: OpenProfileModule only works while you are on your home grid, not when you are connected to other grids over hypergrid.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
Error shown in Apache error_log:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
PHP Fatal error:  Call to undefined function xmlrpc_server_create() in /var/www/html/opensim/profile.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cause:&lt;br /&gt;
&amp;lt;pre&amp;gt;Many Linux distributions may not ship with PHP XML RPC extensions.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Steps to Fix:&lt;br /&gt;
* Fedora 17:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum install php-xmlrpc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing Notes ===&lt;br /&gt;
These steps and configuration tested working on 2013-Jan-13 with:&lt;br /&gt;
* OpenSimulator 0.7.5 r21607 from 2013-Jan-09&lt;br /&gt;
* Nant 0.90&lt;br /&gt;
* Mono 2.10.8&lt;br /&gt;
* MySQL 5.5.28&lt;br /&gt;
* PHP XMLRPC 5.4.10&lt;br /&gt;
* PHP 5.4.1&lt;br /&gt;
* Apache 2.2.22&lt;br /&gt;
* Linux Kernel 3.6.11&lt;br /&gt;
* Fedora Linux 17 (Beefy Miracle)&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	</feed>