<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Animats+Resident</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Animats+Resident"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Animats_Resident"/>
	<updated>2026-07-28T11:50:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Linden_Lab_Official_talk:User_Groups&amp;diff=1216639</id>
		<title>Linden Lab Official talk:User Groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Linden_Lab_Official_talk:User_Groups&amp;diff=1216639"/>
		<updated>2024-05-08T18:44:41Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: /* Spelling fix needed in link. */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How do you join these groups?&lt;br /&gt;
&lt;br /&gt;
Are there inworld groups for these groups, or are these groups that exist outside the inworld group system?&lt;br /&gt;
&lt;br /&gt;
If there are inworld groups for these groups, what are there exact names?&lt;br /&gt;
&lt;br /&gt;
{{Unsigned|SuezanneC Baskerville|18:49, 20 March 2011}}&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;User Group&amp;quot; is the new (and apparently confusing) name for what previously was known as &amp;quot;Office Hour&amp;quot;. User Groups are regularly held inworld come-togethers of Lindens and Residents to discuss certain topics and have (generally) nothing to do with inworld groups. With the renaming came a slightly new concept: Previously, a specific Office Hour was held by a specific Linden. A User Group in contrast is focused on a specific topic, and several Lindens to whom the topic is relevant might attend.&lt;br /&gt;
:You don&#039;t have to formally &amp;quot;join&amp;quot; a User Group. If you&#039;d like to take part in one (or several), just attend at the announced date and (inworld) place.&lt;br /&gt;
:--[[User:Boroondas Gupte|Boroondas Gupte]] 07:52, 21 March 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Suezanne, some of these user groups do have inworld groups assigned with them or use mailing lists. The community tools user group uses a inworld group called &amp;quot;SL Community Tools User Group&amp;quot;, founded by Amanda Linden and free to join. The community translation user group will probably use the group &amp;quot;Second Life CT Projects&amp;quot; founded by Lexie Linden as it is required to access Localization Central.&lt;br /&gt;
::--[[User:Torben Trautman|Torben Trautman]] 15:41, 21 March 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::I don&#039;t know about you but they can call them what they like id still refer to them as Office Hours&lt;br /&gt;
:::[[User:SHAMUS Carter|SHAMUS Carter]] 13:35, 1 June 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unlisted User Group&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For some reason this User group has a page but is not listed on the list of user groups. (which is probably why I can never find it)&lt;br /&gt;
&lt;br /&gt;
https://wiki.secondlife.com/wiki/Content_Creation_Improvement_Informal_User_Group&lt;br /&gt;
[[User:Darien Caldwell|Darien Caldwell]] 16:20, 20 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== CalDav URL? ==&lt;br /&gt;
&lt;br /&gt;
Is there still a CalDav for adding these meetings to calendar apps or has that been discontinued? The previous URL I&#039;d been using doesn&#039;t work any more.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 07:30, 9 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Spelling fix needed in link. ==&lt;br /&gt;
&lt;br /&gt;
[[Governance User Group]], not [[Goverance User Group]]. That&#039;s why it&#039;s a dead link.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Packet_Layout&amp;diff=1216481</id>
		<title>Packet Layout</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Packet_Layout&amp;diff=1216481"/>
		<updated>2024-04-13T19:09:52Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Header (Packet ID)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre width=80&amp;gt;&lt;br /&gt;
 +-+-+-+-+----+--------+--------+--------+--------+--------+-----...-----+&lt;br /&gt;
 |Z|R|R|A|    |                                   |        |  Extra      |&lt;br /&gt;
 |E|E|E|C|    |    Sequence number (4 bytes)      | Extra  |  Header     |&lt;br /&gt;
 |R|L|S|K|    |                                   | (byte) | (N bytes)   |&lt;br /&gt;
 +-+-+-+-+----+--------+--------+--------+--------+--------+-----...-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Byte 0 Flags&lt;br /&gt;
