nyuuzyou/wikis huggingface dataset:
Adding a cursor

* Add new entry to enum ECursorType in llwindow.h
** For example, UI_CURSOR_STUFF
=== Windows ===
* Create art for Windows
** Go into indra/newview/res
** Duplicate toolopen.cur
** Name new file something like toolstuff.cur
** Visual Studio > View > Resource View
** Right-click newViewRes.rc > Cursor
** Add Resource...
** Import...
** Select toolstuff.cur
** Edit the cursor using Visual Studio bitmap tools
** Open Properties view
** Click on name IDC_CURSOR_6
** Rename to "TOOLSTUFF"
* Link to Windows code
** Add to llwindowwin32.cpp, LLWindowWin32::initCursors()
** mCursor[UI_CURSOR_TOOLSTUFF] = loadColorCursor(TEXT("TOOLSTUFF"));
=== Mac ===
* Create art for Mac
** indra/newview/cursors_mac
** duplicate UI_CURSOR_TOOLOPEN.tif
** Save cursor as 32-bit TIFF
* Link to Mac code
** Edit llwindowmacosx.cpp cursorIDToName()
** Add "UI_CURSOR_TOOLSTUFF"
=== Linux ===
* Create art for Linux
** indra/newview/res_sdl
** duplicate toolopen.BMP
** save as 24-bit BMP
** Alpha is color-keyed to 200, 200, 200
* Link to code
** Edit llwindowsdl.cpp LLWindowSDL::initCursors()
** mSDLCursors[UI_CURSOR_TOOLPLAY] = makeSDLCursorFromBMP("toolplay.BMP",0,0);
** Hot-spot is hard-coded in above function call
Adding a menu item

Category:Viewer Architecture
Menu items in the viewer are specified in XML files, located in the indra/newview/skins/xui/en-us/ directory.
* ...or indra/newview/skins/default/xui/en-us/ ?
There are separate XML files for various categories of menu. They are:
 menu_viewer.xml - top of screen
 menu_inventory.xml - right-click on inventory item
 menu_pie_attachment.xml - right-click on your own attachment
 menu_pie_avatar.xml - right-click on other avatar or their attachments
 menu_pie_land.xml - right-click on land
 menu_pie_self.xml - right-click on your avatar
The menu callbacks are set up in llviewermenu.cpp.
Let's add a menu item named "Foo" to the Tools menu.
* In menu_viewer.xml find the "Tools" menu item. It is inside a <menu> tag.
* Tear-off sub menus use the <tearoff_menu> tag.
* Find the "Reset Scripts in Selection" menu item.
* After it, add the following text:
 <menu_item_call label="Foo" enabled="true" name="foo_menu">
 <on_click function="Tools.Foo" userdata="" />
 </menu_item_call>
* This sets up a menu item that will call a function. It can be referenced in C++ by the name "foo_menu". The user-visible label is "Foo". It defaults to enabled.
* Open newview/llviewermenu.cpp
* Create an event handler class for this menu item. By convention these are named after the menu name and item name.
 class LLToolsFoo : public view_listener_t
 {
 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
 {
 llinfos << "foo!" << llendl;
 return true;
 }
 };
* This class will listen for events from a "view", the base class for all UI widgets. LLPointer is a reference counting smart pointer. LLSD is a structured data class similar to a Perl or Python variable - it can hold data of any type.
* llinfos is the output stream for informational messages. It goes to the ctrl-shift-4 debug console, stdout, and the log file.
* Now associate the "Tools.Foo" function with a C++ class. Open newview/llviewermenu.cpp.
* In the function initialize_menus() add the line:
 addMenu(new LLToolsFoo(), "Tools.Foo");
* This associates your listener with the "Tools.Foo" event.
If you added a new source file to implement your new dialog, be sure to include it in newview/files.lst so the build system is aware of it.
//If you are using Windows the file to edit is newview/CMakeLists.txt
Compile and run!
Adding neighbor region sequence

