<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=MLPV2_LockGuard_plugin</id>
	<title>MLPV2 LockGuard plugin - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=MLPV2_LockGuard_plugin"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;action=history"/>
	<updated>2026-07-28T13:26:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1200403&amp;oldid=prev</id>
		<title>Kadah Coba: &lt;lsl&gt; tag to &lt;source&gt;</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1200403&amp;oldid=prev"/>
		<updated>2016-06-07T07:17:17Z</updated>

		<summary type="html">&lt;p&gt;&amp;lt;lsl&amp;gt; tag to &amp;lt;source&amp;gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:17, 7 June 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Add the following script to your furniture.  It may complain, but you can ignore that for now.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Add the following script to your furniture.  It may complain, but you can ignore that for now.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source lang=&quot;lsl2&quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// ----------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// ----------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// MLPV2 Plugin for LockGuard Particle Chaining v1.3&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// MLPV2 Plugin for LockGuard Particle Chaining v1.3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l385&quot;&gt;Line 385:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 385:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }                                                                                                   // end link_message&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }                                                                                                   // end link_message&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}                                                                                                       // end state on                                                                                // end state on&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}                                                                                                       // end state on                                                                                // end state on&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kadah Coba</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1160173&amp;oldid=prev</id>
		<title>Gianinni Babenco: +  Category:MLPV2</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1160173&amp;oldid=prev"/>
		<updated>2011-12-25T16:46:01Z</updated>

		<summary type="html">&lt;p&gt;+  &lt;a href=&quot;/wiki/Category:MLPV2&quot; title=&quot;Category:MLPV2&quot;&gt;Category:MLPV2&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:46, 25 December 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l412&quot;&gt;Line 412:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 412:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Dangled | 0 | point1 | ankles gravity 0.0 life 0.75&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Dangled | 0 | point1 | ankles gravity 0.0 life 0.75&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Captured | 0 | point3 | wrists&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Captured | 0 | point3 | wrists&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:MLPV2]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Gianinni Babenco</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1153877&amp;oldid=prev</id>
		<title>Chaz Longstaff at 11:30, 20 September 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1153877&amp;oldid=prev"/>
		<updated>2011-09-20T11:30:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:30, 20 September 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[MLPV2]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[MLPV2]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Basically this is an &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;alternate &lt;/del&gt;way of adding particle chain support to MLP2 using the LockGuard protocol.  When the object is rezzed in world the script makes a list of the prim names and keys for later.  It then reads the note card with the linking information each time inventory changes.  When MLP2 gives pose info the script determines if it pertains to it&#039;s list and if so notifies lockguard enabled attachments of what to do and what prim keys to do it to.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Basically this is an &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;alternative &lt;/ins&gt;way of adding particle chain support to MLP2 using the LockGuard protocol.  When the object is rezzed in world the script makes a list of the prim names and keys for later.  It then reads the note card with the linking information each time inventory changes.  When MLP2 gives pose info the script determines if it pertains to it&#039;s list and if so notifies lockguard enabled attachments of what to do and what prim keys to do it to.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ed: Note that this script requires a build which has linked, at the point when the script starts up, the prim points (e.g. posts, etc) to which the chains from the person&amp;#039;s cuffs etc will attach themselves.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ed: Note that this script requires a build which has linked, at the point when the script starts up, the prim points (e.g. posts, etc) to which the chains from the person&amp;#039;s cuffs etc will attach themselves.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaz Longstaff</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1153876&amp;oldid=prev</id>
		<title>Chaz Longstaff: fixed spelling increment, label. Added caveat that build needs linked items.</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1153876&amp;oldid=prev"/>
		<updated>2011-09-20T11:29:53Z</updated>

		<summary type="html">&lt;p&gt;fixed spelling increment, label. Added caveat that build needs linked items.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:29, 20 September 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Basically this is an alternate way of adding particle chain support to MLP2 using the LockGuard protocol.  When the object is rezzed in world the script makes a list of the prim names and keys for later.  It then reads the note card with the linking information each time inventory changes.  When MLP2 gives pose info the script determines if it pertains to it&amp;#039;s list and if so notifies lockguard enabled attachments of what to do and what prim keys to do it to.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Basically this is an alternate way of adding particle chain support to MLP2 using the LockGuard protocol.  When the object is rezzed in world the script makes a list of the prim names and keys for later.  It then reads the note card with the linking information each time inventory changes.  When MLP2 gives pose info the script determines if it pertains to it&amp;#039;s list and if so notifies lockguard enabled attachments of what to do and what prim keys to do it to.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ed: Note that this script requires a build which has linked, at the point when the script starts up, the prim points (e.g. posts, etc) to which the chains from the person&#039;s cuffs etc will attach themselves.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So what do you need to do?&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So what do you need to do?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot;&gt;Line 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// ----------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// ----------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// Notecard .CHAINDATA format:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// Notecard .CHAINDATA format:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;menulable &lt;/del&gt;| ballnumber | anchorprimname | LGattachpoint optionalparams&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;menulabel &lt;/ins&gt;| ballnumber | anchorprimname | LGattachpoint optionalparams&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// Example data:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// Example data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l72&quot;&gt;Line 72:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//   swap function in a chained context, so why complicate the notecard files?  Plus&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//   swap function in a chained context, so why complicate the notecard files?  Plus&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//   new format is more memory friendly.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//   new format is more memory friendly.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// - Note card &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;seperator &lt;/del&gt;changed from ; to | to match favorite RLV plugin format&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// - Note card &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;separator &lt;/ins&gt;changed from ; to | to match favorite RLV plugin format&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// - Changed the need for the animation name to just the ball number in the note card&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// - Changed the need for the animation name to just the ball number in the note card&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// - Removed some unused variables&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// - Removed some unused variables&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l109&quot;&gt;Line 109:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 111:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;string CurrentSet = &amp;quot;stand&amp;quot;;    // stand being the menu default&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;string CurrentSet = &amp;quot;stand&amp;quot;;    // stand being the menu default&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;list chainData = [];            // The list of all data from the notecard [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lable&lt;/del&gt;,ballnum,attachpoint,params]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;list chainData = [];            // The list of all data from the notecard [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label&lt;/ins&gt;,ballnum,attachpoint,params]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer chainCount = 0;         // How many entries in the list&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer chainCount = 0;         // How many entries in the list&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer chainStride = 4;        // The stride count for the list&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer chainStride = 4;        // The stride count for the list&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;list primKeys = [];             // The list of prims in the object and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;thier &lt;/del&gt;keys [primname,key]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;list primKeys = [];             // The list of prims in the object and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;their &lt;/ins&gt;keys [primname,key]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer primKeysCount = 0;      // How many entries in the list&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer primKeysCount = 0;      // How many entries in the list&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer primKeysStride = 2;     // The stride count for the list&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer primKeysStride = 2;     // The stride count for the list&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l144&quot;&gt;Line 144:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 146:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// add chain data to the list...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// add chain data to the list...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;add_cd(string &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lable&lt;/del&gt;, string ballnum, string target, string params) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;add_cd(string &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label&lt;/ins&gt;, string ballnum, string target, string params) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     chainData = (chainData=[]) + chainData + (list)&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lable&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     chainData = (chainData=[]) + chainData + (list)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     chainData = (chainData=[]) + chainData + (list)ballnum;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     chainData = (chainData=[]) + chainData + (list)ballnum;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     chainData = (chainData=[]) + chainData + (list)target;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     chainData = (chainData=[]) + chainData + (list)target;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l240&quot;&gt;Line 240:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 242:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         if (llGetSubString(data,0,0) != &amp;quot;/&amp;quot; &amp;amp;&amp;amp; llStringLength(data)) {              // Skip comments and blank lines&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         if (llGetSubString(data,0,0) != &amp;quot;/&amp;quot; &amp;amp;&amp;amp; llStringLength(data)) {              // Skip comments and blank lines&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             list ldata = llParseStringKeepNulls(data, [&amp;quot;|&amp;quot;], []);                   // Get the whole line for processing...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             list ldata = llParseStringKeepNulls(data, [&amp;quot;|&amp;quot;], []);                   // Get the whole line for processing...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             string &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lable &lt;/del&gt;= llStringTrim(llList2String(ldata, 0), STRING_TRIM);      //   Extract &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lable&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             string &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label &lt;/ins&gt;= llStringTrim(llList2String(ldata, 0), STRING_TRIM);      //   Extract &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             string ballnum = llStringTrim(llList2String(ldata, 1), STRING_TRIM);    //   Extract ball number&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             string ballnum = llStringTrim(llList2String(ldata, 1), STRING_TRIM);    //   Extract ball number&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             string target = llStringTrim(llList2String(ldata, 2), STRING_TRIM);     //   Extract target point&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             string target = llStringTrim(llList2String(ldata, 2), STRING_TRIM);     //   Extract target point&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             string param = llStringTrim(llList2String(ldata, 3), STRING_TRIM);      //   Extract params&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             string param = llStringTrim(llList2String(ldata, 3), STRING_TRIM);      //   Extract params&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             add_cd(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lable&lt;/del&gt;,ballnum,target,param);                                     // Add all that to chainData&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             add_cd(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label&lt;/ins&gt;,ballnum,target,param);                                     // Add all that to chainData&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         ++ConfigLineIndex;                                                  // &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Incrament &lt;/del&gt;counter&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         ++ConfigLineIndex;                                                  // &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Increment &lt;/ins&gt;counter&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         ConfigQueryId = llGetNotecardLine(ConfigCardName, ConfigLineIndex); // Read next line of data notecard...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         ConfigQueryId = llGetNotecardLine(ConfigCardName, ConfigLineIndex); // Read next line of data notecard...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l298&quot;&gt;Line 298:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 300:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         list chainLog = [];                                                     // set up the list of commands [attachpoint, params]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         list chainLog = [];                                                     // set up the list of commands [attachpoint, params]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         integer ii;                                                             // initialize counter var&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         integer ii;                                                             // initialize counter var&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         for(ii = 0; ii &amp;lt; llGetListLength(chainData); ii = ii + chainStride) {   // Run through the chainData list... [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lable&lt;/del&gt;,ballnum,attachpoint,params]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         for(ii = 0; ii &amp;lt; llGetListLength(chainData); ii = ii + chainStride) {   // Run through the chainData list... [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label&lt;/ins&gt;,ballnum,attachpoint,params]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             if (llList2String(chainData, ii) == CurrentSet) {                   //   if the set has a match...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             if (llList2String(chainData, ii) == CurrentSet) {                   //   if the set has a match...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 if (llList2String(chainData, ii + 1) == param1) {               //   if the matching set also matches ball...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 if (llList2String(chainData, ii + 1) == param1) {               //   if the matching set also matches ball...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l391&quot;&gt;Line 391:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 393:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  // Chain control&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  // Chain control&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //  Part 1: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;menulable&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //  Part 1: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;menulabel&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //  Part 2: ball chain is linked to&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //  Part 2: ball chain is linked to&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //  Part 3: prim name to link to&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //  Part 3: prim name to link to&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chaz Longstaff</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1142756&amp;oldid=prev</id>
		<title>Grey Mars at 19:41, 6 May 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1142756&amp;oldid=prev"/>
		<updated>2011-05-06T19:41:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;amp;diff=1142756&amp;amp;oldid=1142415&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Grey Mars</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1142415&amp;oldid=prev</id>
		<title>Grey Mars at 23:30, 4 May 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1142415&amp;oldid=prev"/>
		<updated>2011-05-04T23:30:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:30, 4 May 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l392&quot;&gt;Line 392:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 392:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Create the data note card.  This card needs to be named .&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;chains, &lt;/del&gt;but can have a further name past that if you need to use more than one card.  The card will look something like this:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Create the data note card.  This card needs to be named .&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CHAINDATA &lt;/ins&gt;but can have a further name past that if you need to use more than one card.  The card will look something like this:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  //////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Grey Mars</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1141455&amp;oldid=prev</id>
		<title>Grey Mars at 19:08, 22 April 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1141455&amp;oldid=prev"/>
		<updated>2011-04-22T19:08:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;amp;diff=1141455&amp;amp;oldid=1140418&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Grey Mars</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1140418&amp;oldid=prev</id>
		<title>Grey Mars: A plugin script for MLP2 to add LockGuard Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=MLPV2_LockGuard_plugin&amp;diff=1140418&amp;oldid=prev"/>
		<updated>2011-04-14T20:13:19Z</updated>

		<summary type="html">&lt;p&gt;A plugin script for MLP2 to add LockGuard Support&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* Back to [[MLPV2_Addons]]&lt;br /&gt;