** LL_ZERO_CODE_FLAG 0x80 -- 0&#039;s in packet body are [https://en.wikipedia.org/wiki/Run-length_encoding run-length encoded], such that series of 1 to 255 zero bytes are encoded to take 2 bytes.&lt;br /&gt;
** LL_RELIABLE_FLAG	 0x40 -- This packet was sent reliably (implies please ack this packet)&lt;br /&gt;
** LL_RESENT_FLAG 0x20 -- This packet is a resend from the source.&lt;br /&gt;
** LL_ACK_FLAG 0x10 -- This packet contains appended acks.&lt;br /&gt;
** The 4 least significant bits of Byte 0 are currently unused&lt;br /&gt;
* Bytes 1-4: Sequence number as a big-endian unsigned integer&lt;br /&gt;
* Byte 5: How many bytes of extra header is available&lt;br /&gt;
&lt;br /&gt;
If byte 5 is non-zero, then there is some extra header information. Clients which are not expecting that header information may skip it by jumping forward &#039;Extra&#039; bytes into the message payload.&lt;br /&gt;
&lt;br /&gt;
The term &amp;quot;Packet ID&amp;quot; is sometimes used to refer to all 4 bytes and sometimes just the sequence number.&lt;br /&gt;
&lt;br /&gt;
For further discussion of the bits in the header, see [[Messages]] and [[Packet Accounting]]&lt;br /&gt;
&lt;br /&gt;
==Body==&lt;br /&gt;
* Bytes (6 + extra) to (6 + extra + (data length))&lt;br /&gt;
** Message number.  This is a numeric encoding of the message types defined in the message_template.msg file. It may be 1, 2 or 4 bytes in length, depending on the message frequency (High, Medium, Low or Fixed). Multi-byte message numbers (for medium, low and fixed frequencies) are formatted in the packet as big-endian numbers.&lt;br /&gt;
*** High frequency messages are assigned (from the template file) numbers 0x01 - 0xFE.&lt;br /&gt;
*** Medium frequency messages are assigned (derived from numbers in the template file) numbers 0xFF01 - 0xFFFE.&lt;br /&gt;
*** Low frequency messages are assigned (derived from numbers in the template file) numbers 0xFFFF0001 and up.&lt;br /&gt;
*** Messages with &amp;quot;Fixed&amp;quot; frequency are really those with fixed message numbers, i.e. the numbers are assigned in the message_template.msg file itself.  There are currently 6 of these, 0xFFFFFFFA - 0xFFFFFFFF.  Even though all messages have numbers assigned to them in the template file, the Fixed frequency is kept around for legacy reasons.&lt;br /&gt;
** Message data.  This is different for each message type, and is defined in the message_template.msg file.  A message template defines one or more blocks.  The block names in the template are for human readers; they are not encoded in the message.  If a block is marked Variable, one byte is stored in the message indicating how many times that block has been repeated.  For blocks marked single or multiple, no block header bytes are added.&lt;br /&gt;
&lt;br /&gt;
Each packet contains exactly one message. Thus, the length of the message is known before message decoding.&lt;br /&gt;
&lt;br /&gt;
===Extensions for backwards compatibility===&lt;br /&gt;
Some features were added in 2023-2024 to allow extensions to the message format while retaining backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
# Messages with excess bytes beyond what the template calls for are accepted and decoded, not rejected as errors. This allows old message recipients to process newly expanded messages.&lt;br /&gt;
# Messages with fewer bytes than expected are allowed for a specific special case. If the last block in the message is &amp;quot;Variable&amp;quot;, indicating zero or more repeats of the following block, the decoder expects a one-byte count of the number of repeats of the block. If the message body ends just before that byte, the message should be interpreted as a &amp;quot;Variable&amp;quot; block with zero repeats. &lt;br /&gt;
&lt;br /&gt;
An example of such a message is &amp;quot;AvatarAppearance&amp;quot;. Compare these versions of the message template:&lt;br /&gt;
&lt;br /&gt;
* Old: [https://github.com/secondlife/viewer/blob/DRTVWR-591-maint-X/scripts/messages/message_template.msg]&lt;br /&gt;
&lt;br /&gt;
* New: [https://github.com/secondlife/viewer/blob/DRTVWR-600-maint-A/scripts/messages/message_template.msg] &lt;br /&gt;
&lt;br /&gt;
Newer versions of the message template entry for AvatarAppearance contain the section&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    AttachmentBlock	Variable&lt;br /&gt;
    {	ID              LLUUID  }&lt;br /&gt;
    {	AttachmentPoint U8 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first extended parsing rule above allows a reader working from the old template to parse a message generated with the new template, ignoring the new fields. The second rule allows a reader working from the new template to parse a message generated with the old one, treating the new fields as not present.&lt;br /&gt;
&lt;br /&gt;
==Appended Acks==&lt;br /&gt;
* Bytes (6 + extra + (data length)) through acks&lt;br /&gt;
** Rest of packet is filled with as many acks from previous reliable messages as will fit.&lt;br /&gt;
** The last byte of the packet is a count of how many acks are included (if LL_ACK_FLAG is set).&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
:[http://lib.openmetaverse.org/wiki/Protocol_%28network%29 libopenmetaverse documentation]&lt;br /&gt;
:[[AW_Groupies#Documenting_current_protocols|AW Groupies documentation]]&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Packet_Layout&amp;diff=1216479</id>
		<title>Packet Layout</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Packet_Layout&amp;diff=1216479"/>
		<updated>2024-04-13T03:09:12Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Extensions for backwards compatibility. Documenting discussion at TPV meeting of 2024-04-12. Please check this.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Header (Packet ID)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre width=80&amp;gt;&lt;br /&gt;
 +-+-+-+-+----+--------+--------+--------+--------+--------+-----...-----+&lt;br /&gt;
 |Z|R|R|A|    |                                   |        |  Extra      |&lt;br /&gt;
 |E|E|E|C|    |    Sequence number (4 bytes)      | Extra  |  Header     |&lt;br /&gt;
 |R|L|S|K|    |                                   | (byte) | (N bytes)   |&lt;br /&gt;
 +-+-+-+-+----+--------+--------+--------+--------+--------+-----...-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Byte 0 Flags&lt;br /&gt;
** LL_ZERO_CODE_FLAG 0x80 -- 0&#039;s in packet body are [https://en.wikipedia.org/wiki/Run-length_encoding run-length encoded], such that series of 1 to 255 zero bytes are encoded to take 2 bytes.&lt;br /&gt;
** LL_RELIABLE_FLAG	 0x40 -- This packet was sent reliably (implies please ack this packet)&lt;br /&gt;
** LL_RESENT_FLAG 0x20 -- This packet is a resend from the source.&lt;br /&gt;
** LL_ACK_FLAG 0x10 -- This packet contains appended acks.&lt;br /&gt;
** The 4 least significant bits of Byte 0 are currently unused&lt;br /&gt;
* Bytes 1-4: Sequence number as a big-endian unsigned integer&lt;br /&gt;
* Byte 5: How many bytes of extra header is available&lt;br /&gt;
&lt;br /&gt;
If byte 5 is non-zero, then there is some extra header information. Clients which are not expecting that header information may skip it by jumping forward &#039;Extra&#039; bytes into the message payload.&lt;br /&gt;
&lt;br /&gt;
The term &amp;quot;Packet ID&amp;quot; is sometimes used to refer to all 4 bytes and sometimes just the sequence number.&lt;br /&gt;
&lt;br /&gt;
For further discussion of the bits in the header, see [[Messages]] and [[Packet Accounting]]&lt;br /&gt;
&lt;br /&gt;
==Body==&lt;br /&gt;
* Bytes (6 + extra) to (6 + extra + (data length))&lt;br /&gt;
** Message number.  This is a numeric encoding of the message types defined in the message_template.msg file. It may be 1, 2 or 4 bytes in length, depending on the message frequency (High, Medium, Low or Fixed). Multi-byte message numbers (for medium, low and fixed frequencies) are formatted in the packet as big-endian numbers.&lt;br /&gt;
*** High frequency messages are assigned (from the template file) numbers 0x01 - 0xFE.&lt;br /&gt;
*** Medium frequency messages are assigned (derived from numbers in the template file) numbers 0xFF01 - 0xFFFE.&lt;br /&gt;
*** Low frequency messages are assigned (derived from numbers in the template file) numbers 0xFFFF0001 and up.&lt;br /&gt;
*** Messages with &amp;quot;Fixed&amp;quot; frequency are really those with fixed message numbers, i.e. the numbers are assigned in the message_template.msg file itself.  There are currently 6 of these, 0xFFFFFFFA - 0xFFFFFFFF.  Even though all messages have numbers assigned to them in the template file, the Fixed frequency is kept around for legacy reasons.&lt;br /&gt;
** Message data.  This is different for each message type, and is defined in the message_template.msg file.  A message template defines one or more blocks.  The block names in the template are for human readers; they are not encoded in the message.  If a block is marked Variable, one byte is stored in the message indicating how many times that block has been repeated.  For blocks marked single or multiple, no block header bytes are added.&lt;br /&gt;
&lt;br /&gt;
Each packet contains exactly one message. Thus, the length of the message is known before message decoding.&lt;br /&gt;
&lt;br /&gt;
===Extensions for backwards compatibility===&lt;br /&gt;
Some features were added in 2023-2024 to allow extensions to the message format while retaining backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
# Messages with excess bytes beyond what the template calls for are accepted and decoded, not rejected as errors. This allows old message recipients to process newly expanded messages.&lt;br /&gt;
# Messages with fewer bytes than expected are allowed for a specific special case. If the last block in the message is &amp;quot;Variable&amp;quot;, indicating zero or more repeats of the following block, the decoder expects a one-byte count of the number of repeats of the block. If the message body ends just before that byte, the message should interpreted as a &amp;quot;Variable&amp;quot; block with zero repeats. &lt;br /&gt;
&lt;br /&gt;
An example of such a message is &amp;quot;AvatarAppearance&amp;quot;. Compare these versions of the message template:&lt;br /&gt;
&lt;br /&gt;
* Old: [https://github.com/secondlife/viewer/blob/DRTVWR-591-maint-X/scripts/messages/message_template.msg]&lt;br /&gt;
&lt;br /&gt;
* New: [https://github.com/secondlife/viewer/blob/DRTVWR-600-maint-A/scripts/messages/message_template.msg] &lt;br /&gt;
&lt;br /&gt;
Newer versions of the message template entry for AvatarAppearance contain the section&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    AttachmentBlock	Variable&lt;br /&gt;
    {	ID              LLUUID  }&lt;br /&gt;
    {	AttachmentPoint U8 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first extended parsing rule above allows a reader working from the old template to parse a message generated with the new template, ignoring the new fields. The second rule allows a reader working from the new template to parse a message generated with the old one, treating the new fields as not present.&lt;br /&gt;
&lt;br /&gt;
==Appended Acks==&lt;br /&gt;
* Bytes (6 + extra + (data length)) through acks&lt;br /&gt;
** Rest of packet is filled with as many acks from previous reliable messages as will fit.&lt;br /&gt;
** The last byte of the packet is a count of how many acks are included (if LL_ACK_FLAG is set).&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
:[http://lib.openmetaverse.org/wiki/Protocol_%28network%29 libopenmetaverse documentation]&lt;br /&gt;
:[[AW_Groupies#Documenting_current_protocols|AW Groupies documentation]]&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216185</id>
		<title>Region crossing</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216185"/>
		<updated>2024-02-11T20:20:01Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Fast movement problem&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The Second Life world is divided into square regions 256 meters on a side. Each region is managed by a separate simulator program. Viewers present the illusion of a large, seamless world by communicating with several region simulators simultaneously. Avatars cross between regions via a complex process which requires cooperation between multiple simulators and viewers.&lt;br /&gt;
&lt;br /&gt;
==Overview of a region crossing==&lt;br /&gt;
A region crossing is initiated by a simulator when an avatar goes outside the region boundary. The center of the root prim of the linkset must be one meter past the boundary for crossing to trigger. This prevents toggling back and forth for avatars on the edge of the region. For avatars on vehicles, the center point of the root prim of the vehicle triggers the crossing, so that all avatars and the vehicle remain together. &lt;br /&gt;
&lt;br /&gt;
When an avatar or an object crosses a region boundary, its information is sent from one simulator to the next. From the viewpoint of a viewer, it is re-created in the gaining region. When the viewer receives an ObjectUpdate message for the avatar or object in the gaining region, the viewer will re-create the object. ObjectUpdate messages (either full or compressed) are sent for each prim in the linkset. &lt;br /&gt;
&lt;br /&gt;
The viewer then detects that it has a duplicate of an existing object that was in the losing region. Each object in the world has a unique UUID, and the viewer checks for duplicates. Creation of a duplicate causes the viewer to delete the old object. This is almost seamless to the user, although some object flicker can often be seen.&lt;br /&gt;
&lt;br /&gt;
The viewer is informed of an avatar region crossing via the CrossedRegion event, which travels over the event poller channel. This is no longer a UDP message, although it was in earlier versions of the SL system. This message indicates the beginning of the region crossing process. An AgentMovementComplete message from the gaining region indicates completion. It is not guaranteed that those messages arrive in order. This tells the viewer which simulator has control and should receive AgentUpdate messages with mouse and keyboard inputs.&lt;br /&gt;
&lt;br /&gt;
During the movement process, there are some out-of-sync conditions. The avatar object does not cross at the same time that control is handed off. This causes some difficulties if the out of sync condition persists. If it persists for more than a few seconds, the region crossing has failed. &lt;br /&gt;
&lt;br /&gt;
{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for region crossings=&lt;br /&gt;
[[File:Regioncross.png|center|750px|alt=Sequence diagram|Region crossing event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Region crossing&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Losing Sim&amp;quot; as H&lt;br /&gt;
participant &amp;quot;Gaining Sim&amp;quot; as N&lt;br /&gt;
&lt;br /&gt;
activate H&lt;br /&gt;
activate N&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
rbox left of V: Avatar crosses region boundary&lt;br /&gt;
H-&amp;gt;N: ServerSide ChitChat&lt;br /&gt;
N-&amp;gt;H:&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
&lt;br /&gt;
H-&amp;gt;V: CrossedRegion&lt;br /&gt;
rbox left of V: Control of avatar transferred to gaining region&lt;br /&gt;
rbox left of V: Sim waits for CompleteAgentMovement&lt;br /&gt;
V--&amp;gt;&amp;gt;N: CompleteAgentMovement&lt;br /&gt;
N--&amp;gt;&amp;gt;V: AgentMovementComplete&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
rbox left of V: Out of sync until object update from ganing region&lt;br /&gt;
&lt;br /&gt;
N--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
rbox left of V: Viewer creates avatar object in gaining region&lt;br /&gt;
rbox left of V: Viewer detects duplicate object in losing region and kills it.&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
rbox left of V: Normal avatar operation in gaining region&lt;br /&gt;
N--&amp;gt;&amp;gt;V: TerseImprovedObjectUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
N--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place as an avatar crosses from one region to another.&lt;br /&gt;
It shows the normal case for a simple region crossing.&lt;br /&gt;
&lt;br /&gt;
This is a rather brittle operation. Many things can and do go wrong.&lt;br /&gt;
&lt;br /&gt;
===Double region crossings===&lt;br /&gt;
If a second region crossing starts before the first one is completed, results are generally unsatisfactory. &lt;br /&gt;
This usually happens at region corners where four regions meet, but can also be caused by very fast movement.&lt;br /&gt;
The simulators are not properly interlocked to prevent this.&lt;br /&gt;
&lt;br /&gt;
===Gaining region not yet fully live===&lt;br /&gt;
It&#039;s possible to cross into a neighbor region which is still in the process of connecting to the viewer. See [[Adding neighbor region sequence]]. This usually works, and will force the neighbor region to become fully live.&lt;br /&gt;
===Multiple avatars on a vehicle===&lt;br /&gt;
This is not well understood at this time, and tends to be unreliable.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216184</id>
		<title>Region crossing</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216184"/>
		<updated>2024-02-11T20:17:53Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Notes on the bad cases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The Second Life world is divided into square regions 256 meters on a side. Each region is managed by a separate simulator program. Viewers present the illusion of a large, seamless world by communicating with several region simulators simultaneously. Avatars cross between regions via a complex process which requires cooperation between multiple simulators and viewers.&lt;br /&gt;
&lt;br /&gt;
==Overview of a region crossing==&lt;br /&gt;
A region crossing is initiated by a simulator when an avatar goes outside the region boundary. The center of the root prim of the linkset must be one meter past the boundary for crossing to trigger. This prevents toggling back and forth for avatars on the edge of the region. For avatars on vehicles, the center point of the root prim of the vehicle triggers the crossing, so that all avatars and the vehicle remain together. &lt;br /&gt;
&lt;br /&gt;
When an avatar or an object crosses a region boundary, its information is sent from one simulator to the next. From the viewpoint of a viewer, it is re-created in the gaining region. When the viewer receives an ObjectUpdate message for the avatar or object in the gaining region, the viewer will re-create the object. ObjectUpdate messages (either full or compressed) are sent for each prim in the linkset. &lt;br /&gt;
&lt;br /&gt;
The viewer then detects that it has a duplicate of an existing object that was in the losing region. Each object in the world has a unique UUID, and the viewer checks for duplicates. Creation of a duplicate causes the viewer to delete the old object. This is almost seamless to the user, although some object flicker can often be seen.&lt;br /&gt;
&lt;br /&gt;
The viewer is informed of an avatar region crossing via the CrossedRegion event, which travels over the event poller channel. This is no longer a UDP message, although it was in earlier versions of the SL system. This message indicates the beginning of the region crossing process. An AgentMovementComplete message from the gaining region indicates completion. It is not guaranteed that those messages arrive in order. This tells the viewer which simulator has control and should receive AgentUpdate messages with mouse and keyboard inputs.&lt;br /&gt;
&lt;br /&gt;
During the movement process, there are some out-of-sync conditions. The avatar object does not cross at the same time that control is handed off. This causes some difficulties if the out of sync condition persists. If it persists for more than a few seconds, the region crossing has failed. &lt;br /&gt;
&lt;br /&gt;
{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for region crossings=&lt;br /&gt;
[[File:Regioncross.png|center|750px|alt=Sequence diagram|Region crossing event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Region crossing&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Losing Sim&amp;quot; as H&lt;br /&gt;
participant &amp;quot;Gaining Sim&amp;quot; as N&lt;br /&gt;
&lt;br /&gt;
activate H&lt;br /&gt;
activate N&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
rbox left of V: Avatar crosses region boundary&lt;br /&gt;
H-&amp;gt;N: ServerSide ChitChat&lt;br /&gt;
N-&amp;gt;H:&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
&lt;br /&gt;
H-&amp;gt;V: CrossedRegion&lt;br /&gt;
rbox left of V: Control of avatar transferred to gaining region&lt;br /&gt;
rbox left of V: Sim waits for CompleteAgentMovement&lt;br /&gt;
V--&amp;gt;&amp;gt;N: CompleteAgentMovement&lt;br /&gt;
N--&amp;gt;&amp;gt;V: AgentMovementComplete&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
rbox left of V: Out of sync until object update from ganing region&lt;br /&gt;
&lt;br /&gt;
N--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
rbox left of V: Viewer creates avatar object in gaining region&lt;br /&gt;
rbox left of V: Viewer detects duplicate object in losing region and kills it.&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
rbox left of V: Normal avatar operation in gaining region&lt;br /&gt;
N--&amp;gt;&amp;gt;V: TerseImprovedObjectUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
N--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place as an avatar crosses from one region to another.&lt;br /&gt;
It shows the normal case for a simple region crossing.&lt;br /&gt;
&lt;br /&gt;
This is a rather brittle operation. Many things can and do go wrong.&lt;br /&gt;
&lt;br /&gt;
===Double region crossings===&lt;br /&gt;
If a second region crossing starts before the first one is completed, results are generally unsatisfactory. The simulators are not properly interlocked to prevent this.&lt;br /&gt;
===Gaining region not yet fully live===&lt;br /&gt;
It&#039;s possible to cross into a neighbor region which is still in the process of connecting to the viewer. See [[Adding neighbor region sequence]]. This usually works, and will force the neighbor region to become fully live.&lt;br /&gt;
===Multiple avatars on a vehicle===&lt;br /&gt;
This is not well understood at this time, and tends to be unreliable.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Regioncross.png&amp;diff=1216183</id>
		<title>File:Regioncross.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Regioncross.png&amp;diff=1216183"/>
		<updated>2024-02-11T20:11:20Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Region crossing event sequence diagram&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Region crossing event sequence diagram&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216182</id>
		<title>Region crossing</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216182"/>
		<updated>2024-02-11T20:05:07Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: /* Event sequence diagram for region crossings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The Second Life world is divided into square regions 256 meters on a side. Each region is managed by a separate simulator program. Viewers present the illusion of a large, seamless world by communicating with several region simulators simultaneously. Avatars cross between regions via a complex process which requires cooperation between multiple simulators and viewers.&lt;br /&gt;
&lt;br /&gt;
==Overview of a region crossing==&lt;br /&gt;
A region crossing is initiated by a simulator when an avatar goes outside the region boundary. The center of the root prim of the linkset must be one meter past the boundary for crossing to trigger. This prevents toggling back and forth for avatars on the edge of the region. For avatars on vehicles, the center point of the root prim of the vehicle triggers the crossing, so that all avatars and the vehicle remain together. &lt;br /&gt;
&lt;br /&gt;
When an avatar or an object crosses a region boundary, its information is sent from one simulator to the next. From the viewpoint of a viewer, it is re-created in the gaining region. When the viewer receives an ObjectUpdate message for the avatar or object in the gaining region, the viewer will re-create the object. ObjectUpdate messages (either full or compressed) are sent for each prim in the linkset. &lt;br /&gt;
&lt;br /&gt;
The viewer then detects that it has a duplicate of an existing object that was in the losing region. Each object in the world has a unique UUID, and the viewer checks for duplicates. Creation of a duplicate causes the viewer to delete the old object. This is almost seamless to the user, although some object flicker can often be seen.&lt;br /&gt;
&lt;br /&gt;
The viewer is informed of an avatar region crossing via the CrossedRegion event, which travels over the event poller channel. This is no longer a UDP message, although it was in earlier versions of the SL system. This message indicates the beginning of the region crossing process. An AgentMovementComplete message from the gaining region indicates completion. It is not guaranteed that those messages arrive in order. This tells the viewer which simulator has control and should receive AgentUpdate messages with mouse and keyboard inputs.&lt;br /&gt;
&lt;br /&gt;
During the movement process, there are some out-of-sync conditions. The avatar object does not cross at the same time that control is handed off. This causes some difficulties if the out of sync condition persists. If it persists for more than a few seconds, the region crossing has failed. &lt;br /&gt;
&lt;br /&gt;
{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for region crossings=&lt;br /&gt;
[[File:Regioncross.png|center|750px|alt=Sequence diagram|Region crossing event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Region crossing&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Losing Sim&amp;quot; as H&lt;br /&gt;
participant &amp;quot;Gaining Sim&amp;quot; as N&lt;br /&gt;
&lt;br /&gt;
activate H&lt;br /&gt;
activate N&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
rbox left of V: Avatar crosses region boundary&lt;br /&gt;
H-&amp;gt;N: ServerSide ChitChat&lt;br /&gt;
N-&amp;gt;H:&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
&lt;br /&gt;
H-&amp;gt;V: CrossedRegion&lt;br /&gt;
rbox left of V: Control of avatar transferred to gaining region&lt;br /&gt;
rbox left of V: Sim waits for CompleteAgentMovement&lt;br /&gt;
V--&amp;gt;&amp;gt;N: CompleteAgentMovement&lt;br /&gt;
N--&amp;gt;&amp;gt;V: AgentMovementComplete&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
rbox left of V: Out of sync until object update from ganing region&lt;br /&gt;
&lt;br /&gt;
N--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
rbox left of V: Viewer creates avatar object in gaining region&lt;br /&gt;
rbox left of V: Viewer detects duplicate object in losing region and kills it.&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
rbox left of V: Normal avatar operation in gaining region&lt;br /&gt;
N--&amp;gt;&amp;gt;V: TerseImprovedObjectUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;N: AgentUpdate&lt;br /&gt;
N--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place as an avatar crosses from one region to another.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216181</id>
		<title>Region crossing</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216181"/>
		<updated>2024-02-11T18:22:25Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: More description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The Second Life world is divided into square regions 256 meters on a side. Each region is managed by a separate simulator program. Viewers present the illusion of a large, seamless world by communicating with several region simulators simultaneously. Avatars cross between regions via a complex process which requires cooperation between multiple simulators and viewers.&lt;br /&gt;
&lt;br /&gt;
==Overview of a region crossing==&lt;br /&gt;
A region crossing is initiated by a simulator when an avatar goes outside the region boundary. The center of the root prim of the linkset must be one meter past the boundary for crossing to trigger. This prevents toggling back and forth for avatars on the edge of the region. For avatars on vehicles, the center point of the root prim of the vehicle triggers the crossing, so that all avatars and the vehicle remain together. &lt;br /&gt;
&lt;br /&gt;
When an avatar or an object crosses a region boundary, its information is sent from one simulator to the next. From the viewpoint of a viewer, it is re-created in the gaining region. When the viewer receives an ObjectUpdate message for the avatar or object in the gaining region, the viewer will re-create the object. ObjectUpdate messages (either full or compressed) are sent for each prim in the linkset. &lt;br /&gt;
&lt;br /&gt;
The viewer then detects that it has a duplicate of an existing object that was in the losing region. Each object in the world has a unique UUID, and the viewer checks for duplicates. Creation of a duplicate causes the viewer to delete the old object. This is almost seamless to the user, although some object flicker can often be seen.&lt;br /&gt;
&lt;br /&gt;
The viewer is informed of an avatar region crossing via the CrossedRegion event, which travels over the event poller channel. This is no longer a UDP message, although it was in earlier versions of the SL system. This message indicates the beginning of the region crossing process. An AgentMovementComplete message from the gaining region indicates completion. It is not guaranteed that those messages arrive in order. This tells the viewer which simulator has control and should receive AgentUpdate messages with mouse and keyboard inputs.&lt;br /&gt;
&lt;br /&gt;
During the movement process, there are some out-of-sync conditions. The avatar object does not cross at the same time that control is handed off. This causes some difficulties if the out of sync condition persists. If it persists for more than a few seconds, the region crossing has failed. &lt;br /&gt;
&lt;br /&gt;
{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for region crossings=&lt;br /&gt;
[[File:Regioncross.png|center|750px|alt=Sequence diagram|Region crossing event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Region crossing - COMING SOON&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Host Region&amp;quot; as H&lt;br /&gt;
participant &amp;quot;Neighbour Region&amp;quot; as N&lt;br /&gt;
&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
rbox left of V: Stood in the region centre\nDraw Distanceis 32m\nno otherregions are visibleV--&amp;gt;H: AgentUpdate(x=128,y=128,Far=32)&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
rbox left of V: Draw Distance is increased to 200m&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate(Far=200)&lt;br /&gt;
H-&amp;gt;N: ServerSide ChitChat&lt;br /&gt;
N-&amp;gt;H:&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EnableSimulator])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EnableSimulator&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
V--&amp;gt;N:UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
N--&amp;gt;V: RegionHandshake&lt;br /&gt;
V--&amp;gt;N: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EstablishAgentCommunication])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EstablishAgentCommunication&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;N: Seed&lt;br /&gt;
N-&amp;gt;V: Seed&amp;lt;Response&amp;gt;V&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place as an avatar crosses from one region to another.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216180</id>
		<title>Region crossing</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Region_crossing&amp;diff=1216180"/>
		<updated>2024-02-11T18:04:30Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Start&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The Second Life world is divided into square regions 256 meters on a side. Each region is managed by a separate simulator program. Viewers present the illusion of a large, seamless world by communicating with several region simulators simultaneously. Avatars cross between regions via a complex process which requires cooperation between multiple simulators and viewers.&lt;br /&gt;
&lt;br /&gt;
{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for region crossings=&lt;br /&gt;
[[File:Regioncross.png|center|750px|alt=Sequence diagram|Region crossing event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Region crossing - COMING SOON&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Host Region&amp;quot; as H&lt;br /&gt;
participant &amp;quot;Neighbour Region&amp;quot; as N&lt;br /&gt;
&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
rbox left of V: Stood in the region centre\nDraw Distanceis 32m\nno otherregions are visibleV--&amp;gt;H: AgentUpdate(x=128,y=128,Far=32)&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
rbox left of V: Draw Distance is increased to 200m&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate(Far=200)&lt;br /&gt;
H-&amp;gt;N: ServerSide ChitChat&lt;br /&gt;
N-&amp;gt;H:&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EnableSimulator])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EnableSimulator&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
V--&amp;gt;N:UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
N--&amp;gt;V: RegionHandshake&lt;br /&gt;
V--&amp;gt;N: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EstablishAgentCommunication])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EstablishAgentCommunication&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;N: Seed&lt;br /&gt;
N-&amp;gt;V: Seed&amp;lt;Response&amp;gt;V&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place as an avatar crosses from one region to another.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Adding_neighbor_region_sequence&amp;diff=1216179</id>
		<title>Adding neighbor region sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Adding_neighbor_region_sequence&amp;diff=1216179"/>
		<updated>2024-02-11T17:52:01Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: /* Discussion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for adding a connection to a neighbor region=&lt;br /&gt;
[[File:Addneighbor.png|center|750px|alt=Sequence diagram|Adding neighbor region connection event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Adding a new region to viewer comms.&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Host Region&amp;quot; as H&lt;br /&gt;
participant &amp;quot;Neighbour Region&amp;quot; as N&lt;br /&gt;
&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
rbox left of V: Stood in the region centre\nDraw Distanceis 32m\nno otherregions are visibleV--&amp;gt;H: AgentUpdate(x=128,y=128,Far=32)&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
rbox left of V: Draw Distance is increased to 200m&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate(Far=200)&lt;br /&gt;
H-&amp;gt;N: ServerSide ChitChat&lt;br /&gt;
N-&amp;gt;H:&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EnableSimulator])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EnableSimulator&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
V--&amp;gt;N:UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
N--&amp;gt;V: RegionHandshake&lt;br /&gt;
V--&amp;gt;N: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EstablishAgentCommunication])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EstablishAgentCommunication&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;N: Seed&lt;br /&gt;
N-&amp;gt;V: Seed&amp;lt;Response&amp;gt;V&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place as a region discovers and connects to an adjacent region. &lt;br /&gt;
This is how the viewer is able to show more than one region on screen.&lt;br /&gt;
&lt;br /&gt;
This is the &amp;quot;happy path&amp;quot; - the way it is supposed to work. In practice, SL simulators sometimes send the &#039;&#039;&#039;EstablishAgentCommunication&#039;&#039;&#039; message one minute late. This is a bug. It ought to prevent the region from appearing in viewers. However, a workaround in the Second Life Viewer code [https://github.com/secondlife/viewer/blob/60c8b432b3da7c812b1edd2d79afbe82cc4d33bd/indra/newview/llviewerassetstorage.cpp#L488] allows displaying objects in the region by using the asset fetch capability of the region that has the main agent.  (Second Life currently uses the same asset servers for all regions. Open Simulator does not. OpenSimulator does not have this bug; sim servers there promptly send &#039;&#039;&#039;EstablishAgentCommunication&#039;&#039;&#039; after the region handshake.) &lt;br /&gt;
&lt;br /&gt;
This workaround only applies to asset fetching. Until the &#039;&#039;&#039;EstablishAgentCommunication&#039;&#039;&#039; message arrives, all functions which require capabilities or events are broken. This includes some physically-based rendering features, and may affect VIVOX voice and region crossings. &lt;br /&gt;
&lt;br /&gt;
See also forum discussion at [https://community.secondlife.com/forums/topic/503010-obscure-question-when-does-the-simulator-send-establishagentcommunication-to-the-viewer/page/8/]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Adding_neighbor_region_sequence&amp;diff=1216178</id>
		<title>Adding neighbor region sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Adding_neighbor_region_sequence&amp;diff=1216178"/>
		<updated>2024-02-11T17:50:33Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Discuss problem with EstablishAgentCommunication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for adding a connection to a neighbor region=&lt;br /&gt;
[[File:Addneighbor.png|center|750px|alt=Sequence diagram|Adding neighbor region connection event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Adding a new region to viewer comms.&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Host Region&amp;quot; as H&lt;br /&gt;
participant &amp;quot;Neighbour Region&amp;quot; as N&lt;br /&gt;
&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
rbox left of V: Stood in the region centre\nDraw Distanceis 32m\nno otherregions are visibleV--&amp;gt;H: AgentUpdate(x=128,y=128,Far=32)&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
rbox left of V: Draw Distance is increased to 200m&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate(Far=200)&lt;br /&gt;
H-&amp;gt;N: ServerSide ChitChat&lt;br /&gt;
N-&amp;gt;H:&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EnableSimulator])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EnableSimulator&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
V--&amp;gt;N:UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
N--&amp;gt;V: RegionHandshake&lt;br /&gt;
V--&amp;gt;N: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EstablishAgentCommunication])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EstablishAgentCommunication&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;N: Seed&lt;br /&gt;
N-&amp;gt;V: Seed&amp;lt;Response&amp;gt;V&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place as a region discovers and connects to an adjacent region. &lt;br /&gt;
This is how the viewer is able to show more than one region on screen.&lt;br /&gt;
&lt;br /&gt;
This is the &amp;quot;happy path&amp;quot; - the way it is supposed to work. In practice, SL simulators sometimes send the &#039;&#039;&#039;EstablishAgentCommunication&#039;&#039;&#039; message one minute late. This is a bug. It ought to prevent the region from appearing in viewers. However, a workaround in the Second Life Viewer code [https://github.com/secondlife/viewer/blob/60c8b432b3da7c812b1edd2d79afbe82cc4d33bd/indra/newview/llviewerassetstorage.cpp#L488] allows displaying objects in the region by using the asset fetch capability of the region that has the main agent.  (Second Life currently uses the same asset servers for all regions. Open Simulator does not.) &lt;br /&gt;
&lt;br /&gt;
This workaround only applies to asset fetching. Until the &#039;&#039;&#039;EstablishAgentCommunication&#039;&#039;&#039; message arrives, all functions which require capabilities or events are broken. This includes some physically-based rendering features, and may affect VIVOX voice and region crossings. &lt;br /&gt;
&lt;br /&gt;
See also forum discussion at [https://community.secondlife.com/forums/topic/503010-obscure-question-when-does-the-simulator-send-establishagentcommunication-to-the-viewer/page/8/]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Addneighbor.png&amp;diff=1214577</id>
		<title>File:Addneighbor.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Addneighbor.png&amp;diff=1214577"/>
		<updated>2023-09-07T18:41:34Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: How a viewer connects to a neighboring region.

Created by Beq Janus.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
How a viewer connects to a neighboring region.&lt;br /&gt;
&lt;br /&gt;
Created by Beq Janus.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Adding_neighbor_region_sequence&amp;diff=1214576</id>
		<title>Adding neighbor region sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Adding_neighbor_region_sequence&amp;diff=1214576"/>
		<updated>2023-09-07T18:37:19Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Begin page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for adding a connection to a neighbor region=&lt;br /&gt;
[[File:Addneighbor.png|center|750px|alt=Sequence diagram|Adding neighbor region connection event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Adding a new region to viewer comms.&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Host Region&amp;quot; as H&lt;br /&gt;
participant &amp;quot;Neighbour Region&amp;quot; as N&lt;br /&gt;
&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
rbox left of V: Stood in the region centre\nDraw Distanceis 32m\nno otherregions are visibleV--&amp;gt;H: AgentUpdate(x=128,y=128,Far=32)&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
rbox left of V: Draw Distance is increased to 200m&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate(Far=200)&lt;br /&gt;
H-&amp;gt;N: ServerSide ChitChat&lt;br /&gt;
N-&amp;gt;H:&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EnableSimulator])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EnableSimulator&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;H: EventQueueGet&lt;br /&gt;
activate H&lt;br /&gt;
V--&amp;gt;N:UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
N--&amp;gt;V: RegionHandshake&lt;br /&gt;
V--&amp;gt;N: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;H: AgentUpdate&lt;br /&gt;
group EventQueueGet&amp;lt;response&amp;gt;&lt;br /&gt;
H-&amp;gt;V: EventQueueGet([EstablishAgentCommunication])&lt;br /&gt;
deactivate H&lt;br /&gt;
H-&amp;gt;&amp;gt;V: EstablishAgentCommunication&lt;br /&gt;
end&lt;br /&gt;
V-&amp;gt;N: Seed&lt;br /&gt;
N-&amp;gt;V: Seed&amp;lt;Response&amp;gt;V&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place as a region discovers and connects to an adjacent region. &lt;br /&gt;
This is how the viewer is able to show more than one region on screen.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214575</id>
		<title>Login sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214575"/>
		<updated>2023-09-07T02:56:35Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Discussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for login=&lt;br /&gt;
[[File:Initiallogin.png|center|750px|alt=Sequence diagram|Initial login event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Initial login to world&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Initial region&amp;quot; as R&lt;br /&gt;
participant &amp;quot;Login server&amp;quot; as L&lt;br /&gt;
&lt;br /&gt;
group Initial login&lt;br /&gt;
activate V&lt;br /&gt;
V-&amp;gt;L: Login request, XMLRPC&lt;br /&gt;
activate L&lt;br /&gt;
L-&amp;gt;R: (region advised login coming)&lt;br /&gt;
activate R&lt;br /&gt;
L-&amp;gt;V: Login reply&lt;br /&gt;
rbox left of V: Contains initial region IP, port, seed\nregion handle, agent ID\nbut not avatar location in region.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;R: CompleteAgentMovement&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UuidNameRequest&lt;br /&gt;
rbox left of V: UuidNameRequest for avatar name.\nProbably unnecessary, but traditional.&lt;br /&gt;
R--&amp;gt;V: RegionHandshake&lt;br /&gt;
rbox left of V: A 2 second delay here before the reply\nreduces interest list errors.\nRef: BUG-233107&lt;br /&gt;
V--&amp;gt;&amp;gt;R: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: This first AgentUpdate has a bogus avatar position.\nViewer does not know where the avatar is yet\nbut must send this to get object updates started.\nCause of some interest list bugs.&lt;br /&gt;
V-&amp;gt;R: EventQueueGet&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
rbox left of V: The first object update is usually for the avatar.\nThis tells the viewer where the avatar really is.\nPosition of avatar moves in viewer.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: Viewer tells region where the camera is.\nViewer and region are now in sync.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rbox left of V: Logged in.\nNormal operation from here on.&lt;br /&gt;
&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R-&amp;gt;V: (Various event queue events)&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Discussion==&lt;br /&gt;
This is an event sequence diagram of the essential events that take place during a login.&lt;br /&gt;
&lt;br /&gt;
The process starts out with the viewer making a request to the login server. The login server authenticates the user, and determines in which region the user&#039;s avatar will enter the world. If the user requested a login to &amp;quot;Last&amp;quot; or &amp;quot;Home&amp;quot;, the login server determines the region. The login communicates with the selected region to prepare it to receive the login. If this communication is unsuccessful, usually because that region is offline,  the avatar is re-routed to some other region, usually a &amp;quot;safe hub&amp;quot;. The viewer can discover this from the SimName field in the RegionHandshake message. Scripted agent controllers should check this, or their bots will pile up at safe hubs.&lt;br /&gt;
&lt;br /&gt;
The login server provides the viewer with the key information needed to connect to a region - IP address, port number, region location (and size for Open Simulator), seed capability (a URL which connects to the initial simulator), plus other useful info. The IP address and port number are used to set up the UDP message circuit. The seed capability is used to establish communications with the simulator over HTTPS, and to locate other servers, such as the asset server system. An HTTPS connection to the [[EventQueueGet]] system is established. A region handshake takes place.&lt;br /&gt;
&lt;br /&gt;
It is the AgentUpdate message that really gets things going. That starts the flow of ObjectUpdate messages that tell the viewer about all objects within view range. There&#039;s an implicit sequencing problem in the protocol. The AgentUpdate message from viewer to simulator contains the camera location.&lt;br /&gt;
However, the viewer doesn&#039;t know the avatar location until it gets an ObjectUpdate with the avatar&#039;s UUID. (The login message reply provides that UUID). &lt;br /&gt;
So the first AgentUpdate has a bogus avatar position, which will be corrected by a later AgentUpdate. This jump seems to have negative effects on&lt;br /&gt;
the correctness of the set of objects sent in ObjectUpdate messages. (Ref [https://jira.secondlife.com/browse/BUG-233107]). Teleports have the same problem.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]], except for the XMLRPC call to the login server.&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214574</id>
		<title>Login sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214574"/>
		<updated>2023-09-07T02:21:53Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for login=&lt;br /&gt;
[[File:Initiallogin.png|center|750px|alt=Sequence diagram|Initial login event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Initial login to world&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Initial region&amp;quot; as R&lt;br /&gt;
participant &amp;quot;Login server&amp;quot; as L&lt;br /&gt;
&lt;br /&gt;
group Initial login&lt;br /&gt;
activate V&lt;br /&gt;
V-&amp;gt;L: Login request, XMLRPC&lt;br /&gt;
activate L&lt;br /&gt;
L-&amp;gt;R: (region advised login coming)&lt;br /&gt;
activate R&lt;br /&gt;
L-&amp;gt;V: Login reply&lt;br /&gt;
rbox left of V: Contains initial region IP, port, seed\nregion handle, agent ID\nbut not avatar location in region.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;R: CompleteAgentMovement&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UuidNameRequest&lt;br /&gt;
rbox left of V: UuidNameRequest for avatar name.\nProbably unnecessary, but traditional.&lt;br /&gt;
R--&amp;gt;V: RegionHandshake&lt;br /&gt;
rbox left of V: A 2 second delay here before the reply\nreduces interest list errors.\nRef: BUG-233107&lt;br /&gt;
V--&amp;gt;&amp;gt;R: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: This first AgentUpdate has a bogus avatar position.\nViewer does not know where the avatar is yet\nbut must send this to get object updates started.\nCause of some interest list bugs.&lt;br /&gt;
V-&amp;gt;R: EventQueueGet&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
rbox left of V: The first object update is usually for the avatar.\nThis tells the viewer where the avatar really is.\nPosition of avatar moves in viewer.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: Viewer tells region where the camera is.\nViewer and region are now in sync.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rbox left of V: Logged in.\nNormal operation from here on.&lt;br /&gt;
&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R-&amp;gt;V: (Various event queue events)&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Notes==&lt;br /&gt;
Dashed lines are [[Message|UDP messages]]. Solid lines are events received via [[EventQueueGet]].&lt;br /&gt;
&lt;br /&gt;
This documents the successful &amp;quot;happy path&amp;quot;. Error conditions are not yet covered.&lt;br /&gt;
&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214573</id>
		<title>Login sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214573"/>
		<updated>2023-09-07T02:17:34Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Diagram complete resized&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
=Event sequence diagram for login=&lt;br /&gt;
[[File:Initiallogin.png|center|750px|alt=Sequence diagram|Initial login event sequence]]&lt;br /&gt;
{{collapse top | Source code for the sequence diagram above.}}&lt;br /&gt;
To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Initial login to world&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Initial region&amp;quot; as R&lt;br /&gt;
participant &amp;quot;Login server&amp;quot; as L&lt;br /&gt;
&lt;br /&gt;
group Initial login&lt;br /&gt;
activate V&lt;br /&gt;
V-&amp;gt;L: Login request, XMLRPC&lt;br /&gt;
activate L&lt;br /&gt;
L-&amp;gt;R: (region advised login coming)&lt;br /&gt;
activate R&lt;br /&gt;
L-&amp;gt;V: Login reply&lt;br /&gt;
rbox left of V: Contains initial region IP, port, seed\nregion handle, agent ID\nbut not avatar location in region.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;R: CompleteAgentMovement&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UuidNameRequest&lt;br /&gt;
rbox left of V: UuidNameRequest for avatar name.\nProbably unnecessary, but traditional.&lt;br /&gt;
R--&amp;gt;V: RegionHandshake&lt;br /&gt;
rbox left of V: A 2 second delay here before the reply\nreduces interest list errors.\nRef: BUG-233107&lt;br /&gt;
V--&amp;gt;&amp;gt;R: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: This first AgentUpdate has a bogus avatar position.\nViewer does not know where the avatar is yet\nbut must send this to get object updates started.\nCause of some interest list bugs.&lt;br /&gt;
V-&amp;gt;R: EventQueueGet&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
rbox left of V: The first object update is usually for the avatar.\nThis tells the viewer where the avatar really is.\nPosition of avatar moves in viewer.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: Viewer tells region where the camera is.\nViewer and region are now in sync.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rbox left of V: Logged in.\nNormal operation from here on.&lt;br /&gt;
&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R-&amp;gt;V: (Various event queue events)&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
==Notes==&lt;br /&gt;
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214572</id>
		<title>Login sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214572"/>
		<updated>2023-09-07T02:06:32Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Add diagram&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
&lt;br /&gt;
(Under construction)&lt;br /&gt;
&lt;br /&gt;
=Event sequence diagram for login=&lt;br /&gt;
[[File:Initiallogin.png|left|alt=Sequence diagram|Initial login event sequence]]&lt;br /&gt;
==Notes==&lt;br /&gt;
==Source code for the diagram&lt;br /&gt;
{{collapse top | Source code for the sequence diagram.}}&lt;br /&gt;
Source code for the sequence diagram above. To change the diagram, change this source code, then paste it into this free online chart generator [https://sequencediagram.org/] to generate a new .png image.&lt;br /&gt;
Then replace the version of the image above with a new image.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
title Initial login to world&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Initial region&amp;quot; as R&lt;br /&gt;
participant &amp;quot;Login server&amp;quot; as L&lt;br /&gt;
&lt;br /&gt;
group Initial login&lt;br /&gt;
activate V&lt;br /&gt;
V-&amp;gt;L: Login request, XMLRPC&lt;br /&gt;
activate L&lt;br /&gt;
L-&amp;gt;R: (region advised login coming)&lt;br /&gt;
activate R&lt;br /&gt;
L-&amp;gt;V: Login reply&lt;br /&gt;
rbox left of V: Contains initial region IP, port, seed\nregion handle, agent ID\nbut not avatar location in region.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;R: CompleteAgentMovement&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UuidNameRequest&lt;br /&gt;
rbox left of V: UuidNameRequest for avatar name.\nProbably unnecessary, but traditional.&lt;br /&gt;
R--&amp;gt;V: RegionHandshake&lt;br /&gt;
rbox left of V: A 2 second delay here before the reply\nreduces interest list errors.\nRef: BUG-233107&lt;br /&gt;
V--&amp;gt;&amp;gt;R: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: This first AgentUpdate has a bogus avatar position.\nViewer does not know where the avatar is yet\nbut must send this to get object updates started.\nCause of some interest list bugs.&lt;br /&gt;
V-&amp;gt;R: EventQueueGet&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
rbox left of V: The first object update is usually for the avatar.\nThis tells the viewer where the avatar really is.\nPosition of avatar moves in viewer.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: Viewer tells region where the camera is.\nViewer and region are now in sync.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rbox left of V: Logged in.\nNormal operation from here on.&lt;br /&gt;
&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R-&amp;gt;V: (Various event queue events)&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Initiallogin.png&amp;diff=1214571</id>
		<title>File:Initiallogin.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Initiallogin.png&amp;diff=1214571"/>
		<updated>2023-09-07T01:50:12Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Sequence diagram for initial login.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Sequence diagram for initial login.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214570</id>
		<title>Login sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214570"/>
		<updated>2023-09-07T01:48:42Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Beginning add of sequence diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
&lt;br /&gt;
(Under construction)&lt;br /&gt;
&lt;br /&gt;
===Source code for above diagram===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
title Initial login to world&lt;br /&gt;
&lt;br /&gt;
participant &amp;quot;Viewer&amp;quot; as V&lt;br /&gt;
participant &amp;quot;Initial region&amp;quot; as R&lt;br /&gt;
participant &amp;quot;Login server&amp;quot; as L&lt;br /&gt;
&lt;br /&gt;
group Initial login&lt;br /&gt;
activate V&lt;br /&gt;
V-&amp;gt;L: Login request, XMLRPC&lt;br /&gt;
activate L&lt;br /&gt;
L-&amp;gt;R: (region advised login coming)&lt;br /&gt;
activate R&lt;br /&gt;
L-&amp;gt;V: Login reply&lt;br /&gt;
rbox left of V: Contains initial region IP, port, seed\nregion handle, agent ID\nbut not avatar location in region.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UseCircuitCode&lt;br /&gt;
V--&amp;gt;&amp;gt;R: CompleteAgentMovement&lt;br /&gt;
V--&amp;gt;&amp;gt;R: UuidNameRequest&lt;br /&gt;
rbox left of V: UuidNameRequest for avatar name.\nProbably unnecessary, but traditional.&lt;br /&gt;
R--&amp;gt;V: RegionHandshake&lt;br /&gt;
rbox left of V: A 2 second delay here before the reply\nreduces interest list errors.\nRef: BUG-233107&lt;br /&gt;
V--&amp;gt;&amp;gt;R: RegionHandshakeReply&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: This first AgentUpdate has a bogus avatar position.\nViewer does not know where the avatar is yet\nbut must send this to get object updates started.\nCause of some interest list bugs.&lt;br /&gt;
V-&amp;gt;R: EventQueueGet&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
rbox left of V: The first object update is usually for the avatar.\nThis tells the viewer where the avatar really is.\nPosition of avatar moves in viewer.&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
rbox left of V: Viewer tells region where the camera is.\nViewer and region are now in sync.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rbox left of V: Logged in.\nNormal operation from here on.&lt;br /&gt;
&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R--&amp;gt;&amp;gt;V: ObjectUpdate&lt;br /&gt;
R-&amp;gt;V: (Various event queue events)&lt;br /&gt;
V--&amp;gt;&amp;gt;R: AgentUpdate&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214569</id>
		<title>Login sequence</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Login_sequence&amp;diff=1214569"/>
		<updated>2023-09-07T01:32:56Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Starting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
&lt;br /&gt;
(Under construction)&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Protocol&amp;diff=1214568</id>
		<title>Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Protocol&amp;diff=1214568"/>
		<updated>2023-09-07T01:31:04Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Fix links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox}}&lt;br /&gt;
&lt;br /&gt;
==Message Formats==&lt;br /&gt;
===Binary UDP===&lt;br /&gt;
* [[Message Layout]] -- Explanation of message format and the message template &lt;br /&gt;
* [[Packet Layout]] -- the layout of the UDP payload.&lt;br /&gt;
* [[Circuits]] -- Establishment and common operation of UDP circuits between two nodes&lt;br /&gt;
* [[Packet Accounting]] -- how the message system handles packet sequencing, reliability, suppression, throttling, etc.&lt;br /&gt;
* [[:Category:Common Messages|Common Messages]] -- messages that are handled by every Indra message system instance.&lt;br /&gt;
* [[Xfer Manager]] -- messages used by the &amp;lt;code&amp;gt;LLXFerManager&amp;lt;/code&amp;gt; class.&lt;br /&gt;
* [[Transfer Manager]] -- messages used by the &amp;lt;code&amp;gt;LLTransferManger&amp;lt;/code&amp;gt; class.&lt;br /&gt;
* [[:Category:Messages|All messages]] -- an alphabetical listing of all messages in the system&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
The Capabilities system allows viewers to request abilities and be temporarily granted those abilities through a unique URL. The transport format is LLSD XML, and clients can either post new events to CAPS URLs or wait for events to come from the server on the event queue connection the client holds open.&lt;br /&gt;
&lt;br /&gt;
* [[Capabilities]]&lt;br /&gt;
* [[Message_System_and_Capabilities]]&lt;br /&gt;
&lt;br /&gt;
Capabilities use the Linden Lab Structured Data system to represent data.&lt;br /&gt;
See [[LLSD]].&lt;br /&gt;
&lt;br /&gt;
===XML-RPC===&lt;br /&gt;
Older releases of the official viewer used XML-RPC as part of the [[Login Protocol]]. The official viewer now uses a web based authentication protocol, however non-official viewers may still use XML-RPC for login.&lt;br /&gt;
&lt;br /&gt;
See also [[Authentication Flow]].&lt;br /&gt;
&lt;br /&gt;
==Protocol Systems==&lt;br /&gt;
===Animations===&lt;br /&gt;
&lt;br /&gt;
See [[Internal Animation Format]].&lt;br /&gt;
&lt;br /&gt;
===Appearance===&lt;br /&gt;
See [[Avatar Appearance]].&lt;br /&gt;
&lt;br /&gt;
===Assets===&lt;br /&gt;
&lt;br /&gt;
===Avatars===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Channels and Versions===&lt;br /&gt;
&lt;br /&gt;
* [[Channel]] - definition of a channel&lt;br /&gt;
** [[Channel and Version Requirements]] - Linden Lab policy on the use of channels.&lt;br /&gt;
&lt;br /&gt;
===Directory Searches===&lt;br /&gt;
See [[:Category:Search Messages|Search Messages]].&lt;br /&gt;
&lt;br /&gt;
===Estate Tools===&lt;br /&gt;
===Friends===&lt;br /&gt;
See:&lt;br /&gt;
* [[:Category:Relationship Messages|Relationship Messages]]&lt;br /&gt;
* [[Mute List]]&lt;br /&gt;
&lt;br /&gt;
===Grid===&lt;br /&gt;
===Groups===&lt;br /&gt;
* [[Group Messages]]&lt;br /&gt;
&lt;br /&gt;
===Inventory===&lt;br /&gt;
* [[:Category:Inventory Messages|Inventory Messages]]&lt;br /&gt;
* [[Inventory Capabilities]]&lt;br /&gt;
* [[Task Inventory]]&lt;br /&gt;
&lt;br /&gt;
===Agent===&lt;br /&gt;
* [[:Category:Agent Messages|Agent Messages]]&lt;br /&gt;
* [[:Category:Money Messages|Money Messages]]&lt;br /&gt;
* [[:Category:Communication Messages|Communication Messages]]&lt;br /&gt;
* [[Buying Land and Currency]]&lt;br /&gt;
===Login===&lt;br /&gt;
* [[Login_Protocol|Login]]&lt;br /&gt;
&lt;br /&gt;
===Movement===&lt;br /&gt;
===Objects===&lt;br /&gt;
* [[:Category:Object Messages|Object Messages]]&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
===Parcels===&lt;br /&gt;
* [[:Category:Parcel Messages|Parcel Messages]]&lt;br /&gt;
&lt;br /&gt;
===Simulators===&lt;br /&gt;
* [[:Category:Region Messages|Region Messages]]&lt;br /&gt;
&lt;br /&gt;
===Sounds===&lt;br /&gt;
===Terrain===&lt;br /&gt;
&lt;br /&gt;
===Protocol Sequence Diagrams===&lt;br /&gt;
* [[Login sequence]]&lt;br /&gt;
* [[Adding neighbor region sequence]]&lt;br /&gt;
* [[Disconnecting neighbor region sequence]]&lt;br /&gt;
* [[Teleport to distant region sequence]]&lt;br /&gt;
* [[Teleport to visible region sequence]]&lt;br /&gt;
* [[Region crossing sequence]]&lt;br /&gt;
&lt;br /&gt;
==File Formats==&lt;br /&gt;
===Asset Files===&lt;br /&gt;
{{All Asset Types}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Assets]]&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Sequence_Diagram&amp;diff=1214567</id>
		<title>Category:Sequence Diagram</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Sequence_Diagram&amp;diff=1214567"/>
		<updated>2023-09-07T01:29:45Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Create category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox|parent=Protocol}}&lt;br /&gt;
&lt;br /&gt;
Sequence diagrams for major protocol events.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Protocol&amp;diff=1214566</id>
		<title>Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Protocol&amp;diff=1214566"/>
		<updated>2023-09-07T01:28:27Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Beginning add of sequence diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiLearnBox}}&lt;br /&gt;
&lt;br /&gt;
==Message Formats==&lt;br /&gt;
===Binary UDP===&lt;br /&gt;
* [[Message Layout]] -- Explanation of message format and the message template &lt;br /&gt;
* [[Packet Layout]] -- the layout of the UDP payload.&lt;br /&gt;
* [[Circuits]] -- Establishment and common operation of UDP circuits between two nodes&lt;br /&gt;
* [[Packet Accounting]] -- how the message system handles packet sequencing, reliability, suppression, throttling, etc.&lt;br /&gt;
* [[:Category:Common Messages|Common Messages]] -- messages that are handled by every Indra message system instance.&lt;br /&gt;
* [[Xfer Manager]] -- messages used by the &amp;lt;code&amp;gt;LLXFerManager&amp;lt;/code&amp;gt; class.&lt;br /&gt;
* [[Transfer Manager]] -- messages used by the &amp;lt;code&amp;gt;LLTransferManger&amp;lt;/code&amp;gt; class.&lt;br /&gt;
* [[:Category:Messages|All messages]] -- an alphabetical listing of all messages in the system&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
The Capabilities system allows viewers to request abilities and be temporarily granted those abilities through a unique URL. The transport format is LLSD XML, and clients can either post new events to CAPS URLs or wait for events to come from the server on the event queue connection the client holds open.&lt;br /&gt;
&lt;br /&gt;
* [[Capabilities]]&lt;br /&gt;
* [[Message_System_and_Capabilities]]&lt;br /&gt;
&lt;br /&gt;
Capabilities use the Linden Lab Structured Data system to represent data.&lt;br /&gt;
See [[LLSD]].&lt;br /&gt;
&lt;br /&gt;
===XML-RPC===&lt;br /&gt;
Older releases of the official viewer used XML-RPC as part of the [[Login Protocol]]. The official viewer now uses a web based authentication protocol, however non-official viewers may still use XML-RPC for login.&lt;br /&gt;
&lt;br /&gt;
See also [[Authentication Flow]].&lt;br /&gt;
&lt;br /&gt;
==Protocol Systems==&lt;br /&gt;
===Animations===&lt;br /&gt;
&lt;br /&gt;
See [[Internal Animation Format]].&lt;br /&gt;
&lt;br /&gt;
===Appearance===&lt;br /&gt;
See [[Avatar Appearance]].&lt;br /&gt;
&lt;br /&gt;
===Assets===&lt;br /&gt;
&lt;br /&gt;
===Avatars===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Channels and Versions===&lt;br /&gt;
&lt;br /&gt;
* [[Channel]] - definition of a channel&lt;br /&gt;
** [[Channel and Version Requirements]] - Linden Lab policy on the use of channels.&lt;br /&gt;
&lt;br /&gt;
===Directory Searches===&lt;br /&gt;
See [[:Category:Search Messages|Search Messages]].&lt;br /&gt;
&lt;br /&gt;
===Estate Tools===&lt;br /&gt;
===Friends===&lt;br /&gt;
See:&lt;br /&gt;
* [[:Category:Relationship Messages|Relationship Messages]]&lt;br /&gt;
* [[Mute List]]&lt;br /&gt;
&lt;br /&gt;
===Grid===&lt;br /&gt;
===Groups===&lt;br /&gt;
* [[Group Messages]]&lt;br /&gt;
&lt;br /&gt;
===Inventory===&lt;br /&gt;
* [[:Category:Inventory Messages|Inventory Messages]]&lt;br /&gt;
* [[Inventory Capabilities]]&lt;br /&gt;
* [[Task Inventory]]&lt;br /&gt;
&lt;br /&gt;
===Agent===&lt;br /&gt;
* [[:Category:Agent Messages|Agent Messages]]&lt;br /&gt;
* [[:Category:Money Messages|Money Messages]]&lt;br /&gt;
* [[:Category:Communication Messages|Communication Messages]]&lt;br /&gt;
* [[Buying Land and Currency]]&lt;br /&gt;
===Login===&lt;br /&gt;
* [[Login_Protocol|Login]]&lt;br /&gt;
&lt;br /&gt;
===Movement===&lt;br /&gt;
===Objects===&lt;br /&gt;
* [[:Category:Object Messages|Object Messages]]&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
===Parcels===&lt;br /&gt;
* [[:Category:Parcel Messages|Parcel Messages]]&lt;br /&gt;
&lt;br /&gt;
===Simulators===&lt;br /&gt;
* [[:Category:Region Messages|Region Messages]]&lt;br /&gt;
&lt;br /&gt;
===Sounds===&lt;br /&gt;
===Terrain===&lt;br /&gt;
&lt;br /&gt;
===Protocol Sequence Diagrams===&lt;br /&gt;
* [[:Category:Sequence Diagram|Login sequence]]&lt;br /&gt;
* [[:Category:Sequence Diagram|Adding neighbor region sequence]]&lt;br /&gt;
* [[:Category:Sequence Diagram|Disconnecting neighbor region sequence]]&lt;br /&gt;
* [[:Category:Sequence Diagram|Teleport to distant region sequence]]&lt;br /&gt;
* [[:Category:Sequence Diagram|Teleport to visible region sequence]]&lt;br /&gt;
* [[:Category:Sequence Diagram|Region crossing sequence]]&lt;br /&gt;
&lt;br /&gt;
==File Formats==&lt;br /&gt;
===Asset Files===&lt;br /&gt;
{{All Asset Types}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Assets]]&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Animats_Resident&amp;diff=1214538</id>
		<title>User:Animats Resident</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Animats_Resident&amp;diff=1214538"/>
		<updated>2023-09-05T06:19:41Z</updated>

		<summary type="html">&lt;p&gt;Animats Resident: Start user page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creator of the Sharpview viewer.&lt;/div&gt;</summary>
		<author><name>Animats Resident</name></author>
	</entry>
</feed>