=Event sequence diagram for adding a connection to a neighbor region=
To change the diagram, change this source code, then paste it into this free online chart generator to generate a new .png image.
Then replace the version of the image above with a new image.
title Adding a new region to viewer comms.
participant "Viewer" as V
participant "Host Region" as H
participant "Neighbour Region" as N
V->H: EventQueueGet
activate H
rbox left of V: Stood in the region centre\nDraw Distanceis 32m\nno otherregions are visibleV-->H: AgentUpdate(x=128,y=128,Far=32)
V-->>H: AgentUpdate
V-->>H: AgentUpdate
V-->>H: AgentUpdate
rbox left of V: Draw Distance is increased to 200m
V-->>H: AgentUpdate(Far=200)
H->N: ServerSide ChitChat
N->H:
group EventQueueGet<response>
H->V: EventQueueGet([EnableSimulator])
deactivate H
H->>V: EnableSimulator
end
V->H: EventQueueGet
activate H
V-->N:UseCircuitCode
V-->>H: AgentUpdate
V-->>H: AgentUpdate
N-->V: RegionHandshake
V-->N: RegionHandshakeReply
V-->>H: AgentUpdate
group EventQueueGet<response>
H->V: EventQueueGet([EstablishAgentCommunication])
deactivate H
H->>V: EstablishAgentCommunication
end
V->N: Seed
N->V: Seed<Response>V
==Discussion==
This is an event sequence diagram of the essential events that take place as a region discovers and connects to an adjacent region. 
This is how the viewer is able to show more than one region on screen.
This is the "happy path" - the way it is supposed to work. In practice, SL simulators sometimes send the EstablishAgentCommunication 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 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 EstablishAgentCommunication after the region handshake.) 
This workaround only applies to asset fetching. Until the EstablishAgentCommunication 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. 
See also forum discussion at 
==Notes==
Dashed lines are UDP messages. Solid lines are events received via EventQueueGet.
This documents the successful "happy path". Error conditions are not yet covered.
This information reflects what has been discovered by third part viewer developers. It is not official and may contain errors.
Aditi/ThouMustNotFail

= Thou Must Not Fail =
== Synopsis ==
This is a list of the most critical resident created objects used in Second Life that need to always work. 
== The Reasoning == 
Second Life is very complex. There are an infinite number of ways to do things in Second Life. These methods may be right or wrong. These methods may exploit bugs or logic holes. While testing upcoming server releases it just isn't possible to test everything resident created. QA will test changed features and make sure they work as expected. Oftentimes there are edge cases that fail without QA's knowledge. This list is a list of really important items that should always work. We will test these objects early on in the QA process and use it as a sort of canary in the coal mine test.
= Vendors =
* Apez iServ
* Hippo technologies products (hippo rent and hippo vend)
* Metalife related vendors and servers objects.
* Quantum Products Vending and Rack Servers
* XStreet SL Server Objects
= Land Management Tools =
* objects which ban/kick users 
* automated parcel rental systems
= Physics =
* Posjump things
* Flight Feathers
* WarpPos. https://wiki.secondlife.com/wiki/WarpPos 
* Dynamic avatar sit target. llSetLinkPrimitiveParams(llGetNumberOfPrims(), [PRIM_POSITION, <50, 0,0>]);
* Regular 300m sit target. llSitTarget(<300,300,300>, ZERO_ROTATION);
= Web =
* Transaction History Page (used by vendors to validate payments)
= Viewer =
* Alpha on HUDs to render the same as in world (broken by 1.23 ) 
* Content to render the same between viewer versions. eg: 1.x and 2.0
= DEBUG =
* Debug Channel number and data sent to remain consistent (used for auto script repair)
Aditi Notes

= ADITI Notes Info =
This page is place for us to communicate any information about testing on Aditi that is not covered here: Preview_Grid
Please join the group Second Life Beta for up to date communication regarding testing status.
= ADITI Office Hours =
We meet once a week in Morris on ADITI, Thursday afternoons at 3PM. If you have items to talk about please add them to the "Any Other Business" section of the agenda:
* https://wiki.secondlife.com/wiki/Beta_Server_Office_Hours#Agenda
The transcripts and meeting notes from previous meetings are available at the bottom of that page.
= Projects on ADITI =
ADITI always has tons of projects on it. These projects can be updated or changed at any time. These are some of the larger on-going projects we have on ADITI right now.
* Pathfinding
* "maint-server" bug fixes
ADITI is alive and kicking
* Land buying is also currently disabled... maybe.
__Oskar 07:31, 6 March 2010 (UTC)
Adult content keywords