* [[MLPV2]]&lt;br /&gt;
&lt;br /&gt;
Basically this is an alternate way of adding particle chain support to MLP2 using the LockGuard protocol.  When the object is rezzed in world the script makes a list of the prim names and keys for later.  It then reads the note card with the linking information each time inventory changes.  When MLP2 gives pose info the script determines if it pertains to it&amp;#039;s list and if so notifies lockguard enabled attachments of what to do and what prim keys to do it to.&lt;br /&gt;
&lt;br /&gt;
So what do you need to do?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Figure out what prims you want to use as anchor points, and give each a unique name.  Personally I recommend the boring yet easy to remember format of point1, point2, point3, etc.  Remember these names for later.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Add the following script to your furniture.  It may complain, but you can ignore that for now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
// MLPV2 Plugin for LockGuard Partical Chaining v1.1&lt;br /&gt;
// &lt;br /&gt;
// Notecard .chains format:&lt;br /&gt;
// menulable;animation;anchorprimname;LGattachpoint optionalparams&lt;br /&gt;
//&lt;br /&gt;
// Example data:&lt;br /&gt;
// Bound;Short Posts-1;point2;rightwrist gravity 0.2 life 0.75&lt;br /&gt;
// Bound;Short Posts-1;point4;leftwrist gravity 0.2 life 0.75&lt;br /&gt;
// Bound;Short Posts-1;point3;collarfrontloop gravity 1.75 life 1.5&lt;br /&gt;
// Displayed;dungeon-2;point1;wrists gravity 0.0 life 2.0&lt;br /&gt;
// Hung;dungeon-3;point1;wrists gravity 0.0 life 0.75&lt;br /&gt;
// Dangled;Hung-2A;point1;ankles gravity 0.0 life 0.75&lt;br /&gt;
// Captured;Why Me-v2;point3;wrists&lt;br /&gt;
//&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
// Copyright 2011, Grey Mars. All rights reserved.&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without modification, are&lt;br /&gt;
// permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
//   1. Redistributions of source code must retain the above copyright notice, this list of&lt;br /&gt;
//      conditions and the following disclaimer.&lt;br /&gt;
//&lt;br /&gt;
//   2. Redistributions in binary form must reproduce the above copyright notice, this list&lt;br /&gt;
//      of conditions and the following disclaimer in the documentation and/or other materials&lt;br /&gt;
//      provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY GREY MARS ``AS IS&amp;#039;&amp;#039; AND ANY EXPRESS OR IMPLIED&lt;br /&gt;
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND&lt;br /&gt;
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL &amp;lt;COPYRIGHT HOLDER&amp;gt; OR&lt;br /&gt;
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR&lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR&lt;br /&gt;
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON&lt;br /&gt;
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF&lt;br /&gt;
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The views and conclusions contained in the software and documentation are those of the&lt;br /&gt;
// authors and should not be interpreted as representing official policies, either expressed&lt;br /&gt;
// or implied, of Grey Mars.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
// Globals&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
integer VERBOSE = FALSE;        // Give extra info&lt;br /&gt;
&lt;br /&gt;
integer LGChannel = -9119;      // The LG listen channel&lt;br /&gt;
integer LGHandle;               // Handle ID for LG messages&lt;br /&gt;
&lt;br /&gt;
// Globals for reading card config&lt;br /&gt;
integer ConfigLineIndex;&lt;br /&gt;
list    ConfigCards;        // list of names of config cards&lt;br /&gt;
string  ConfigCardName;     // name of card being read&lt;br /&gt;
integer ConfigCardIndex;    // index of next card to read&lt;br /&gt;
key     ConfigQueryId;&lt;br /&gt;
&lt;br /&gt;
// Currently unused variables.  In the future may connect with some verification&lt;br /&gt;
key     SimRatingReq;&lt;br /&gt;
string  Rating;&lt;br /&gt;
integer Verified;&lt;br /&gt;
&lt;br /&gt;
// Variables used with chain data and pose reading.&lt;br /&gt;
// It could be worse, but it could also be a lot more&lt;br /&gt;
// efficient.&lt;br /&gt;
string  Pose;&lt;br /&gt;
string  Avname;&lt;br /&gt;
key     Avkey;&lt;br /&gt;
&lt;br /&gt;
string CurrentSet;&lt;br /&gt;
&lt;br /&gt;
list chainData = [];&lt;br /&gt;
integer chainCount = 0;&lt;br /&gt;
integer chainStride = 4;&lt;br /&gt;
&lt;br /&gt;
list primKeys = [];&lt;br /&gt;
integer primKeysCount = 0;&lt;br /&gt;
integer primKeysStride = 2;&lt;br /&gt;
&lt;br /&gt;
list avData = [];&lt;br /&gt;
integer avDataCount = 0;&lt;br /&gt;
integer avDataStride = 2;&lt;br /&gt;
&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
// Support functions&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
// Debugging outputs&lt;br /&gt;
debug(string text) {   if (VERBOSE) llOwnerSay(text);   }&lt;br /&gt;
&lt;br /&gt;
// get the next card in case there is more than one&lt;br /&gt;
integer next_card() {&lt;br /&gt;
    if (ConfigCardIndex &amp;gt;= llGetListLength(ConfigCards)) {&lt;br /&gt;
        ConfigCards = [];&lt;br /&gt;
        return (FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    ConfigLineIndex = 0;&lt;br /&gt;
    ConfigCardName = llList2String(ConfigCards, ConfigCardIndex);&lt;br /&gt;
    ConfigCardIndex++;&lt;br /&gt;
    ConfigQueryId = llGetNotecardLine(ConfigCardName, ConfigLineIndex);&lt;br /&gt;
    debug(&amp;quot;[?] Reading file: &amp;quot; + ConfigCardName);&lt;br /&gt;
    return (TRUE);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// add chain data to the list...&lt;br /&gt;
add_cd(string lable, string anim, string target, string params) {&lt;br /&gt;
    chainData = (chainData=[]) + chainData + (list)lable;&lt;br /&gt;
    chainData = (chainData=[]) + chainData + (list)anim;&lt;br /&gt;
    chainData = (chainData=[]) + chainData + (list)target;&lt;br /&gt;
    chainData = (chainData=[]) + chainData + (list)params;&lt;br /&gt;
    ++chainCount;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// does this point actually referance a set of points?&lt;br /&gt;
list UnAliasChainPoints(list originalData) {&lt;br /&gt;
// wrists   -&amp;gt;  leftwrist rightwrist&lt;br /&gt;
// ankles   -&amp;gt;  leftankle rightankle&lt;br /&gt;
// allfour  -&amp;gt;  leftwrist rightwrist leftankle rightankle&lt;br /&gt;
// nipples  -&amp;gt;  leftnipplering rightnipplering &lt;br /&gt;
// arms     -&amp;gt;  leftupperarm rightupperarm&lt;br /&gt;
// thighs   -&amp;gt;  leftupperthigh rightupperthigh&lt;br /&gt;
// knees    -&amp;gt;  leftknee rightknee&lt;br /&gt;
&lt;br /&gt;
    list modData = [];&lt;br /&gt;
    integer xx;&lt;br /&gt;
    &lt;br /&gt;
    // Hacky.  Feel free to optimize.&lt;br /&gt;
    for(xx = 0; xx &amp;lt; llGetListLength(originalData); xx++) {&lt;br /&gt;
        if (llToLower(llList2String(originalData,xx)) == &amp;quot;wrists&amp;quot;) {&lt;br /&gt;
            modData = modData + [&amp;quot;leftwrist&amp;quot;, &amp;quot;rightwrist&amp;quot;];&lt;br /&gt;
        } else if (llToLower(llList2String(originalData,xx)) == &amp;quot;ankles&amp;quot;) {&lt;br /&gt;
            modData = modData + [&amp;quot;leftankle&amp;quot;, &amp;quot;rightankle&amp;quot;];&lt;br /&gt;
        } else if (llToLower(llList2String(originalData,xx)) == &amp;quot;allfour&amp;quot;) {&lt;br /&gt;
            modData = modData + [&amp;quot;leftankle&amp;quot;, &amp;quot;rightankle&amp;quot;, &amp;quot;leftwrist&amp;quot;, &amp;quot;rightwrist&amp;quot;];&lt;br /&gt;
        } else if (llToLower(llList2String(originalData,xx)) == &amp;quot;nipples&amp;quot;) {&lt;br /&gt;
            modData = modData + [&amp;quot;leftnipplering&amp;quot;, &amp;quot;rightnipplering&amp;quot;];&lt;br /&gt;
        } else if (llToLower(llList2String(originalData,xx)) == &amp;quot;arms&amp;quot;) {&lt;br /&gt;
            modData = modData + [&amp;quot;leftupperarm&amp;quot;, &amp;quot;rightupperarm&amp;quot;];&lt;br /&gt;
        } else if (llToLower(llList2String(originalData,xx)) == &amp;quot;thighs&amp;quot;) {&lt;br /&gt;
            modData = modData + [&amp;quot;leftupperthigh&amp;quot;, &amp;quot;rightupperthigh&amp;quot;];&lt;br /&gt;
        } else if (llToLower(llList2String(originalData,xx)) == &amp;quot;knees&amp;quot;) {&lt;br /&gt;
            modData = modData + [&amp;quot;leftknee&amp;quot;, &amp;quot;rightknee&amp;quot;];&lt;br /&gt;
        } else {    modData = modData + llList2List(originalData,xx,xx);     }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    return modData;   &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
// Main Script&lt;br /&gt;
// ----------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        &lt;br /&gt;
        // build prim key list&lt;br /&gt;
        integer n;&lt;br /&gt;
        integer linkcount = llGetNumberOfPrims();&lt;br /&gt;
        for (n = 2; n &amp;lt;= linkcount; n++)    {&lt;br /&gt;
            string thiselement = llGetLinkName(n);&lt;br /&gt;
            if (thiselement != &amp;quot;Object&amp;quot;) {&lt;br /&gt;
                primKeys = primKeys + [thiselement, llGetLinkKey(n)];&lt;br /&gt;
                primKeysCount++;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        state load;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state load  {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        string item;&lt;br /&gt;
        ConfigCards = [];&lt;br /&gt;
        integer n = llGetInventoryNumber(INVENTORY_NOTECARD);&lt;br /&gt;
        while (n-- &amp;gt; 0) { // get the data off cards with the right name&lt;br /&gt;
            item = llGetInventoryName(INVENTORY_NOTECARD, n);&lt;br /&gt;
            if (llSubStringIndex(item, &amp;quot;.chains&amp;quot;) != -1) {&lt;br /&gt;
                ConfigCards = (ConfigCards=[]) + ConfigCards + (list) item;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        ConfigCardIndex = 0;&lt;br /&gt;
        ConfigCards = llListSort(ConfigCards, 1, TRUE);&lt;br /&gt;
        next_card();&lt;br /&gt;
        SimRatingReq = llRequestSimulatorData(llGetRegionName(), DATA_SIM_RATING);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    dataserver(key query_id, string data) {&lt;br /&gt;
        if (query_id == SimRatingReq) {&lt;br /&gt;
            Rating = data;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (query_id != ConfigQueryId) {    return;     }                             &lt;br /&gt;
        if (data == EOF) {&lt;br /&gt;
            if ( next_card() ) { return;  }&lt;br /&gt;
            state on;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        data = llStringTrim(data, STRING_TRIM);&lt;br /&gt;
        if (llGetSubString(data,0,0) != &amp;quot;/&amp;quot; &amp;amp;&amp;amp; llStringLength(data)) {          // skip comments and blank lines&lt;br /&gt;
            list ldata = llParseStringKeepNulls(data, [&amp;quot;;&amp;quot;], []);&lt;br /&gt;
            string lable = llStringTrim(llList2String(ldata, 0), STRING_TRIM);&lt;br /&gt;
            string anim = llStringTrim(llList2String(ldata, 1), STRING_TRIM);&lt;br /&gt;
            string target = llStringTrim(llList2String(ldata, 2), STRING_TRIM);&lt;br /&gt;
            string param = llStringTrim(llList2String(ldata, 3), STRING_TRIM);&lt;br /&gt;
            add_cd(lable,anim,target,param);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        ++ConfigLineIndex;&lt;br /&gt;
        ConfigQueryId = llGetNotecardLine(ConfigCardName, ConfigLineIndex);       //read next line of positions notecard&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
state on {&lt;br /&gt;
    state_entry()   {    }&lt;br /&gt;
    on_rez(integer arg) { llResetScript(); }&lt;br /&gt;
    changed(integer change) { if (change &amp;amp; CHANGED_INVENTORY) state load; }&lt;br /&gt;
&lt;br /&gt;
    link_message(integer from, integer num, string message, key id) {&lt;br /&gt;
    &lt;br /&gt;
        if (!((num == -11000) || (num == -11001) || (num == -11002) || (message == &amp;quot;POSEB&amp;quot;))) { return; }&lt;br /&gt;
    &lt;br /&gt;
        if (message == &amp;quot;POSEB&amp;quot;) {&lt;br /&gt;
            CurrentSet = (string)id;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        debug(&amp;quot;========== START&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        // it&amp;#039;s a generic sit/unsit/change update&lt;br /&gt;
        list linedata = llParseStringKeepNulls(message,[&amp;quot;|&amp;quot;],[]);&lt;br /&gt;
        string param1 = llList2String(linedata, 0);&lt;br /&gt;
        string param2 = llList2String(linedata, 1);&lt;br /&gt;
        &lt;br /&gt;
        // does this menu selection have any chain data attached to it?&lt;br /&gt;
        integer findSet = llListFindList(chainData, (list)CurrentSet);&lt;br /&gt;
        integer findAv = llListFindList(avData, [id]);&lt;br /&gt;
&lt;br /&gt;
        if (findSet == -1) { // The avatar wasn&amp;#039;t chained for this anim, so clear chains if any&lt;br /&gt;
        debug(&amp;quot;[!] No chain data found&amp;quot;);&lt;br /&gt;
            if (findAv != -1) {&lt;br /&gt;
                list itemData = llParseStringKeepNulls(llList2String(avData,findAv + 1),[&amp;quot;|&amp;quot;],[]);&lt;br /&gt;
                integer ix;&lt;br /&gt;
                for(ix = 0; ix &amp;lt; llGetListLength(itemData); ix++) {&lt;br /&gt;
                    llWhisper(LGChannel,&amp;quot;lockguard &amp;quot; + (string)id + &amp;quot; &amp;quot; + llList2String(itemData,ix) + &amp;quot; unlink&amp;quot;);&lt;br /&gt;
                    debug(&amp;quot;[-] &amp;quot; + llList2String(itemData,ix));&lt;br /&gt;
                }&lt;br /&gt;
                avData = llDeleteSubList(avData, findAv, findAv + 1);&lt;br /&gt;
            }&lt;br /&gt;
            return;    &lt;br /&gt;
        }&lt;br /&gt;
        else debug(&amp;quot;[!] Chain data found&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        list chainLog = []; // list of connands including anim name&lt;br /&gt;
        integer ii; // counter var&lt;br /&gt;
        for(ii = 0; ii &amp;lt; llGetListLength(chainData); ii = ii + chainStride) { // check each entry&lt;br /&gt;
            if (llList2String(chainData, ii + 1) == param2) { // if it&amp;#039;s a match add it to the new list&lt;br /&gt;
                chainLog = llList2List(chainData, ii + 2, ii + 3) + chainLog;&lt;br /&gt;
            } // end if&lt;br /&gt;
        } // end for&lt;br /&gt;
            &lt;br /&gt;
        // TYPE: sit&lt;br /&gt;
        // FORMAT: llMessageLinked(LINK_SET, -11000, (string)BallNum + &amp;quot;|&amp;quot; + animation, avatar);&lt;br /&gt;
        if (num == -11000) { // A sit&lt;br /&gt;
            debug(&amp;quot;[!] Sit triggered&amp;quot;);&lt;br /&gt;
            string tempPoints = &amp;quot;&amp;quot;;&lt;br /&gt;
            integer ix;&lt;br /&gt;
            for(ix = 0; ix &amp;lt; llGetListLength(chainLog); ix = ix + 2) {&lt;br /&gt;
                integer findKey = llListFindList(primKeys, (list)llList2String(chainLog, ix));&lt;br /&gt;
                llWhisper(LGChannel,&amp;quot;lockguard &amp;quot; + (string)id + &amp;quot; &amp;quot; + llList2String(chainLog,ix + 1) + &lt;br /&gt;
                            &amp;quot; link &amp;quot; + llList2String(primKeys, findKey + 1));&lt;br /&gt;
                debug(&amp;quot;[+] &amp;quot; + llList2String(chainLog,ix + 1));&lt;br /&gt;
                tempPoints = tempPoints +  llList2String(chainLog,ix + 1) + &amp;quot;|&amp;quot;; &lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            tempPoints = llGetSubString(tempPoints, 0, -2); // trim the final char&lt;br /&gt;
            avData = (avData=[]) + avData + [id]; // add new&lt;br /&gt;
            avData = (avData=[]) + avData + [tempPoints]; // add new&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // TYPE: unsit&lt;br /&gt;
        // FORMAT:  llMessageLinked(LINK_SET, -11001, (string)BallNum, llGetPermissionsKey());&lt;br /&gt;
        if (num == -11001) { // An unsit&lt;br /&gt;
            debug(&amp;quot;[!] Unsit triggered&amp;quot;); &lt;br /&gt;
            if (findAv != -1) {&lt;br /&gt;
                list itemData = llParseStringKeepNulls(llList2String(avData,findAv + 1),[&amp;quot;|&amp;quot;],[]);&lt;br /&gt;
                integer ix;&lt;br /&gt;
                for(ix = 0; ix &amp;lt; llGetListLength(itemData); ix++) {&lt;br /&gt;
                    llWhisper(LGChannel,&amp;quot;lockguard &amp;quot; + (string)id + &amp;quot; &amp;quot; + llList2String(itemData,ix) + &amp;quot; unlink&amp;quot;);&lt;br /&gt;
                    debug(&amp;quot;[-] &amp;quot; + llList2String(itemData,ix));&lt;br /&gt;
                }&lt;br /&gt;
                avData = llDeleteSubList(avData, findAv, findAv + 1);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // TYPE: change&lt;br /&gt;
        // FORMAT: llMessageLinked(LINK_SET, -11002, (string)BallNum + &amp;quot;|&amp;quot; + animation, avatar);&lt;br /&gt;
        if (num == -11002) { // A pose change&lt;br /&gt;
            debug(&amp;quot;[!] Pose change triggered&amp;quot;);&lt;br /&gt;
            list itemData = [];&lt;br /&gt;
            if (findAv != -1) {&lt;br /&gt;
                itemData = llParseStringKeepNulls(llList2String(avData,findAv + 1),[&amp;quot;|&amp;quot;],[]);&lt;br /&gt;
                itemData = UnAliasChainPoints(itemData);&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            integer ix;&lt;br /&gt;
            string tempPoints = &amp;quot;&amp;quot;;&lt;br /&gt;
            for(ix = 0; ix &amp;lt; llGetListLength(chainLog); ix = ix + 2) {&lt;br /&gt;
                integer findKey = llListFindList(primKeys, (list)llList2String(chainLog, ix));&lt;br /&gt;
                llWhisper(LGChannel,&amp;quot;lockguard &amp;quot; + (string)id + &amp;quot; &amp;quot; + llList2String(chainLog,ix + 1) + &lt;br /&gt;
                            &amp;quot; link &amp;quot; + llList2String(primKeys, findKey + 1));&lt;br /&gt;
                debug(&amp;quot;[+] &amp;quot; + llList2String(chainLog,ix + 1));&lt;br /&gt;
&lt;br /&gt;
                // cut down the command line to just the attach point for compairison&lt;br /&gt;
                string stripPoint = llList2String(llParseStringKeepNulls(llList2String(chainLog,ix + 1),[&amp;quot; &amp;quot;],[]), 0);&lt;br /&gt;
                tempPoints = tempPoints + stripPoint + &amp;quot;|&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            tempPoints = llGetSubString(tempPoints, 0, -2); // trim the final char &amp;quot;|&amp;quot;&lt;br /&gt;
            &lt;br /&gt;
            if (findAv != -1) { avData = llDeleteSubList(avData, findAv, findAv + 1);   } // clear old&lt;br /&gt;
            avData = (avData=[]) + avData + [id]; // add new&lt;br /&gt;
            avData = (avData=[]) + avData + [tempPoints]; // add new&lt;br /&gt;
            &lt;br /&gt;
            list tempData = llParseStringKeepNulls(llList2String(avData,findAv + 1),[&amp;quot;|&amp;quot;],[]);&lt;br /&gt;
            tempData = UnAliasChainPoints(tempData);&lt;br /&gt;
            // compaire the two data lists, remove dumplicates&lt;br /&gt;
            integer yx;&lt;br /&gt;
            for(yx = 0; yx &amp;lt; llGetListLength(tempData); yx++) {&lt;br /&gt;
                integer overlapWhere = llListFindList(itemData, llList2List(tempData, yx, yx));&lt;br /&gt;
                    if (overlapWhere != -1) {&lt;br /&gt;
                        itemData = llDeleteSubList(itemData, overlapWhere, overlapWhere);&lt;br /&gt;
                    }&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if ((findAv != -1) &amp;amp;&amp;amp; ( llGetListLength(itemData) &amp;gt; 0)) { // We are already tracking points for this av...&lt;br /&gt;
                for(ix = 0; ix &amp;lt; llGetListLength(itemData); ix++) {&lt;br /&gt;
                    llWhisper(LGChannel,&amp;quot;lockguard &amp;quot; + (string)id + &amp;quot; &amp;quot; + llList2String(itemData,ix) + &amp;quot; unlink&amp;quot;);&lt;br /&gt;
                debug(&amp;quot;[-] &amp;quot; +  llList2String(itemData,ix));&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create the data note card.  This card needs to be named .chains, but can have a further name past that if you need to use more than one card.  The card will look something like this:&lt;br /&gt;
&lt;br /&gt;
 //////////////////////////////////////////////////&lt;br /&gt;
 // Chain control&lt;br /&gt;
 //////////////////////////////////////////////////&lt;br /&gt;
 //  Part 1: menulable&lt;br /&gt;
 //  Part 2: animation chain is linked to&lt;br /&gt;
 //  Part 3: prim name to link to&lt;br /&gt;
 //  Part 4: LG attach point&lt;br /&gt;
 //  Part 4 optional commands:&lt;br /&gt;
 //      texture key&lt;br /&gt;
 //      size # #&lt;br /&gt;
 //      life #&lt;br /&gt;
 //      gravity #&lt;br /&gt;
 //      speed #&lt;br /&gt;
 //      color # # #&lt;br /&gt;
 //////////////////////////////////////////////////&lt;br /&gt;
 Bound;Short Posts-1;point2;rightwrist gravity 0.2 life 0.75&lt;br /&gt;
 Bound;Short Posts-1;point4;leftwrist gravity 0.2 life 0.75&lt;br /&gt;
 Bound;Short Posts-1;point3;collarfrontloop gravity 1.75 life 1.5&lt;br /&gt;
 Displayed;dungeon-2;point1;wrists gravity 0.0 life 2.0&lt;br /&gt;
 Hung;dungeon-3;point1;wrists gravity 0.0 life 0.75&lt;br /&gt;
 Dangled;Hung-2A;point1;ankles gravity 0.0 life 0.75&lt;br /&gt;
 Captured;Why Me-v2;point3;wrists gravity 0.0 life 0.25&lt;/div&gt;</summary>
		<author><name>Grey Mars</name></author>
	</entry>
</feed>