Applies to Client version 1.23 and Server version 1.26 and later:
* Certain words are filtered from search queries depending on the check boxes you have selected on that search tab. 
* If you attempt to search using a filtered word you will get a message in the results window, which states in part "If you have already verified your account and want to opt in to an adult search, please select "adult" before you search to get those results"
* The actual search that is performed drops the filtered words, and does the search on the remaining words, if any.
* There are two categories of filtered words:
*# Words that are filtered regardless of which check boxes are active. These can be referred to as "banned" words.
*# Words that are also filtered if the Adult Content check box is off. These can be referred to as "adult" words. In order to turn on that check box, (1) your account must be verified, and (2) in Edit menu > Preferences > General Tab > Rating you have chosen the "PG, Mature, & Adult" setting from the dropdown list.
Applies to search.secondlife.com:
* Public search from search web page filters banned and adult words. The same warning message as above is returned if filtered search keywords are entered. There is no option to choose adult content.
Adult関連コンテンツの管理：定義に関するブラウンバッグ・ミーティング（カジュアルランチミーティング）概要

#REDIRECT LLOja:Adult関連コンテンツの管理：定義に関するブラウンバッグ・ミーティング（カジュアルランチミーティング）概要
Adult関連コンテンツの管理：定義に関するブラウンバッグ・ミーティング（カジュアルランチミーティング）概要 (KB)

#REDIRECT LLOja:Adult関連コンテンツの管理：定義に関するブラウンバッグ・ミーティング（カジュアルランチミーティング）概要
Advanced Menü

Standardmäßig ist die Second Life Viewer's Menü "Advanced" nicht sichtbar. So zeigen sie es an:
* PC - 
* Mac - 
Bei einigen Systemen ist die Kombination mit einer anderen Anwendung Verknüpft deshalb müssen Sie drücken.
Schau das Video an um zu sehen wie es gemacht wird und hier Erfahren Sie mehr in unserer Knowledge Base:
Hier finden Sie Informationen zu den einzelnen Optionen in der :Category:Advanced menu	<videoflash>IrndvDk-pzY</videoflash>
Advanced Snapshot Tips

== Advanced Snapshot Tips ==
There are a few tweaks that you can do in order to get the most out of taking Snapshots within the client viewer. Here are a few.
=== Multiple Addresses ===
The Recipient email field can accept multiple email addresses. You can separate each one with a semicolon.
 account1@yourdomain.com;account2@yourdomain.com;account3@yourdomain.com
When sending to multiple addresses, each recipient can not see the other addresses that you sent the message to.
=== Populated Addresses ===
For those who always send snapshots to the same email addresses, you can edit a file on your file system to populate that information for you.
 C:\Program Files (x86)\SecondLife\skins\default\xui\en-us\floater_postcard.xml
Look for the following and add your email addresses: 
 <text bottom="-35" follows="top|left" font="SansSerif" left="12" name="to_label">
 Recipient's Email:
 </text>
 <line_editor bottom_delta="-6" follows="left|top" height="20" 
 left="120" max_length="254" name="to_form"
 width="150" >account1@yourdomain.com;account2@yourdomain.com;account3@yourdomain.com</line_editor>
=== Longer Messages ===
By default, the message is limited to 700 characters. You can extend this to 6,526 characters by editing a file on your file system.
 C:\Program Files (x86)\SecondLife\skins\default\xui\en-us\floater_postcard.xml
Look for the following and change the max_length property:
 <text bottom_delta="-23" follows="top|left" font="SansSerif" left="12" name="msg_label">
 Message:
 </text>
 <text_editor bottom_delta="-150" follows="left|top|right|bottom" height="140" left="12"
 max_length="700" name="msg_form" width="420">
 Type your message here.
 </text_editor>
Category:Tutorials 
Category:Creation
Category:Textures and Snapshots
Advanced Topics

This is the second part of the User's Manual, covering more advanced topics. For basic information on installing and using the Viewer software please visit Part One
This Page Is an Early Draft. Drop your ideas for topics after this title or in the discussion page. Some of this may end up back in part 1:
==== Optimizine settings for your PC ====
==== Changing the Sky and Water ====
==== Alternate Viewers ====
==== Estate Tools ====
==== Group Management ====
==== Lindex Trading ====
==== Streaming Media ====
==== Advanced Photography ====
==== Content Creation ====
==== Support Issues, Solving Problems ====
==== Businesses ====
==== Second Life Limits ====
Advanced menu/1.23/zh-Hant

在預設情況下，Second Life Viewer進階選單是看不到的。
叫出進階選單的方法：
* PC - 
* Mac - 
在某些作業系統中，本快速鍵可能已經被其他應用程式佔用，
這時你就需要按作為替代。
影片會告訴你如何做，以及從我們的知識庫了解更多:
See also: Debug Settings.	<videoflash>IrndvDk-pzY</videoflash>
Advancedメニューを開くには？

== Advanced メニューを開くには？ ==
Advanced メニューは、Second Life ビューワの他の設定に比べより技術的な設定を含むので、通常表示されていません。いくつかは役に立つものですが、Second Life の機能を使う上でこれがないといけないという本質的なものではありません。Advanced メニューを使用する手順は、以下のとおりです。
1.キーボードから、以下をを押してください。
* PC - 
* Mac - 
2.Second Life ウィンドウの最上部のヘルプの隣に Advanced の文字が出てきます。
ビデオ：
=== このメニューの役割 ===
Advanced メニューには、多くのオプション設定があり、ほとんどは Second Life をデバッグするのに使います。これらの設定の中には「Disable Camera Constraints」のような毎日 Second Life で使える役に立つものも含まれていますが、Second Life のパフォーマンスを分析したり、うまくいかなかった何かを直そうとしているのでなければ、通常 Advanced メニューは必要ありません。
Admin メニューのコマンドは、Linden Lab 従業員だけが使えるよう制限されています。Linden Lab 従業員（一般に、「The Lindens」と呼ばれる）は、全員苗字が「Linden」になっています。Admin メニューは、「View Admin Options」をチェックすると表示されるようになりますが、表示されたメニューやメニューオプションはどれも利用できません。
=== 一般的に便利な機能 ===
* High Res Snapshot - 2倍のピクセルサイズのスナップショットをディスクに保存
* Character > Character Tests > Go Away/AFK When Idle - 5分離席で「Away」と表示され、30分離席で自動ログアウトする機能を無効に
* Character > Rebake Textures - アバターのスキンや洋服の情報を再びコンピューターに強制的に送ります。一度使っただけではうまく機能しないことがあり、その際にはアバターがロードされない「雲」の状態、シェイプはロードしてもテクスチャはロードされない「グレー」の状態、テクスチャの一部がロードされずに部分的に見た目がおかしい状態になります。
----
Special thanks to Jinko Spitteler for translating this article !
Advertising Networks

There are several companies supporting distributed advertising networks in Second Life. The distributed network usually means that company have partners, or publishers who display ads on their parcels.
The advertising materials (images along with landmarks, urls or notecards) are delivered to the publishers' parcels automatically.
These are links to companies with ad networks in Second Life. Some of these are listed in the Tools directory on the Second Life Grid website.
== Networks ==
=== ADS Company - SecondAds Grid Wide Advertising ===
SecondAds is a virtual advertising agency that runs most successful grid wide advertising network in SL. Dedicated to grow and evolve ad networks for virtual worlds with belief that advertising is as important and crucial for existence of virtual businesses as for any other real life business on world wide web. Concept is taken from most prominent online ad networks such as Google Adsense and Yahoo ad network. Ad network system lets people with virtual lands benefit from their traffic by displaying ads through our SecondAds Ad Publishers boards placed grid wide. 
Second Ads website 
Second Ads on SL Marketplace
Recently SecondAds have developed the revolutionary Goldtokens.net gaming tools that allow landowners to bring gaming traffic to their sims. This network enjoys a high participation rate with many thousands of active users per month.
SecondAds also operates KingdomsAndEmpires, an online web browser based strategy and trading game. K&E is currently played by several hundred players participants from Second Life. KingdomsAndEmpires lets SL businesses to advertise as sponsors of players community with proceeds from the advertising shared to all K&E players.
=== gridads - Grid wide advertising service ===
Gridads is a grid wide advertising service founded in 2022 and operating hundreds of billboards.
With gridads you can place your ad on a large number of billboards across Second Life. You only pay for the clicks your ad receives.
https://gridads.co - Gridads Website
SLURL - Gridads in-world office
=== SL Business Directory (SLBiz2Life)===
SL Business Directory offers lot of second life advertising services, including:
* Free listing of SL business (the directory is seems to be a largest one at present time)
* Guaranteed Visitors
* Picks Booster (the tool to boost the business position in SL Seach)
* Second Life search analysis tools.
If you are looking for pay-per-click billboard ads, check the Ad Fusion network
http://www.slbiz2life.com - SL Business Directory (Second Life advertising services)
Category: Marketing
Age verification

Adult content in Second Life (SL) is available to those Residents who verify their age to be 18 years or more. 
To verify your age, go to https://secondlife.com/my/account/verification.php, log in if you are not already, and confirm your date of birth.
== Official SL Knowledge Base articles ==
* Age verification
* Maturity ratings
* Age verification parcel and estate management features
For more information see also :Category:Adult.
==Blog posts==
NOTE: These links to archived blog posts no longer work. To find the post, search for the title in the Blog Archive.
*2009-03-12 Upcoming Changes For Adult Content
*2007-12-10 More On Age Verification
*2007-12-07 Ae Verification Update
**2007-12-06 Age Verification Enters Grid-wide Beta
*2007-09-19 Identity Verification And Flagging Parcels For Restricted Content
*2007-08-29 Identity Verification Comes To Second Life
*2007-05-11 Further Clarification Regarding Age Verification
*2007-05-11 More On Identity Verification
*2007-05-05 Age And Identity Verification In Second Life
== JIRA Issues ==
JIRA issues
* (resolved - Won't Finish)
*
*
*
*
Category:Adult
AgentAlertMessage

==Message Layout==
{
	AgentAlertMessage	Low	Trusted	Unencoded
	{
		AgentData	Single
		{	AgentID		LLUUID	}
	}
	{
		AlertData			Single
		{	Modal			BOOL			}
		{	Message			Variable	1	}
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentAnimation

==Message Layout==
{
	AgentAnimation High NotTrusted Unencoded
	{
		AgentData			Single
		{	AgentID			LLUUID		}
		{	SessionID		LLUUID		}
	}
	{
		AnimationList Variable
		{ AnimID		LLUUID }
		{ StartAnim		BOOL }
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentCachedTexture

==Message Layout==
{
	AgentCachedTexture Low NotTrusted Unencoded
	{
		AgentData		Single
		{	AgentID		LLUUID		}
		{	SessionID	LLUUID		}
		{	SerialNum	S32			}
	}
	{
		WearableData	Variable
		{	ID				LLUUID	}
		{	TextureIndex	U8 }
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentCachedTextureResponse

==Message Layout==
{
	AgentCachedTextureResponse Low Trusted Unencoded
	{
		AgentData		Single
		{	AgentID		LLUUID		}
		{	SessionID	LLUUID		}
		{	SerialNum	S32			}
	}
	{
		WearableData	Variable
		{	TextureID		LLUUID	}
		{	TextureIndex	U8 }
		{	HostName		Variable	1 }
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentDataUpdate

==Message Layout==
{
	AgentDataUpdate Low Trusted Zerocoded
	{
		AgentData			Single
		{	AgentID				LLUUID	}
		{	FirstName	 Variable	1	} 
		{	LastName	 Variable	1	} 
		{	GroupTitle			Variable	1	}	
		{	ActiveGroupID		LLUUID	}	
		{	GroupPowers			U64	}
		{	GroupName			Variable	1	}	
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentFOV

==Message Layout==
{
	AgentFOV Low NotTrusted Unencoded
	{
		AgentData			Single
		{	AgentID			LLUUID		}
		{	SessionID		LLUUID		}
		{	CircuitCode		U32		}
	}
	{
		FOVBlock			Single
		{	GenCounter		U32		}
		{	VerticalAngle	F32	}
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentGroupDataUpdate

==Message Layout==
{
	AgentGroupDataUpdate Low Trusted Zerocoded
	{
		AgentData			Single
		{	AgentID				LLUUID	}
	}
	{
		GroupData			Variable
		{	GroupID				LLUUID	}
		{	GroupPowers			U64		}	
		{	AcceptNotices		BOOL	}
		{	GroupInsigniaID		LLUUID	}
		{	Contribution		S32		}
		{	GroupName			Variable	1	}	
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentHeightWidth

==Message Layout==
{
	AgentHeightWidth Low NotTrusted Unencoded
	{
		AgentData			Single
		{	AgentID			LLUUID		}
		{	SessionID		LLUUID		}
		{	CircuitCode		U32		}
	}
	{
		HeightWidthBlock	Single
		{	GenCounter		U32		}
		{	Height			U16	}
		{	Width			U16	}
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentIsNowWearing

==Message Layout==
{
	AgentIsNowWearing	Low	NotTrusted	Zerocoded
	{
		AgentData Single
		{	AgentID		LLUUID	}
		{	SessionID	LLUUID	}
	}
	{
		WearableData	Variable
		{	ItemID		LLUUID	}
		{	WearableType	U8	}
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentMovementComplete

==Message Layout==
{
	AgentMovementComplete Low 250 NotTrusted Unencoded
	{
		AgentData		Single
		{	AgentID			LLUUID	}
		{	SessionID		LLUUID	}
	}
	{
		Data			Single
		{	Position		LLVector3 }
		{	LookAt			LLVector3 }
		{	RegionHandle	U64		}
		{	Timestamp		U32	}
	}
	{
		SimData			Single
		{	ChannelVersion	Variable 2 }
	}
}
==Usage and Notes==
Sent by the simulator in response to CompleteAgentMovement once the avatar is awake in the region.
Category:Messages
Category:Agent Messages
AgentPresenceResponse

==Message Layout==
{
	AgentPresenceResponse Low Trusted Unencoded
	{
		AgentData		Variable
		{	AgentID			LLUUID	}
		{	RegionIP		IPADDR	}
		{	RegionPort		IPPORT	}
		{	ValidUntil		F64	}
		{	EstateID		U32 }
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentQuitCopy

==Message Layout==
{
	AgentQuitCopy Low NotTrusted Unencoded
	{
		AgentData			Single
		{	AgentID			LLUUID		}
		{	SessionID		LLUUID		}
	}
	{
		FuseBlock			Single
		{	ViewerCircuitCode	U32	}
	}
}
==Usage and Notes==
Category:Messages
Category:Agent Messages
AgentRequestSit

==Message Layout==
{
	AgentRequestSit		High NotTrusted Zerocoded
	{
		AgentData			Single
		{	AgentID			LLUUID		}
		{	SessionID		LLUUID		}
	}
	{
		TargetObject	Single
		{	TargetID	LLUUID	}
		{	Offset		LLVector3	}
	}
}
==Usage and Notes==
This packet is sent to the server when the user tries to sit on a prim.
* TargetID - the ID of the prim
* Offset - a rough position in local coordinates for the edge to sit on
Note that the offset is quite rough, and is sometimes even inside the object. The server should respond to this with an AvatarSitResponse packet if it decides the sit request is valid.
The server side of sitting was discussed in some detail during Andrew Linden's office hours on 2007/11/06.
Category:Messages
AgentSetAppearance

==Message Layout==
{
	AgentSetAppearance Low NotTrusted Zerocoded
	{
		AgentData			Single
		{	AgentID			LLUUID		}
		{	SessionID		LLUUID		}
		{	SerialNum		U32	}	
		{ 	Size			LLVector3	}
	}
	{
		WearableData		Variable
		{	CacheID			LLUUID }
		{	TextureIndex	U8 }
	}
	{
		ObjectData			Single
		{	TextureEntry	Variable	2	}
	}
	{
		VisualParam			Variable
		{	ParamValue		U8	}
	}
}
==Usage and Notes==
==Related Messages==
AvatarAppearance
Category:Messages