diff --git a/applications/SLChat/NetCom.cs b/applications/SLChat/NetCom.cs
index 316a3c75..1faa589e 100644
--- a/applications/SLChat/NetCom.cs
+++ b/applications/SLChat/NetCom.cs
@@ -35,16 +35,103 @@ namespace SLChat
public string lastname;
public string password;
public bool loggedin;
+ public string loginLocation;
- public NetCom(string fname, string lname, string pwrd, ChatScreen wndChat)
+ public NetCom(string fname, string lname, string pwrd, string logLocation, ChatScreen wndChat)
{
//Our NetCom main thing, we go through and set
//our settings up.
winChat = wndChat;
client = new SecondLife("keywords.txt", "protocol.txt");
+ client.Network.RegisterCallback("ChatFromSimulator", new PacketCallback(ChatIncoming));
+ client.Network.RegisterCallback("ImprovedInstantMessage", new PacketCallback(InstantMessageIncoming));
+
firstname = fname;
lastname = lname;
password = pwrd;
+ loginLocation = logLocation;
+ }
+
+ private void InstantMessageIncoming(Packet packet, Simulator simulator)
+ {
+ if (packet.Layout.Name == "ImprovedInstantMessage")
+ {
+ string output = "";
+ LLUUID FromAgentID = new LLUUID();
+ LLUUID ToAgentID = new LLUUID();
+ uint ParentEstateID = 0;
+ LLUUID RegionID = new LLUUID();
+ LLVector3 Position = new LLVector3();
+ byte Offline = 0;
+ byte Dialog = 0;
+ LLUUID ID = new LLUUID();
+ uint Timestamp = 0;
+ string FromAgentName = "";
+ string Message = "";
+ string BinaryBucket = "";
+
+ ArrayList blocks;
+
+ blocks = packet.Blocks();
+
+ foreach (Block block in blocks)
+ {
+ foreach (Field field in block.Fields)
+ {
+ if(field.Layout.Name == "FromAgentID")
+ {
+ FromAgentID = (LLUUID)field.Data;
+ }
+ else if(field.Layout.Name == "ToAgentID")
+ {
+ ToAgentID = (LLUUID)field.Data;
+ }
+ else if(field.Layout.Name == "ParentEstateID")
+ {
+ ParentEstateID = (uint)field.Data;
+ }
+ else if(field.Layout.Name == "RegionID")
+ {
+ RegionID = (LLUUID)field.Data;
+ }
+ else if(field.Layout.Name == "Position")
+ {
+ Position = (LLVector3)field.Data;
+ }
+ else if(field.Layout.Name == "Offline")
+ {
+ Offline = (byte)field.Data;
+ }
+ else if(field.Layout.Name == "Dialog")
+ {
+ Dialog = (byte)field.Data;
+ }
+ else if(field.Layout.Name == "ID")
+ {
+ ID = (LLUUID)field.Data;
+ }
+ else if(field.Layout.Name == "Timestamp")
+ {
+ Timestamp = (uint)field.Data;
+ }
+ else if(field.Layout.Name == "FromAgentName")
+ {
+ FromAgentName = System.Text.Encoding.UTF8.GetString((byte[])field.Data).Replace("\0", "");
+ }
+ else if(field.Layout.Name == "Message")
+ {
+ Message = System.Text.Encoding.UTF8.GetString((byte[])field.Data).Replace("\0", "");
+ }
+ else if(field.Layout.Name == "BinaryBucket")
+ {
+ BinaryBucket = System.Text.Encoding.UTF8.GetString((byte[])field.Data).Replace("\0", "");
+ }
+ }
+ }
+
+ output = newline + FromAgentName + ": " + Message;
+ winChat.ReturnData(output,4,FromAgentName,FromAgentID.ToString());
+ }
}
private void ChatIncoming(Packet packet, Simulator simulator)
@@ -55,14 +142,16 @@ namespace SLChat
if (packet.Layout.Name == "ChatFromSimulator")
{
string output = "";
- string message = "";
- byte audible = 0;
- byte type = 0;
- byte sourcetype = 0;
- string name = "";
- LLUUID id = new LLUUID();
- byte command = 0;
- LLUUID commandID = new LLUUID();
+ string fromname = ""; //Name of source.
+ LLUUID sourceid = new LLUUID(); //UUID of source, object/avatar
+ LLUUID ownerid = new LLUUID(); //UUID of owner, if object UUID = owner of object, if avatar UUID = same as source
+ byte sourcetype = 0; //1 = avatar, 2 = object
+ byte chattype = 0; //0 = Whisper, 1 = Say, 2 = Shout, 3 = unknown, 4 = typing notification, 5 = chatbar open/close
+ byte audible = 0; //Audible: 1 if audible, 0 if beyond 20m (message is null)
+ LLVector3 position = new LLVector3(); //Region local position of source.
+ string message = ""; //Message from source
+ byte command = 0; //Unused?
+ LLUUID commandID = new LLUUID(); //Unused?
ArrayList blocks;
@@ -72,21 +161,25 @@ namespace SLChat
{
foreach (Field field in block.Fields)
{
- if (field.Layout.Name == "ID")
+ if (field.Layout.Name == "SourceID")
{
- id = (LLUUID)field.Data;
+ sourceid = (LLUUID)field.Data;
}
- else if(field.Layout.Name == "Name")
+ else if(field.Layout.Name == "OwnerID")
{
- name = System.Text.Encoding.UTF8.GetString((byte[])field.Data).Replace("\0", "");
+ ownerid = (LLUUID)field.Data;
+ }
+ else if(field.Layout.Name == "FromName")
+ {
+ fromname = System.Text.Encoding.UTF8.GetString((byte[])field.Data).Replace("\0", "");
}
else if(field.Layout.Name == "SourceType")
{
sourcetype = (byte)field.Data;
}
- else if(field.Layout.Name == "Type")
+ else if(field.Layout.Name == "ChatType")
{
- type = (byte)field.Data;
+ chattype = (byte)field.Data;
}
else if(field.Layout.Name == "Audible")
{
@@ -96,6 +189,10 @@ namespace SLChat
{
message = System.Text.Encoding.UTF8.GetString((byte[])field.Data).Replace("\0", "");
}
+ else if(field.Layout.Name == "Position")
+ {
+ position = (LLVector3)field.Data;
+ }
else if(field.Layout.Name == "Command")
{
command = (byte)field.Data;
@@ -110,19 +207,19 @@ namespace SLChat
if(message!="")
{
//If we haven't recieved a blank message
- if(name != firstname + " " + lastname)
+ if(fromname != firstname + " " + lastname)
{
//If the name and first name is not ours
//so we don't get our own talkback with our name.
- output = newline + name + ": " + message;
- winChat.ReturnData(output,3,name,id.ToString());
+ output = newline + fromname + ": " + message;
+ winChat.ReturnData(output,3,fromname,sourceid.ToString());
}else{
//Now if it IS our text, we want to replace
//the name with "You", this makes it easier
//to distinguish our own text.
- name = "You";
- output = newline + name + ": " + message;
- winChat.ReturnData(output,3,name,id.ToString());
+ fromname = "You";
+ output = newline + fromname + ": " + message;
+ winChat.ReturnData(output,3,fromname,sourceid.ToString());
}
}
}
@@ -136,11 +233,10 @@ namespace SLChat
//Double checking on name.
if(firstname != "" & lastname != "" & password != "")
{
- client.Network.RegisterCallback("ChatFromSimulator", new PacketCallback(ChatIncoming));
Hashtable loginParams = NetworkManager.DefaultLoginValues(firstname, lastname, password,
- "00:00:00:00:00:00", "last", 1, 11, 11, 11, "Win", "0", "SLChat", "ozspade@slinked.net");
-
+ "00:00:00:00:00:00", loginLocation, 1, 11, 11, 11, "Win", "0", "SLChat", "ozspade@slinked.net");
+ //uri:Ahern&195&233&30
// An example of how to pass additional options to the login server
// Request information on the Root Inventory Folder, and Inventory Skeleton
diff --git a/applications/SLChat/SLChat.csproj b/applications/SLChat/SLChat.csproj
index 42f30c45..6df6dff4 100644
--- a/applications/SLChat/SLChat.csproj
+++ b/applications/SLChat/SLChat.csproj
@@ -24,41 +24,31 @@
False
-
- False
- ..\..\libsecondlife-cs\bin\Debug\libsecondlife.dll
-
-
- D:\Oz's Files\Second Life Stuff\libsecondlife\libsecondlife-cs\bin\Debug\XmlRpcCS.dll
+
+ D:\Oz's Files\Second Life Stuff\libsecondlife\libsecondlife-cs\bin\Debug\libsecondlife.dll
False
-
- D:\Oz's Files\Second Life Stuff\libsecondlife\libsecondlife-cs\Inventory\Inventory\bin\Debug\Inventory.dll
+
+ D:\Oz's Files\Second Life Stuff\libsecondlife\libsecondlife-cs\bin\Debug\JSON.dll
+ False
+
+
+ D:\Oz's Files\Second Life Stuff\libsecondlife\libsecondlife-cs\bin\Debug\XmlRpcCS.dll
False
-
- Form
-
-
- Form
-
+
+
-
- Form
-
+
-
- Form
-
-
winLogin.cs
@@ -68,15 +58,10 @@
winIM.cs
-
- winInventory.cs
-
winAbout.cs
-
- Form
-
+
winAbout.cs
diff --git a/applications/SLChat/bin/Debug/JSON.dll b/applications/SLChat/bin/Debug/JSON.dll
index 2ada87b0..2a92985f 100644
Binary files a/applications/SLChat/bin/Debug/JSON.dll and b/applications/SLChat/bin/Debug/JSON.dll differ
diff --git a/applications/SLChat/bin/Debug/SLChat.exe b/applications/SLChat/bin/Debug/SLChat.exe
index 32823b9d..cac237e8 100644
Binary files a/applications/SLChat/bin/Debug/SLChat.exe and b/applications/SLChat/bin/Debug/SLChat.exe differ
diff --git a/applications/SLChat/bin/Debug/XmlRpcCS.dll b/applications/SLChat/bin/Debug/XmlRpcCS.dll
index 8a0ee598..b5a08e3b 100644
Binary files a/applications/SLChat/bin/Debug/XmlRpcCS.dll and b/applications/SLChat/bin/Debug/XmlRpcCS.dll differ
diff --git a/applications/SLChat/bin/Debug/keywords.txt b/applications/SLChat/bin/Debug/keywords.txt
index 6f8c8b68..1c2ab208 100644
--- a/applications/SLChat/bin/Debug/keywords.txt
+++ b/applications/SLChat/bin/Debug/keywords.txt
@@ -1,1509 +1,1511 @@
-X
-Y
-Z
-VotedForCandidate
-AddFlags
-Everyone
-ReservedNewbie
-MapData
-AddItem
-MeanCollision
-RezScript
-AvatarSitResponse
-InventoryAssetResponse
-KillObject
-ProposalID
-SerialNum
-Duration
-ScriptQuestion
-AddCircuitCode
-UseCircuitCode
-ViewerCircuitCode
-ScriptAnswerYes
-PartnerID
-DirLandQuery
-TeleportStart
-EmpoweredBlock
-LogMessages
-DropGroupIM
-AboutText
-VisualParam
-GroupPrims
-SelectedPrims
-ID
-UUIDNameRequest
-UUIDGroupNameRequest
-MoneyTransactionsRequest
-GroupAccountTransactionsRequest
-MapNameRequest
-MailTaskSimRequest
-LandScriptsRequest
-UpdateSimulator
-BillableFactor
-ObjectBonusFactor
-EnableSimulator
-DisableSimulator
-ConfirmEnableSimulator
-LayerType
-ParcelOverlay
-AdjustBalance
-GroupOwned
-IP
-ChatFromViewer
-FirstLogin
-GroupTitle
-MapLayerReply
-CompoundMsgID
-CameraConstraint
-DownloadTotals
-ChatMessage
-ErrorValue
-GenCounter
-FrozenData
-URLBlock
-ChildAgentDying
-To
-ParcelDirFeeCurrent
-ObjectDuplicate
-InventoryData
-ReplyData
-ResetList
-SimulatorPauseState
-MediaID
-RedirectGridX
-RedirectGridY
-TransferID
-Transacted
-TexturesChanged
-UserLookAt
-TestBlock1
-SensedData
-UpdateBlock
-EmpoweredID
-ClassifiedGodDelete
-LocationPos
-ObjectGrabUpdate
-TaxDate
-StartDateTime
-ObjectUpdateCached
-Packets
-FailureType
-UpdateGroupInfo
-InventoryFile
-ObjectPermissions
-RevokePermissions
-UpdateFlags
-ObjectExportSelected
-RezSelected
-AutoPilot
-UpdateMuteListEntry
-RemoveMuteListEntry
-SetSimStatusInDatabase
-SetSimPresenceInDatabase
-CameraProperty
-GroupRecallBallot
-BrushSize
-StartExpungeProcess
-SimulatorSetMap
-RegionPresenceRequestByRegionID
-TransferEnergy
-ParcelObjectOwnersReply
-GroupMembersReply
-GroupOfficersAndMembersReply
-RequestRegionInfo
-AABBMax
-RequestPayPrice
-SimulatorPresentAtLocation
-AgentRequestSit
-AABBMin
-ClassifiedFlags
-ControlFlags
-TeleportRequest
-SpaceLocationTeleportRequest
-LeaderBoardRequest
-ScriptTeleportRequest
-DateUTC
-TaskIDs
-RequestResult
-ReputationAgentAssign
-CanAcceptAgents
-ObjectSaleInfo
-KillChildAgents
-Balance
-DerezContainer
-ObjectData
-CameraAtAxis
-InfoBlock
-OwnershipCost
-AvatarNotesUpdate
-PID
-TimeString
-DirPopularReply
-TerrainHeightRange00
-SimData
-TerrainHeightRange01
-TerrainHeightRange10
-TerrainHeightRange11
-UpdateInventoryItem
-MoveInventoryItem
-CopyInventoryItem
-RemoveInventoryItem
-CreateInventoryItem
-PathTwistBegin
-CRC
-AttachmentPoint
-TelehubBlock
-FOVBlock
-StartLocationData
-PositionData
-TimeSinceLast
-MapImage
-Objects
-URL
-CreationDate
-JointPivot
-RateeID
-FPS
-HasTelehub
-PathEnd
-ScriptDataReply
-MapBlockReply
-PropertiesData
-ViewerEffect
-FreezeUser
-OwnerPrims
-ScriptTime
-ObjectGrab
-ToAgentID
-ProxyBlock
-SimulatorMapUpdate
-TransferPacket
-ObjectName
-OriginalName
-CompletePingCheck
-OnlineStatus
-TrackOnlineStatus
-IgnoreOnlineStatus
-ObjectDrop
-UseBigPackets
-ParcelAccessListReply
-RpcChannelReply
-RegionPresenceResponse
-AgentPresenceResponse
-CharterMember
-EdgeData
-NameData
-SimName
-UserReport
-DownloadPriority
-ToAgentId
-Mag
-DirPopularQuery
-ParcelPropertiesRequestByID
-ObjectLink
-RpcScriptReplyInbound
-BoardData
-RezData
-RemoveInventoryObjects
-Officer
-GroupProposalBallot
-RPCServerIP
-Far
-GodSessionID
-ViewerDigest
-FLAboutText
-RegionHandshakeReply
-GroupActiveProposalItemReply
-MapItemReply
-Seconds
-UpdateUserInfo
-AggregatePermTexturesOwner
-Set
-Key
-NewName
-AgentID
-OnlineStatusRequest
-DataAgentAccessRequest
-EventNotificationRemoveRequest
-Arc
-NewFolderID
-RegionX
-RegionY
-UUIDSoundTriggerFar
-RequestData
-Msg
-Top
-MiscStats
-Pos
-ImageID
-DataPacket
-ObjectDehinge
-You
-ScriptControlChange
-LoadURL
-SetCPURatio
-NameValueData
-AtomicPassObject
-ViewerFrozenMessage
-HealthMessage
-LogTextMessage
-TimeDilation
-Contribution
-SetGroupContribution
-Offline
-SecPerDay
-Members
-FailedResends
-CameraCenter
-CameraLeftAxis
-ExBlock
-Channel
-NetTest
-DiscardLevel
-LayerID
-RatorID
-GrabOffset
-SimPort
-PricePerMeter
-RegionFlags
-VoteResult
-ParcelDirFeeEstimate
-ModifyBlock
-InventoryBlock
-ReplyBlock
-RequireMask
-ValidUntil
-VelocityInterpolateOn
-ClassifiedDelete
-FLImageID
-AllowPublish
-SitName
-OfficerTitle
-RegionsVisited
-RecallID
-DirClassifiedReply
-AvatarClassifiedReply
-ReputationIndividualReply
-MediaURL
-CompleteAgentMovement
-SpaceIP
-ClassifiedID
-LocalID
-RemoveItem
-LogFailedMoneyTransaction
-ViewerStartAuction
-StartAuction
-NameValueName
-AngVelX
-DuplicateFlags
-AngVelY
-AngVelZ
-TextColor
-SlaveID
-Charter
-TargetBlock
-AlertData
-CheckParcelAuctions
-ParcelAuctions
-NameValuePair
-RemoveNameValuePair
-GetNameValuePair
-BulkUpdateInventory
-UpdateTaskInventory
-RemoveTaskInventory
-MoveTaskInventory
-RequestTaskInventory
-ReplyTaskInventory
-DeclineInventory
-AggregatePermInventory
-SimulatorInfo
-MoneyTransactionsReply
-GroupAccountTransactionsReply
-MailTaskSimReply
-WearableData
-StatisticsData
-AccessOK
-Enabled
-Savings
-SimulatorLoad
-InternalRegionIP
-ExternalRegionIP
-CreateGroupRequest
-JoinGroupRequest
-LeaveGroupRequest
-InviteGroupRequest
-LiveHelpGroupRequest
-ServerVersion
-PriceParcelClaimFactor
-BillableArea
-ScriptCount
-ObjectID
-ObjectFlagUpdate
-ActiveOnly
-RequestInventoryAsset
-RedoLand
-TravelAccess
-ChangedGrid
-Details
-LocationX
-SaleType
-ObjectExportReply
-LocationY
-LocationZ
-EconomyData
-HeadRotation
-DeleteOnCompletion
-PublicPort
-CurrentTaxes
-DirClassifiedQuery
-RequestParcelTransfer
-ObjectCapacity
-RequestID
-GranterName
-RequestXfer
-ObjectTaxCurrent
-LightTaxCurrent
-LandTaxCurrent
-GroupTaxCurrent
-FetchInventoryDescendents
-InventoryDescendents
-Descendents
-PurgeInventoryDescendents
-ShowDir
-Timestamp
-GlobalPos
-LimitedToEstate
-GrabOffsetInitial
-IsTrial
-FinalizeLogout
-ObjectDuplicateOnRay
-GroupMembershipCount
-MethodData
-ActivateGestures
-DeactivateGestures
-ProposalData
-PosGlobal
-SearchID
-RezMultipleAttachmentsFromInv
-SearchName
-VersionString
-CreateGroupReply
-ActualArea
-RevokedID
-Message
-ClickAction
-AssetUploadComplete
-EstimatedTaxes
-RequestType
-UUID
-BaseMask
-NetBlock
-GlobalX
-GlobalY
-CopyRotates
-KickUserAck
-TopPick
-SessionID
-GlobalZ
-CallVote
-DeclineFriendship
-FormFriendship
-TerminateFriendship
-TaskData
-SimWideMaxPrims
-TotalPrims
-SourceFilename
-ProfileBegin
-MoneyDetailsRequest
-Request
-GroupAccountDetailsRequest
-GroupActiveProposalsRequest
-VoteQuorum
-StringValue
-ClosestSimulator
-Version
-OtherCount
-ChatData
-IsGroupOwned
-EnergyEfficiency
-MaxPlace
-PickInfoUpdate
-PickDelete
-ScriptReset
-Requester
-RevokerID
-ElectionID
-ForSale
-NearestLandingRegionReply
-RecordAgentPresence
-EraseAgentPresence
-ParcelID
-Godlike
-TotalDebits
-Direction
-Appearance
-HealthData
-LeftAxis
-PositionBlock
-LocationBlock
-ObjectImage
-TerrainStartHeight00
-TerrainStartHeight01
-TerrainStartHeight10
-ObjectHinge
-TerrainStartHeight11
-MetersPerGrid
-WaterHeight
-FetchInventoryReply
-MoneySummaryReply
-GroupAccountSummaryReply
-AttachedSound
-ParamInUse
-GodKickUser
-PickName
-TaskName
-SkillFlags
-ParcelGodReserveForNewbie
-SubType
-ObjectCount
-RegionPresenceRequestByHandle
-RezSingleAttachmentFromInv
-ChildAgentUpdate
-XPos
-YPos
-ZPos
-ToID
-ViewerPort
-IsOwnerGroup
-AgentHeightWidth
-VerticalAngle
-WearableType
-AggregatePermNextOwner
-ShowInList
-PositionSuggestion
-UpdateParcel
-ClearAgentSessions
-SetAlwaysRun
-NVPair
-ObjectSpinStart
-UseEstateSun
-LogoutBlock
-RelayLogControl
-RegionID
-Creator
-ViewerRegion
-ProposalText
-DirEventsReply
-EventInfoReply
-GroupElectionInfoReply
-UserInfoReply
-PathRadiusOffset
-SessionInfo
-TextureData
-ChatPass
-TargetID
-DefaultPayPrice
-UserLocation
-MaxPrims
-RegionIP
-LandmarkID
-InitiateDownload
-Name
-OtherCleanTime
-TeleportPriceExponent
-Gain
-VelX
-PacketAck
-PathSkew
-Negative
-VelY
-SimulatorShutdownRequest
-NearestLandingRegionRequest
-VelZ
-OtherID
-MapLayerRequest
-PatchVersion
-ObjectScale
-TargetIP
-Redo
-MoneyBalance
-TrackAgent
-MaxX
-Data
-MaxY
-TextureAnim
-ReturnIDs
-Date
-GestureUpdate
-AgentWearablesUpdate
-AgentDataUpdate
-Hash
-Left
-Mask
-ForceMouselook
-RequestLocationGetAccess
-Success
-ObjectGroup
-SunHour
-MinX
-ScriptSensorReply
-MinY
-Command
-Desc
-AttachmentNeedsSave
-HistoryItemData
-AgentCachedTexture
-East
-Subject
-GodExpungeUser
-QueryReplies
-ObjectCategory
-Time
-CreateLandmarkForEvent
-ParentID
-Ping
-Perp
-Code
-InvType
-AgentFOV
-BulkMoneyTransfer
-Audible
-AuctionData
-IDBlock
-ReputationData
-West
-ElectionData
-Undo
-Info
-Area
-Behavior
-SimCrashed
-Text
-AgentToNewRegion
-PriceGroupCreate
-ObjectShape
-PosX
-PosY
-MuteCRC
-PosZ
-Size
-FromAddress
-Body
-FileData
-List
-KickUser
-OtherPrims
-RunTime
-RpcScriptRequestInboundForward
-More
-Majority
-SenderID
-MetersTraveled
-Stat
-FromAgentID
-Item
-SoundID
-User
-RemoteInfos
-Vote
-Prey
-UsecSinceStart
-RayStart
-ParcelData
-CameraUpAxis
-ScriptDialog
-MasterParcelData
-Invalid
-MinPlace
-ProfileCurve
-ParcelAccessListUpdate
-MuteListUpdate
-SendPacket
-SendXferPacket
-LastName
-From
-Port
-MemberTitle
-LogParcelChanges
-DeRezObject
-IsTemporary
-IsComplete
-InsigniaID
-CheckFlags
-TransferPriority
-EventID
-FromAgentId
-Type
-ReportData
-LeaderBoardData
-RequestBlock
-GrantData
-DetachAttachmentIntoInv
-ParcelDisableObjects
-Sections
-GodLevel
-StartGroupIM
-PayPriceReply
-QueryID
-CameraEyeOffset
-AgentPosition
-GrabPosition
-GrantModification
-RevokeModification
-OnlineNotification
-OfflineNotification
-SendPostcard
-RequestFlags
-MoneyHistoryRequest
-MoneySummaryRequest
-GroupMoneyHistoryRequest
-GroupAccountSummaryRequest
-ParamValue
-GroupVoteHistoryRequest
-Checksum
-MaxAgents
-CreateNewOutfitAttachments
-RegionHandle
-TeleportProgress
-AgentQuitCopy
-LocationValid
-ToViewer
-ParcelName
-InviteOfficers
-PriceObjectRent
-ConnectAgentToUserserver
-ConnectToUserserver
-OfferCallingCard
-AgentAccess
-AcceptCallingCard
-DeclineCallingCard
-DataHomeLocationReply
-EventLocationReply
-UserLoginLocationReply
-UserSimLocationReply
-SpaceLoginLocationReply
-TerseDateID
-ObjectOwner
-AssetID
-AlertMessage
-AgentAlertMessage
-EstateOwnerMessage
-ParcelMediaCommandMessage
-Auction
-Category
-FilePath
-ItemFlags
-Invoice
-IntervalDays
-PathScaleX
-FromTaskID
-TimeInfo
-PathScaleY
-PublicCount
-ParcelJoin
-SimulatorBlock
-UserBlock
-GroupID
-AgentVel
-RequestImage
-NetStats
-AgentPos
-AgentSit
-Material
-ObjectDeGrab
-VelocityInterpolateOff
-AuthorizedBuyerID
-RemoveMemberFromGroup
-GroupIM
-AvatarPropertiesReply
-GroupPropertiesReply
-GroupProfileReply
-Participants
-SimOwner
-SalePrice
-Animation
-CurrentDividend
-OwnerID
-NearestLandingRegionUpdated
-PassToAgent
-PreyAgent
-SimStats
-Options
-LogoutReply
-ObjectLocalID
-Dropped
-Destination
-MasterID
-TransferData
-WantToMask
-AvatarData
-ParcelSelectObjects
-ExtraParams
-LogLogin
-CreatorID
-Summary
-BuyObjectInventory
-FetchInventory
-InventoryID
-PacketNumber
-SetFollowCamProperties
-ClearFollowCamProperties
-SimulatorThrottleSettings
-SequenceID
-DataServerLogout
-NameValue
-PathShearX
-PathShearY
-ElectionType
-Velocity
-SecPerYear
-FirstName
-AttachedSoundGainChange
-LocationID
-Running
-ObjectImportReply
-AgentThrottle
-NeighborList
-PathTaperX
-PathTaperY
-GranterBlock
-UseCachedMuteList
-FailStats
-StartGroupRecall
-Tempfile
-FounderName
-BuyerID
-DirPeopleReply
-TransferInfo
-AvatarPickerRequestBackend
-AvatarPropertiesRequestBackend
-UpdateData
-ReporterID
-GranterID
-ButtonLabel
-WantToText
-ReportType
-DataBlock
-SimulatorReady
-AnimationSourceList
-RefreshViewer
-SubscribeLoad
-UnsubscribeLoad
-Packet
-UndoLand
-SimAccess
-MembershipFee
-CreateInventoryFolder
-UpdateInventoryFolder
-MoveInventoryFolder
-RemoveInventoryFolder
-MoneyData
-ObjectDeselect
-NewAssetID
-ObjectAdd
-RayEndIsIntersection
-CompleteAuction
-CircuitCode
-AgentMovementComplete
-ViewerIP
-Header
-GestureFlags
-XferID
-StatValue
-PickID
-TaskID
-GridsPerEdge
-RayEnd
-Throttles
-UpAxis
-AgentTextures
-Radius
-OffCircuit
-Access
-SquareMetersCredit
-Filename
-SecuredTemplateChecksumRequest
-TemplateChecksumRequest
-AgentPresenceRequest
-ClassifiedInfoRequest
-ParcelInfoRequest
-ParcelObjectOwnersRequest
-TeleportLandmarkRequest
-EventInfoRequest
-MovedIntoSimulator
-ChatFromSimulator
-PickInfoRequest
-MoneyBalanceRequest
-DirPeopleQuery
-GroupElectionInfoRequest
-GroupMembersRequest
-GroupOfficersAndMembersRequest
-TextureID
-OldFolderID
-UserInfoRequest
-LandCollidersRequest
-Handle
-StartParcelRenameAck
-StateLoad
-ButtonIndex
-CurrentElectionID
-GetScriptRunning
-SetScriptRunning
-Health
-FileID
-CircuitInfo
-ObjectBuy
-ProfileEnd
-Effect
-TestMessage
-ScriptMailRegistration
-AgentSetAppearance
-AvatarAppearance
-RegionData
-RequestingRegionData
-LandingRegionData
-SitTransform
-TerrainBase0
-SkillsMask
-AtAxis
-TerrainBase1
-Reason
-TerrainBase2
-TerrainBase3
-Params
-PingID
-Height
-Region
-MoneyHistoryReply
-GroupMoneyHistoryReply
-TelehubInfo
-StateSave
-AgentAnimation
-AvatarAnimation
-LogDwellTime
-ParcelGodMarkAsContent
-UsePhysics
-JointType
-TaxEstimate
-ObjectTaxEstimate
-LightTaxEstimate
-TeleportLandingStatusChanged
-LandTaxEstimate
-GroupTaxEstimate
-Buttons
-Sender
-Dialog
-DestID
-PricePublicObjectDelete
-ObjectDelete
-Delete
-EventGodDelete
-LastTaxDate
-MapImageID
-EndDateTime
-TerrainDetail0
-TerrainDetail1
-TerrainDetail2
-TerrainDetail3
-Offset
-ObjectDelink
-TargetObject
-IsEstateManager
-CancelAuction
-ObjectDetach
-Compressed
-PathBegin
-BypassRaycast
-WinnerID
-ChannelType
-NumberNonExemptMembers
-NonExemptMembers
-Agents
-SimulatorStart
-Enable
-RevokedBlock
-MemberData
-ImageNotInDatabase
-StartDate
-AnimID
-Serial
-GroupElectionBallot
-ControlPort
-ModifyLand
-Digest
-Victim
-Script
-TemplateChecksumReply
-PickInfoReply
-MoneyBalanceReply
-RoutedMoneyBalanceReply
-RegionInfo
-Sequence
-GodUpdateRegionInfo
-LocalX
-LocalY
-StartAnim
-Location
-Action
-SearchDir
-Active
-TransferRequest
-ScriptSensorRequest
-MoneyTransferRequest
-EjectGroupMemberRequest
-SkillsText
-Resent
-Center
-SharedData
-PSBlock
-UUIDNameBlock
-Viewer
-Method
-TouchName
-CandidateID
-ParamData
-GodlikeMessage
-SystemMessage
-BodyRotation
-StartGroupElection
-SearchRegions
-Ignore
-AnimationData
-StatID
-ItemID
-AvatarStatisticsReply
-ScriptDialogReply
-RegionIDAndHandleReply
-CameraAtOffset
-VoteID
-ParcelGodForceOwner
-InviteData
-CandidateData
-PCode
-SearchPos
-PreyID
-TerrainLowerLimit
-EventFlags
-TallyVotes
-GroupInfoUpdated
-Result
-LookAt
-PayButton
-SelfCount
-PacketCount
-ParcelBuyPass
-SimHandle
-Identified
-OldItemID
-RegionPort
-PriceEnergyUnit
-Bitmap
-TrackAgentSession
-CacheMissType
-VFileID
-Response
-GroupInsigniaID
-FromID
-Online
-KickFlags
-SysCPU
-EMail
-InviteMembers
-IncludeMembers
-AggregatePermTextures
-ChatChannel
-ReturnID
-ObjectAttach
-TargetPort
-ObjectSpinStop
-FullID
-ActivateGroup
-SysGPU
-StartLure
-SysRAM
-ObjectPosition
-SitPosition
-StartTime
-BornOn
-CameraCollidePlane
-EconomyDataRequest
-TeleportLureRequest
-FolderID
-RegionHandleRequest
-GestureRequest
-ScriptDataRequest
-AgentWearablesRequest
-MapBlockRequest
-LureID
-CopyCenters
-RegisterNewAgent
-TotalColliderCount
-ParamList
-InventorySerial
-EdgeDataPacket
-AvatarPickerReply
-ParcelDwellReply
-IsForSale
-MuteID
-MeanCollisionAlert
-CanAcceptTasks
-ItemData
-AnimationList
-PassObject
-Reputation
-IntValue
-TargetType
-Amount
-UpdateAttachment
-RemoveAttachment
-HeightWidthBlock
-RequestObjectPropertiesFamily
-ObjectPropertiesFamily
-UserData
-SessionBlock
-IsReadable
-ReputationMax
-PathCurve
-ReputationMin
-Status
-AlreadyVoted
-ElectionInitiator
-PlacesReply
-DirPlacesReply
-ParcelBuy
-DirFindQueryBackend
-DirPlacesQueryBackend
-DirPeopleQueryBackend
-DirGroupsQueryBackend
-DirClassifiedQueryBackend
-DirPicksQueryBackend
-DirLandQueryBackend
-DirPopularQueryBackend
-SnapshotID
-Aspect
-LogoutDemand
-HistoryData
-VoteData
-EstimatedDividend
-ParamSize
-VoteCast
-EveryoneMask
-CastsShadows
-SetSunPhase
-ObjectSpinUpdate
-MaturePublish
-UseExistingAsset
-ParcelLocalID
-TeleportCancel
-UnixTime
-QueryFlags
-LastExecFroze
-AlwaysRun
-Bottom
-ButtonData
-SoundData
-ViewerStats
-RegionHandshake
-Description
-ObjectDescription
-ParamType
-UUIDNameReply
-UUIDGroupNameReply
-SaveAssetIntoInventory
-UserInfo
-AnimSequenceID
-NVPairs
-ParcelAccessListRequest
-UserListRequest
-MuteListRequest
-StartPeriod
-RpcChannelRequest
-PlacesQuery
-DirPlacesQuery
-Distance
-SortOrder
-Hunter
-TotalScriptCount
-SunAngVelocity
-InventoryUpdate
-ImagePacket
-BinaryBucket
-StartGroupProposal
-EnergyLevel
-PriceForListing
-Scale
-ParentEstateID
-Extra2
-Throttle
-SimIP
-GodID
-TeleportMinPrice
-VoteItem
-ObjectRotation
-SitRotation
-SnapSelection
-TerrainRaiseLimit
-Quorum
-TokenBlock
-AgentBlock
-CommandBlock
-PricePublicObjectDecay
-SpawnPointPos
-AttachedSoundCutoffRadius
-VolumeDetail
-TasksPaused
-Range
-FromAgentName
-AddModifyAbility
-RemoveModifyAbility
-PublicIP
-TeleportFailed
-OnlineStatusReply
-DataAgentAccessReply
-RequestLocationGetAccessReply
-RequestAvatarInfo
-PreloadSound
-ScreenshotID
-OldestUnacked
-SimulatorIP
-ObjectImport
-MoneyMax
-Value
-JointAxisOrAnchor
-Test0
-MoneyMin
-Test1
-Test2
-SunPhase
-Place
-Phase
-ParcelDivide
-PriceObjectClaim
-VoteTime
-Field
-Ratio
-JoinGroupReply
-LiveHelpGroupReply
-Agent
-Score
-ExpungeData
-Image
-ObjectClickAction
-Delta
-InitiateUpload
-Parameter
-Flags
-Plane
-Width
-VoteText
-Right
-DirFindQuery
-Textures
-EventData
-Final
-TelehubPos
-ReportAutosaveCrash
-Reset
-CreateTrustedCircuit
-DenyTrustedCircuit
-Codec
-Level
-Modal
-ChildAgentUnknown
-LandingType
-ScriptRunningReply
-MoneyDetailsReply
-Reply
-TelehubRot
-RequestFriendship
-AcceptFriendship
-GroupAccountDetailsReply
-DwellInfo
-AgentResume
-ItemType
-MailFilter
-Disconnect
-SimPosition
-SimWideTotalPrims
-Index
-BaseFilename
-SimFilename
-LastOwnerID
-EmailMessageRequest
-MapItemRequest
-AgentCount
-InitializeLure
-HelloBlock
-FuseBlock
-MessageBlock
-ClassifiedInfoUpdate
-RegionPos
-ParcelMediaUpdate
-GridX
-GridY
-AuctionID
-VoteType
-CategoryID
-Token
-AggregatePerms
-StartParcelRemoveAck
-ObjectSelect
-ForceObjectSelect
-Price
-SunDirection
-ChangeInventoryItemFlags
-Force
-TransactionBlock
-PowersMask
-Stamp
-RelatedID
-TotalCredits
-State
-TextureIndex
-SimPaused
-InviteeID
-ParcelReclaim
-Money
-PathTwist
-AuthBuyerID
-Color
-SourceType
-World
-QueryData
-Users
-SysOS
-Notes
-AvatarID
-FounderID
-StipendEstimate
-LocationLookAt
-Sound
-Cover
-TextureEntry
-SquareMetersCommitted
-ChannelID
-Dwell
-North
-AgentUpdate
-PickGodDelete
-UpdateInventoryItemAsset
-HostName
-PriceParcelClaim
-ParcelClaim
-ProfileHollow
-Count
-South
-Entry
-ObjectUpdateCompressed
-Group
-AgentPause
-InternalScriptMail
-FindAgent
-AgentData
-FolderData
-AssetBlock
-CloseCircuit
-LogControl
-TeleportFinish
-PathRevolutions
-ClassifiedInfoReply
-ParcelInfoReply
-LandCollidersReply
-AutosaveData
-SetStartLocation
-PassHours
-AttachmentPt
-ParcelFlags
-NumVotes
-AvatarPickerRequest
-TeleportLocationRequest
-DataHomeLocationRequest
-EventNotificationAddRequest
-ParcelDwellRequest
-ViewerLoginLocationRequest
-ViewerSimLocationRequest
-EventLocationRequest
-EndPeriod
-SetStartLocationRequest
-UserLoginLocationRequest
-QueryStart
-AvatarTextureUpdate
-RequestGrantedProxies
-GrantedProxies
-RPCServerPort
-Bytes
-Extra
-ForceScriptControlRelease
-ParcelRelease
-VFileType
-ImageData
-SpaceServerSimulatorTimeMessage
-SimulatorViewerTimeMessage
-Rotation
-Selection
-TransactionData
-OperationData
-ExpirationDate
-AgentName
-ParcelDeedToGroup
-DirPicksReply
-AvatarPicksReply
-AgentInfo
-MoneyTransferBackend
-NextOwnerMask
-MuteData
-PassPrice
-SourceID
-TotalScriptTime
-ShowMembersInGroupDir
-TeleportFlags
-AssetData
-SlaveParcelData
-MultipleObjectUpdate
-ObjectUpdate
-ImprovedTerseObjectUpdate
-ConfirmXferPacket
-StartPingCheck
-SimWideDeletes
-UserListReply
-IsPhantom
-AgentList
-RezObject
-TaskLocalID
-ClaimDate
-MergeParcel
-Priority
-Building
-QueryText
-ReturnType
-FetchFolders
-SimulatorPublicHostBlock
-HeaderData
-GroupBlock
-RequestMultipleObjects
-RetrieveInstantMessages
-DequeueInstantMessages
-OpenCircuit
-SecureSessionID
-CrossedRegion
-DirGroupsReply
-AvatarGroupsReply
-EmailMessageReply
-GroupVoteHistoryItemReply
-ViewerPosition
-Position
-ParentEstate
-MuteName
-StartParcelRename
-BulkParcelRename
-ParcelRename
-ViewerFilename
-Positive
-UserReportInternal
-AvatarPropertiesRequest
-ParcelPropertiesRequest
-GroupPropertiesRequest
-GroupProfileRequest
-AgentDataUpdateRequest
-PriceObjectScaleFactor
-DirPicksQuery
-OpenEnrollment
-GroupData
-PauseBlock
-RequestGodlikePowers
-GrantGodlikePowers
-TransactionID
-DestinationID
-Controls
-FirstDetachAll
-EstateID
-ImprovedInstantMessage
-AgentQuit
-WantToFlags
-CheckParcelSales
-ParcelSales
-CurrentInterval
-PriceRentLight
-MediaAutoScale
-NeighborBlock
-LayerData
-NVPairData
-TeleportLocal
-LayersPaused
-VoteInitiator
-MailPingBounce
-TypeData
-OwnerIDs
-SystemKickUser
-ErrorCode
-SLXML_ID
-TransactionTime
-TimeToLive
-StartParcelRemove
-BulkParcelRemove
-DirGroupsQuery
-BonusEstimate
-MusicURL
-CompleteLure
-ParcelPrimBonus
-EjectUser
-CoarseLocationUpdate
-ChildAgentPositionUpdate
-GroupIndex
-GroupName
-PriceParcelRent
-SimStatus
-TransactionSuccess
-LureType
-GroupMask
-SitObject
-AssetNum
-Override
-LocomotionState
-PriceUpload
-RemoveParcel
-ConfirmAuctionStart
-RpcScriptRequestInbound
-ParcelReturnObjects
-TotalObjects
-ObjectExtraParams
-Questions
-TransferAbort
-TransferInventory
-LandScriptsReply
-Collada_ID
-RayTargetID
-ClaimPrice
-ObjectProperties
-ParcelProperties
-LogoutRequest
-AssetUploadRequest
-ReputationIndividualRequest
-MajorVersion
-MinorVersion
-SimulatorAssign
-TransactionType
-AvatarPropertiesUpdate
-ParcelPropertiesUpdate
-FetchItems
-AbortXfer
-DeRezAck
-TakeControls
-DirLandReply
-SpaceLocationTeleportReply
-IMViaEMail
-StartExpungeProcessAck
-RentPrice
-GenericMessage
-ChildAgentAlive
-SpawnPointBlock
-AttachmentBlock
-RecallData
-OfficerData
-GroupOfficer
-ObjectMaterial
-OwnerName
-AvatarNotesReply
-CacheID
-OwnerMask
+X
+Y
+Z
+VotedForCandidate
+AddFlags
+Everyone
+ReservedNewbie
+MapData
+AddItem
+MeanCollision
+RezScript
+AvatarSitResponse
+InventoryAssetResponse
+KillObject
+ProposalID
+SerialNum
+Duration
+ScriptQuestion
+AddCircuitCode
+UseCircuitCode
+ViewerCircuitCode
+ScriptAnswerYes
+PartnerID
+DirLandQuery
+TeleportStart
+EmpoweredBlock
+LogMessages
+DropGroupIM
+AboutText
+VisualParam
+GroupPrims
+SelectedPrims
+ID
+UUIDNameRequest
+UUIDGroupNameRequest
+MoneyTransactionsRequest
+GroupAccountTransactionsRequest
+MapNameRequest
+MailTaskSimRequest
+LandScriptsRequest
+UpdateSimulator
+BillableFactor
+ObjectBonusFactor
+EnableSimulator
+DisableSimulator
+ConfirmEnableSimulator
+LayerType
+ParcelOverlay
+AdjustBalance
+GroupOwned
+IP
+ChatFromViewer
+FirstLogin
+GroupTitle
+MapLayerReply
+CompoundMsgID
+CameraConstraint
+DownloadTotals
+ErrorValue
+GenCounter
+FrozenData
+URLBlock
+ChildAgentDying
+To
+ParcelDirFeeCurrent
+ObjectDuplicate
+InventoryData
+ReplyData
+ResetList
+SimulatorPauseState
+MediaID
+RedirectGridX
+RedirectGridY
+TransferID
+Transacted
+TexturesChanged
+UserLookAt
+TestBlock1
+SensedData
+UpdateBlock
+EmpoweredID
+ClassifiedGodDelete
+LocationPos
+ObjectGrabUpdate
+TaxDate
+StartDateTime
+ObjectUpdateCached
+Packets
+FailureType
+UpdateGroupInfo
+InventoryFile
+ObjectPermissions
+RevokePermissions
+UpdateFlags
+ObjectExportSelected
+RezSelected
+AutoPilot
+UpdateMuteListEntry
+RemoveMuteListEntry
+SetSimStatusInDatabase
+SetSimPresenceInDatabase
+CameraProperty
+GroupRecallBallot
+BrushSize
+StartExpungeProcess
+SimulatorSetMap
+RegionPresenceRequestByRegionID
+TransferEnergy
+ParcelObjectOwnersReply
+GroupMembersReply
+GroupOfficersAndMembersReply
+RequestRegionInfo
+AABBMax
+RequestPayPrice
+SimulatorPresentAtLocation
+AgentRequestSit
+AABBMin
+ClassifiedFlags
+ControlFlags
+TeleportRequest
+SpaceLocationTeleportRequest
+LeaderBoardRequest
+ScriptTeleportRequest
+DateUTC
+TaskIDs
+RequestResult
+ReputationAgentAssign
+CanAcceptAgents
+ObjectSaleInfo
+KillChildAgents
+Balance
+DerezContainer
+ObjectData
+CameraAtAxis
+InfoBlock
+OwnershipCost
+AvatarNotesUpdate
+PID
+TimeString
+DirPopularReply
+TerrainHeightRange00
+SimData
+TerrainHeightRange01
+TerrainHeightRange10
+TerrainHeightRange11
+UpdateInventoryItem
+MoveInventoryItem
+CopyInventoryItem
+RemoveInventoryItem
+CreateInventoryItem
+PathTwistBegin
+CRC
+AttachmentPoint
+TelehubBlock
+FOVBlock
+StartLocationData
+PositionData
+TimeSinceLast
+MapImage
+Objects
+URL
+CreationDate
+JointPivot
+RateeID
+FPS
+HasTelehub
+PathEnd
+ScriptDataReply
+MapBlockReply
+PropertiesData
+ViewerEffect
+FreezeUser
+OwnerPrims
+ScriptTime
+ObjectGrab
+ToAgentID
+ProxyBlock
+SimulatorMapUpdate
+TransferPacket
+ObjectName
+OriginalName
+CompletePingCheck
+OnlineStatus
+TrackOnlineStatus
+IgnoreOnlineStatus
+ObjectDrop
+UseBigPackets
+ParcelAccessListReply
+RpcChannelReply
+RegionPresenceResponse
+AgentPresenceResponse
+CharterMember
+EdgeData
+NameData
+RegionPushOverride
+SimName
+UserReport
+DownloadPriority
+ToAgentId
+Mag
+DirPopularQuery
+ParcelPropertiesRequestByID
+ObjectLink
+RpcScriptReplyInbound
+BoardData
+RezData
+RemoveInventoryObjects
+Officer
+GroupProposalBallot
+RPCServerIP
+Far
+GodSessionID
+ViewerDigest
+FLAboutText
+RegionHandshakeReply
+GroupActiveProposalItemReply
+MapItemReply
+Seconds
+UpdateUserInfo
+AggregatePermTexturesOwner
+Set
+Key
+NewName
+AgentID
+OnlineStatusRequest
+DataAgentAccessRequest
+EventNotificationRemoveRequest
+Arc
+NewFolderID
+RegionX
+RegionY
+RequestData
+Msg
+Top
+MiscStats
+Pos
+ImageID
+DataPacket
+ObjectDehinge
+You
+ScriptControlChange
+LoadURL
+SetCPURatio
+NameValueData
+AtomicPassObject
+ViewerFrozenMessage
+HealthMessage
+LogTextMessage
+TimeDilation
+Contribution
+SetGroupContribution
+Offline
+SecPerDay
+Members
+FailedResends
+CameraCenter
+CameraLeftAxis
+ExBlock
+Channel
+NetTest
+DiscardLevel
+LayerID
+RatorID
+GrabOffset
+SimPort
+PricePerMeter
+RegionFlags
+VoteResult
+ParcelDirFeeEstimate
+ModifyBlock
+InventoryBlock
+ReplyBlock
+RequireMask
+ValidUntil
+VelocityInterpolateOn
+ClassifiedDelete
+FLImageID
+AllowPublish
+SitName
+OfficerTitle
+RegionsVisited
+RecallID
+DirClassifiedReply
+AvatarClassifiedReply
+ReputationIndividualReply
+MediaURL
+CompleteAgentMovement
+SpaceIP
+ClassifiedID
+LocalID
+RemoveItem
+LogFailedMoneyTransaction
+ViewerStartAuction
+StartAuction
+NameValueName
+AngVelX
+DuplicateFlags
+AngVelY
+AngVelZ
+TextColor
+SlaveID
+Charter
+TargetBlock
+AlertData
+CheckParcelAuctions
+ParcelAuctions
+NameValuePair
+RemoveNameValuePair
+GetNameValuePair
+BulkUpdateInventory
+UpdateTaskInventory
+RemoveTaskInventory
+MoveTaskInventory
+RequestTaskInventory
+ReplyTaskInventory
+DeclineInventory
+AggregatePermInventory
+SimulatorInfo
+MoneyTransactionsReply
+GroupAccountTransactionsReply
+MailTaskSimReply
+WearableData
+StatisticsData
+AccessOK
+Enabled
+Savings
+SimulatorLoad
+InternalRegionIP
+ExternalRegionIP
+CreateGroupRequest
+JoinGroupRequest
+LeaveGroupRequest
+InviteGroupRequest
+LiveHelpGroupRequest
+ServerVersion
+PriceParcelClaimFactor
+BillableArea
+ScriptCount
+ObjectID
+ObjectFlagUpdate
+ActiveOnly
+RequestInventoryAsset
+RedoLand
+TravelAccess
+ChangedGrid
+Details
+LocationX
+SaleType
+ObjectExportReply
+LocationY
+LocationZ
+EconomyData
+HeadRotation
+DeleteOnCompletion
+PublicPort
+CurrentTaxes
+DirClassifiedQuery
+RequestParcelTransfer
+ObjectCapacity
+RequestID
+GranterName
+RequestXfer
+ObjectTaxCurrent
+LightTaxCurrent
+LandTaxCurrent
+GroupTaxCurrent
+FetchInventoryDescendents
+InventoryDescendents
+Descendents
+PurgeInventoryDescendents
+ShowDir
+Timestamp
+GlobalPos
+LimitedToEstate
+GrabOffsetInitial
+IsTrial
+FinalizeLogout
+ObjectDuplicateOnRay
+GroupMembershipCount
+MethodData
+ActivateGestures
+DeactivateGestures
+ProposalData
+PosGlobal
+SearchID
+RezMultipleAttachmentsFromInv
+SearchName
+VersionString
+CreateGroupReply
+ActualArea
+RevokedID
+Message
+ClickAction
+AssetUploadComplete
+EstimatedTaxes
+RequestType
+UUID
+BaseMask
+NetBlock
+GlobalX
+GlobalY
+CopyRotates
+KickUserAck
+TopPick
+SessionID
+GlobalZ
+CallVote
+DeclineFriendship
+FormFriendship
+TerminateFriendship
+TaskData
+SimWideMaxPrims
+TotalPrims
+SourceFilename
+ProfileBegin
+MoneyDetailsRequest
+Request
+GroupAccountDetailsRequest
+GroupActiveProposalsRequest
+VoteQuorum
+StringValue
+ClosestSimulator
+Version
+OtherCount
+ChatData
+IsGroupOwned
+EnergyEfficiency
+MaxPlace
+PickInfoUpdate
+PickDelete
+ScriptReset
+Requester
+RevokerID
+ElectionID
+ForSale
+NearestLandingRegionReply
+RecordAgentPresence
+EraseAgentPresence
+ParcelID
+Godlike
+TotalDebits
+Direction
+Appearance
+HealthData
+LeftAxis
+PositionBlock
+LocationBlock
+ObjectImage
+TerrainStartHeight00
+TerrainStartHeight01
+TerrainStartHeight10
+ObjectHinge
+TerrainStartHeight11
+MetersPerGrid
+WaterHeight
+FetchInventoryReply
+MoneySummaryReply
+GroupAccountSummaryReply
+AttachedSound
+ParamInUse
+GodKickUser
+PickName
+TaskName
+SkillFlags
+ParcelGodReserveForNewbie
+SubType
+ObjectCount
+RegionPresenceRequestByHandle
+RezSingleAttachmentFromInv
+ChildAgentUpdate
+ToID
+ViewerPort
+IsOwnerGroup
+AgentHeightWidth
+VerticalAngle
+WearableType
+AggregatePermNextOwner
+ShowInList
+PositionSuggestion
+UpdateParcel
+ClearAgentSessions
+SetAlwaysRun
+NVPair
+ObjectSpinStart
+UseEstateSun
+LogoutBlock
+RelayLogControl
+RegionID
+Creator
+ViewerRegion
+ProposalText
+DirEventsReply
+EventInfoReply
+GroupElectionInfoReply
+UserInfoReply
+PathRadiusOffset
+SessionInfo
+TextureData
+ChatPass
+TargetID
+DefaultPayPrice
+UserLocation
+MaxPrims
+RegionIP
+LandmarkID
+InitiateDownload
+Name
+OtherCleanTime
+TeleportPriceExponent
+Gain
+VelX
+PacketAck
+PathSkew
+Negative
+VelY
+SimulatorShutdownRequest
+NearestLandingRegionRequest
+VelZ
+OtherID
+MapLayerRequest
+PatchVersion
+ObjectScale
+TargetIP
+Redo
+MoneyBalance
+TrackAgent
+MaxX
+Data
+MaxY
+TextureAnim
+ReturnIDs
+Date
+GestureUpdate
+AgentWearablesUpdate
+AgentDataUpdate
+Hash
+Left
+Mask
+ForceMouselook
+RequestLocationGetAccess
+Success
+ObjectGroup
+SunHour
+MinX
+ScriptSensorReply
+MinY
+Command
+Desc
+AttachmentNeedsSave
+HistoryItemData
+AgentCachedTexture
+East
+Subject
+GodExpungeUser
+QueryReplies
+ObjectCategory
+Time
+CreateLandmarkForEvent
+ParentID
+Ping
+Perp
+Code
+InvType
+AgentFOV
+BulkMoneyTransfer
+Audible
+AuctionData
+IDBlock
+ReputationData
+West
+ElectionData
+Undo
+Info
+Area
+Behavior
+SimCrashed
+Text
+AgentToNewRegion
+PriceGroupCreate
+ObjectShape
+PosX
+PosY
+MuteCRC
+PosZ
+Size
+FromAddress
+Body
+FileData
+List
+KickUser
+OtherPrims
+RunTime
+RpcScriptRequestInboundForward
+More
+Majority
+SenderID
+MetersTraveled
+Stat
+FromAgentID
+Item
+SoundID
+User
+RemoteInfos
+Vote
+Prey
+UsecSinceStart
+RayStart
+ParcelData
+CameraUpAxis
+ScriptDialog
+MasterParcelData
+Invalid
+MinPlace
+ProfileCurve
+ParcelAccessListUpdate
+MuteListUpdate
+SendPacket
+SendXferPacket
+LastName
+From
+Port
+MemberTitle
+LogParcelChanges
+DeRezObject
+IsTemporary
+IsComplete
+InsigniaID
+CheckFlags
+TransferPriority
+EventID
+FromAgentId
+Type
+ChatType
+ReportData
+LeaderBoardData
+RequestBlock
+GrantData
+DetachAttachmentIntoInv
+ParcelDisableObjects
+Sections
+GodLevel
+StartGroupIM
+PayPriceReply
+QueryID
+CameraEyeOffset
+AgentPosition
+GrabPosition
+GrantModification
+RevokeModification
+OnlineNotification
+OfflineNotification
+SendPostcard
+RequestFlags
+MoneyHistoryRequest
+MoneySummaryRequest
+GroupMoneyHistoryRequest
+GroupAccountSummaryRequest
+ParamValue
+GroupVoteHistoryRequest
+Checksum
+MaxAgents
+CreateNewOutfitAttachments
+RegionHandle
+TeleportProgress
+AgentQuitCopy
+LocationValid
+ToViewer
+ParcelName
+InviteOfficers
+PriceObjectRent
+ConnectAgentToUserserver
+ConnectToUserserver
+OfferCallingCard
+AgentAccess
+AcceptCallingCard
+DeclineCallingCard
+DataHomeLocationReply
+EventLocationReply
+UserLoginLocationReply
+UserSimLocationReply
+SpaceLoginLocationReply
+TerseDateID
+ObjectOwner
+AssetID
+AlertMessage
+AgentAlertMessage
+EstateOwnerMessage
+ParcelMediaCommandMessage
+Auction
+Category
+FilePath
+ItemFlags
+Invoice
+IntervalDays
+PathScaleX
+FromTaskID
+TimeInfo
+PathScaleY
+PublicCount
+ParcelJoin
+SimulatorBlock
+UserBlock
+GroupID
+AgentVel
+RequestImage
+NetStats
+AgentPos
+AgentSit
+Material
+ObjectDeGrab
+VelocityInterpolateOff
+AuthorizedBuyerID
+RemoveMemberFromGroup
+GroupIM
+AvatarPropertiesReply
+GroupPropertiesReply
+GroupProfileReply
+Participants
+SimOwner
+SalePrice
+Animation
+CurrentDividend
+OwnerID
+NearestLandingRegionUpdated
+PassToAgent
+PreyAgent
+SimStats
+Options
+LogoutReply
+ObjectLocalID
+Dropped
+Destination
+MasterID
+TransferData
+WantToMask
+AvatarData
+ParcelSelectObjects
+ExtraParams
+LogLogin
+CreatorID
+Summary
+BuyObjectInventory
+FetchInventory
+InventoryID
+PacketNumber
+SetFollowCamProperties
+ClearFollowCamProperties
+SimulatorThrottleSettings
+SequenceID
+DataServerLogout
+NameValue
+PathShearX
+PathShearY
+ElectionType
+Velocity
+SecPerYear
+FirstName
+AttachedSoundGainChange
+LocationID
+Running
+ObjectImportReply
+AgentThrottle
+NeighborList
+PathTaperX
+PathTaperY
+GranterBlock
+UseCachedMuteList
+FailStats
+StartGroupRecall
+Tempfile
+FounderName
+BuyerID
+DirPeopleReply
+TransferInfo
+AvatarPickerRequestBackend
+AvatarPropertiesRequestBackend
+UpdateData
+ReporterID
+GranterID
+ButtonLabel
+WantToText
+ReportType
+DataBlock
+SimulatorReady
+AnimationSourceList
+RefreshViewer
+SubscribeLoad
+UnsubscribeLoad
+Packet
+UndoLand
+SimAccess
+MembershipFee
+CreateInventoryFolder
+UpdateInventoryFolder
+MoveInventoryFolder
+RemoveInventoryFolder
+MoneyData
+ObjectDeselect
+NewAssetID
+ObjectAdd
+RayEndIsIntersection
+CompleteAuction
+CircuitCode
+AgentMovementComplete
+ViewerIP
+Header
+GestureFlags
+XferID
+StatValue
+PickID
+TaskID
+GridsPerEdge
+RayEnd
+Throttles
+UpAxis
+AgentTextures
+Radius
+OffCircuit
+Access
+SquareMetersCredit
+Filename
+SecuredTemplateChecksumRequest
+TemplateChecksumRequest
+AgentPresenceRequest
+ClassifiedInfoRequest
+ParcelInfoRequest
+ParcelObjectOwnersRequest
+TeleportLandmarkRequest
+EventInfoRequest
+MovedIntoSimulator
+ChatFromSimulator
+PickInfoRequest
+MoneyBalanceRequest
+DirPeopleQuery
+GroupElectionInfoRequest
+GroupMembersRequest
+GroupOfficersAndMembersRequest
+TextureID
+OldFolderID
+UserInfoRequest
+LandCollidersRequest
+Handle
+StartParcelRenameAck
+StateLoad
+ButtonIndex
+CurrentElectionID
+GetScriptRunning
+SetScriptRunning
+Health
+FileID
+CircuitInfo
+ObjectBuy
+ProfileEnd
+Effect
+TestMessage
+ScriptMailRegistration
+AgentSetAppearance
+AvatarAppearance
+RegionData
+RequestingRegionData
+LandingRegionData
+SitTransform
+TerrainBase0
+SkillsMask
+AtAxis
+TerrainBase1
+Reason
+TerrainBase2
+TerrainBase3
+Params
+PingID
+Height
+Region
+MoneyHistoryReply
+GroupMoneyHistoryReply
+TelehubInfo
+StateSave
+AgentAnimation
+AvatarAnimation
+LogDwellTime
+ParcelGodMarkAsContent
+UsePhysics
+JointType
+TaxEstimate
+ObjectTaxEstimate
+LightTaxEstimate
+TeleportLandingStatusChanged
+LandTaxEstimate
+GroupTaxEstimate
+Buttons
+Sender
+Dialog
+DestID
+PricePublicObjectDelete
+ObjectDelete
+Delete
+EventGodDelete
+LastTaxDate
+MapImageID
+EndDateTime
+TerrainDetail0
+TerrainDetail1
+TerrainDetail2
+TerrainDetail3
+Offset
+ObjectDelink
+TargetObject
+IsEstateManager
+CancelAuction
+ObjectDetach
+Compressed
+PathBegin
+BypassRaycast
+WinnerID
+ChannelType
+NumberNonExemptMembers
+NonExemptMembers
+Agents
+SimulatorStart
+Enable
+RevokedBlock
+MemberData
+ImageNotInDatabase
+StartDate
+AnimID
+Serial
+GroupElectionBallot
+ControlPort
+ModifyLand
+Digest
+Victim
+Script
+TemplateChecksumReply
+PickInfoReply
+MoneyBalanceReply
+RoutedMoneyBalanceReply
+RegionInfo
+Sequence
+GodUpdateRegionInfo
+LocalX
+LocalY
+StartAnim
+Location
+Action
+SearchDir
+Active
+TransferRequest
+ScriptSensorRequest
+MoneyTransferRequest
+EjectGroupMemberRequest
+SkillsText
+Resent
+Center
+SharedData
+PSBlock
+UUIDNameBlock
+Viewer
+Method
+TouchName
+CandidateID
+ParamData
+GodlikeMessage
+SystemMessage
+BodyRotation
+StartGroupElection
+SearchRegions
+Ignore
+AnimationData
+StatID
+ItemID
+AvatarStatisticsReply
+ScriptDialogReply
+RegionIDAndHandleReply
+CameraAtOffset
+VoteID
+ParcelGodForceOwner
+InviteData
+CandidateData
+PCode
+SearchPos
+PreyID
+TerrainLowerLimit
+EventFlags
+TallyVotes
+GroupInfoUpdated
+Result
+LookAt
+PayButton
+SelfCount
+PacketCount
+ParcelBuyPass
+SimHandle
+Identified
+OldItemID
+RegionPort
+PriceEnergyUnit
+Bitmap
+TrackAgentSession
+CacheMissType
+VFileID
+Response
+GroupInsigniaID
+FromID
+Online
+KickFlags
+SysCPU
+EMail
+InviteMembers
+IncludeMembers
+AggregatePermTextures
+ChatChannel
+ReturnID
+ObjectAttach
+TargetPort
+ObjectSpinStop
+FullID
+ActivateGroup
+SysGPU
+StartLure
+SysRAM
+ObjectPosition
+SitPosition
+StartTime
+BornOn
+CameraCollidePlane
+EconomyDataRequest
+TeleportLureRequest
+FolderID
+RegionHandleRequest
+GestureRequest
+ScriptDataRequest
+AgentWearablesRequest
+MapBlockRequest
+LureID
+CopyCenters
+RegisterNewAgent
+TotalColliderCount
+ParamList
+InventorySerial
+EdgeDataPacket
+AvatarPickerReply
+ParcelDwellReply
+IsForSale
+MuteID
+MeanCollisionAlert
+CanAcceptTasks
+ItemData
+AnimationList
+PassObject
+Reputation
+IntValue
+TargetType
+Amount
+UpdateAttachment
+RemoveAttachment
+HeightWidthBlock
+RequestObjectPropertiesFamily
+ObjectPropertiesFamily
+UserData
+SessionBlock
+IsReadable
+ReputationMax
+PathCurve
+ReputationMin
+Status
+AlreadyVoted
+ElectionInitiator
+PlacesReply
+DirPlacesReply
+ParcelBuy
+DirFindQueryBackend
+DirPlacesQueryBackend
+DirPeopleQueryBackend
+DirGroupsQueryBackend
+DirClassifiedQueryBackend
+DirPicksQueryBackend
+DirLandQueryBackend
+DirPopularQueryBackend
+SnapshotID
+Aspect
+LogoutDemand
+HistoryData
+VoteData
+EstimatedDividend
+ParamSize
+VoteCast
+EveryoneMask
+CastsShadows
+SetSunPhase
+ObjectSpinUpdate
+MaturePublish
+UseExistingAsset
+ParcelLocalID
+TeleportCancel
+UnixTime
+QueryFlags
+LastExecFroze
+AlwaysRun
+Bottom
+ButtonData
+SoundData
+ViewerStats
+RegionHandshake
+Description
+ObjectDescription
+ParamType
+UUIDNameReply
+UUIDGroupNameReply
+SaveAssetIntoInventory
+UserInfo
+AnimSequenceID
+NVPairs
+ParcelAccessListRequest
+UserListRequest
+MuteListRequest
+StartPeriod
+RpcChannelRequest
+PlacesQuery
+DirPlacesQuery
+Distance
+SortOrder
+Hunter
+TotalScriptCount
+SunAngVelocity
+InventoryUpdate
+ImagePacket
+BinaryBucket
+StartGroupProposal
+EnergyLevel
+PriceForListing
+Scale
+ParentEstateID
+Extra2
+Throttle
+SimIP
+GodID
+TeleportMinPrice
+VoteItem
+ObjectRotation
+SitRotation
+SnapSelection
+SoundTrigger
+TerrainRaiseLimit
+Quorum
+TokenBlock
+AgentBlock
+CommandBlock
+PricePublicObjectDecay
+SpawnPointPos
+AttachedSoundCutoffRadius
+VolumeDetail
+TasksPaused
+Range
+FromAgentName
+AddModifyAbility
+RemoveModifyAbility
+PublicIP
+TeleportFailed
+OnlineStatusReply
+DataAgentAccessReply
+RequestLocationGetAccessReply
+RequestAvatarInfo
+PreloadSound
+ScreenshotID
+OldestUnacked
+SimulatorIP
+ObjectImport
+MoneyMax
+Value
+JointAxisOrAnchor
+Test0
+MoneyMin
+Test1
+Test2
+SunPhase
+Place
+Phase
+ParcelDivide
+PriceObjectClaim
+VoteTime
+Field
+Ratio
+JoinGroupReply
+LiveHelpGroupReply
+Agent
+Score
+ExpungeData
+Image
+ObjectClickAction
+Delta
+InitiateUpload
+Parameter
+Flags
+Plane
+Width
+VoteText
+Right
+DirFindQuery
+Textures
+EventData
+Final
+TelehubPos
+ReportAutosaveCrash
+Reset
+CreateTrustedCircuit
+DenyTrustedCircuit
+Codec
+Level
+Modal
+ChildAgentUnknown
+LandingType
+ScriptRunningReply
+MoneyDetailsReply
+Reply
+TelehubRot
+RequestFriendship
+AcceptFriendship
+GroupAccountDetailsReply
+DwellInfo
+AgentResume
+ItemType
+MailFilter
+Disconnect
+SimPosition
+SimWideTotalPrims
+Index
+BaseFilename
+SimFilename
+LastOwnerID
+EmailMessageRequest
+MapItemRequest
+AgentCount
+InitializeLure
+HelloBlock
+FuseBlock
+MessageBlock
+ClassifiedInfoUpdate
+RegionPos
+ParcelMediaUpdate
+GridX
+GridY
+AuctionID
+VoteType
+CategoryID
+Token
+AggregatePerms
+StartParcelRemoveAck
+ObjectSelect
+ForceObjectSelect
+Price
+SunDirection
+FromName
+ChangeInventoryItemFlags
+Force
+TransactionBlock
+PowersMask
+Stamp
+RelatedID
+TotalCredits
+State
+TextureIndex
+SimPaused
+InviteeID
+ParcelReclaim
+Money
+PathTwist
+AuthBuyerID
+Color
+SourceType
+World
+QueryData
+Users
+SysOS
+Notes
+AvatarID
+FounderID
+EndPointID
+StipendEstimate
+LocationLookAt
+Sound
+Cover
+TextureEntry
+SquareMetersCommitted
+ChannelID
+Dwell
+North
+AgentUpdate
+PickGodDelete
+UpdateInventoryItemAsset
+HostName
+PriceParcelClaim
+ParcelClaim
+ProfileHollow
+Count
+South
+Entry
+ObjectUpdateCompressed
+MuteFlags
+Group
+AgentPause
+InternalScriptMail
+FindAgent
+AgentData
+FolderData
+AssetBlock
+CloseCircuit
+LogControl
+TeleportFinish
+PathRevolutions
+ClassifiedInfoReply
+ParcelInfoReply
+LandCollidersReply
+AutosaveData
+SetStartLocation
+PassHours
+AttachmentPt
+ParcelFlags
+NumVotes
+AvatarPickerRequest
+TeleportLocationRequest
+DataHomeLocationRequest
+EventNotificationAddRequest
+ParcelDwellRequest
+ViewerLoginLocationRequest
+ViewerSimLocationRequest
+EventLocationRequest
+EndPeriod
+SetStartLocationRequest
+UserLoginLocationRequest
+QueryStart
+AvatarTextureUpdate
+RequestGrantedProxies
+GrantedProxies
+RPCServerPort
+Bytes
+Extra
+ForceScriptControlRelease
+ParcelRelease
+VFileType
+ImageData
+SpaceServerSimulatorTimeMessage
+SimulatorViewerTimeMessage
+Rotation
+Selection
+TransactionData
+OperationData
+ExpirationDate
+AgentName
+ParcelDeedToGroup
+DirPicksReply
+AvatarPicksReply
+AgentInfo
+MoneyTransferBackend
+NextOwnerMask
+MuteData
+PassPrice
+SourceID
+TotalScriptTime
+ShowMembersInGroupDir
+TeleportFlags
+AssetData
+SlaveParcelData
+MultipleObjectUpdate
+ObjectUpdate
+ImprovedTerseObjectUpdate
+ConfirmXferPacket
+StartPingCheck
+SimWideDeletes
+UserListReply
+IsPhantom
+AgentList
+RezObject
+TaskLocalID
+ClaimDate
+MergeParcel
+Priority
+Building
+QueryText
+ReturnType
+FetchFolders
+SimulatorPublicHostBlock
+HeaderData
+GroupBlock
+RequestMultipleObjects
+RetrieveInstantMessages
+DequeueInstantMessages
+OpenCircuit
+SecureSessionID
+CrossedRegion
+DirGroupsReply
+AvatarGroupsReply
+EmailMessageReply
+GroupVoteHistoryItemReply
+ViewerPosition
+Position
+ParentEstate
+MuteName
+StartParcelRename
+BulkParcelRename
+ParcelRename
+ViewerFilename
+Positive
+UserReportInternal
+AvatarPropertiesRequest
+ParcelPropertiesRequest
+GroupPropertiesRequest
+GroupProfileRequest
+AgentDataUpdateRequest
+PriceObjectScaleFactor
+DirPicksQuery
+OpenEnrollment
+GroupData
+PauseBlock
+RequestGodlikePowers
+GrantGodlikePowers
+TransactionID
+DestinationID
+Controls
+FirstDetachAll
+EstateID
+ImprovedInstantMessage
+AgentQuit
+WantToFlags
+CheckParcelSales
+ParcelSales
+CurrentInterval
+PriceRentLight
+MediaAutoScale
+NeighborBlock
+LayerData
+NVPairData
+TeleportLocal
+LayersPaused
+VoteInitiator
+MailPingBounce
+TypeData
+OwnerIDs
+SystemKickUser
+ErrorCode
+SLXMLID
+TransactionTime
+TimeToLive
+StartParcelRemove
+BulkParcelRemove
+DirGroupsQuery
+BonusEstimate
+MusicURL
+CompleteLure
+ParcelPrimBonus
+EjectUser
+CoarseLocationUpdate
+ChildAgentPositionUpdate
+GroupIndex
+GroupName
+PriceParcelRent
+SimStatus
+TransactionSuccess
+LureType
+GroupMask
+SitObject
+AssetNum
+Override
+LocomotionState
+PriceUpload
+RemoveParcel
+ConfirmAuctionStart
+RpcScriptRequestInbound
+ParcelReturnObjects
+TotalObjects
+ObjectExtraParams
+Questions
+TransferAbort
+TransferInventory
+LandScriptsReply
+ColladaID
+RayTargetID
+ClaimPrice
+ObjectProperties
+ParcelProperties
+LogoutRequest
+AssetUploadRequest
+ReputationIndividualRequest
+MajorVersion
+MinorVersion
+SimulatorAssign
+TransactionType
+AvatarPropertiesUpdate
+ParcelPropertiesUpdate
+FetchItems
+AbortXfer
+DeRezAck
+TakeControls
+DirLandReply
+SpaceLocationTeleportReply
+MuteType
+IMViaEMail
+StartExpungeProcessAck
+RentPrice
+GenericMessage
+ChildAgentAlive
+SpawnPointBlock
+AttachmentBlock
+RecallData
+OfficerData
+GroupOfficer
+ObjectMaterial
+OwnerName
+AvatarNotesReply
+CacheID
+OwnerMask
TransferInventoryAck
\ No newline at end of file
diff --git a/applications/SLChat/bin/Debug/libsecondlife.dll b/applications/SLChat/bin/Debug/libsecondlife.dll
index c65d3090..3b377048 100644
Binary files a/applications/SLChat/bin/Debug/libsecondlife.dll and b/applications/SLChat/bin/Debug/libsecondlife.dll differ
diff --git a/applications/SLChat/bin/Debug/protocol.txt b/applications/SLChat/bin/Debug/protocol.txt
index bb39cfc5..e3e5f36c 100644
--- a/applications/SLChat/bin/Debug/protocol.txt
+++ b/applications/SLChat/bin/Debug/protocol.txt
@@ -1 +1,10232 @@
-version 1.052 { TestMessage Low NotTrusted Zerocoded { TestBlock1 Single { Test1 U32 } } { NeighborBlock Multiple 4 { Test0 U32 } { Test1 U32 } { Test2 U32 } } } { SecuredTemplateChecksumRequest Fixed 0xFFFFFFFA NotTrusted Unencoded { TokenBlock Single { Token LLUUID } } } { PacketAck Fixed 0xFFFFFFFB NotTrusted Unencoded { Packets Variable { ID U32 } } } { OpenCircuit Fixed 0xFFFFFFFC NotTrusted Unencoded { CircuitInfo Single { IP IPADDR } { Port IPPORT } } } { CloseCircuit Fixed 0xFFFFFFFD NotTrusted Unencoded } { TemplateChecksumRequest Fixed 0xFFFFFFFE NotTrusted Unencoded } { TemplateChecksumReply Fixed 0xFFFFFFFF NotTrusted Unencoded { DataBlock Single { Checksum U32 } { MajorVersion U8 } { MinorVersion U8 } { PatchVersion U8 } { ServerVersion U8 } { Flags U32 } } { TokenBlock Single { Token LLUUID } } } { StartPingCheck High NotTrusted Unencoded { PingID Single { PingID U8 } { OldestUnacked U32 } } } { CompletePingCheck High NotTrusted Unencoded { PingID Single { PingID U8 } } } { AddCircuitCode Low Trusted Unencoded { CircuitCode Single { Code U32 } { SessionID LLUUID } { AgentID LLUUID } } } { UseCircuitCode Low NotTrusted Unencoded { CircuitCode Single { Code U32 } { SessionID LLUUID } { ID LLUUID } } } { LogControl Low Trusted Unencoded { Options Single { Level U8 } { Mask U32 } { Time BOOL } { Location BOOL } { RemoteInfos BOOL } } } { RelayLogControl Low Trusted Unencoded { Options Single { Level U8 } { Mask U32 } { Time BOOL } { Location BOOL } { RemoteInfos BOOL } } } { LogMessages Low Trusted Unencoded { Options Single { Enable BOOL } } } { NeighborList High Trusted Unencoded { NeighborBlock Multiple 4 { IP IPADDR } { Port IPPORT } { PublicIP IPADDR } { PublicPort IPPORT } { RegionID LLUUID } { Name Variable 1 } { SimAccess U8 } } } { SimulatorAssign Low Trusted Zerocoded { RegionInfo Single { GridsPerEdge S32 } { MetersPerGrid F32 } { Handle U64 } { UsecSinceStart U64 } { SecPerDay U32 } { SecPerYear U32 } { SunDirection LLVector3 } { SunAngVelocity LLVector3 } { IP IPADDR } { Port IPPORT } } { NeighborBlock Multiple 4 { IP IPADDR } { Port IPPORT } { PublicIP IPADDR } { PublicPort IPPORT } { Name Variable 1 } { SimAccess U8 } } } { SpaceServerSimulatorTimeMessage Low Trusted Unencoded { TimeInfo Single { UsecSinceStart U64 } { SecPerDay U32 } { SecPerYear U32 } { SunDirection LLVector3 } { SunPhase F32 } { SunAngVelocity LLVector3 } } } { ClosestSimulator Medium Trusted Unencoded { SimulatorBlock Single { IP IPADDR } { Port IPPORT } { Handle U64 } } { Viewer Single { ID LLUUID } } } { AvatarTextureUpdate Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { TexturesChanged BOOL } } { WearableData Variable { CacheID LLUUID } { TextureIndex U8 } } { TextureData Variable { TextureID LLUUID } } } { SimulatorMapUpdate Low Trusted Unencoded { MapData Single { Flags U32 } } } { SimulatorSetMap Low Trusted Unencoded { MapData Single { RegionHandle U64 } { Type S32 } { MapImage LLUUID } } } { SubscribeLoad Low Trusted Unencoded } { UnsubscribeLoad Low Trusted Unencoded } { SimulatorStart Low Trusted Unencoded { ControlPort Single { Port IPPORT } { PublicIP IPADDR } { PublicPort IPPORT } } { PositionSuggestion Single { Ignore BOOL } { GridX S32 } { GridY S32 } } } { SimulatorReady Low Trusted Zerocoded { SimulatorBlock Single { SimName Variable 1 } { SimAccess U8 } { RegionFlags U32 } { RegionID LLUUID } { EstateID U32 } { ParentEstateID U32 } } { TelehubBlock Single { HasTelehub BOOL } { TelehubPos LLVector3 } } } { TelehubInfo Low NotTrusted Unencoded { TelehubBlock Single { ObjectID LLUUID } { ObjectName Variable 1 } { TelehubPos LLVector3 } { TelehubRot LLQuaternion } } { SpawnPointBlock Variable { SpawnPointPos LLVector3 } } } { SimulatorPresentAtLocation Low Trusted Unencoded { SimulatorPublicHostBlock Single { Port IPPORT } { SimulatorIP IPADDR } { GridX U32 } { GridY U32 } } { NeighborBlock Multiple 4 { IP IPADDR } { Port IPPORT } } { SimulatorBlock Single { SimName Variable 1 } { SimAccess U8 } { RegionFlags U32 } { RegionID LLUUID } { EstateID U32 } { ParentEstateID U32 } } { TelehubBlock Variable { HasTelehub BOOL } { TelehubPos LLVector3 } } } { SimulatorLoad Low Trusted Unencoded { SimulatorLoad Single { TimeDilation F32 } { AgentCount S32 } { CanAcceptAgents BOOL } } { AgentList Variable { CircuitCode U32 } { X U8 } { Y U8 } } } { SimulatorShutdownRequest Low Trusted Unencoded } { RegionPresenceRequestByRegionID Low Trusted Unencoded { RegionData Variable { RegionID LLUUID } } } sim -> dataserver { RegionPresenceRequestByHandle Low Trusted Unencoded { RegionData Variable { RegionHandle U64 } } } { RegionPresenceResponse Low Trusted Zerocoded { RegionData Variable { RegionID LLUUID } { RegionHandle U64 } { InternalRegionIP IPADDR } { ExternalRegionIP IPADDR } { RegionPort IPPORT } { ValidUntil F64 } { Message Variable 1 } } } { RecordAgentPresence Low Trusted Unencoded { RegionData Single { RegionID LLUUID } } { AgentData Variable { AgentID LLUUID } { SessionID LLUUID } { SecureSessionID LLUUID } { LocalX S16 } { LocalY S16 } { TimeToLive S32 } { Status S32 } { EstateID U32 } } } { EraseAgentPresence Low Trusted Unencoded { AgentData Variable { AgentID LLUUID } } } { AgentPresenceRequest Low Trusted Unencoded { AgentData Variable { AgentID LLUUID } } } { AgentPresenceResponse Low Trusted Unencoded { AgentData Variable { AgentID LLUUID } { RegionIP IPADDR } { RegionPort IPPORT } { ValidUntil F64 } { EstateID U32 } } } { UpdateSimulator Low Trusted Unencoded { SimulatorInfo Single { RegionID LLUUID } { SimName Variable 1 } { EstateID U32 } { SimAccess U8 } } } { TrackAgentSession Low Trusted Unencoded { RegionData Single { RegionX F32 } { RegionY F32 } { SpaceIP IPADDR } { EstateID U32 } { AgentCount U32 } } { SessionInfo Variable { SessionID LLUUID } { ViewerIP IPADDR } { ViewerPort IPPORT } { GlobalX F64 } { GlobalY F64 } } } { ClearAgentSessions Low Trusted Unencoded { RegionInfo Single { RegionX U32 } { RegionY U32 } { SpaceIP IPADDR } } } { LogDwellTime Low Trusted Unencoded { DwellInfo Single { AgentID LLUUID } { SessionID LLUUID } { Duration F32 } { SimName Variable 1 } { RegionX U32 } { RegionY U32 } } } { LogFailedMoneyTransaction Low Trusted Unencoded { TransactionData Single { TransactionID LLUUID } { TransactionTime U32 } { TransactionType S32 } { SourceID LLUUID } { DestID LLUUID } { Flags U8 } { Amount S32 } { SimulatorIP IPADDR } { GridX U32 } { GridY U32 } { FailureType U8 } } } { UserReportInternal Low Trusted Zerocoded { ReportData Single { ReportType U8 } { Category U8 } { ReporterID LLUUID } { ViewerPosition LLVector3 } { AgentPosition LLVector3 } { ScreenshotID LLUUID } { ObjectID LLUUID } { OwnerID LLUUID } { LastOwnerID LLUUID } { CreatorID LLUUID } { SimName Variable 1 } { Summary Variable 1 } { Details Variable 2 } { VersionString Variable 1 } } { MeanCollision Variable { Perp LLUUID } { Time U32 } { Mag F32 } { Type U8 } } } { SetSimStatusInDatabase Low Trusted Unencoded { Data Single { RegionID LLUUID } { HostName Variable 1 } { X S32 } { Y S32 } { PID S32 } { AgentCount S32 } { TimeToLive S32 } { Status Variable 1 } } } { SetSimPresenceInDatabase Low Trusted Unencoded { SimData Single { RegionID LLUUID } { HostName Variable 1 } { GridX U32 } { GridY U32 } { PID S32 } { AgentCount S32 } { TimeToLive S32 } { Status Variable 1 } } } { EconomyDataRequest Low NotTrusted Unencoded } { EconomyData Low Trusted Zerocoded { Info Single { ObjectCapacity S32 } { ObjectCount S32 } { PriceEnergyUnit S32 } { PriceObjectClaim S32 } { PricePublicObjectDecay S32 } { PricePublicObjectDelete S32 } { PriceParcelClaim S32 } { PriceParcelClaimFactor F32 } { PriceUpload S32 } { PriceRentLight S32 } { TeleportMinPrice S32 } { TeleportPriceExponent F32 } { EnergyEfficiency F32 } { PriceObjectRent F32 } { PriceObjectScaleFactor F32 } { PriceParcelRent S32 } { PriceGroupCreate S32 } } } { AvatarPickerRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { QueryID LLUUID } } { Data Single { Name Variable 1 } } } { AvatarPickerRequestBackend Low Trusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { QueryID LLUUID } { GodLevel U8 } } { Data Single { Name Variable 1 } } } { AvatarPickerReply Low Trusted Unencoded { AgentData Single { AgentID LLUUID } { QueryID LLUUID } } { Data Variable { AvatarID LLUUID } { FirstName Variable 1 } { LastName Variable 1 } } } { PlacesQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { QueryID LLUUID } } { QueryData Single { QueryText Variable 1 } { QueryFlags U32 } { Category S8 } { SimName Variable 1 } } } { PlacesReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { QueryID LLUUID } } { QueryData Variable { OwnerID LLUUID } { Name Variable 1 } { Desc Variable 1 } { ActualArea S32 } { BillableArea S32 } { Flags U8 } { GlobalX F32 } { GlobalY F32 } { GlobalZ F32 } { SimName Variable 1 } { SnapshotID LLUUID } { Dwell F32 } { Price S32 } } } { DirFindQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { QueryFlags U32 } { QueryStart S32 } } } { DirFindQueryBackend Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { QueryFlags U32 } { QueryStart S32 } { EstateID U32 } { Godlike BOOL } { SpaceIP IPADDR } } } { DirPlacesQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { QueryFlags U32 } { Category S8 } { SimName Variable 1 } { QueryStart S32 } } } { DirPlacesQueryBackend Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { QueryFlags U32 } { Category S8 } { SimName Variable 1 } { EstateID U32 } { Godlike BOOL } { QueryStart S32 } } } { DirPlacesReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Variable { QueryID LLUUID } } { QueryReplies Variable { ParcelID LLUUID } { Name Variable 1 } { ForSale BOOL } { Auction BOOL } { ReservedNewbie BOOL } { Dwell F32 } } } { DirPeopleQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { Name Variable 1 } { Group Variable 1 } { Online U8 } { WantToFlags U32 } { SkillFlags U32 } { Reputation Variable 1 } { Distance Variable 1 } } } { DirPeopleQueryBackend Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { Name Variable 1 } { Group Variable 1 } { Online U8 } { WantToFlags U32 } { SkillFlags U32 } { Reputation Variable 1 } { Distance Variable 1 } { EstateID U32 } { Godlike BOOL } { SpaceIP IPADDR } } } { DirPeopleReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } } { QueryReplies Variable { AgentID LLUUID } { FirstName Variable 1 } { LastName Variable 1 } { Group Variable 1 } { Online BOOL } { Reputation S32 } } } { DirEventsReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } } { QueryReplies Variable { OwnerID LLUUID } { Name Variable 1 } { EventID U32 } { Date Variable 1 } { UnixTime U32 } { EventFlags U32 } } } { DirGroupsQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } } } { DirGroupsQueryBackend Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { EstateID U32 } { Godlike BOOL } } } { DirGroupsReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } } { QueryReplies Variable { GroupID LLUUID } { GroupName Variable 1 } { Members S32 } { OpenEnrollment BOOL } { MembershipFee S32 } } } { DirClassifiedQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { QueryFlags U32 } { Category U32 } } } { DirClassifiedQueryBackend Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { QueryFlags U32 } { Category U32 } { EstateID U32 } { Godlike BOOL } } } { DirClassifiedReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } } { QueryReplies Variable { ClassifiedID LLUUID } { Name Variable 1 } { ClassifiedFlags U8 } { CreationDate U32 } { ExpirationDate U32 } { PriceForListing S32 } } } { AvatarClassifiedReply Low Trusted Unencoded { AgentData Single { AgentID LLUUID } { TargetID LLUUID } } { Data Variable { ClassifiedID LLUUID } { Name Variable 1 } } } { ClassifiedInfoRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { Data Single { ClassifiedID LLUUID } } } { ClassifiedInfoReply Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { Data Single { ClassifiedID LLUUID } { CreatorID LLUUID } { CreationDate U32 } { ExpirationDate U32 } { Category U32 } { Name Variable 1 } { Desc Variable 2 } { ParcelID LLUUID } { ParentEstate U32 } { SnapshotID LLUUID } { SimName Variable 1 } { PosGlobal LLVector3d } { ParcelName Variable 1 } { ClassifiedFlags U8 } { PriceForListing S32 } } } { ClassifiedInfoUpdate Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { ClassifiedID LLUUID } { Category U32 } { Name Variable 1 } { Desc Variable 2 } { ParcelID LLUUID } { ParentEstate U32 } { SnapshotID LLUUID } { PosGlobal LLVector3d } { ClassifiedFlags U8 } { PriceForListing S32 } } } { ClassifiedDelete Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { ClassifiedID LLUUID } } } { ClassifiedGodDelete Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { ClassifiedID LLUUID } { QueryID LLUUID } } } { DirPicksQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryFlags U32 } } } { DirPicksQueryBackend Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryFlags U32 } { EstateID U32 } { Godlike BOOL } } } { DirPicksReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } } { QueryReplies Variable { PickID LLUUID } { Name Variable 1 } { Enabled BOOL } } } { DirLandQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryFlags U32 } { ForSale BOOL } { Auction BOOL } { ReservedNewbie BOOL } } } { DirLandQueryBackend Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryFlags U32 } { ForSale BOOL } { Auction BOOL } { ReservedNewbie BOOL } { EstateID U32 } { Godlike BOOL } } } { DirLandReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } } { QueryReplies Variable { ParcelID LLUUID } { Name Variable 1 } { Auction BOOL } { ForSale BOOL } { ReservedNewbie BOOL } { SalePrice S32 } { ActualArea S32 } } } { DirPopularQuery Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryFlags U32 } } } { DirPopularQueryBackend Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } { QueryFlags U32 } { EstateID U32 } { Godlike BOOL } } } { DirPopularReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { QueryData Single { QueryID LLUUID } } { QueryReplies Variable { ParcelID LLUUID } { Name Variable 1 } { Dwell F32 } } } { ParcelInfoRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { ParcelID LLUUID } } } { ParcelInfoReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { Data Single { ParcelID LLUUID } { OwnerID LLUUID } { Name Variable 1 } { Desc Variable 1 } { ActualArea S32 } { BillableArea S32 } { Flags U8 } { GlobalX F32 } { GlobalY F32 } { GlobalZ F32 } { SimName Variable 1 } { SnapshotID LLUUID } { Dwell F32 } { SalePrice S32 } { AuctionID S32 } } } { ParcelObjectOwnersRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } } } { OnlineStatusRequest Low Trusted Unencoded { AgentData Single { AgentID LLUUID } { QueryID LLUUID } { EstateID U32 } { Godlike BOOL } { SpaceIP IPADDR } } { Data Variable { ID LLUUID } } } { OnlineStatusReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { QueryID LLUUID } } { Data Variable { ID LLUUID } } } { ParcelObjectOwnersReply Low Trusted Zerocoded { Data Variable { OwnerID LLUUID } { IsGroupOwned BOOL } { Count S32 } { OnlineStatus BOOL } } } { TeleportRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Info Single { RegionID LLUUID } { Position LLVector3 } { LookAt LLVector3 } } } { TeleportLocationRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Info Single { RegionHandle U64 } { Position LLVector3 } { LookAt LLVector3 } } } { TeleportLocal Low NotTrusted Unencoded { Info Single { AgentID LLUUID } { LocationID U32 } { Position LLVector3 } { LookAt LLVector3 } { TeleportFlags U32 } } } { TeleportLandmarkRequest Low NotTrusted Zerocoded { Info Single { AgentID LLUUID } { SessionID LLUUID } { LandmarkID LLUUID } } } { TeleportProgress Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Info Single { TeleportFlags U32 } { Message Variable 1 } } } { DataAgentAccessRequest Low Trusted Unencoded { Info Single { AgentID LLUUID } { EstateID U32 } { RegionHandle U64 } { LocationID U32 } { LocationPos LLVector3 } { LocationLookAt LLVector3 } } } { DataAgentAccessReply Low Trusted Unencoded { Info Single { AgentID LLUUID } } } { DataHomeLocationRequest Low Trusted Zerocoded { Info Single { AgentID LLUUID } } } { DataHomeLocationReply Low Trusted Unencoded { Info Single { AgentID LLUUID } { RegionHandle U64 } { Position LLVector3 } { LookAt LLVector3 } } } { SpaceLocationTeleportRequest Low Trusted Unencoded { Info Single { AgentID LLUUID } { SessionID LLUUID } { CircuitCode U32 } { RegionHandle U64 } { Position LLVector3 } { LookAt LLVector3 } { TravelAccess U8 } { ParentEstateID U32 } { TeleportFlags U32 } } } { SpaceLocationTeleportReply Low Trusted Unencoded { Info Single { AgentID LLUUID } { LocationID U32 } { SimIP IPADDR } { SimPort IPPORT } { RegionHandle U64 } { Position LLVector3 } { LookAt LLVector3 } { SimName Variable 1 } { SimAccess U8 } { TeleportFlags U32 } } } { TeleportFinish Low NotTrusted Unencoded { Info Single { AgentID LLUUID } { LocationID U32 } { SimIP IPADDR } { SimPort IPPORT } { RegionHandle U64 } { SimAccess U8 } { TeleportFlags U32 } } } { StartLure Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Info Single { LureType U8 } { TargetID LLUUID } { Message Variable 1 } } } { InitializeLure Low Trusted Unencoded { Info Single { LureType U8 } { AgentID LLUUID } { LureID LLUUID } { RegionHandle U64 } { Position LLVector3 } { LookAt LLVector3 } } } { TeleportLureRequest Low NotTrusted Unencoded { Info Single { AgentID LLUUID } { SessionID LLUUID } { LureID LLUUID } { TeleportFlags U32 } } } { TeleportCancel Low NotTrusted Unencoded { Info Single { AgentID LLUUID } { SessionID LLUUID } } } { CompleteLure Low Trusted Unencoded { Info Single { AgentID LLUUID } { SessionID LLUUID } { LureID LLUUID } { CircuitCode U32 } { TravelAccess U8 } { ParentEstateID U32 } { TeleportFlags U32 } } } { TeleportStart Low NotTrusted Unencoded { Info Single { TeleportFlags U32 } } } { TeleportFailed Low NotTrusted Unencoded { Info Single { AgentID LLUUID } { Reason Variable 1 } } } { LeaderBoardRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { Type S32 } } } { LeaderBoardData Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { BoardData Single { Type S32 } { MinPlace S32 } { MaxPlace S32 } { TimeString Variable 1 } } { Entry Variable { Sequence S32 } { Place S32 } { ID LLUUID } { Score S32 } { Name Fixed 32 } } } { RegisterNewAgent Low NotTrusted Unencoded { HelloBlock Single { AgentID LLUUID } { SessionID LLUUID } { LocationID U32 } { Godlike BOOL } } } { Undo Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { ObjectData Variable { ObjectID LLUUID } } } { Redo Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { ObjectData Variable { ObjectID LLUUID } } } { UndoLand Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } } { RedoLand Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } } { TransferEnergy Low NotTrusted Unencoded { Data Single { DestID LLUUID } { Amount S32 } } } { MovedIntoSimulator High Trusted Unencoded { Sender Single { ID LLUUID } { SessionID LLUUID } { CircuitCode U32 } } } { AgentPause Low NotTrusted Unencoded { Sender Single { AgentID LLUUID } { SessionID LLUUID } { SerialNum U32 } } } { AgentResume Low NotTrusted Unencoded { Sender Single { AgentID LLUUID } { SessionID LLUUID } { SerialNum U32 } } } { AgentUpdate High NotTrusted Zerocoded { AgentData Single { ID LLUUID } { BodyRotation LLQuaternion } { HeadRotation LLQuaternion } { State U8 } { CameraCenter LLVector3 } { CameraAtAxis LLVector3 } { CameraLeftAxis LLVector3 } { CameraUpAxis LLVector3 } { Far F32 } { ControlFlags U32 } { Flags U8 } } } { ChatFromViewer Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ChatData Single { Message Variable 2 } { Type U8 } { Channel S32 } } } { AgentThrottle Low NotTrusted Zerocoded { Sender Single { ID LLUUID } { CircuitCode U32 } { GenCounter U32 } } { Throttle Single { Throttles Variable 1 } } } { AgentFOV Low NotTrusted Unencoded { Sender Single { ID LLUUID } { CircuitCode U32 } { GenCounter U32 } } { FOVBlock Single { VerticalAngle F32 } } } { AgentHeightWidth Low NotTrusted Unencoded { Sender Single { ID LLUUID } { CircuitCode U32 } { GenCounter U32 } } { HeightWidthBlock Single { Height U16 } { Width U16 } } } { AgentSetAppearance Low NotTrusted Zerocoded { Sender Single { ID LLUUID } { SerialNum U32 } { Size LLVector3 } } { WearableData Variable { CacheID LLUUID } { TextureIndex U8 } } { ObjectData Single { TextureEntry Variable 2 } } { VisualParam Variable { ParamValue U8 } } } { AgentAnimation High NotTrusted Unencoded { Sender Single { ID LLUUID } } { AnimationList Variable { AnimID LLUUID } { StartAnim BOOL } } } { AgentRequestSit High NotTrusted Zerocoded { Sender Single { ID LLUUID } } { TargetObject Single { TargetID LLUUID } { Offset LLVector3 } } } { AgentSit High NotTrusted Unencoded { Sender Single { ID LLUUID } } } { RefreshViewer Low NotTrusted Unencoded { Sender Single { ID LLUUID } } } { AgentQuit Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { AgentQuitCopy Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { FuseBlock Single { ViewerCircuitCode U32 } } } { RequestImage High NotTrusted Unencoded { RequestImage Variable { Image LLUUID } { DiscardLevel S32 } { DownloadPriority F32 } { Packet U32 } } } { ImageNotInDatabase Low NotTrusted Unencoded { ImageID Single { ID LLUUID } } } { SetAlwaysRun Low NotTrusted Unencoded { Sender Single { ID LLUUID } { AlwaysRun BOOL } } } { ObjectAdd Medium NotTrusted Zerocoded { ObjectData Single { PCode U8 } { SenderID LLUUID } { GroupID LLUUID } { Material U8 } { AddFlags U32 } { PathCurve U8 } { ProfileCurve U8 } { PathBegin U8 } { PathEnd U8 } { PathScaleX U8 } { PathScaleY U8 } { PathShearX U8 } { PathShearY U8 } { PathTwist S8 } { PathTwistBegin S8 } { PathRadiusOffset S8 } { PathTaperX S8 } { PathTaperY S8 } { PathRevolutions U8 } { PathSkew S8 } { ProfileBegin U8 } { ProfileEnd U8 } { ProfileHollow U8 } { BypassRaycast U8 } { RayStart LLVector3 } { RayEnd LLVector3 } { RayTargetID LLUUID } { RayEndIsIntersection U8 } { Scale LLVector3 } { Rotation LLQuaternion } { TextureEntry Variable 2 } { NameValue Variable 2 } { State U8 } } { InventoryData Variable { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } { InventoryFile Single { Filename Variable 1 } } } { ObjectDelete Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { GroupID LLUUID } { Force BOOL } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectDuplicate Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { SharedData Single { Offset LLVector3 } { DuplicateFlags U32 } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectDuplicateOnRay Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } { RayStart LLVector3 } { RayEnd LLVector3 } { BypassRaycast BOOL } { RayEndIsIntersection BOOL } { CopyCenters BOOL } { CopyRotates BOOL } { RayTargetID LLUUID } { DuplicateFlags U32 } } { ObjectData Variable { ObjectLocalID U32 } } } { MultipleObjectUpdate Medium NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { Type U8 } { Data Variable 1 } } } { RequestMultipleObjects Medium NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { CacheMissType U8 } { ID U32 } } } { ObjectPosition Medium NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { Position LLVector3 } } } { ObjectScale Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { Scale LLVector3 } } } { ObjectRotation Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { Rotation LLQuaternion } } } { ObjectFlagUpdate Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { ObjectLocalID U32 } { UsePhysics BOOL } { IsTemporary BOOL } { IsPhantom BOOL } { CastsShadows BOOL } } } { ObjectClickAction Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { ClickAction U8 } } } { ObjectImage Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { MediaURL Variable 1 } { TextureEntry Variable 2 } } } { ObjectMaterial Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { Material U8 } } } { ObjectShape Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { PathCurve U8 } { ProfileCurve U8 } { PathBegin U8 } { PathEnd U8 } { PathScaleX U8 } { PathScaleY U8 } { PathShearX U8 } { PathShearY U8 } { PathTwist S8 } { PathTwistBegin S8 } { PathRadiusOffset S8 } { PathTaperX S8 } { PathTaperY S8 } { PathRevolutions U8 } { PathSkew S8 } { ProfileBegin U8 } { ProfileEnd U8 } { ProfileHollow U8 } } } { ObjectExtraParams Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { ParamType U16 } { ParamInUse BOOL } { ParamSize U32 } { ParamData Variable 1 } } } { ObjectOwner Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { HeaderData Single { Override BOOL } { OwnerID LLUUID } { GroupID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectGroup Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectBuy Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { GroupID LLUUID } { CategoryID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } { SaleType U8 } { SalePrice S32 } } } { BuyObjectInventory Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { ObjectID LLUUID } { ItemID LLUUID } { FolderID LLUUID } } } { DerezContainer Low Trusted Zerocoded { Data Single { ObjectID LLUUID } { Delete BOOL } } } { ObjectPermissions Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { HeaderData Single { Override BOOL } } { ObjectData Variable { ObjectLocalID U32 } { Field U8 } { Set U8 } { Mask U32 } } } { ObjectSaleInfo Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { LocalID U32 } { SaleType U8 } { SalePrice S32 } } } { ObjectName Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { LocalID U32 } { Name Variable 1 } } } { ObjectDescription Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { LocalID U32 } { Description Variable 1 } } } { ObjectCategory Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { LocalID U32 } { Category U32 } } } { ObjectSelect Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectDeselect Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectAttach Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { AttachmentPoint U8 } } { ObjectData Variable { ObjectLocalID U32 } { Rotation LLQuaternion } } } { ObjectDetach Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectDrop Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectLink Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectDelink Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectHinge Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { JointType Single { Type U8 } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectDehinge Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { ObjectData Variable { ObjectLocalID U32 } } } { ObjectGrab Low NotTrusted Zerocoded { Sender Single { ID LLUUID } } { ObjectData Single { LocalID U32 } { GrabOffset LLVector3 } } } { ObjectGrabUpdate Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Single { ObjectID LLUUID } { GrabOffsetInitial LLVector3 } { GrabPosition LLVector3 } { TimeSinceLast U32 } } } { ObjectDeGrab Low NotTrusted Unencoded { Sender Single { ID LLUUID } } { ObjectData Single { LocalID U32 } } } { ObjectSpinStart Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Single { ObjectID LLUUID } } } { ObjectSpinUpdate Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Single { ObjectID LLUUID } { Rotation LLQuaternion } } } { ObjectSpinStop Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ObjectData Single { ObjectID LLUUID } } } { ObjectExportSelected Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { RequestID LLUUID } { VolumeDetail S16 } } { ObjectData Variable { ObjectID LLUUID } } } { ObjectExportReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { RequestID LLUUID } } { AssetData Single { SLXML_ID LLUUID } { Collada_ID LLUUID } { ErrorCode S32 } } { TextureData Variable { AssetID LLUUID } { AssetNum S32 } } } { ObjectImport Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { FolderID LLUUID } } { AssetData Single { FileID LLUUID 1 } { ObjectName Variable 1 } { Description Variable 1 } } } { ObjectImportReply Low NotTrusted Zerocoded { AssetData Single { FileID LLUUID 1 } { ErrorValue S32 } } } { ModifyLand Low NotTrusted Zerocoded { ModifyBlock Single { AgentID LLUUID } { Action U8 } { BrushSize U8 } { Seconds F32 } { Height F32 } } { ParcelData Variable { LocalID S32 } { West F32 } { South F32 } { East F32 } { North F32 } } } { VelocityInterpolateOn Low NotTrusted Unencoded } { VelocityInterpolateOff Low NotTrusted Unencoded } { StateSave Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { DataBlock Single { Filename Variable 1 } } } { ReportAutosaveCrash Low NotTrusted Unencoded { AutosaveData Single { PID S32 } { Status S32 } } } { SimWideDeletes Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { DataBlock Single { TargetID LLUUID } { Flags U32 } } } { StateLoad Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { DataBlock Single { Filename Variable 1 } } } { RequestObjectPropertiesFamily Medium NotTrusted Zerocoded { ObjectData Single { RequestFlags U32 } { AgentID LLUUID } { ObjectID LLUUID } } } { TrackAgent Low NotTrusted Unencoded { AgentBlock Single { AgentID LLUUID } { PreyID LLUUID } } } { GrantModification Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { GranterName Variable 1 } } { EmpoweredBlock Variable { EmpoweredID LLUUID } } } { RevokeModification Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { GranterName Variable 1 } } { RevokedBlock Variable { RevokedID LLUUID } } } { RequestGrantedProxies Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { GrantedProxies Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { ProxyBlock Variable { EmpoweredID LLUUID } } } { AddModifyAbility Low Trusted Zerocoded { TargetBlock Single { TargetIP IPADDR } { TargetPort IPPORT } } { AgentBlock Single { AgentID LLUUID } } { GranterBlock Variable { GranterID LLUUID } } } { RemoveModifyAbility Low Trusted Unencoded { TargetBlock Single { TargetIP IPADDR } { TargetPort IPPORT } } { AgentBlock Single { AgentID LLUUID } { RevokerID LLUUID } } } { ViewerStats Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { IP IPADDR } { StartTime U32 } { RunTime F32 } { FPS F32 } { Ping F32 } { MetersTraveled F64 } { RegionsVisited S32 } { SysRAM U32 } { SysOS Variable 1 } { SysCPU Variable 1 } { SysGPU Variable 1 } } { DownloadTotals Single { World U32 } { Objects U32 } { Textures U32 } } { NetStats Multiple 2 { Bytes U32 } { Packets U32 } { Compressed U32 } { Savings U32 } } { FailStats Single { SendPacket U32 } { Dropped U32 } { Resent U32 } { FailedResends U32 } { OffCircuit U32 } { Invalid U32 } } { MiscStats Variable { Type U32 } { Value F64 } } } { ScriptAnswerYes Low NotTrusted Unencoded { Data Single { AgentID LLUUID } { TaskID LLUUID } { ItemID LLUUID } { Questions S32 } } } { UserReport Low NotTrusted Zerocoded { ReportData Single { ReportType U8 } { Category U8 } { ReporterID LLUUID } { Position LLVector3 } { CheckFlags U8 } { ScreenshotID LLUUID } { ObjectID LLUUID } { Summary Variable 1 } { Details Variable 2 } { VersionString Variable 1 } } { MeanCollision Variable { Perp LLUUID } { Time U32 } { Mag F32 } { Type U8 } } } { AlertMessage Low Trusted Unencoded { AlertData Single { Message Variable 1 } } } { AgentAlertMessage Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { AlertData Single { Modal BOOL } { Message Variable 1 } } } { MeanCollisionAlert Low Trusted Zerocoded { MeanCollision Variable { Victim LLUUID } { Perp LLUUID } { Time U32 } { Mag F32 } { Type U8 } } } { ViewerFrozenMessage Low Trusted Unencoded { FrozenData Single { Data BOOL } } } { HealthMessage Low Trusted Zerocoded { HealthData Single { Health F32 } } } { ChatFromSimulator Low Trusted Zerocoded { ChatData Single { ID LLUUID } { Name Variable 1 } { SourceType U8 } { Type U8 } { Audible U8 } { Message Variable 2 } } } { SimStats Low Trusted Unencoded { Region Single { RegionX U32 } { RegionY U32 } { RegionFlags U32 } { ObjectCapacity U32 } } { Stat Variable { StatID U32 } { StatValue F32 } } } { RequestRegionInfo Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { RegionInfo Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { RegionInfo Single { SimName Variable 1 } { EstateID U32 } { ParentEstateID U32 } { RegionFlags U32 } { SimAccess U8 } { MaxAgents U8 } { BillableFactor F32 } { ObjectBonusFactor F32 } { WaterHeight F32 } { TerrainRaiseLimit F32 } { TerrainLowerLimit F32 } { PricePerMeter S32 } { RedirectGridX S32 } { RedirectGridY S32 } { UseEstateSun BOOL } { SunHour F32 } } } { GodUpdateRegionInfo Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { RegionInfo Single { SimName Variable 1 } { EstateID U32 } { ParentEstateID U32 } { RegionFlags U32 } { BillableFactor F32 } { PricePerMeter S32 } { RedirectGridX S32 } { RedirectGridY S32 } } } { NearestLandingRegionRequest Low Trusted Unencoded { RequestingRegionData Single { RegionHandle U64 } } } { NearestLandingRegionReply Low Trusted Unencoded { LandingRegionData Single { RegionHandle U64 } } } { NearestLandingRegionUpdated Low Trusted Unencoded { RegionData Single { RegionHandle U64 } } } { TeleportLandingStatusChanged Low Trusted Unencoded { RegionData Single { RegionHandle U64 } } } { RegionHandshake Low NotTrusted Zerocoded { RegionInfo Single { RegionFlags U32 } { SimAccess U8 } { SimName Variable 1 } { SimOwner LLUUID } { IsEstateManager BOOL } { WaterHeight F32 } { BillableFactor F32 } { CacheID LLUUID } { TerrainBase0 LLUUID } { TerrainBase1 LLUUID } { TerrainBase2 LLUUID } { TerrainBase3 LLUUID } { TerrainDetail0 LLUUID } { TerrainDetail1 LLUUID } { TerrainDetail2 LLUUID } { TerrainDetail3 LLUUID } { TerrainStartHeight00 F32 } { TerrainStartHeight01 F32 } { TerrainStartHeight10 F32 } { TerrainStartHeight11 F32 } { TerrainHeightRange00 F32 } { TerrainHeightRange01 F32 } { TerrainHeightRange10 F32 } { TerrainHeightRange11 F32 } } } { RegionHandshakeReply Low NotTrusted Zerocoded { RegionInfo Single { Flags U32 } } } { CoarseLocationUpdate Medium Trusted Unencoded { Location Variable { X U8 } { Y U8 } { Z U8 } } { Index Single { You S16 } { Prey S16 } } } { ImageData High Trusted Unencoded { ImageID Single { ID LLUUID } { Codec U8 } { Size U32 } { Packets U16 } } { ImageData Single { Data Variable 2 } } } { ImagePacket High Trusted Unencoded { ImageID Single { ID LLUUID } { Packet U16 } } { ImageData Single { Data Variable 2 } } } { LayerData High Trusted Unencoded { LayerID Single { Type U8 } } { LayerData Single { Data Variable 2 } } } { ObjectUpdate High Trusted Zerocoded { RegionData Single { RegionHandle U64 } { TimeDilation U16 } } { ObjectData Variable { ID U32 } { State U8 } { FullID LLUUID } { CRC U32 } { PCode U8 } { Material U8 } { ClickAction U8 } { Scale LLVector3 } { ObjectData Variable 1 } { ParentID U32 } { UpdateFlags U32 } { PathCurve U8 } { ProfileCurve U8 } { PathBegin U8 } { PathEnd U8 } { PathScaleX U8 } { PathScaleY U8 } { PathShearX U8 } { PathShearY U8 } { PathTwist S8 } { PathTwistBegin S8 } { PathRadiusOffset S8 } { PathTaperX S8 } { PathTaperY S8 } { PathRevolutions U8 } { PathSkew S8 } { ProfileBegin U8 } { ProfileEnd U8 } { ProfileHollow U8 } { TextureEntry Variable 2 } { TextureAnim Variable 1 } { NameValue Variable 2 } { Data Variable 2 } { Text Variable 1 } { TextColor Fixed 4 } { MediaURL Variable 1 } { PSBlock Variable 1 } { ExtraParams Variable 1 } { Sound LLUUID } { Gain F32 } { Flags U8 } { Radius F32 } { JointType U8 } { JointPivot LLVector3 } { JointAxisOrAnchor LLVector3 } } } { ObjectUpdateCompressed High Trusted Unencoded { RegionData Single { RegionHandle U64 } { TimeDilation U16 } } { ObjectData Variable { UpdateFlags U32 } { Data Variable 2 } } } { ObjectUpdateCached High Trusted Unencoded { RegionData Single { RegionHandle U64 } { TimeDilation U16 } } { ObjectData Variable { ID U32 } { CRC U32 } { UpdateFlags U32 } } } { ImprovedTerseObjectUpdate High Trusted Unencoded { RegionData Single { RegionHandle U64 } { TimeDilation U16 } } { ObjectData Variable { Data Variable 1 } { TextureEntry Variable 2 } } } { KillObject High Trusted Unencoded { ObjectData Variable { ID U32 } } } { AgentToNewRegion High Trusted Unencoded { RegionData Single { SessionID LLUUID } { IP IPADDR } { Port IPPORT } { Handle U64 } } } { CrossedRegion Medium Trusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { RegionData Single { SimIP IPADDR } { SimPort IPPORT } { RegionHandle U64 } } { Info Single { Position LLVector3 } { LookAt LLVector3 } } } { SimulatorViewerTimeMessage Low Trusted Unencoded { TimeInfo Single { UsecSinceStart U64 } { SecPerDay U32 } { SecPerYear U32 } { SunDirection LLVector3 } { SunPhase F32 } { SunAngVelocity LLVector3 } } } { EnableSimulator Low Trusted Unencoded { SimulatorInfo Single { Handle U64 } { IP IPADDR } { Port IPPORT } } } { DisableSimulator Low Trusted Unencoded } { ConfirmEnableSimulator Medium Trusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { TransferRequest Low NotTrusted Zerocoded { TransferInfo Single { TransferID LLUUID } { ChannelType S32 } { SourceType S32 } { Priority F32 } { Params Variable 2 } } } { TransferInfo Low NotTrusted Zerocoded { TransferInfo Single { TransferID LLUUID } { ChannelType S32 } { TargetType S32 } { Status S32 } { Size S32 } } } { TransferPacket High NotTrusted Unencoded { TransferData Single { TransferID LLUUID } { ChannelType S32 } { Packet S32 } { Status S32 } { Data Variable 2 } } } { TransferAbort Low NotTrusted Zerocoded { TransferInfo Single { TransferID LLUUID } { ChannelType S32 } } } { TransferPriority Low NotTrusted Zerocoded { TransferInfo Single { TransferID LLUUID } { ChannelType S32 } { Priority F32 } } } { RequestXfer Low NotTrusted Zerocoded { XferID Single { ID U64 } { Filename Variable 1 } { FilePath U8 } { DeleteOnCompletion BOOL } { UseBigPackets BOOL } { VFileID LLUUID } { VFileType S16 } } } { SendXferPacket High NotTrusted Unencoded { XferID Single { ID U64 } { Packet U32 } } { DataPacket Single { Data Variable 2 } } } { ConfirmXferPacket High NotTrusted Unencoded { XferID Single { ID U64 } { Packet U32 } } } { AbortXfer Low NotTrusted Unencoded { XferID Single { ID U64 } { Result S32 } } } { RequestAvatarInfo Low Trusted Unencoded { DataBlock Single { FullID LLUUID } } } { AvatarAnimation High Trusted Unencoded { Sender Single { ID LLUUID } } { AnimationList Variable { AnimID LLUUID } { AnimSequenceID S32 } } { AnimationSourceList Variable { ObjectID LLUUID } } } { AvatarAppearance Low Trusted Zerocoded { Sender Single { ID LLUUID } { IsTrial BOOL } } { ObjectData Single { TextureEntry Variable 2 } } { VisualParam Variable { ParamValue U8 } } } { AvatarSitResponse High Trusted Zerocoded { SitObject Single { ID LLUUID } } { SitTransform Single { AutoPilot BOOL } { SitPosition LLVector3 } { SitRotation LLQuaternion } { CameraEyeOffset LLVector3 } { CameraAtOffset LLVector3 } { ForceMouselook BOOL } } } { SetFollowCamProperties Low Trusted Unencoded { ObjectData Single { ObjectID LLUUID } } { CameraProperty Variable { Type S32 } { Value F32 } } } { ClearFollowCamProperties Low Trusted Unencoded { ObjectData Single { ObjectID LLUUID } } } { CameraConstraint High Trusted Zerocoded { CameraCollidePlane Single { Plane LLVector4 } } } { ObjectProperties Medium Trusted Zerocoded { ObjectData Variable { ObjectID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { OwnershipCost S32 } { SaleType U8 } { SalePrice S32 } { AggregatePerms U8 } { AggregatePermTextures U8 } { AggregatePermTexturesOwner U8 } { Category U32 } { InventorySerial S16 } { ItemID LLUUID } { FolderID LLUUID } { FromTaskID LLUUID } { LastOwnerID LLUUID } { Name Variable 1 } { Description Variable 1 } { TouchName Variable 1 } { SitName Variable 1 } { TextureID Variable 1 } } } { ObjectPropertiesFamily Medium Trusted Zerocoded { ObjectData Single { RequestFlags U32 } { ObjectID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { OwnershipCost S32 } { SaleType U8 } { SalePrice S32 } { Category U32 } { LastOwnerID LLUUID } { Name Variable 1 } { Description Variable 1 } } } { RequestPayPrice Low NotTrusted Unencoded { ObjectData Single { ObjectID LLUUID } } } { PayPriceReply Low Trusted Unencoded { ObjectData Single { ObjectID LLUUID } { DefaultPayPrice S32 } } { ButtonData Variable { PayButton S32 } } } { KickUser Low Trusted Unencoded { TargetBlock Single { TargetIP IPADDR } { TargetPort IPPORT } } { UserInfo Single { AgentID LLUUID } { SessionID LLUUID } { Reason Variable 2 } } } { KickUserAck Low Trusted Unencoded { UserInfo Single { SessionID LLUUID } { Flags U32 } } } { GodKickUser Low NotTrusted Unencoded { UserInfo Single { GodID LLUUID } { GodSessionID LLUUID } { AgentID LLUUID } { KickFlags U32 } { Reason Variable 2 } } } { SystemKickUser Low Trusted Unencoded { AgentInfo Variable { AgentID LLUUID } } } { EjectUser Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { TargetID LLUUID } { Flags U32 } } } { FreezeUser Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { TargetID LLUUID } { Flags U32 } } } { AvatarPropertiesRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { AvatarID LLUUID } } } { AvatarPropertiesRequestBackend Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { AvatarID LLUUID } { GodLevel U8 } } } { AvatarPropertiesReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { AvatarID LLUUID } } { PropertiesData Single { ImageID LLUUID } { FLImageID LLUUID } { PartnerID LLUUID } { AboutText Variable 2 } { WantToMask U32 } { WantToText Variable 1 } { SkillsMask U32 } { SkillsText Variable 1 } { FLAboutText Variable 1 } { BornOn Variable 1 } { CharterMember Variable 1 } { AllowPublish BOOL } { MaturePublish BOOL } { Identified BOOL } { Transacted BOOL } } } { AvatarGroupsReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { AvatarID LLUUID } } { GroupData Variable { GroupOfficer BOOL } { GroupTitle Variable 1 } { GroupID LLUUID } { GroupName Variable 1 } { GroupInsigniaID LLUUID } } } { AvatarPropertiesUpdate Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { PropertiesData Single { AvatarID LLUUID } { ImageID LLUUID } { FLImageID LLUUID } { AboutText Variable 2 } { FLAboutText Variable 1 } { WantToMask U32 } { WantToText Variable 1 } { SkillsMask U32 } { SkillsText Variable 1 } { AllowPublish BOOL } { MaturePublish BOOL } } } { AvatarStatisticsReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { AvatarData Single { AvatarID LLUUID } } { StatisticsData Variable { Name Variable 1 } { Positive S32 } { Negative S32 } } } { AvatarNotesReply Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { Data Single { TargetID LLUUID } { Notes Variable 2 } } } { AvatarNotesUpdate Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { Data Single { TargetID LLUUID } { Notes Variable 2 } } } { AvatarPicksReply Low Trusted Unencoded { AgentData Single { AgentID LLUUID } { TargetID LLUUID } } { Data Variable { PickID LLUUID } { PickName Variable 1 } } } { EventInfoRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { EventData Single { EventID U32 } } } { EventInfoReply Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { EventData Single { EventID U32 } { Creator Variable 1 } { Name Variable 1 } { Category Variable 1 } { Desc Variable 2 } { Date Variable 1 } { DateUTC U32 } { Duration U32 } { Cover U32 } { Amount U32 } { SimName Variable 1 } { GlobalPos LLVector3d } { EventFlags U32 } } } { EventNotificationAddRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { EventData Single { EventID U32 } } } { EventNotificationRemoveRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { EventData Single { EventID U32 } } } { EventGodDelete Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { EventData Single { EventID U32 } } { QueryData Single { QueryID LLUUID } { QueryText Variable 1 } { QueryFlags U32 } { QueryStart S32 } } } { PickInfoRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { Data Single { PickID LLUUID } } } { PickInfoReply Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { Data Single { PickID LLUUID } { CreatorID LLUUID } { TopPick BOOL } { ParcelID LLUUID } { Name Variable 1 } { Desc Variable 2 } { SnapshotID LLUUID } { User Variable 1 } { OriginalName Variable 1 } { SimName Variable 1 } { PosGlobal LLVector3d } { SortOrder S32 } { Enabled BOOL } } } { PickInfoUpdate Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { Data Single { PickID LLUUID } { CreatorID LLUUID } { TopPick BOOL } { ParcelID LLUUID } { Name Variable 1 } { Desc Variable 2 } { SnapshotID LLUUID } { PosGlobal LLVector3d } { SortOrder S32 } { Enabled BOOL } } } { PickDelete Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { Data Single { PickID LLUUID } } } { PickGodDelete Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { PickID LLUUID } { QueryID LLUUID } } } { ScriptQuestion Low Trusted Unencoded { Data Single { TaskID LLUUID } { ItemID LLUUID } { ObjectName Variable 1 } { ObjectOwner Variable 1 } { Questions S32 } } } { ScriptControlChange Low NotTrusted Unencoded { Data Variable { TakeControls BOOL } { Controls U32 } { PassToAgent BOOL } } } { ScriptDialog Low Trusted Zerocoded { Data Single { ObjectID LLUUID } { FirstName Variable 1 } { LastName Variable 1 } { ObjectName Variable 1 } { Message Variable 2 } { ChatChannel S32 } { ImageID LLUUID } } { Buttons Variable { ButtonLabel Variable 1 } } } { ScriptDialogReply Low NotTrusted Zerocoded { Data Single { AgentID LLUUID } { ObjectID LLUUID } { ChatChannel S32 } { ButtonIndex S32 } { ButtonLabel Variable 1 } } } { ForceScriptControlRelease Low NotTrusted Unencoded { Data Single { ID LLUUID } } } { RevokePermissions Low NotTrusted Unencoded { Data Single { AgentID LLUUID } { ObjectID LLUUID } { ObjectPermissions U32 } } } { LoadURL Low Trusted Unencoded { Data Single { ObjectName Variable 1 } { OwnerID LLUUID } { Message Variable 1 } { URL Variable 1 } } } { ScriptTeleportRequest Low NotTrusted Unencoded { Data Single { ObjectName Variable 1 } { SimName Variable 1 } { SimPosition LLVector3 } { LookAt LLVector3 } } } { ParcelOverlay Low Trusted Zerocoded { ParcelData Single { SequenceID S32 } { Data Variable 2 } } } { ParcelPropertiesRequest Medium NotTrusted Zerocoded { ParcelData Single { AgentID LLUUID } { SequenceID S32 } { West F32 } { South F32 } { East F32 } { North F32 } { SnapSelection BOOL } } } { ParcelPropertiesRequestByID Low NotTrusted Zerocoded { ParcelData Single { AgentID LLUUID } { SequenceID S32 } { LocalID S32 } } } { ParcelProperties High Trusted Zerocoded { ParcelData Single { RequestResult S32 } { SequenceID S32 } { SnapSelection BOOL } { SelfCount S32 } { OtherCount S32 } { PublicCount S32 } { LocalID S32 } { OwnerID LLUUID } { IsGroupOwned BOOL } { AuctionID U32 } { ReservedNewbie BOOL } { ClaimDate S32 } { ClaimPrice S32 } { RentPrice S32 } { AABBMin LLVector3 } { AABBMax LLVector3 } { Bitmap Variable 2 } { Area S32 } { Status U8 } { SimWideMaxPrims S32 } { SimWideTotalPrims S32 } { MaxPrims S32 } { TotalPrims S32 } { OwnerPrims S32 } { GroupPrims S32 } { OtherPrims S32 } { SelectedPrims S32 } { ParcelPrimBonus F32 } { OtherCleanTime S32 } { ParcelFlags U32 } { SalePrice S32 } { Name Variable 1 } { Desc Variable 1 } { MusicURL Variable 1 } { MediaURL Variable 1 } { MediaID LLUUID } { MediaAutoScale U8 } { GroupID LLUUID } { PassPrice S32 } { PassHours F32 } { Category U8 } { AuthBuyerID LLUUID } { SnapshotID LLUUID } { UserLocation LLVector3 } { UserLookAt LLVector3 } { LandingType U8 } } } { ParcelPropertiesUpdate Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } { Flags U32 } { ParcelFlags U32 } { SalePrice S32 } { Name Variable 1 } { Desc Variable 1 } { MusicURL Variable 1 } { MediaURL Variable 1 } { MediaID LLUUID } { MediaAutoScale U8 } { GroupID LLUUID } { PassPrice S32 } { PassHours F32 } { Category U8 } { AuthBuyerID LLUUID } { SnapshotID LLUUID } { UserLocation LLVector3 } { UserLookAt LLVector3 } { LandingType U8 } } } { ParcelReturnObjects Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } { ReturnType S32 } { OtherCleanTime S32 } } { TaskIDs Variable { TaskID LLUUID } } { OwnerIDs Variable { OwnerID LLUUID } } } { ParcelDisableObjects Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } { ReturnType S32 } { OtherCleanTime S32 } } { TaskIDs Variable { TaskID LLUUID } } { OwnerIDs Variable { OwnerID LLUUID } } } { ParcelSelectObjects Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } { ReturnType S32 } } { ReturnIDs Variable { ReturnID LLUUID } } } { ForceObjectSelect Low Trusted Unencoded { Header Single { ResetList BOOL } } { Data Variable { LocalID U32 } } } { ParcelBuyPass Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } } } { ParcelDeedToGroup Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { GroupID LLUUID } { LocalID S32 } } } { ParcelReclaim Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { LocalID S32 } } } { ParcelClaim Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { GroupID LLUUID } { IsGroupOwned BOOL } { Final BOOL } } { ParcelData Variable { West F32 } { South F32 } { East F32 } { North F32 } } } { ParcelJoin Low NotTrusted Unencoded { ParcelData Single { AgentID LLUUID } { West F32 } { South F32 } { East F32 } { North F32 } } } { ParcelDivide Low NotTrusted Unencoded { ParcelData Single { AgentID LLUUID } { West F32 } { South F32 } { East F32 } { North F32 } } } { ParcelRelease Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { LocalID S32 } } } { ParcelBuy Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { GroupID LLUUID } { IsGroupOwned BOOL } { LocalID S32 } { Final BOOL } } } { ParcelGodForceOwner Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { OwnerID LLUUID } { LocalID S32 } } } { ParcelAccessListRequest Low NotTrusted Zerocoded { Data Single { AgentID LLUUID } { SequenceID S32 } { Flags U32 } { LocalID S32 } } } { ParcelAccessListReply Low NotTrusted Zerocoded { Data Single { AgentID LLUUID } { SequenceID S32 } { Flags U32 } { LocalID S32 } } { List Variable { ID LLUUID } { Time S32 } { Flags U32 } } } { ParcelAccessListUpdate Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { Flags U32 } { LocalID S32 } } { List Variable { ID LLUUID } { Time S32 } { Flags U32 } } } { ParcelDwellRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { Data Single { LocalID S32 } { ParcelID LLUUID } } } { ParcelDwellReply Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { Data Single { LocalID S32 } { ParcelID LLUUID } { Dwell F32 } } } { RequestParcelTransfer Low Trusted Zerocoded { Data Single { TransactionID LLUUID } { TransactionTime U32 } { SourceID LLUUID } { DestID LLUUID } { OwnerID LLUUID } { Flags U8 } { TransactionType S32 } { Amount S32 } { BillableArea S32 } { ActualArea S32 } { Final BOOL } { ReservedNewbie BOOL } } } { UpdateParcel Low Trusted Zerocoded { ParcelData Single { ParcelID LLUUID } { RegionHandle U64 } { OwnerID LLUUID } { GroupOwned BOOL } { Status U8 } { Name Variable 1 } { Description Variable 1 } { MusicURL Variable 1 } { RegionX F32 } { RegionY F32 } { ActualArea S32 } { BillableArea S32 } { ShowDir BOOL } { IsForSale BOOL } { Category U8 } { SnapshotID LLUUID } { UserLocation LLVector3 } { SalePrice S32 } { AuthorizedBuyerID LLUUID } { ReservedNewbie BOOL } { AllowPublish BOOL } { MaturePublish BOOL } } } { RemoveParcel Low Trusted Unencoded { ParcelData Variable { ParcelID LLUUID } } } { MergeParcel Low Trusted Unencoded { MasterParcelData Single { MasterID LLUUID } } { SlaveParcelData Variable { SlaveID LLUUID } } } { LogParcelChanges Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { RegionData Single { RegionHandle U64 } } { ParcelData Variable { ParcelID LLUUID } { OwnerID LLUUID } { IsOwnerGroup BOOL } { ActualArea S32 } { Action S8 } { TransactionID LLUUID } } } { CheckParcelSales Low Trusted Unencoded { RegionData Variable { RegionHandle U64 } } } { ParcelSales Low Trusted Unencoded { ParcelData Variable { ParcelID LLUUID } { BuyerID LLUUID } } } { ParcelGodMarkAsContent Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } } } { ParcelGodReserveForNewbie Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } { SnapshotID LLUUID } } } { ViewerStartAuction Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ParcelData Single { LocalID S32 } { SnapshotID LLUUID } } } { StartAuction Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { ParcelData Single { ParcelID LLUUID } { SnapshotID LLUUID } { Name Variable 1 } } } { ConfirmAuctionStart Low Trusted Unencoded { AuctionData Single { ParcelID LLUUID } { AuctionID U32 } } } { CompleteAuction Low Trusted Unencoded { ParcelData Variable { ParcelID LLUUID } } } { CancelAuction Low Trusted Unencoded { ParcelData Variable { ParcelID LLUUID } } } { CheckParcelAuctions Low Trusted Unencoded { RegionData Variable { RegionHandle U64 } } } { ParcelAuctions Low Trusted Unencoded { ParcelData Variable { ParcelID LLUUID } { WinnerID LLUUID } } } { UUIDNameRequest Low NotTrusted Unencoded { UUIDNameBlock Variable { ID LLUUID } } } { UUIDNameReply Low Trusted Unencoded { UUIDNameBlock Variable { ID LLUUID } { FirstName Variable 1 } { LastName Variable 1 } } } { UUIDGroupNameRequest Low NotTrusted Unencoded { UUIDNameBlock Variable { ID LLUUID } } } { UUIDGroupNameReply Low Trusted Unencoded { UUIDNameBlock Variable { ID LLUUID } { GroupName Variable 1 } } } { ChatPass Low Trusted Zerocoded { ChatData Single { Channel S32 } { Position LLVector3 } { ID LLUUID } { Name Variable 1 } { SourceType U8 } { Type U8 } { Radius F32 } { SimAccess U8 } { Message Variable 2 } } } { EdgeDataPacket High Trusted Zerocoded { EdgeData Single { LayerType U8 } { Direction U8 } { LayerData Variable 2 } } } { SimStatus Medium Trusted Unencoded { SimStatus Single { CanAcceptAgents BOOL } { CanAcceptTasks BOOL } } } { ChildAgentUpdate High Trusted Zerocoded { AgentData Single { RegionHandle U64 } { ViewerCircuitCode U32 } { AgentID LLUUID } { SessionID LLUUID } { AgentPos LLVector3 } { AgentVel LLVector3 } { Center LLVector3 } { Size LLVector3 } { AtAxis LLVector3 } { LeftAxis LLVector3 } { UpAxis LLVector3 } { ChangedGrid BOOL } { Far F32 } { Aspect F32 } { Throttles Variable 1 } { LocomotionState U32 } { HeadRotation LLQuaternion } { BodyRotation LLQuaternion } { ControlFlags U32 } { EnergyLevel F32 } { GodLevel U8 } { AlwaysRun BOOL } { PreyAgent LLUUID } { AgentAccess U8 } { AgentTextures Variable 2 } { GroupIndex S8 } } { GroupData Variable { GroupID LLUUID } { GroupOfficer BOOL } } { AnimationData Variable { Animation LLUUID } { ObjectID LLUUID } } { GranterBlock Variable { GranterID LLUUID } } { NVPairData Variable { NVPairs Variable 2 } } { VisualParam Variable { ParamValue U8 } } } { ChildAgentAlive High Trusted Unencoded { AgentData Single { RegionHandle U64 } { ViewerCircuitCode U32 } { AgentID LLUUID } { SessionID LLUUID } } } { ChildAgentPositionUpdate High Trusted Unencoded { AgentData Single { RegionHandle U64 } { ViewerCircuitCode U32 } { AgentID LLUUID } { SessionID LLUUID } { AgentPos LLVector3 } { AgentVel LLVector3 } { Center LLVector3 } { Size LLVector3 } { AtAxis LLVector3 } { LeftAxis LLVector3 } { UpAxis LLVector3 } { ChangedGrid BOOL } } } { ChildAgentDying Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { ChildAgentUnknown Low Trusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { PassObject High Trusted Zerocoded { ObjectData Single { ID LLUUID } { ParentID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { PCode U8 } { Material U8 } { State U8 } { Scale LLVector3 } { UsePhysics U8 } { PosX S16 } { PosY S16 } { PosZ S16 } { VelX S16 } { VelY S16 } { VelZ S16 } { Rotation LLQuaternion } { AngVelX S16 } { AngVelY S16 } { AngVelZ S16 } { PathCurve U8 } { ProfileCurve U8 } { PathBegin U8 } { PathEnd U8 } { PathScaleX U8 } { PathScaleY U8 } { PathShearX U8 } { PathShearY U8 } { PathTwist S8 } { PathTwistBegin S8 } { PathRadiusOffset S8 } { PathTaperX S8 } { PathTaperY S8 } { PathRevolutions U8 } { PathSkew S8 } { ProfileBegin U8 } { ProfileEnd U8 } { ProfileHollow U8 } { TextureEntry Variable 2 } { SubType S16 } { Active U8 } { Data Variable 2 } } { NVPairData Variable { NVPairs Variable 2 } } } { AtomicPassObject High Trusted Unencoded { TaskData Single { TaskID LLUUID } { AttachmentNeedsSave BOOL } } } { KillChildAgents Low Trusted Unencoded { IDBlock Single { AgentID LLUUID } } } { GetScriptRunning Low NotTrusted Unencoded { Script Single { ObjectID LLUUID } { ItemID LLUUID } } } { ScriptRunningReply Low NotTrusted Unencoded { Script Single { ObjectID LLUUID } { ItemID LLUUID } { Running BOOL } } } { SetScriptRunning Low NotTrusted Unencoded { Script Single { ObjectID LLUUID } { ItemID LLUUID } { Running BOOL } } } { ScriptReset Low NotTrusted Unencoded { Script Single { AgentID LLUUID } { ObjectID LLUUID } { ItemID LLUUID } } } { ScriptSensorRequest Low Trusted Zerocoded { Requester Single { SourceID LLUUID } { RequestID LLUUID } { SearchID LLUUID } { SearchPos LLVector3 } { SearchDir LLQuaternion } { SearchName Variable 1 } { Type S32 } { Range F32 } { Arc F32 } { RegionHandle U64 } { SearchRegions U8 } } } { ScriptSensorReply Low Trusted Zerocoded { Requester Single { SourceID LLUUID } } { SensedData Variable { ObjectID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { Position LLVector3 } { Velocity LLVector3 } { Rotation LLQuaternion } { Name Variable 1 } { Type S32 } { Range F32 } } } { CompleteAgentMovement Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { CircuitCode U32 } } } { AgentMovementComplete Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { Position LLVector3 } { LookAt LLVector3 } { RegionHandle U64 } { Timestamp U32 } } } { LogLogin Low Trusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { ViewerDigest LLUUID } { LastExecFroze BOOL } { SpaceIP IPADDR } } } { ConnectAgentToUserserver Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { ConnectToUserserver Low NotTrusted Unencoded } { DataServerLogout Low Trusted Unencoded { UserData Single { AgentID LLUUID } { ViewerIP IPADDR } { Disconnect BOOL } { SessionID LLUUID } } } { LogoutRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { FinalizeLogout Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } } { LogoutReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { InventoryData Variable { ItemID LLUUID } { NewAssetID LLUUID } } } { LogoutDemand Low NotTrusted Unencoded { LogoutBlock Single { SessionID LLUUID } } } { ViewerLoginLocationRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { PositionBlock Single { ViewerRegion U64 } { ViewerPosition LLVector3 } } { URLBlock Single { SimName Variable 1 } { Pos LLVector3 } } } { ViewerSimLocationRequest Low NotTrusted Unencoded { PositionBlock Single { AgentID LLUUID } { SimName Variable 1 } } } { RequestLocationGetAccess Low Trusted Unencoded { PositionBlock Single { AgentID LLUUID } { SessionID LLUUID } { ViewerIP IPADDR } { ViewerPort IPPORT } { ViewerRegion U64 } { ViewerPosition LLVector3 } } } { RequestLocationGetAccessReply Low Trusted Unencoded { PositionBlock Single { ViewerIP IPADDR } { ViewerPort IPPORT } { ViewerRegion U64 } { ViewerPosition LLVector3 } { TravelAccess U8 } } } { UserListRequest Low NotTrusted Unencoded } { ImprovedInstantMessage Low NotTrusted Zerocoded { MessageBlock Single { FromAgentID LLUUID } { ToAgentID LLUUID } { ParentEstateID U32 } { RegionID LLUUID } { Position LLVector3 } { Offline U8 } { Dialog U8 } { ID LLUUID } { Timestamp U32 } { FromAgentName Variable 1 } { Message Variable 2 } { BinaryBucket Variable 2 } } } { StartGroupIM Low NotTrusted Unencoded { SessionBlock Single { SessionID LLUUID } { Everyone U8 } } { Participants Variable { AgentID LLUUID } } } { DropGroupIM Low NotTrusted Unencoded { SessionBlock Single { SessionID LLUUID } { AgentID LLUUID } } } { GroupIM Low NotTrusted Unencoded { MessageBlock Single { SessionID LLUUID } { FromID LLUUID } { FromAgentName Variable 1 } { Message Variable 2 } } } { RetrieveInstantMessages Low NotTrusted Unencoded { AgentBlock Single { Agent LLUUID } } } { DequeueInstantMessages Low Trusted Unencoded } { FindAgent Low NotTrusted Unencoded { AgentBlock Single { Hunter LLUUID } { Prey LLUUID } { SpaceIP IPADDR } } { LocationBlock Variable { GlobalX F64 } { GlobalY F64 } } } { TrackOnlineStatus Low NotTrusted Zerocoded { AgentBlock Variable { AgentID LLUUID } } } { IgnoreOnlineStatus Low NotTrusted Zerocoded { AgentBlock Variable { AgentID LLUUID } } } { RequestGodlikePowers Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { RequestBlock Single { Godlike BOOL } { Token LLUUID } } } { GrantGodlikePowers Low Trusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { GrantData Single { GodLevel U8 } { Token LLUUID } } } { GodlikeMessage Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { MethodData Single { Method Variable 1 } { Invoice LLUUID } } { ParamList Variable { Parameter Variable 1 } } } { EstateOwnerMessage Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { MethodData Single { Method Variable 1 } { Invoice LLUUID } } { ParamList Variable { Parameter Variable 1 } } } { GenericMessage Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { MethodData Single { Method Variable 1 } { Invoice LLUUID } } { ParamList Variable { Parameter Variable 1 } } } { MuteListRequest Low NotTrusted Unencoded { MuteData Single { AgentID LLUUID } { MuteCRC U32 } } } { UpdateMuteListEntry Low NotTrusted Unencoded { MuteData Single { AgentID LLUUID } { MuteID LLUUID } { MuteName Variable 1 } } } { RemoveMuteListEntry Low NotTrusted Unencoded { MuteData Single { AgentID LLUUID } { MuteID LLUUID } } } { UpdateInventoryItem Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { InventoryData Variable { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } } { UpdateInventoryItemAsset Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { InventoryData Variable { ItemID LLUUID } { AssetID LLUUID } } } { MoveInventoryItem Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { Stamp BOOL } } { InventoryData Variable { ItemID LLUUID } { FolderID LLUUID } } } { CopyInventoryItem Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { InventoryData Variable { OldItemID LLUUID } { NewFolderID LLUUID } } } { RemoveInventoryItem Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { InventoryData Variable { ItemID LLUUID } } } { ChangeInventoryItemFlags Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { InventoryData Variable { ItemID LLUUID } { Flags U32 } } } { SaveAssetIntoInventory Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { InventoryData Single { ItemID LLUUID } { NewAssetID LLUUID } } } { CreateInventoryFolder Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { FolderData Single { FolderID LLUUID } { ParentID LLUUID } { Type S8 } { Name Variable 1 } } } { UpdateInventoryFolder Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { FolderData Variable { FolderID LLUUID } { ParentID LLUUID } { Type S8 } { Name Variable 1 } } } { MoveInventoryFolder Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { Stamp BOOL } } { InventoryData Variable { FolderID LLUUID } { ParentID LLUUID } } } { RemoveInventoryFolder Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { FolderData Variable { FolderID LLUUID } } } { FetchInventoryDescendents Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { InventoryData Single { FolderID LLUUID } { OwnerID LLUUID } { SortOrder S32 } { FetchFolders BOOL } { FetchItems BOOL } } } { InventoryDescendents Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { FolderID LLUUID } { OwnerID LLUUID } { Version S32 } { Descendents S32 } } { FolderData Variable { FolderID LLUUID } { ParentID LLUUID } { Type S8 } { Name Variable 1 } } { ItemData Variable { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } } { FetchInventory Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { InventoryData Variable { OwnerID LLUUID } { ItemID LLUUID } } } { FetchInventoryReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { InventoryData Variable { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } } { BulkUpdateInventory Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { TransactionID LLUUID } } { FolderData Variable { FolderID LLUUID } { ParentID LLUUID } { Type S8 } { Name Variable 1 } } { ItemData Variable { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } } { RequestInventoryAsset Low Trusted Unencoded { QueryData Single { QueryID LLUUID } { AgentID LLUUID } { OwnerID LLUUID } { ItemID LLUUID } } } { InventoryAssetResponse Low Trusted Unencoded { QueryData Single { QueryID LLUUID } { AssetID LLUUID } { IsReadable BOOL } } } { RemoveInventoryObjects Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { FolderData Variable { FolderID LLUUID } } { ItemData Variable { ItemID LLUUID } } } { PurgeInventoryDescendents Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { InventoryData Single { FolderID LLUUID } } } { UpdateTaskInventory Low NotTrusted Zerocoded { UpdateData Single { AgentID LLUUID } { GroupID LLUUID } { LocalID U32 } { Key U8 } } { InventoryData Single { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } } { RemoveTaskInventory Low NotTrusted Zerocoded { InventoryData Single { AgentID LLUUID } { GroupID LLUUID } { LocalID U32 } { ItemID LLUUID } } } { MoveTaskInventory Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } { FolderID LLUUID } } { InventoryData Single { LocalID U32 } { ItemID LLUUID } } } { RequestTaskInventory Low NotTrusted Unencoded { InventoryData Single { AgentID LLUUID } { LocalID U32 } } } { ReplyTaskInventory Low Trusted Zerocoded { InventoryData Single { TaskID LLUUID } { Serial S16 } { Filename Variable 1 } } } { DeRezObject Low NotTrusted Zerocoded { AgentBlock Single { AgentID LLUUID } { SessionID LLUUID } { GroupID LLUUID } { Destination U8 } { DestinationID LLUUID } { TransactionID LLUUID } { PacketCount U8 } { PacketNumber U8 } } { ObjectData Variable { ObjectLocalID U32 } } } { DeRezAck Low Trusted Unencoded } { RezObject Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { RezData Single { FromTaskID LLUUID } { BypassRaycast U8 } { RayStart LLVector3 } { RayEnd LLVector3 } { RayTargetID LLUUID } { RayEndIsIntersection BOOL } { RezSelected BOOL } { RemoveItem BOOL } { ItemFlags U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } } { InventoryData Single { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } } { DeclineInventory Low NotTrusted Unencoded { InfoBlock Single { TransactionID LLUUID } } } { TransferInventory Low Trusted Zerocoded { InfoBlock Single { SourceID LLUUID } { DestID LLUUID } { TransactionID LLUUID } } { InventoryBlock Variable { InventoryID LLUUID } { Type S8 } } } { TransferInventoryAck Low Trusted Zerocoded { InfoBlock Single { TransactionID LLUUID } { InventoryID LLUUID } } } { RequestFriendship Low NotTrusted Unencoded { AgentBlock Single { SourceID LLUUID } { FolderID LLUUID } { DestID LLUUID } { TransactionID LLUUID } } } { AcceptFriendship Low NotTrusted Unencoded { TransactionBlock Single { TransactionID LLUUID } } { FolderData Variable { FolderID LLUUID } } } { DeclineFriendship Low NotTrusted Unencoded { TransactionBlock Single { TransactionID LLUUID } } } { FormFriendship Low Trusted Unencoded { AgentBlock Single { SourceID LLUUID } { DestID LLUUID } } } { TerminateFriendship Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ExBlock Single { OtherID LLUUID } } } { OfferCallingCard Low NotTrusted Unencoded { AgentBlock Single { SourceID LLUUID } { DestID LLUUID } { TransactionID LLUUID } } } { AcceptCallingCard Low NotTrusted Unencoded { TransactionBlock Single { TransactionID LLUUID } } { FolderData Variable { FolderID LLUUID } } } { DeclineCallingCard Low NotTrusted Unencoded { TransactionBlock Single { TransactionID LLUUID } } } { RezScript Low NotTrusted Zerocoded { UpdateBlock Single { AgentID LLUUID } { GroupID LLUUID } { ObjectLocalID U32 } { Enabled BOOL } } { InventoryBlock Single { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } } { CreateInventoryItem Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { InventoryBlock Single { FolderID LLUUID } { NextOwnerMask U32 } { Type S8 } { InvType S8 } { Name Variable 1 } { Description Variable 1 } } } { CreateLandmarkForEvent Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { EventData Single { EventID U32 } } { InventoryBlock Single { FolderID LLUUID } { Name Variable 1 } } } { EventLocationRequest Low Trusted Zerocoded { QueryData Single { QueryID LLUUID } } { EventData Single { EventID U32 } } } { EventLocationReply Low Trusted Zerocoded { QueryData Single { QueryID LLUUID } } { EventData Single { Success BOOL } { RegionID LLUUID } { RegionPos LLVector3 } } } { RegionHandleRequest Low NotTrusted Unencoded { RequestBlock Single { RegionID LLUUID } } } { RegionIDAndHandleReply Low Trusted Unencoded { ReplyBlock Single { RegionID LLUUID } { RegionHandle U64 } } } { MoneyTransferRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { MoneyData Single { SourceID LLUUID } { DestID LLUUID } { Flags U8 } { Amount S32 } { AggregatePermNextOwner U8 } { AggregatePermInventory U8 } { TransactionType S32 } { Description Variable 1 } } } { MoneyTransferBackend Low Trusted Zerocoded { MoneyData Single { TransactionID LLUUID } { TransactionTime U32 } { SourceID LLUUID } { DestID LLUUID } { Flags U8 } { Amount S32 } { AggregatePermNextOwner U8 } { AggregatePermInventory U8 } { TransactionType S32 } { Description Variable 1 } } } { BulkMoneyTransfer Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { RegionX U32 } { RegionY U32 } } { MoneyData Variable { TransactionID LLUUID } { DestID LLUUID } { Flags U8 } { Amount S32 } { TransactionType S32 } { Description Variable 1 } } } { AdjustBalance Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { Delta S32 } } } { MoneyBalanceRequest Low NotTrusted Zerocoded { MoneyData Single { TransactionID LLUUID } { AgentID LLUUID } } } { MoneyBalanceReply Low Trusted Zerocoded { MoneyData Single { AgentID LLUUID } { TransactionID LLUUID } { TransactionSuccess BOOL } { MoneyBalance S32 } { SquareMetersCredit S32 } { SquareMetersCommitted S32 } { Description Variable 1 } } } { RoutedMoneyBalanceReply Low Trusted Zerocoded { TargetBlock Single { TargetIP IPADDR } { TargetPort IPPORT } } { MoneyData Single { AgentID LLUUID } { TransactionID LLUUID } { TransactionSuccess BOOL } { MoneyBalance S32 } { SquareMetersCredit S32 } { SquareMetersCommitted S32 } { Description Variable 1 } } } { MoneyHistoryRequest Low NotTrusted Unencoded { MoneyData Single { AgentID LLUUID } { StartPeriod S32 } { EndPeriod S32 } } } { MoneyHistoryReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { MoneyData Single { StartPeriod S32 } { EndPeriod S32 } { Balance S32 } { StartDate Variable 1 } { TaxEstimate S32 } { StipendEstimate S32 } { BonusEstimate S32 } } { HistoryData Variable { Description Variable 1 } { Amount S32 } } } { MoneySummaryRequest Low NotTrusted Unencoded { MoneyData Single { AgentID LLUUID } { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } } } { MoneySummaryReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { MoneyData Single { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } { StartDate Variable 1 } { Balance S32 } { TotalCredits S32 } { TotalDebits S32 } { ObjectTaxCurrent S32 } { LightTaxCurrent S32 } { LandTaxCurrent S32 } { GroupTaxCurrent S32 } { ParcelDirFeeCurrent S32 } { ObjectTaxEstimate S32 } { LightTaxEstimate S32 } { LandTaxEstimate S32 } { GroupTaxEstimate S32 } { ParcelDirFeeEstimate S32 } { StipendEstimate S32 } { BonusEstimate S32 } { LastTaxDate Variable 1 } { TaxDate Variable 1 } } } { MoneyDetailsRequest Low NotTrusted Unencoded { MoneyData Single { AgentID LLUUID } { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } } } { MoneyDetailsReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { MoneyData Single { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } { StartDate Variable 1 } } { HistoryData Variable { Description Variable 1 } { Amount S32 } } } { MoneyTransactionsRequest Low NotTrusted Unencoded { MoneyData Single { AgentID LLUUID } { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } } } { MoneyTransactionsReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { MoneyData Single { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } { StartDate Variable 1 } } { HistoryData Variable { Time Variable 1 } { User Variable 1 } { Type S32 } { Item Variable 1 } { Amount S32 } } } { GestureUpdate Medium NotTrusted Unencoded { AgentBlock Single { AgentID LLUUID } { Filename Variable 1 } { ToViewer BOOL } } } { GestureRequest Low NotTrusted Unencoded { AgentBlock Single { AgentID LLUUID } { Reset BOOL } } } { ActivateGestures Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } } { Data Variable { ItemID LLUUID } { AssetID LLUUID } { GestureFlags U32 } } } { DeactivateGestures Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } } { Data Variable { ItemID LLUUID } { GestureFlags U32 } } } { InventoryUpdate Low Trusted Unencoded { AgentData Single { AgentID LLUUID } } { InventoryData Single { IsComplete U8 } { Filename Variable 1 } } } { MuteListUpdate Low Trusted Unencoded { MuteData Single { AgentID LLUUID } { Filename Variable 1 } } } { UseCachedMuteList Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } } { UserLoginLocationReply Low Trusted Zerocoded { AgentData Single { SessionID LLUUID } { Message Variable 1 } } { RegionInfo Single { LocationValid BOOL } { GridsPerEdge U32 } { MetersPerGrid F32 } { Handle U64 } { UsecSinceStart U64 } { SecPerDay U32 } { SecPerYear U32 } { SunDirection LLVector3 } { SunAngVelocity LLVector3 } } { SimulatorBlock Single { IP IPADDR } { Port IPPORT } } { URLBlock Single { LocationID U32 } { LocationLookAt LLVector3 } } } { UserSimLocationReply Low Trusted Unencoded { SimulatorBlock Single { AccessOK U8 } { SimName Variable 1 } { SimHandle U64 } } } { UserListReply Low Trusted Unencoded { UserBlock Variable { FirstName Variable 1 } { LastName Variable 1 } { Status U8 } } } { ChatMessage Low Trusted Unencoded { ChatData Single { Text Variable 2 } } } { OnlineNotification Low Trusted Unencoded { AgentBlock Variable { AgentID LLUUID } } } { OfflineNotification Low Trusted Unencoded { AgentBlock Variable { AgentID LLUUID } } } { SetStartLocationRequest Low NotTrusted Zerocoded { StartLocationData Single { AgentID LLUUID } { SimName Variable 1 } { LocationID U32 } { LocationPos LLVector3 } { LocationLookAt LLVector3 } } } { SetStartLocation Low Trusted Zerocoded { StartLocationData Single { AgentID LLUUID } { RegionID LLUUID } { LocationID U32 } { RegionHandle U64 } { LocationPos LLVector3 } { LocationLookAt LLVector3 } } } { UserLoginLocationRequest Low Trusted Zerocoded { UserBlock Single { SessionID LLUUID } { TravelAccess U8 } { FirstLogin BOOL } { LimitedToEstate U32 } } { PositionBlock Single { ViewerRegion U64 } { ViewerPosition LLVector3 } } { URLBlock Single { SimName Variable 1 } { Pos LLVector3 } } } { SpaceLoginLocationReply Low Trusted Zerocoded { UserBlock Single { SessionID LLUUID } { LocationID U32 } { LocationPos LLVector3 } { LocationLookAt LLVector3 } } { SimulatorBlock Single { IP IPADDR } { Port IPPORT } { CircuitCode U32 } { Name Variable 1 } { SimAccess U8 } } { RegionInfo Single { GridsPerEdge U32 } { MetersPerGrid F32 } { Handle U64 } { UsecSinceStart U64 } { SecPerDay U32 } { SecPerYear U32 } { SunDirection LLVector3 } { SunAngVelocity LLVector3 } } } { NetTest Low NotTrusted Unencoded { NetBlock Single { Port IPPORT } } } { SetCPURatio Low NotTrusted Unencoded { Data Single { Ratio U8 } } } { SimCrashed Low NotTrusted Unencoded { Data Single { RegionX U32 } { RegionY U32 } } { Users Variable { AgentID LLUUID } } } { SimulatorPauseState Low NotTrusted Unencoded { PauseBlock Single { SimPaused U32 } { LayersPaused U32 } { TasksPaused U32 } } } { SimulatorThrottleSettings Low NotTrusted Unencoded { Sender Single { ID LLUUID } } { Throttle Single { Throttles Variable 1 } } } { NameValuePair Low NotTrusted Unencoded { TaskData Single { ID LLUUID } } { NameValueData Variable { NVPair Variable 2 } } } { RemoveNameValuePair Low NotTrusted Unencoded { TaskData Single { ID LLUUID } } { NameValueData Variable { NVPair Variable 2 } } } { GetNameValuePair Low NotTrusted Unencoded { TaskData Single { ID LLUUID } } { NameValueName Variable { Name Variable 2 } } } { UpdateAttachment Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { AttachmentBlock Single { AttachmentPoint U8 } } { OperationData Single { AddItem BOOL } { UseExistingAsset BOOL } } { InventoryData Single { ItemID LLUUID } { FolderID LLUUID } { CreatorID LLUUID } { OwnerID LLUUID } { GroupID LLUUID } { BaseMask U32 } { OwnerMask U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { GroupOwned BOOL } { AssetID LLUUID } { Type S8 } { InvType S8 } { Flags U32 } { SaleType U8 } { SalePrice S32 } { Name Variable 1 } { Description Variable 1 } { CreationDate S32 } { CRC U32 } } } { RemoveAttachment Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { AttachmentBlock Single { AttachmentPoint U8 } { ItemID LLUUID } } } { UUIDSoundTriggerFar High NotTrusted Unencoded { SoundData Single { ID LLUUID } { Handle U64 } { XPos S16 } { YPos S16 } { ZPos S16 } { Gain F32 } } } { AttachedSound Medium Trusted Unencoded { DataBlock Single { SoundID LLUUID } { ObjectID LLUUID } { Gain F32 } { Flags U8 } } } { AttachedSoundGainChange Medium Trusted Unencoded { DataBlock Single { ObjectID LLUUID } { Gain F32 } } } { AttachedSoundCutoffRadius Medium Trusted Unencoded { DataBlock Single { ObjectID LLUUID } { Radius F32 } } } { PreloadSound Medium Trusted Unencoded { DataBlock Variable { ObjectID LLUUID } { SoundID LLUUID } } } { AssetUploadRequest Low NotTrusted Unencoded { AssetBlock Single { UUID LLUUID } { Type S8 } { Tempfile BOOL } { AssetData Variable 2 } } } { AssetUploadComplete Low NotTrusted Unencoded { AssetBlock Single { UUID LLUUID } { Type S8 } { Success BOOL } } } { ReputationAgentAssign Low NotTrusted Unencoded { DataBlock Single { RatorID LLUUID } { RateeID LLUUID } { Behavior F32 } { Appearance F32 } { Building F32 } } } { ReputationIndividualRequest Low NotTrusted Unencoded { ReputationData Single { FromID LLUUID } { ToID LLUUID } } } { ReputationIndividualReply Low Trusted Unencoded { ReputationData Single { FromID LLUUID } { ToID LLUUID } { Behavior F32 } { Appearance F32 } { Building F32 } } } { EmailMessageRequest Low Trusted Unencoded { DataBlock Single { ObjectID LLUUID } { FromAddress Variable 1 } { Subject Variable 1 } } } { EmailMessageReply Low Trusted Unencoded { DataBlock Single { ObjectID LLUUID } { More U32 } { Time U32 } { FromAddress Variable 1 } { Subject Variable 1 } { Data Variable 2 } { MailFilter Variable 1 } } } { InternalScriptMail Medium Trusted Unencoded { DataBlock Single { From Variable 1 } { To LLUUID } { Subject Variable 1 } { Body Variable 2 } } } { ScriptDataRequest Low Trusted Unencoded { DataBlock Variable { Hash U64 } { RequestType S8 } { Request Variable 2 } } } { ScriptDataReply Low Trusted Unencoded { DataBlock Variable { Hash U64 } { Reply Variable 2 } } } { CreateGroupRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } { Name Variable 1 } { Charter Variable 2 } { ShowInList U8 } { ShowMembersInGroupDir U8 } { RequireMask U32 } { ReputationMin S32 } { ReputationMax S32 } { MoneyMin S32 } { MoneyMax S32 } { OfficerTitle Variable 1 } { MemberTitle Variable 1 } { PowersMask U32 } { InsigniaID LLUUID } { InviteOfficers Variable 2 } { InviteMembers Variable 2 } { MembershipFee S32 } { OpenEnrollment BOOL } { AllowPublish BOOL } { MaturePublish BOOL } } } { CreateGroupReply Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { ReplyData Single { GroupID LLUUID } { Result S32 } { Message Variable 1 } } } { UpdateGroupInfo Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } { Charter Variable 2 } { ShowInList BOOL } { ShowMembersInGroupDir BOOL } { OfficerTitle Variable 1 } { MemberTitle Variable 1 } { InsigniaID LLUUID } { MembershipFee S32 } { OpenEnrollment BOOL } { InviteOfficers Variable 2 } { InviteMembers Variable 2 } { AllowPublish BOOL } { MaturePublish BOOL } } } { GroupInfoUpdated Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } } { JoinGroupRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } { Officer U8 } { MembershipFee S32 } } } { JoinGroupReply Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Success BOOL } } } { EjectGroupMemberRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } { AgentID LLUUID } } } { RemoveMemberFromGroup Low Trusted Unencoded { TargetBlock Single { TargetIP IPADDR } { TargetPort IPPORT } } { AgentBlock Single { AgentID LLUUID } } { GroupBlock Single { GroupID LLUUID } } } { LeaveGroupRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } } } { InviteGroupRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { InviteData Single { AgentName Variable 1 } { InviteeID LLUUID } { GroupID LLUUID } { Officer BOOL } } } { GroupPropertiesRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } } } { GroupPropertiesReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } { Name Variable 1 } { Charter Variable 2 } { ShowInList U8 } { ShowMembersInGroupDir U8 } { RequireMask U32 } { ReputationMin S32 } { ReputationMax S32 } { MoneyMin S32 } { MoneyMax S32 } { OfficerTitle Variable 1 } { MemberTitle Variable 1 } { PowersMask U32 } { InsigniaID LLUUID } { FounderID LLUUID } { MembershipFee S32 } { OpenEnrollment BOOL } { Money S32 } { CurrentElectionID LLUUID } { GroupMembershipCount S32 } { AllowPublish BOOL } { MaturePublish BOOL } } } { GroupProfileRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } } } { GroupProfileReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } { Name Variable 1 } { Charter Variable 2 } { ShowInList U8 } { ShowMembersInGroupDir U8 } { OfficerTitle Variable 1 } { MemberTitle Variable 1 } { InsigniaID LLUUID } { FounderID LLUUID } { FounderName Variable 1 } { MembershipFee S32 } { OpenEnrollment BOOL } } } { GroupMoneyHistoryRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } } } { GroupMoneyHistoryReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { GroupData Single { IntervalDays S32 } { CurrentInterval S32 } { CurrentTaxes S32 } { CurrentDividend S32 } { EstimatedTaxes S32 } { EstimatedDividend S32 } { NumberNonExemptMembers S32 } } } { GroupAccountSummaryRequest Low NotTrusted Zerocoded { MoneyData Single { AgentID LLUUID } { GroupID LLUUID } { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } } } { GroupAccountSummaryReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { MoneyData Single { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } { StartDate Variable 1 } { Balance S32 } { TotalCredits S32 } { TotalDebits S32 } { ObjectTaxCurrent S32 } { LightTaxCurrent S32 } { LandTaxCurrent S32 } { GroupTaxCurrent S32 } { ParcelDirFeeCurrent S32 } { ObjectTaxEstimate S32 } { LightTaxEstimate S32 } { LandTaxEstimate S32 } { GroupTaxEstimate S32 } { ParcelDirFeeEstimate S32 } { NonExemptMembers S32 } { LastTaxDate Variable 1 } { TaxDate Variable 1 } } } { GroupAccountDetailsRequest Low NotTrusted Zerocoded { MoneyData Single { AgentID LLUUID } { GroupID LLUUID } { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } } } { GroupAccountDetailsReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { MoneyData Single { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } { StartDate Variable 1 } } { HistoryData Variable { Description Variable 1 } { Amount S32 } } } { GroupAccountTransactionsRequest Low NotTrusted Zerocoded { MoneyData Single { AgentID LLUUID } { GroupID LLUUID } { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } } } { GroupAccountTransactionsReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { MoneyData Single { RequestID LLUUID } { IntervalDays S32 } { CurrentInterval S32 } { StartDate Variable 1 } } { HistoryData Variable { Time Variable 1 } { User Variable 1 } { Type S32 } { Item Variable 1 } { Amount S32 } } } { GroupElectionInfoRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } } } { GroupElectionInfoReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } } { ElectionData Single { GroupID LLUUID } { ElectionID LLUUID } { ElectionType Variable 1 } { StartDateTime Variable 1 } { EndDateTime Variable 1 } { ElectionInitiator LLUUID } { AlreadyVoted BOOL } { VotedForCandidate LLUUID } { VoteCast Variable 1 } { Majority F32 } { Quorum S32 } } { CandidateData Variable { AgentID LLUUID } } } { StartGroupElection Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ElectionData Single { GroupID LLUUID } { Duration S32 } { Majority F32 } { Quorum S32 } } } { GroupElectionBallot Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ElectionData Single { GroupID LLUUID } { ElectionID LLUUID } { CandidateID LLUUID } } } { StartGroupRecall Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { RecallData Single { GroupID LLUUID } { Duration S32 } { RecallID LLUUID } } } { GroupRecallBallot Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { RecallData Single { GroupID LLUUID } { ElectionID LLUUID } { VoteCast Variable 1 } } } { GroupActiveProposalsRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } } } { GroupActiveProposalItemReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { ProposalData Variable { VoteID LLUUID } { VoteInitiator LLUUID } { TerseDateID Variable 1 } { StartDateTime Variable 1 } { EndDateTime Variable 1 } { AlreadyVoted BOOL } { VoteCast Variable 1 } { Majority F32 } { Quorum S32 } { ProposalText Variable 1 } } } { GroupVoteHistoryRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } } } { GroupVoteHistoryItemReply Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } { HistoryItemData Single { VoteID LLUUID } { TerseDateID Variable 1 } { StartDateTime Variable 1 } { EndDateTime Variable 1 } { VoteInitiator LLUUID } { RecallID LLUUID } { VoteType Variable 1 } { VoteResult Variable 1 } { Majority F32 } { Quorum S32 } { ProposalText Variable 2 } } { VoteItem Variable { CandidateID LLUUID } { VoteCast Variable 1 } { NumVotes S32 } } } { StartGroupProposal Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { ProposalData Single { GroupID LLUUID } { Quorum S32 } { Majority F32 } { Duration S32 } { ProposalText Variable 1 } } } { GroupProposalBallot Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { ProposalData Single { ProposalID LLUUID } { VoteCast Variable 1 } } } { CallVote Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } } { VoteData Single { GroupID LLUUID } { VoteType S32 } { VoteQuorum S32 } { VoteTime F32 } { VoteText Variable 1 } } } { Vote Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { VoteData Single { VoteID LLUUID } { Response S32 } } } { TallyVotes Low Trusted Unencoded } { GroupMembersRequest Low NotTrusted Unencoded { RequestData Single { RequestID LLUUID } { GroupID LLUUID } { ActiveOnly BOOL } } } { GroupMembersReply Low NotTrusted Zerocoded { ReplyData Single { RequestID LLUUID } { GroupID LLUUID } } { AgentData Variable { AgentID LLUUID } } } { GroupOfficersAndMembersRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { GroupData Single { GroupID LLUUID } { IncludeMembers BOOL } } } { GroupOfficersAndMembersReply Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { CompoundMsgID LLUUID } } { GroupData Single { GroupID LLUUID } } { OfficerData Variable { AgentID LLUUID } { Contribution S32 } { OnlineStatus Variable 1 } } { MemberData Variable { AgentID LLUUID } { Contribution S32 } { OnlineStatus Variable 1 } } } { ActivateGroup Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { GroupID LLUUID } } } { SetGroupContribution Low NotTrusted Unencoded { Data Single { AgentID LLUUID } { GroupID LLUUID } { Contribution S32 } } } { LiveHelpGroupRequest Low Trusted Unencoded { RequestData Single { RequestID LLUUID } { AgentID LLUUID } } } { LiveHelpGroupReply Low Trusted Unencoded { ReplyData Single { RequestID LLUUID } { GroupID LLUUID } { Selection Variable 1 } } } { AgentWearablesRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } } { AgentWearablesUpdate Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SerialNum U32 } } { WearableData Variable { ItemID LLUUID } { AssetID LLUUID } { WearableType U8 } } } { AgentCachedTexture Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } { SerialNum S32 } } { WearableData Variable { ID LLUUID } { TextureIndex U8 } } } { AgentDataUpdateRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } } { AgentDataUpdate Low Trusted Zerocoded { AgentData Single { AgentID LLUUID } { FirstName Variable 1 } { LastName Variable 1 } { GroupTitle Variable 1 } { GroupIndex S8 } } { GroupData Variable { GroupID LLUUID } { GroupOfficer BOOL } { GroupInsigniaID LLUUID } { Contribution S32 } { GroupName Variable 1 } } } { LogTextMessage Low Trusted Zerocoded { DataBlock Variable { FromAgentId LLUUID } { ToAgentId LLUUID } { GlobalX F64 } { GlobalY F64 } { Time U32 } { Message Variable 2 } } } { ViewerEffect Medium NotTrusted Zerocoded { Effect Variable { ID LLUUID } { Type U8 } { Duration F32 } { Color Fixed 4 } { TypeData Variable 1 } } } { SetSunPhase Medium NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { Data Single { Phase F32 } } } { CreateTrustedCircuit Low NotTrusted Unencoded { DataBlock Single { Digest Fixed 32 } } } { DenyTrustedCircuit Low NotTrusted Unencoded } { RezSingleAttachmentFromInv Low NotTrusted Zerocoded { ObjectData Single { AgentID LLUUID } { AssetID LLUUID } { ItemID LLUUID } { AttachmentPt U8 } { ItemFlags U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { Name Variable 1 } { Description Variable 1 } } } { RezMultipleAttachmentsFromInv Low NotTrusted Zerocoded { HeaderData Single { CompoundMsgID LLUUID } { TotalObjects U8 } { AgentID LLUUID } { FirstDetachAll U8 } } { ObjectData Variable { AssetID LLUUID } { ItemID LLUUID } { AttachmentPt U8 } { ItemFlags U32 } { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 } { Name Variable 1 } { Description Variable 1 } } } { DetachAttachmentIntoInv Low NotTrusted Unencoded { ObjectData Single { AgentID LLUUID } { ItemID LLUUID } } } { CreateNewOutfitAttachments Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { HeaderData Single { NewFolderID LLUUID } } { ObjectData Variable { OldItemID LLUUID } { OldFolderID LLUUID } } } { UserInfoRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } } { UserInfoReply Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { UserData Single { IMViaEMail BOOL } { EMail Variable 2 } } } { UpdateUserInfo Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { UserData Single { IMViaEMail BOOL } } } { GodExpungeUser Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { ExpungeData Variable { AgentID LLUUID } } } { StartExpungeProcess Low Trusted Zerocoded { ExpungeData Variable { AgentID LLUUID } } } { StartExpungeProcessAck Low Trusted Unencoded } { StartParcelRename Low Trusted Unencoded { ParcelData Variable { ParcelID LLUUID } { NewName Variable 1 } } } { StartParcelRenameAck Low Trusted Unencoded } { BulkParcelRename Low Trusted Zerocoded { ParcelData Variable { RegionHandle U64 } { ParcelID LLUUID } { NewName Variable 1 } } } { ParcelRename Low Trusted Unencoded { ParcelData Variable { ParcelID LLUUID } { NewName Variable 1 } } } { StartParcelRemove Low Trusted Unencoded { ParcelData Variable { ParcelID LLUUID } } } { StartParcelRemoveAck Low Trusted Unencoded } { BulkParcelRemove Low Trusted Zerocoded { ParcelData Variable { RegionHandle U64 } { ParcelID LLUUID } } } { InitiateUpload Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { FileData Single { BaseFilename Variable 1 } { SourceFilename Variable 1 } } } { InitiateDownload Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } } { FileData Single { SimFilename Variable 1 } { ViewerFilename Variable 1 } } } { SystemMessage Low Trusted Zerocoded { MethodData Single { Method Variable 1 } { Invoice LLUUID } { Digest Fixed 32 } } { ParamList Variable { Parameter Variable 1 } } } { MapLayerRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } { EstateID U32 } { Godlike BOOL } } } { MapLayerReply Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } } { LayerData Variable { Left U32 } { Right U32 } { Top U32 } { Bottom U32 } { ImageID LLUUID } } } { MapBlockRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } { EstateID U32 } { Godlike BOOL } } { PositionData Single { MinX U16 } { MaxX U16 } { MinY U16 } { MaxY U16 } } } { MapNameRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } { EstateID U32 } { Godlike BOOL } } { NameData Single { Name Variable 1 } } } { MapBlockReply Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } } { Data Variable { X U16 } { Y U16 } { Name Variable 1 } { Access U8 } { RegionFlags U32 } { WaterHeight U8 } { Agents U8 } { MapImageID LLUUID } } } { MapItemRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } { EstateID U32 } { Godlike BOOL } } { RequestData Single { ItemType U32 } { RegionHandle U64 } } } { MapItemReply Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { Flags U32 } } { RequestData Single { ItemType U32 } } { Data Variable { X U32 } { Y U32 } { ID LLUUID } { Extra S32 } { Extra2 S32 } { Name Variable 1 } } } { SendPostcard Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { AssetID LLUUID } { PosGlobal LLVector3d } { To Variable 1 } { From Variable 1 } { Name Variable 1 } { Subject Variable 1 } { Msg Variable 2 } { AllowPublish BOOL } { MaturePublish BOOL } } } { RpcChannelRequest Low Trusted Unencoded { DataBlock Single { GridX U32 } { GridY U32 } { TaskID LLUUID } { ItemID LLUUID } } } { RpcChannelReply Low Trusted Unencoded { DataBlock Single { TaskID LLUUID } { ItemID LLUUID } { ChannelID LLUUID } } } { RpcScriptRequestInbound Low NotTrusted Unencoded { TargetBlock Single { GridX U32 } { GridY U32 } } { DataBlock Single { TaskID LLUUID } { ItemID LLUUID } { ChannelID LLUUID } { IntValue U32 } { StringValue Variable 2 } } } { RpcScriptRequestInboundForward Low Trusted Unencoded { DataBlock Single { RPCServerIP IPADDR } { RPCServerPort IPPORT } { TaskID LLUUID } { ItemID LLUUID } { ChannelID LLUUID } { IntValue U32 } { StringValue Variable 2 } } } { RpcScriptReplyInbound Low NotTrusted Unencoded { DataBlock Single { TaskID LLUUID } { ItemID LLUUID } { ChannelID LLUUID } { IntValue U32 } { StringValue Variable 2 } } } { MailTaskSimRequest Low NotTrusted Unencoded { DataBlock Single { TaskID LLUUID } } } { MailTaskSimReply Low NotTrusted Unencoded { TargetBlock Single { TargetIP Variable 1 } { TargetPort IPPORT } } { DataBlock Single { TaskID LLUUID } } } { ScriptMailRegistration Low NotTrusted Unencoded { DataBlock Single { TargetIP Variable 1 } { TargetPort IPPORT } { TaskID LLUUID } { Flags U32 } } } { MailPingBounce Low NotTrusted Unencoded { DataBlock Single { TargetIP IPADDR } { TargetPort IPPORT } { TaskID LLUUID } { Flags U32 } } } { ParcelMediaCommandMessage Low NotTrusted Unencoded { CommandBlock Single { Flags U32 } { Command U32 } { Time F32 } } } { ParcelMediaUpdate Low NotTrusted Unencoded { DataBlock Single { MediaURL Variable 1 } { MediaID LLUUID } { MediaAutoScale U8 } } } { LandScriptsRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { RequestData Single { RequestFlags U32 } { ParcelLocalID S32 } { RelatedID LLUUID } } } { LandScriptsReply Low NotTrusted Unencoded { RequestData Single { RequestFlags U32 } { TotalScriptCount U32 } { TotalScriptTime F32 } } { Data Variable { TaskLocalID U32 } { TaskID LLUUID } { LocationX F32 } { LocationY F32 } { LocationZ F32 } { ScriptTime F32 } { ScriptCount S32 } { TaskName Variable 1 } { OwnerName Variable 1 } } } { LandCollidersRequest Low NotTrusted Unencoded { AgentData Single { AgentID LLUUID } { SessionID LLUUID } } { RequestData Single { RequestFlags U32 } { ParcelLocalID S32 } { RelatedID LLUUID } } } { LandCollidersReply Low NotTrusted Unencoded { RequestData Single { RequestFlags U32 } { TotalColliderCount U32 } } { Data Variable { TaskLocalID U32 } { TaskID LLUUID } { LocationX F32 } { LocationY F32 } { LocationZ F32 } { Score S32 } { TaskName Variable 1 } { OwnerName Variable 1 } } }
\ No newline at end of file
+// Linden Lab development message templates
+
+version 1.053
+
+// 1.053 added EndPointID to DenyTrustedCircuit and CreateTrustedCircuit. PP
+
+// *************************************************************************
+// Test Message
+// *************************************************************************
+
+// Test Message
+
+{
+ TestMessage Low NotTrusted Zerocoded
+ {
+ TestBlock1 Single
+ { Test1 U32 }
+ }
+ {
+ NeighborBlock Multiple 4
+ { Test0 U32 }
+ { Test1 U32 }
+ { Test2 U32 }
+ }
+}
+
+// *************************************************************************
+// Messaging Internal Data Management Message
+// *************************************************************************
+
+// *************************
+// List fixed messages first
+// *************************
+
+// This is the newly updated version of the message template checksum
+// request. The token is there so that the viewer can drop responses
+// that do not match the supplied token.
+{
+ SecuredTemplateChecksumRequest Fixed 0xFFFFFFFA NotTrusted Unencoded
+ {
+ TokenBlock Single
+ { Token LLUUID }
+ }
+}
+
+// Packet Ack - Ack a list of packets sent reliable
+{
+ PacketAck Fixed 0xFFFFFFFB NotTrusted Unencoded
+ {
+ Packets Variable
+ { ID U32 }
+ }
+}
+
+// OpenCircuit - Tells the recipient's messaging system to open the descibed circuit
+{
+ OpenCircuit Fixed 0xFFFFFFFC NotTrusted Unencoded
+ {
+ CircuitInfo Single
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+}
+
+// CloseCircuit - Tells the recipient's messaging system to close the descibed circuit
+{
+ CloseCircuit Fixed 0xFFFFFFFD NotTrusted Unencoded
+}
+
+
+// message template version check. Deprecated - the viewer should send a
+// SecuredTemplateChecksumRequest to prevent template checksum
+// injection with a bad checksum.
+{
+ TemplateChecksumRequest Fixed 0xFFFFFFFE NotTrusted Unencoded
+}
+
+// message template version check
+{
+ TemplateChecksumReply Fixed 0xFFFFFFFF NotTrusted Unencoded
+ {
+ DataBlock Single
+ { Checksum U32 }
+ { MajorVersion U8 }
+ { MinorVersion U8 }
+ { PatchVersion U8 }
+ { ServerVersion U8 }
+ { Flags U32 }
+ }
+ {
+ TokenBlock Single
+ { Token LLUUID }
+ }
+}
+
+// ******************
+// End fixed messages
+// ******************
+
+// StartPingCheck - used to measure circuit ping times
+// PingID is used to determine how backlogged the ping was that was
+// returned (or how hosed the other side is)
+{
+ StartPingCheck High NotTrusted Unencoded
+ {
+ PingID Single
+ { PingID U8 }
+ { OldestUnacked U32 } // Current oldest "unacked" packet on the sender side
+ }
+}
+
+// CompletePingCheck - used to measure circuit ping times
+
+{
+ CompletePingCheck High NotTrusted Unencoded
+ {
+ PingID Single
+ { PingID U8 }
+ }
+}
+
+// user->viewer
+// AssignCircuitCode - Tells the recipient's messaging system what it's code is
+//{
+// AssignCircuitCode Low Trusted Unencoded
+// {
+// CircuitCode Single
+// { Code U32 }
+// { SessionID LLUUID }
+// }
+//}
+
+// space->sim
+// sim->sim
+// AddCircuitCode - Tells the recipient's messaging system that this code
+// is for a legal circuit
+{
+ AddCircuitCode Low Trusted Unencoded
+ {
+ CircuitCode Single
+ { Code U32 }
+ { SessionID LLUUID }
+ { AgentID LLUUID } // WARNING - may be null in valid message
+ }
+}
+
+// sim->space
+// Tells the spaceserver that the simulator is ready to receive an
+// agent with that circuit code.
+//{
+// AckAddCircuitCode Low Trusted Unencoded
+// {
+// CircuitCode Single
+// { Code U32 }
+// }
+//}
+
+// viewer->sim
+// UseCircuitCode - Attempts to provide the recipient with IP and Port
+// info. In the case of viewers, the id is the session id. For other
+// machines it may be null. The session id will always be the session
+// id of the process, which every server will generate on startup and
+// the viewer will be handed after login.
+{
+ UseCircuitCode Low NotTrusted Unencoded
+ {
+ CircuitCode Single
+ { Code U32 }
+ { SessionID LLUUID }
+ { ID LLUUID } // agent id
+ }
+}
+
+// LogControl - This message allows us to remotely control the
+// runtime logging facilities of the error stream. This MUST match
+// the RelayLogControl message.
+// Level - DEBUG=0, INFO=1, WARN=2, FATAL=3 system displays level and greater
+// Mask - a bit mask. Set to 0xffff to display every type
+// Time - set to 1 to turn on timestamp, 0 to turn it off
+// Location - set to 1 to turn on file/line stamp, 0 to turn it off
+// RemoteInfos - set to 1 to log llinfo to the log server (in production)
+{
+ LogControl Low Trusted Unencoded
+ {
+ Options Single
+ { Level U8 }
+ { Mask U32 }
+ { Time BOOL }
+ { Location BOOL }
+ { RemoteInfos BOOL }
+ }
+}
+
+// RelayLogControl - Just like log control, but relayed around the
+// server side to adjust the log level. This is in a separate message
+// because the handler is a bit different, only implmented on some
+// processes, and requires application level knowledge. This MUST match
+// the LogControl message.
+{
+ RelayLogControl Low Trusted Unencoded
+ {
+ Options Single
+ { Level U8 }
+ { Mask U32 }
+ { Time BOOL }
+ { Location BOOL }
+ { RemoteInfos BOOL }
+ }
+}
+
+
+// LogMessages
+// Turns on or off message system logging
+{
+ LogMessages Low Trusted Unencoded
+ {
+ Options Single
+ { Enable BOOL } // BOOL
+ }
+}
+
+
+// *************************************************************************
+// SpaceServer to Simulator Messages
+// ************************************************************************
+
+// Neighbor List - Passed anytime neighbors change
+{
+ NeighborList High Trusted Unencoded
+ {
+ NeighborBlock Multiple 4
+ { IP IPADDR }
+ { Port IPPORT }
+ { PublicIP IPADDR }
+ { PublicPort IPPORT }
+ { RegionID LLUUID }
+ { Name Variable 1 } // string
+ { SimAccess U8 }
+ }
+}
+
+
+// Simulator Assignment - Tells a simulator where it is and who it's
+// neighbors are
+{
+ SimulatorAssign Low Trusted Zerocoded
+ {
+ RegionInfo Single
+ { GridsPerEdge S32 }
+ { MetersPerGrid F32 }
+ { Handle U64 }
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunAngVelocity LLVector3 }
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+ {
+ NeighborBlock Multiple 4
+ { IP IPADDR }
+ { Port IPPORT }
+ { PublicIP IPADDR }
+ { PublicPort IPPORT }
+ { Name Variable 1 } // string
+ { SimAccess U8 }
+ }
+}
+
+// SpaceServerSimulatorTimeMessage - Allows simulator to resynch to world time
+{
+ SpaceServerSimulatorTimeMessage Low Trusted Unencoded
+ {
+ TimeInfo Single
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunPhase F32 }
+ { SunAngVelocity LLVector3 }
+ }
+}
+
+// ClosestSimulator - Passes the closest simulator back to a simulator
+{
+ ClosestSimulator Medium Trusted Unencoded
+ {
+ SimulatorBlock Single
+ { IP IPADDR }
+ { Port IPPORT }
+ { Handle U64 }
+ }
+ {
+ Viewer Single
+ { ID LLUUID }
+ }
+}
+
+// AgentIDReply
+// dataserver -> simulator
+// reliable
+// Message send from spaceserver to simulator
+// containing agent id for a given session id
+// Also, a list of name value pairs for that agent
+// also tacked on a list of agents that have granted you powers
+//{
+// AgentIDReply Low Trusted Zerocoded
+// {
+// ReplyBlock Single
+// { RequestID LLUUID }
+// { SessionID LLUUID }
+// { AgentID LLUUID }
+// { StartLocation LLVector3 } // Vector3, region local
+// { StartLookAt LLVector3 } // Vector3, normalized
+// { GroupID LLUUID }
+// { GroupOfficer BOOL }
+// { AgentAccess U8 }
+// { GodLevel U8 }
+// { GroupTitle Variable 1 } // string
+// }
+// {
+// TextureData Variable
+// { TextureID LLUUID }
+// }
+// {
+// GranterBlock Variable
+// { GranterID LLUUID }
+// }
+// {
+// NameValueBlock Variable
+// { NameValue Variable 2 }
+// }
+// {
+// AttachmentBlock Variable
+// { AttachmentPoint U8 }
+// { ItemID LLUUID }
+// { AssetID LLUUID }
+// }
+//}
+
+// AvatarTextureUpdate
+// simulator -> dataserver
+// reliable
+{
+ AvatarTextureUpdate Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { TexturesChanged BOOL }
+ }
+ {
+ WearableData Variable
+ { CacheID LLUUID }
+ { TextureIndex U8 }
+ }
+ {
+ TextureData Variable
+ { TextureID LLUUID }
+ }
+}
+
+
+// SimulatorMapUpdate
+// simulator -> dataserver
+// reliable
+{
+ SimulatorMapUpdate Low Trusted Unencoded
+ {
+ MapData Single
+ { Flags U32 }
+ }
+}
+
+// SimulatorSetMap
+// simulator -> dataserver
+// reliable
+// Used to upload a map image into the database (currently used only for Land For Sale)
+{
+ SimulatorSetMap Low Trusted Unencoded
+ {
+ MapData Single
+ { RegionHandle U64 }
+ { Type S32 }
+ { MapImage LLUUID }
+ }
+}
+
+// SubscribeLoad
+// spaceserver -> simulator
+// reliable
+{
+ SubscribeLoad Low Trusted Unencoded
+}
+
+// UnsubscribeLoad
+// spaceserver -> simulator
+// reliable
+{
+ UnsubscribeLoad Low Trusted Unencoded
+}
+
+
+// ************************************************************************
+// Simulator to SpaceServer Messages
+// ************************************************************************
+
+// Simulator Start - Tells spaceserver that simulator is online and wants to be
+// assigned.
+{
+ SimulatorStart Low Trusted Unencoded
+ {
+ ControlPort Single
+ { Port IPPORT }
+ { PublicIP IPADDR }
+ { PublicPort IPPORT }
+ }
+ {
+ PositionSuggestion Single
+ { Ignore BOOL } // if non-zero, SS should put it in the next available slot
+ { GridX S32 }
+ { GridY S32 }
+ }
+}
+
+// SimulatorReady - indicates the sim has finished loading its state
+// and is ready to receive updates from others
+{
+ SimulatorReady Low Trusted Zerocoded
+ {
+ SimulatorBlock Single
+ { SimName Variable 1 }
+ { SimAccess U8 }
+ { RegionFlags U32 }
+ { RegionID LLUUID }
+ { EstateID U32 }
+ { ParentEstateID U32 }
+ }
+ {
+ TelehubBlock Single
+ { HasTelehub BOOL }
+ { TelehubPos LLVector3 }
+ }
+}
+
+// TelehubInfo - fill in the UI for telehub creation floater.
+// sim -> viewer
+// reliable
+{
+ TelehubInfo Low NotTrusted Unencoded
+ {
+ TelehubBlock Single
+ { ObjectID LLUUID } // null if no telehub
+ { ObjectName Variable 1 } // string
+ { TelehubPos LLVector3 } // fallback if viewer can't find object
+ { TelehubRot LLQuaternion }
+ }
+ {
+ SpawnPointBlock Variable
+ { SpawnPointPos LLVector3 } // relative to telehub position
+ }
+}
+
+// SimulatorPresentAtLocation - indicates that the sim is present at a grid
+// location and passes what it believes its neighbors are
+{
+ SimulatorPresentAtLocation Low Trusted Unencoded
+ {
+ SimulatorPublicHostBlock Single
+ { Port IPPORT }
+ { SimulatorIP IPADDR }
+ { GridX U32 }
+ { GridY U32 }
+ }
+ {
+ NeighborBlock Multiple 4
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+ {
+ SimulatorBlock Single
+ { SimName Variable 1 }
+ { SimAccess U8 }
+ { RegionFlags U32 }
+ { RegionID LLUUID }
+ { EstateID U32 }
+ { ParentEstateID U32 }
+ }
+ {
+ TelehubBlock Variable
+ { HasTelehub BOOL }
+ { TelehubPos LLVector3 }
+ }
+}
+
+// SimulatorLoad
+// simulator -> spaceserver
+// reliable
+{
+ SimulatorLoad Low Trusted Unencoded
+ {
+ SimulatorLoad Single
+ { TimeDilation F32 }
+ { AgentCount S32 }
+ { CanAcceptAgents BOOL }
+ }
+ {
+ AgentList Variable
+ { CircuitCode U32 }
+ { X U8 }
+ { Y U8 }
+ }
+}
+
+// Simulator Shutdown Request - Tells spaceserver that a simulator is trying to shutdown
+{
+ SimulatorShutdownRequest Low Trusted Unencoded
+}
+
+
+// AgentIDRequest
+// Request to report agent ID associated with a session id
+//{
+// AgentIDRequest Low Trusted Unencoded
+// {
+// RequestBlock Single
+// { RequestID LLUUID }
+// { SessionID LLUUID }
+// { LocationID U32 } // 0 = last location
+// { Godlike BOOL }
+// }
+//}
+// ****************************************************************************
+// Presense messages
+// ****************************************************************************
+
+// sim -> dataserver
+{
+ RegionPresenceRequestByRegionID Low Trusted Unencoded
+ {
+ RegionData Variable
+ { RegionID LLUUID }
+ }
+}
+
+sim -> dataserver
+{
+ RegionPresenceRequestByHandle Low Trusted Unencoded
+ {
+ RegionData Variable
+ { RegionHandle U64 }
+ }
+}
+
+// dataserver -> sim
+{
+ RegionPresenceResponse Low Trusted Zerocoded
+ {
+ RegionData Variable
+ { RegionID LLUUID }
+ { RegionHandle U64 }
+ { InternalRegionIP IPADDR }
+ { ExternalRegionIP IPADDR }
+ { RegionPort IPPORT }
+ { ValidUntil F64 }
+ { Message Variable 1 }
+ }
+}
+
+// Record agent presence - this totally supercedes the TrackAgentSession
+// and ClearAgentSessions functionality
+{
+ RecordAgentPresence Low Trusted Unencoded
+ {
+ RegionData Single
+ { RegionID LLUUID }
+ }
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SecureSessionID LLUUID }
+ { LocalX S16 }
+ { LocalY S16 }
+ { TimeToLive S32 } // in seconds
+ { Status S32 }
+ { EstateID U32 }
+ }
+}
+
+// Erase a set of agent presence records. Useful during logout or kick.
+{
+ EraseAgentPresence Low Trusted Unencoded
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// request IP and port for agents
+{
+ AgentPresenceRequest Low Trusted Unencoded
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// response for agent locations
+{
+ AgentPresenceResponse Low Trusted Unencoded
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ { RegionIP IPADDR }
+ { RegionPort IPPORT }
+ { ValidUntil F64 }
+ { EstateID U32 }
+ }
+}
+
+
+// ****************************************************************************
+// Simulator to dataserver messages
+// ****************************************************************************
+
+// Updates SimName, EstateID and SimAccess using RegionID as a key
+{
+ UpdateSimulator Low Trusted Unencoded
+ {
+ SimulatorInfo Single
+ { RegionID LLUUID }
+ { SimName Variable 1 }
+ { EstateID U32 }
+ { SimAccess U8 }
+ }
+}
+
+
+// The simulator sends out this message from time to time
+{
+ TrackAgentSession Low Trusted Unencoded
+ {
+ RegionData Single
+ { RegionX F32 }
+ { RegionY F32 }
+ { SpaceIP IPADDR }
+ { EstateID U32 }
+ { AgentCount U32 }
+ }
+ {
+ SessionInfo Variable
+ { SessionID LLUUID }
+ { ViewerIP IPADDR }
+ { ViewerPort IPPORT }
+ { GlobalX F64 }
+ { GlobalY F64 }
+ }
+}
+
+
+// clear out sessions for this sim, because it's coming up or going down
+{
+ ClearAgentSessions Low Trusted Unencoded
+ {
+ RegionInfo Single
+ { RegionX U32 }
+ { RegionY U32 }
+ { SpaceIP IPADDR }
+ }
+}
+
+// record dwell time.
+{
+ LogDwellTime Low Trusted Unencoded
+ {
+ DwellInfo Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { Duration F32 }
+ { SimName Variable 1 }
+ { RegionX U32 }
+ { RegionY U32 }
+ }
+}
+
+// record lost money transactions. This message could be generated
+// from either the simulator or the dataserver, depending on how
+// the transaction failed.
+{
+ LogFailedMoneyTransaction Low Trusted Unencoded
+ {
+ TransactionData Single
+ { TransactionID LLUUID }
+ { TransactionTime U32 } // utc seconds since epoch
+ { TransactionType S32 } // see lltransactiontypes.h
+ { SourceID LLUUID }
+ { DestID LLUUID } // destination of the transfer
+ { Flags U8 }
+ { Amount S32 }
+ { SimulatorIP IPADDR } // U32 encoded IP
+ { GridX U32 }
+ { GridY U32 }
+ { FailureType U8 }
+ }
+}
+
+// complaint/bug-report - sim -> dataserver. see UserReport for details.
+// reliable
+{
+ UserReportInternal Low Trusted Zerocoded
+ {
+ ReportData Single
+ { ReportType U8 }
+ { Category U8 }
+ { ReporterID LLUUID }
+ { ViewerPosition LLVector3 }
+ { AgentPosition LLVector3 }
+ { ScreenshotID LLUUID }
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { LastOwnerID LLUUID }
+ { CreatorID LLUUID }
+ { SimName Variable 1 }
+ { Summary Variable 1 }
+ { Details Variable 2 }
+ { VersionString Variable 1 }
+ }
+ {
+ MeanCollision Variable
+ { Perp LLUUID }
+ { Time U32 }
+ { Mag F32 }
+ { Type U8 }
+ }
+}
+
+// SetSimStatusInDatabase
+// alters the "simulator" table in the database
+// sim -> dataserver
+// reliable
+{
+ SetSimStatusInDatabase Low Trusted Unencoded
+ {
+ Data Single
+ { RegionID LLUUID }
+ { HostName Variable 1 }
+ { X S32 }
+ { Y S32 }
+ { PID S32 }
+ { AgentCount S32 }
+ { TimeToLive S32 } // in seconds
+ { Status Variable 1 }
+ }
+}
+
+// SetSimPresenceInDatabase
+// updates the "presence" table in the database to ensure
+// that a given simulator is present and valid for a set amount of
+// time
+{
+ SetSimPresenceInDatabase Low Trusted Unencoded
+ {
+ SimData Single
+ { RegionID LLUUID }
+ { HostName Variable 1 }
+ { GridX U32 }
+ { GridY U32 }
+ { PID S32 }
+ { AgentCount S32 }
+ { TimeToLive S32 } // in seconds
+ { Status Variable 1 }
+ }
+}
+
+// ***************************************************************************
+// Economy messages
+// ***************************************************************************
+
+// once we use local stats, this will include a region handle
+{
+ EconomyDataRequest Low NotTrusted Unencoded
+}
+
+// dataserver to sim, response w/ econ data
+{
+ EconomyData Low Trusted Zerocoded
+ {
+ Info Single
+ { ObjectCapacity S32 }
+ { ObjectCount S32 }
+ { PriceEnergyUnit S32 }
+ { PriceObjectClaim S32 }
+ { PricePublicObjectDecay S32 }
+ { PricePublicObjectDelete S32 }
+ { PriceParcelClaim S32 }
+ { PriceParcelClaimFactor F32 }
+ { PriceUpload S32 }
+ { PriceRentLight S32 }
+ { TeleportMinPrice S32 }
+ { TeleportPriceExponent F32 }
+ { EnergyEfficiency F32 }
+ { PriceObjectRent F32 }
+ { PriceObjectScaleFactor F32 }
+ { PriceParcelRent S32 }
+ { PriceGroupCreate S32 }
+ }
+}
+
+// ***************************************************************************
+// Search messages
+// ***************************************************************************
+
+// AvatarPickerRequest
+// Get a list of names to select a person
+// viewer -> sim -> data
+// reliable
+{
+ AvatarPickerRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ Data Single
+ { Name Variable 1 }
+ }
+}
+
+// backend implementation which tracks if the user is a god.
+{
+ AvatarPickerRequestBackend Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { QueryID LLUUID }
+ { GodLevel U8 }
+ }
+ {
+ Data Single
+ { Name Variable 1 }
+ }
+}
+
+// AvatarPickerReply
+// List of names to select a person
+// reliable
+{
+ AvatarPickerReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ Data Variable
+ { AvatarID LLUUID }
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ }
+}
+
+// PlacesQuery
+// Used for getting a list of places for the group land panel
+// and the user land holdings panel. NOT for the directory.
+{
+ PlacesQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category S8 }
+ { SimName Variable 1 }
+ }
+}
+
+// PlacesReply
+// dataserver -> simulator -> viewer
+// If the user has specified a location, use that to compute
+// global x,y,z. Otherwise, use center of the AABB.
+// reliable
+{
+ PlacesReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ QueryData Variable
+ { OwnerID LLUUID }
+ { Name Variable 1 }
+ { Desc Variable 1 }
+ { ActualArea S32 }
+ { BillableArea S32 }
+ { Flags U8 }
+ { GlobalX F32 } // meters
+ { GlobalY F32 } // meters
+ { GlobalZ F32 } // meters
+ { SimName Variable 1 }
+ { SnapshotID LLUUID }
+ { Dwell F32 }
+ { Price S32 }
+ }
+}
+
+// DirFindQuery viewer->sim
+// Message to start asking questions for the directory
+{
+ DirFindQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { QueryStart S32 } // prev/next page support
+ }
+}
+
+// DirFindQueryBackend sim->data
+// Trusted message generated by receipt of DirFindQuery to sim.
+{
+ DirFindQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { QueryStart S32 } // prev/next page support
+ { EstateID U32 }
+ { Godlike BOOL }
+ { SpaceIP IPADDR } // check online for right farm
+ }
+}
+
+
+// DirPlacesQuery viewer->sim
+// Used for the Find directory of places
+{
+ DirPlacesQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category S8 }
+ { SimName Variable 1 }
+ { QueryStart S32 }
+ }
+}
+
+// DirPlacesQueryBackend sim->dataserver
+// Used for the Find directory of places.
+{
+ DirPlacesQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category S8 }
+ { SimName Variable 1 }
+ { EstateID U32 }
+ { Godlike BOOL }
+ { QueryStart S32 }
+ }
+}
+
+// DirPlacesReply dataserver->sim->viewer
+// If the user has specified a location, use that to compute
+// global x,y,z. Otherwise, use center of the AABB.
+// reliable
+{
+ DirPlacesReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Variable
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { ForSale BOOL }
+ { Auction BOOL }
+ { ReservedNewbie BOOL }
+ { Dwell F32 }
+ }
+}
+
+// DirPeopleQuery viewer->sim
+// ask about people. This gets translated into a DirPeopleQueryTrusted on
+// the simulator.
+// *NOTE: this message is not in use on the viewer. 2004.07.02 \P/hoenix
+{
+ DirPeopleQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { Name Variable 1 }
+ { Group Variable 1 }
+ { Online U8 }
+ { WantToFlags U32 }
+ { SkillFlags U32 }
+ { Reputation Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
+ { Distance Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
+ }
+}
+
+// DirPeopleQueryBackend sim->dataserver
+// continue query about people whith a space ip address.
+{
+ DirPeopleQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { Name Variable 1 }
+ { Group Variable 1 }
+ { Online U8 }
+ { WantToFlags U32 }
+ { SkillFlags U32 }
+ { Reputation Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
+ { Distance Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
+ { EstateID U32 }
+ { Godlike BOOL }
+ { SpaceIP IPADDR } // used to check online status for the right farm
+ }
+}
+
+// DirPeopleReply
+{
+ DirPeopleReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { AgentID LLUUID }
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ { Group Variable 1 }
+ { Online BOOL }
+ { Reputation S32 }
+ }
+}
+
+// DirEventsReply
+{
+ DirEventsReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { OwnerID LLUUID }
+ { Name Variable 1 }
+ { EventID U32 }
+ { Date Variable 1 }
+ { UnixTime U32 }
+ { EventFlags U32 }
+ }
+}
+
+// DirGroupsQuery viewer->sim
+// reliable
+{
+ DirGroupsQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 } // string
+ }
+}
+
+// DirGroupsQueryBackend sim->dataserver
+// reliable
+{
+ DirGroupsQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 } // string
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+
+// DirGroupsReply
+// dataserver -> userserver -> viewer
+// reliable
+{
+ DirGroupsReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { GroupID LLUUID }
+ { GroupName Variable 1 } // string
+ { Members S32 }
+ { OpenEnrollment BOOL }
+ { MembershipFee S32 }
+ }
+}
+
+
+// DirClassifiedQuery viewer->sim
+// reliable
+{
+ DirClassifiedQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category U32 }
+ }
+}
+
+// DirClassifiedQueryBackend sim->dataserver
+// reliable
+{
+ DirClassifiedQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category U32 }
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+// DirClassifiedReply dataserver->sim->viewer
+// reliable
+{
+ DirClassifiedReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { ClassifiedID LLUUID }
+ { Name Variable 1 }
+ { ClassifiedFlags U8 }
+ { CreationDate U32 }
+ { ExpirationDate U32 }
+ { PriceForListing S32 }
+ }
+}
+
+
+// AvatarClassifiedReply
+// dataserver -> simulator -> viewer
+// Send the header information for this avatar's classifieds
+// This fills in the tabs of the Classifieds panel.
+// reliable
+{
+ AvatarClassifiedReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { TargetID LLUUID }
+ }
+ {
+ Data Variable
+ { ClassifiedID LLUUID }
+ { Name Variable 1 }
+ }
+}
+
+
+// ClassifiedInfoRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ ClassifiedInfoRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ }
+}
+
+
+// ClassifiedInfoReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ ClassifiedInfoReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ { CreatorID LLUUID }
+ { CreationDate U32 }
+ { ExpirationDate U32 }
+ { Category U32 }
+ { Name Variable 1 }
+ { Desc Variable 2 }
+ { ParcelID LLUUID }
+ { ParentEstate U32 }
+ { SnapshotID LLUUID }
+ { SimName Variable 1 }
+ { PosGlobal LLVector3d }
+ { ParcelName Variable 1 }
+ { ClassifiedFlags U8 }
+ { PriceForListing S32 }
+ }
+}
+
+
+// ClassifiedInfoUpdate
+// Update a classified. ParcelID and EstateID are set
+// on the simulator as the message passes through.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ ClassifiedInfoUpdate Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ { Category U32 }
+ { Name Variable 1 }
+ { Desc Variable 2 }
+ { ParcelID LLUUID }
+ { ParentEstate U32 }
+ { SnapshotID LLUUID }
+ { PosGlobal LLVector3d }
+ { ClassifiedFlags U8 }
+ { PriceForListing S32 }
+ }
+}
+
+
+// ClassifiedDelete
+// Delete a classified from the database.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ ClassifiedDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ }
+}
+
+// ClassifiedGodDelete
+// Delete a classified from the database.
+// QueryID is needed so database can send a repeat list of
+// classified.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ ClassifiedGodDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ { QueryID LLUUID }
+ }
+}
+
+
+
+// DirPicksQuery viewer->sim
+// reliable
+{
+ DirPicksQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ }
+}
+
+// DirPicksQueryBackend sim->dataserver
+// reliable
+{
+ DirPicksQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+// DirPicksReply dataserver->sim->viewer
+// reliable
+{
+ DirPicksReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { PickID LLUUID }
+ { Name Variable 1 }
+ { Enabled BOOL }
+ }
+}
+
+
+// DirLandQuery viewer->sim
+// Special query for the land for sale/auction panel.
+// reliable
+{
+ DirLandQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ { ForSale BOOL }
+ { Auction BOOL }
+ { ReservedNewbie BOOL }
+ }
+}
+
+// DirLandQueryBackend sim->dataserver
+// Special query for the land for sale/auction panel.
+{
+ DirLandQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ { ForSale BOOL }
+ { Auction BOOL }
+ { ReservedNewbie BOOL }
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+// DirLandReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ DirLandReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { Auction BOOL }
+ { ForSale BOOL }
+ { ReservedNewbie BOOL }
+ { SalePrice S32 }
+ { ActualArea S32 }
+ }
+}
+
+// DirPopularQuery viewer->sim
+// Special query for the land for sale/auction panel.
+// reliable
+{
+ DirPopularQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ }
+}
+
+// DirPopularQueryBackend sim->dataserver
+// Special query for the land for sale/auction panel.
+// reliable
+{
+ DirPopularQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+// DirPopularReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ DirPopularReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { Dwell F32 }
+ }
+}
+
+// ParcelInfoRequest
+// viewer -> simulator -> dataserver
+// reliable
+{
+ ParcelInfoRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ParcelID LLUUID }
+ }
+}
+
+// ParcelInfoReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ ParcelInfoReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { ParcelID LLUUID }
+ { OwnerID LLUUID }
+ { Name Variable 1 }
+ { Desc Variable 1 }
+ { ActualArea S32 }
+ { BillableArea S32 }
+ { Flags U8 }
+ { GlobalX F32 } // meters
+ { GlobalY F32 } // meters
+ { GlobalZ F32 } // meters
+ { SimName Variable 1 }
+ { SnapshotID LLUUID }
+ { Dwell F32 }
+ { SalePrice S32 }
+ { AuctionID S32 }
+ }
+}
+
+
+// ParcelObjectOwnersRequest
+// viewer -> simulator
+// reliable
+{
+ ParcelObjectOwnersRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ }
+}
+
+// simulator -> dataserver
+// reliable
+{
+ OnlineStatusRequest Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { QueryID LLUUID }
+ { EstateID U32 }
+ { Godlike BOOL }
+ { SpaceIP IPADDR } // check online for right farm
+ }
+ {
+ Data Variable
+ { ID LLUUID }
+ }
+}
+
+// dataserver -> simulator
+// reliable
+{
+ OnlineStatusReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ Data Variable
+ { ID LLUUID } // only online agents are returned
+ }
+}
+
+// ParcelObjectOwnersReply
+// simulator -> viewer
+// reliable
+{
+ ParcelObjectOwnersReply Low Trusted Zerocoded
+ {
+ Data Variable
+ { OwnerID LLUUID }
+ { IsGroupOwned BOOL }
+ { Count S32 }
+ { OnlineStatus BOOL }
+ }
+}
+
+// ****************************************************************************
+// Teleport messages
+//
+// The teleport messages are numerous, so I have attempted to give them a
+// consistent naming convention. Since there is a bit of glob pattern
+// aliasing, the rules are applied in order.
+//
+// Teleport* - viewer->sim or sim->viewer message which announces a
+// teleportation request, progrees, start, or end.
+// Data* - sim->data or data->sim trusted message.
+// Space* - sim->space or space->sim trusted messaging
+// *Lure - A lure message to pass around information.
+//
+// All actual viewer teleports will begin with a Teleport* message and
+// end in a TeleportStart, TeleportLocal or TeleportFailed message. The TeleportFailed
+// message may be returned by any process and must be routed through the
+// teleporting agent's simulator and back to the viewer.
+// ****************************************************************************
+
+// TeleportRequest
+// viewer -> sim specifying exact teleport destination
+{
+ TeleportRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Info Single
+ { RegionID LLUUID }
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+// TeleportLocationRequest
+// viewer -> sim specifying exact teleport destination
+{
+ TeleportLocationRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Info Single
+ { RegionHandle U64 }
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+// TeleportLocal
+// sim -> viewer reply telling the viewer that we've successfully TP'd
+// to somewhere else within the sim
+{
+ TeleportLocal Low NotTrusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { LocationID U32 }
+ { Position LLVector3 } // region
+ { LookAt LLVector3 }
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportLandmarkRequest viewer->sim
+// teleport to landmark asset ID destination. use LLUUD::null for home.
+{
+ TeleportLandmarkRequest Low NotTrusted Zerocoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { LandmarkID LLUUID }
+ }
+}
+
+// TeleportProgress sim->viewer
+// Tell the agent how the teleport is going.
+{
+ TeleportProgress Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Info Single
+ { TeleportFlags U32 }
+ { Message Variable 1 } // string
+ }
+}
+
+// DataAgentAccessRequest sim->data
+// ask if agent ID can in fact teleport from their current location in
+// EstateID to the destination specified by RegionHandle. If allowed,
+// the handler will persist the location in user_start_location and
+// send back a DataAgentAccessReply. Otherwise, the handler will send back
+// a TeleportFailed.
+{
+ DataAgentAccessRequest Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { EstateID U32 }
+ { RegionHandle U64 }
+ { LocationID U32 }
+ { LocationPos LLVector3 }
+ { LocationLookAt LLVector3 }
+ }
+}
+
+// DataAgentAccessReply data->sim
+// Message to let us know if AgentID is allowed to teleport to RegionHandle.
+{
+ DataAgentAccessReply Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ }
+}
+
+// DataHomeLocationRequest sim->data
+// Request
+{
+ DataHomeLocationRequest Low Trusted Zerocoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ }
+}
+
+// DataHomeLocationReply data->sim
+// response is the location of agent home.
+{
+ DataHomeLocationReply Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { RegionHandle U64 }
+ { Position LLVector3 } // region coords
+ { LookAt LLVector3 }
+ }
+}
+
+// SpaceLocationTeleportRequest sim->space
+// Reuqest for info about remote location
+{
+ SpaceLocationTeleportRequest Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { CircuitCode U32 }
+ { RegionHandle U64 }
+ { Position LLVector3 } // region
+ { LookAt LLVector3 }
+ { TravelAccess U8 }
+ { ParentEstateID U32 }
+ { TeleportFlags U32 }
+ }
+}
+
+// SpaceLocationTeleportReply space->sim
+// with info about remote location
+{
+ SpaceLocationTeleportReply Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { LocationID U32 }
+ { SimIP IPADDR }
+ { SimPort IPPORT }
+ { RegionHandle U64 }
+ { Position LLVector3 } // region
+ { LookAt LLVector3 }
+ { SimName Variable 1 }
+ { SimAccess U8 }
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportFinish sim->viewer
+// called when all of the information has been collected and readied for
+// the agent.
+{
+ TeleportFinish Low NotTrusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { LocationID U32 }
+ { SimIP IPADDR }
+ { SimPort IPPORT }
+ { RegionHandle U64 }
+ { SimAccess U8 }
+ { TeleportFlags U32 }
+ }
+}
+
+// StartLure viewer->sim
+// Sent from viewer to the local simulator to lure target id to near
+// agent id. This will generate an instant message that will be routed
+// through the space server and out to the userserver. When that IM
+// goes through the userserver and the TargetID is online, the
+// userserver will send an InitializeLure to the spaceserver. When that
+// packet is acked, the original instant message is finally forwarded to
+// TargetID.
+{
+ StartLure Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Info Single
+ { LureType U8 }
+ { TargetID LLUUID }
+ { Message Variable 1 }
+ }
+}
+
+// InitializeLure user->space
+// Prepare the spaceserver with destination information for a lure.
+{
+ InitializeLure Low Trusted Unencoded
+ {
+ Info Single
+ { LureType U8 }
+ { AgentID LLUUID }
+ { LureID LLUUID }
+ { RegionHandle U64 }
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+// TeleportLureRequest viewer->sim
+// Message from target of lure to begin the teleport process on the
+// local simulator.
+{
+ TeleportLureRequest Low NotTrusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { LureID LLUUID }
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportCancel viewer->sim
+// reliable
+{
+ TeleportCancel Low NotTrusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// CompleteLure sim->space
+// message with final necessary info about accepted lure. The
+// spaceserver will reply with a SpaceLocationTeleportReply or
+// TeleportFailed and it becomes like any other teleport.
+{
+ CompleteLure Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { LureID LLUUID }
+ { CircuitCode U32 }
+ { TravelAccess U8 }
+ { ParentEstateID U32 }
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportStart sim->viewer
+// announce a successful teleport request to the viewer.
+{
+ TeleportStart Low NotTrusted Unencoded
+ {
+ Info Single
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportFailed somehwere->sim->viewer
+// announce failure of teleport request
+{
+ TeleportFailed Low NotTrusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { Reason Variable 1 } // string
+ }
+}
+
+// ***************************************************************************
+// Leader Board messages
+// ***************************************************************************
+{
+ LeaderBoardRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { Type S32 }
+ }
+}
+
+{
+ LeaderBoardData Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ BoardData Single
+ { Type S32 }
+ { MinPlace S32 }
+ { MaxPlace S32 }
+ { TimeString Variable 1 } // string
+ }
+ {
+ Entry Variable
+ { Sequence S32 }
+ { Place S32 }
+ { ID LLUUID }
+ { Score S32 }
+ { Name Fixed 32 } // only send 32 characters of the name, to fit in an MTU
+ }
+}
+
+// ***************************************************************************
+// Viewer to Simulator Messages
+// ***************************************************************************
+
+// RegisterNewAgent - Sent by viewer to simulator to tell the simulator
+// that it's connecting.
+// HACK -- If SessionID is null, don't bother asking for information
+// from the space server.
+{
+ RegisterNewAgent Low NotTrusted Unencoded
+ {
+ HelloBlock Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { LocationID U32 } // which start location to use
+ { Godlike BOOL }
+ }
+}
+
+// viewer->sim
+// request a connection to the userserver
+//{
+// RequestUserserverConnection Low NotTrusted Unencoded
+// {
+// AgentInfo Single
+// { AgentID LLUUID }
+// { SessionID LLUUID }
+// }
+//}
+
+// sim->space->userserver
+//{
+// UserserverConnectionForAgent Low Trusted Unencoded
+// {
+// AgentInfo Single
+// { AgentID LLUUID }
+// { SessionID LLUUID }
+// }
+//}
+
+// userserver->space->sim->agent
+//{
+// UserserverReadyForAgent Low Trusted Unencoded
+// {
+// AgentInfo Single
+// { AgentID LLUUID }
+// { SessionID LLUUID }
+// }
+// {
+// HostInfo Single
+// { ServerIP IPADDR }
+// { ServerPort IPPORT }
+// }
+//}
+
+// Undo
+{
+ Undo Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectID LLUUID }
+ }
+}
+
+
+// Redo
+{
+ Redo Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectID LLUUID }
+ }
+}
+
+// UndoLand
+{
+ UndoLand Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+
+// RedoLand
+{
+ RedoLand Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+// Transfer energy from agent to an object
+{
+ TransferEnergy Low NotTrusted Unencoded
+ {
+ Data Single
+ { DestID LLUUID } // destination of the transfer
+ { Amount S32 } // amount of the transfer
+ }
+}
+
+
+// MovedIntoSimulator - Sent by simulatorA to simulatorB to tell the
+// simulator that a viewer is moving from A to B
+// sim --> sim
+{
+ MovedIntoSimulator High Trusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { SessionID LLUUID }
+ { CircuitCode U32 }
+ }
+}
+
+
+// AgentPause - viewer occasionally will block, inform simulator of this fact
+{
+ AgentPause Low NotTrusted Unencoded
+ {
+ Sender Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SerialNum U32 } // U32, used by both pause and resume. Non-increasing numbers are ignored.
+ }
+}
+
+// AgentResume - unblock the agent
+{
+ AgentResume Low NotTrusted Unencoded
+ {
+ Sender Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SerialNum U32 } // U32, used by both pause and resume. Non-increasing numbers are ignored.
+ }
+}
+
+
+// AgentUpdate - Camera info sent from viewer to simulator
+// or, more simply, two axes and compute cross product
+// State data is temporary, indicates current behavior state:
+// 0 = walking
+// 1 = mouselook
+// 2 = typing
+//
+// Center is region local (JNC 8.16.2001)
+// Camera center is region local (JNC 8.29.2001)
+{
+ AgentUpdate High NotTrusted Zerocoded
+ {
+ AgentData Single
+ { ID LLUUID }
+ { BodyRotation LLQuaternion }
+ { HeadRotation LLQuaternion }
+ { State U8 }
+ { CameraCenter LLVector3 }
+ { CameraAtAxis LLVector3 }
+ { CameraLeftAxis LLVector3 }
+ { CameraUpAxis LLVector3 }
+ { Far F32 }
+ { ControlFlags U32 }
+ { Flags U8 }
+ }
+}
+
+// ChatFromViewer
+// Specifies the text to be said and the "type",
+// normal speech, shout, whisper.
+// with the specified radius
+{
+ ChatFromViewer Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ChatData Single
+ { Message Variable 2 }
+ { Type U8 }
+ { Channel S32 }
+ }
+}
+
+
+// AgentThrottle
+{
+ AgentThrottle Low NotTrusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { CircuitCode U32 }
+ { GenCounter U32 }
+ }
+ {
+ Throttle Single
+ { Throttles Variable 1 }
+ }
+}
+
+
+// AgentFOV - Update to agent's field of view, angle is vertical, single F32 float in radians
+{
+ AgentFOV Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { CircuitCode U32 }
+ { GenCounter U32 }
+ }
+ {
+ FOVBlock Single
+ { VerticalAngle F32 }
+ }
+}
+
+
+// AgentHeightWidth - Update to height and aspect, sent as height/width to save space
+// Usually sent when window resized or created
+{
+ AgentHeightWidth Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { CircuitCode U32 }
+ { GenCounter U32 }
+ }
+ {
+ HeightWidthBlock Single
+ { Height U16 }
+ { Width U16 }
+ }
+}
+
+
+// AgentSetAppearance - Update to agent appearance
+{
+ AgentSetAppearance Low NotTrusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { SerialNum U32 } // U32, Increases every time the appearance changes. A value of 0 resets.
+ { Size LLVector3 }
+ }
+ {
+ WearableData Variable
+ { CacheID LLUUID }
+ { TextureIndex U8 }
+ }
+ {
+ ObjectData Single
+ { TextureEntry Variable 2 }
+ }
+ {
+ VisualParam Variable
+ { ParamValue U8 }
+ }
+}
+
+// AgentAnimation - Update animation state
+// viewer --> simulator
+{
+ AgentAnimation High NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ AnimationList Variable
+ { AnimID LLUUID }
+ { StartAnim BOOL }
+ }
+}
+
+// AgentRequestSit - Try to sit on an object
+{
+ AgentRequestSit High NotTrusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ TargetObject Single
+ { TargetID LLUUID }
+ { Offset LLVector3 }
+ }
+}
+
+// AgentSit - Actually sit on object
+{
+ AgentSit High NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+}
+
+// RefreshViewer - sent by viewer when it has missing geometry, etc., due to dropped packets.
+
+{
+ RefreshViewer Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+}
+
+
+// AgentQuit - Sent by viewer when viewer exits normally
+// Fuse is used to allow Reset to be passed to neighbors
+// *NOTE: obsolete
+{
+ AgentQuit Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// quit message sent between simulators
+{
+ AgentQuitCopy Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ FuseBlock Single
+ { ViewerCircuitCode U32 }
+ }
+}
+
+
+// Request Image - Sent by the viewer to request a specified image at a specified resolution
+
+{
+ RequestImage High NotTrusted Unencoded
+ {
+ RequestImage Variable
+ { Image LLUUID }
+ { DiscardLevel S32 }
+ { DownloadPriority F32 }
+ { Packet U32 }
+ }
+}
+
+// ImageNotInDatabase
+// Simulator informs viewer that a requsted image definitely does not exist in the asset database
+{
+ ImageNotInDatabase Low NotTrusted Unencoded
+ {
+ ImageID Single
+ { ID LLUUID }
+ }
+}
+
+// SetAlwaysRun
+// Lets the viewer choose between running and walking
+{
+ SetAlwaysRun Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { AlwaysRun BOOL }
+ }
+}
+
+// ObjectAdd - create new object in the world
+// Simulator will assign ID and send message back to signal
+// object actually created.
+//
+// AddFlags (see also ObjectUpdate)
+// 0x01 - use physics
+// 0x02 - create selected
+//
+// If only one ImageID is sent for an object type that has more than
+// one face, the same image is repeated on each subsequent face.
+//
+// Data field is opaque type-specific data for this object
+{
+ ObjectAdd Medium NotTrusted Zerocoded
+ {
+ ObjectData Single
+ { PCode U8 }
+ { SenderID LLUUID }
+ { GroupID LLUUID }
+ { Material U8 }
+ { AddFlags U32 } // see object_flags.h
+
+ { PathCurve U8 }
+ { ProfileCurve U8 }
+ { PathBegin U8 } // 0 to 1, quanta = 0.01
+ { PathEnd U8 } // 0 to 1, quanta = 0.01
+ { PathScaleX U8 } // 0 to 1, quanta = 0.01
+ { PathScaleY U8 } // 0 to 1, quanta = 0.01
+ { PathShearX U8 } // -.5 to .5, quanta = 0.01
+ { PathShearY U8 } // -.5 to .5, quanta = 0.01
+ { PathTwist S8 } // -1 to 1, quanta = 0.01
+ { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
+ { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
+ { PathTaperX S8 } // -1 to 1, quanta = 0.01
+ { PathTaperY S8 } // -1 to 1, quanta = 0.01
+ { PathRevolutions U8 } // 0 to 3, quanta = 0.015
+ { PathSkew S8 } // -1 to 1, quanta = 0.01
+ { ProfileBegin U8 } // 0 to 1, quanta = 0.01
+ { ProfileEnd U8 } // 0 to 1, quanta = 0.01
+ { ProfileHollow U8 } // 0 to 1, quanta = 0.01
+
+ { BypassRaycast U8 }
+ { RayStart LLVector3 }
+ { RayEnd LLVector3 }
+ { RayTargetID LLUUID }
+ { RayEndIsIntersection U8 }
+
+ { Scale LLVector3 }
+ { Rotation LLQuaternion }
+
+ { TextureEntry Variable 2 }
+
+ { NameValue Variable 2 }
+ { State U8 }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+ {
+ InventoryFile Single
+ { Filename Variable 1 }
+ }
+}
+
+
+// ObjectDelete
+// viewer -> simulator
+{
+ ObjectDelete Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ { Force BOOL } // BOOL, god trying to force delete
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// ObjectDuplicate
+// viewer -> simulator
+// Makes a copy of a set of objects, offset by a given amount
+{
+ ObjectDuplicate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ SharedData Single
+ { Offset LLVector3 }
+ { DuplicateFlags U32 } // see object_flags.h
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// ObjectDuplicateOnRay
+// viewer -> simulator
+// Makes a copy of an object, using the add object raycast
+// code to abut it to other objects.
+{
+ ObjectDuplicateOnRay Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { RayStart LLVector3 } // region local
+ { RayEnd LLVector3 } // region local
+ { BypassRaycast BOOL }
+ { RayEndIsIntersection BOOL }
+ { CopyCenters BOOL }
+ { CopyRotates BOOL }
+ { RayTargetID LLUUID }
+ { DuplicateFlags U32 } // see object_flags.h
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// MultipleObjectUpdate
+// viewer -> simulator
+// updates position, rotation and scale in one message
+// positions sent as region-local floats
+{
+ MultipleObjectUpdate Medium NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Type U8 }
+ { Data Variable 1 } // custom type
+ }
+}
+
+// RequestMultipleObjects
+// viewer -> simulator
+// reliable
+//
+// When the viewer gets a local_id/crc for an object that
+// it either doesn't have, or doesn't have the current version
+// of, it sends this upstream get get an update.
+//
+// CacheMissType 0 => full object (viewer doesn't have it)
+// CacheMissType 1 => CRC mismatch only
+{
+ RequestMultipleObjects Medium NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { CacheMissType U8 }
+ { ID U32 }
+ }
+}
+
+
+// ObjectPosition
+// viewer -> simulator
+{
+ ObjectPosition Medium NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Position LLVector3 } // region
+ }
+}
+
+
+// ObjectScale
+// viewer -> simulator
+{
+ ObjectScale Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Scale LLVector3 }
+ }
+}
+
+
+// ObjectRotation
+// viewer -> simulator
+{
+ ObjectRotation Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Rotation LLQuaternion }
+ }
+}
+
+
+// ObjectFlagUpdate
+// viewer -> simulator
+{
+ ObjectFlagUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { ObjectLocalID U32 }
+ { UsePhysics BOOL }
+ { IsTemporary BOOL }
+ { IsPhantom BOOL }
+ { CastsShadows BOOL }
+ }
+}
+
+
+// ObjectClickAction
+// viewer -> simulator
+{
+ ObjectClickAction Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { ClickAction U8 }
+ }
+}
+
+
+// ObjectImage
+// viewer -> simulator
+{
+ ObjectImage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { MediaURL Variable 1 }
+ { TextureEntry Variable 2 }
+ }
+}
+
+
+{
+ ObjectMaterial Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Material U8 }
+ }
+}
+
+
+{
+ ObjectShape Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { PathCurve U8 }
+ { ProfileCurve U8 }
+ { PathBegin U8 } // 0 to 1, quanta = 0.01
+ { PathEnd U8 } // 0 to 1, quanta = 0.01
+ { PathScaleX U8 } // 0 to 1, quanta = 0.01
+ { PathScaleY U8 } // 0 to 1, quanta = 0.01
+ { PathShearX U8 } // -.5 to .5, quanta = 0.01
+ { PathShearY U8 } // -.5 to .5, quanta = 0.01
+ { PathTwist S8 } // -1 to 1, quanta = 0.01
+ { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
+ { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
+ { PathTaperX S8 } // -1 to 1, quanta = 0.01
+ { PathTaperY S8 } // -1 to 1, quanta = 0.01
+ { PathRevolutions U8 } // 0 to 3, quanta = 0.015
+ { PathSkew S8 } // -1 to 1, quanta = 0.01
+ { ProfileBegin U8 } // 0 to 1, quanta = 0.01
+ { ProfileEnd U8 } // 0 to 1, quanta = 0.01
+ { ProfileHollow U8 } // 0 to 1, quanta = 0.01
+ }
+}
+
+{
+ ObjectExtraParams Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { ParamType U16 }
+ { ParamInUse BOOL }
+ { ParamSize U32 }
+ { ParamData Variable 1 }
+ }
+}
+
+
+// ObjectOwner
+// To make public, set OwnerID to LLUUID::null.
+// TODO: Eliminate god-bit. Maybe not. God-bit is ok, because it's
+// known on the server.
+{
+ ObjectOwner Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ HeaderData Single
+ { Override BOOL } // BOOL, God-bit.
+ { OwnerID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+// ObjectGroup
+// To make the object part of no group, set GroupID = LLUUID::null.
+// This call only works if objectid.ownerid == agentid.
+{
+ ObjectGroup Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+// Attempt to buy an object. This will only pack root objects.
+{
+ ObjectBuy Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ { CategoryID LLUUID } // folder where it goes (if derezed)
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { SaleType U8 } // U8 -> EForSale
+ { SalePrice S32 }
+ }
+}
+
+// viewer -> simulator
+
+// buy object inventory. If the transaction succeeds, it will add
+// inventory to the agent, and potentially remove the original.
+{
+ BuyObjectInventory Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ }
+}
+
+// sim -> viewer
+// Used to propperly handle buying asset containers
+{
+ DerezContainer Low Trusted Zerocoded
+ {
+ Data Single
+ { ObjectID LLUUID }
+ { Delete BOOL } // BOOL
+ }
+}
+
+// ObjectPermissions
+// Field - see llpermissionsflags.h
+// If Set is true, tries to turn on bits in mask.
+// If set is false, tries to turn off bits in mask.
+// BUG: This just forces the permissions field.
+{
+ ObjectPermissions Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ HeaderData Single
+ { Override BOOL } // BOOL, God-bit.
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Field U8 }
+ { Set U8 }
+ { Mask U32 }
+ }
+}
+
+// set object sale information
+{
+ ObjectSaleInfo Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { LocalID U32 }
+ { SaleType U8 } // U8 -> EForSale
+ { SalePrice S32 }
+ }
+}
+
+
+// set object names
+{
+ ObjectName Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { LocalID U32 }
+ { Name Variable 1 }
+ }
+}
+
+// set object descriptions
+{
+ ObjectDescription Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { LocalID U32 }
+ { Description Variable 1 }
+ }
+}
+
+// set object category
+{
+ ObjectCategory Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { LocalID U32 }
+ { Category U32 }
+ }
+}
+
+// ObjectSelect
+// Variable object data because rectangular selection can
+// generate a large list very quickly.
+{
+ ObjectSelect Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+
+}
+
+
+// ObjectDeselect
+{
+ ObjectDeselect Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+
+}
+
+// ObjectAttach
+{
+ ObjectAttach Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { AttachmentPoint U8 }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Rotation LLQuaternion }
+ }
+}
+
+// ObjectDetach -- derezzes an attachment, marking its item in your inventory as not "(worn)"
+{
+ ObjectDetach Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// ObjectDrop -- drops an attachment from your avatar onto the ground
+{
+ ObjectDrop Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// ObjectLink
+{
+ ObjectLink Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+// ObjectDelink
+{
+ ObjectDelink Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+// ObjectHinge
+{
+ ObjectHinge Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ JointType Single
+ { Type U8 }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+
+}
+
+// ObjectDehinge
+{
+ ObjectDehinge Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+
+}
+
+
+// ObjectGrab
+{
+ ObjectGrab Low NotTrusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ ObjectData Single
+ { LocalID U32 }
+ { GrabOffset LLVector3 }
+ }
+}
+
+
+// ObjectGrabUpdate
+// TODO: Quantize this data, reduce message size.
+// TimeSinceLast could go to 1 byte, since capped
+// at 100 on sim.
+{
+ ObjectGrabUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ { GrabOffsetInitial LLVector3 } // LLVector3
+ { GrabPosition LLVector3 } // LLVector3, region local
+ { TimeSinceLast U32 }
+ }
+}
+
+
+// ObjectDeGrab
+{
+ ObjectDeGrab Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ ObjectData Single
+ { LocalID U32 }
+ }
+}
+
+
+// ObjectSpinStart
+{
+ ObjectSpinStart Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+}
+
+
+// ObjectSpinUpdate
+{
+ ObjectSpinUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ { Rotation LLQuaternion }
+ }
+}
+
+
+// ObjectSpinStop
+{
+ ObjectSpinStop Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+}
+
+// Export selected objects
+{
+ ObjectExportSelected Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { RequestID LLUUID }
+ { VolumeDetail S16 }
+ }
+ {
+ ObjectData Variable
+ { ObjectID LLUUID }
+ }
+}
+
+// Export selected objects
+{
+ ObjectExportReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { RequestID LLUUID }
+ }
+ {
+ AssetData Single
+ { SLXML_ID LLUUID }
+ { Collada_ID LLUUID }
+ { ErrorCode S32 }
+ }
+ {
+ TextureData Variable
+ { AssetID LLUUID }
+ { AssetNum S32 }
+ }
+}
+
+// Import an object
+{
+ ObjectImport Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { FolderID LLUUID }
+ }
+ {
+ AssetData Single
+ { FileID LLUUID 1 }
+ { ObjectName Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+// Importing succeeded or failed
+{
+ ObjectImportReply Low NotTrusted Zerocoded
+ {
+ AssetData Single
+ { FileID LLUUID 1 }
+ { ErrorValue S32 }
+ }
+}
+
+// ModifyLand - sent to modify a piece of land on a simulator.
+// viewer -> sim
+{
+ ModifyLand Low NotTrusted Zerocoded
+ {
+ ModifyBlock Single
+ { AgentID LLUUID }
+ { Action U8 }
+ { BrushSize U8 }
+ { Seconds F32 }
+ { Height F32 }
+ }
+ {
+ ParcelData Variable
+ { LocalID S32 }
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ }
+}
+
+
+// VelocityInterpolateOn
+{
+ VelocityInterpolateOn Low NotTrusted Unencoded
+}
+
+
+// VelocityInterpolateOff
+{
+ VelocityInterpolateOff Low NotTrusted Unencoded
+}
+
+// Save State
+{
+ StateSave Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ DataBlock Single
+ { Filename Variable 1 }
+ }
+}
+
+
+// ReportAutosaveCrash
+{
+ ReportAutosaveCrash Low NotTrusted Unencoded
+ {
+ AutosaveData Single
+ { PID S32 }
+ { Status S32 }
+ }
+}
+
+
+
+// SimWideDeletes
+{
+ SimWideDeletes Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ DataBlock Single
+ { TargetID LLUUID }
+ { Flags U32 }
+ }
+}
+
+// Load State
+// Not in use \P/hoenix - 2004.07.14
+{
+ StateLoad Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ DataBlock Single
+ { Filename Variable 1 }
+ }
+}
+
+// RequestObjectPropertiesFamily
+// Ask for extended information, such as creator, permissions, resources, etc.
+// Medium frequency because it is driven by mouse hovering over objects, which
+// occurs at high rates.
+{
+ RequestObjectPropertiesFamily Medium NotTrusted Zerocoded
+ {
+ ObjectData Single
+ { RequestFlags U32 }
+ { AgentID LLUUID }
+ { ObjectID LLUUID }
+ }
+}
+
+
+// Track agent - this information is used when sending out the
+// coarse location update so that we know who you are tracking.
+// To stop tracking - send a null uuid as the prey.
+{
+ TrackAgent Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { PreyID LLUUID }
+ }
+}
+
+
+// Grant agents the ability to modify your stuff. This message is sent
+// to the user server, and then passed along to the dataserver for
+// persistance. The dataserver will push live updates through
+// AddModifyAbility messages to the simulator.
+// viewer -> userserver -> dataserver
+{
+ GrantModification Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GranterName Variable 1 }
+ }
+ {
+ EmpoweredBlock Variable
+ { EmpoweredID LLUUID }
+ }
+}
+
+// Revoke the ability to modify your stuff. This message is sent to
+// the user server, and then passed along to the dataserver for
+// persistance. The dataserver will push live updates through
+// RemoveModifyAbility messages to the simulator.
+// viewer -> userserver -> dataserver
+{
+ RevokeModification Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GranterName Variable 1 }
+ }
+ {
+ RevokedBlock Variable
+ { RevokedID LLUUID }
+ }
+}
+
+// This message is sent from viewer->userserver, which responds with
+// the complete list of all granted agents in the GrantedProxies
+// message.
+{
+ RequestGrantedProxies Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// response to the message above
+{
+ GrantedProxies Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ProxyBlock Variable
+ { EmpoweredID LLUUID }
+ }
+}
+
+// This message is sent from the dataserver to the simulator to let
+// AgentID know that they can modify GranterID's stuff. This message is
+// percolated out to child cameras but not the viewer. This message is
+// in response to GrantModification messages, request, or login.
+// ROUTED dataserver -> userserver -> spaceserver -> simulator
+// reliable
+{
+ AddModifyAbility Low Trusted Zerocoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ }
+ {
+ GranterBlock Variable
+ { GranterID LLUUID }
+ }
+}
+
+// This message is sent from the dataserver to the simulator to let
+// AgentID know that they can no longer modify GranterID's stuff. This
+// message is percolated out to child cameras but not the viewer. This
+// message is in response to RevokeModification messages.
+// ROUTED dataserver -> userserver -> spaceserver -> simulator
+// reliable
+{
+ RemoveModifyAbility Low Trusted Unencoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { RevokerID LLUUID }
+ }
+}
+
+// end viewer to simulator section
+
+{
+ ViewerStats Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { IP IPADDR }
+ { StartTime U32 }
+ { RunTime F32 } // F32
+ { FPS F32 } // F32
+ { Ping F32 } // F32
+ { MetersTraveled F64 }
+ { RegionsVisited S32 }
+ { SysRAM U32 }
+ { SysOS Variable 1 } // String
+ { SysCPU Variable 1 } // String
+ { SysGPU Variable 1 } // String
+ }
+
+ {
+ DownloadTotals Single
+ { World U32 }
+ { Objects U32 }
+ { Textures U32 }
+ }
+
+ {
+ NetStats Multiple 2
+ { Bytes U32 }
+ { Packets U32 }
+ { Compressed U32 }
+ { Savings U32 }
+ }
+
+ {
+ FailStats Single
+ { SendPacket U32 }
+ { Dropped U32 }
+ { Resent U32 }
+ { FailedResends U32 }
+ { OffCircuit U32 }
+ { Invalid U32 }
+ }
+
+ {
+ MiscStats Variable
+ { Type U32 }
+ { Value F64 }
+ }
+}
+
+// ScriptAnswerYes
+// reliable
+{
+ ScriptAnswerYes Low NotTrusted Unencoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { Questions S32 }
+ }
+}
+
+
+// complaint/bug-report
+// reliable
+{
+ UserReport Low NotTrusted Zerocoded
+ {
+ ReportData Single
+ { ReportType U8 } // BUG=1, COMPLAINT=2
+ { Category U8 } // see sequence.user_report_category
+ { ReporterID LLUUID }
+ { Position LLVector3 } // screenshot position, region-local
+ { CheckFlags U8 } // checkboxflags
+ { ScreenshotID LLUUID }
+ { ObjectID LLUUID }
+ { Summary Variable 1 }
+ { Details Variable 2 }
+ { VersionString Variable 1 }
+ }
+ {
+ MeanCollision Variable
+ { Perp LLUUID }
+ { Time U32 }
+ { Mag F32 }
+ { Type U8 }
+ }
+}
+
+
+// ***************************************************************************
+// Simulator to Viewer Messages
+// ***************************************************************************
+
+// AlertMessage
+// Specifies the text to be posted in an alert dialog
+{
+ AlertMessage Low Trusted Unencoded
+ {
+ AlertData Single
+ { Message Variable 1 }
+ }
+}
+
+// Send an AlertMessage to the named agent.
+// usually dataserver->simulator
+{
+ AgentAlertMessage Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ AlertData Single
+ { Modal BOOL }
+ { Message Variable 1 }
+ }
+}
+
+
+// MeanCollisionAlert
+// Specifies the text to be posted in an alert dialog
+{
+ MeanCollisionAlert Low Trusted Zerocoded
+ {
+ MeanCollision Variable
+ { Victim LLUUID }
+ { Perp LLUUID }
+ { Time U32 }
+ { Mag F32 }
+ { Type U8 }
+ }
+}
+
+// ViewerFrozenMessage
+// Specifies the text to be posted in an alert dialog
+{
+ ViewerFrozenMessage Low Trusted Unencoded
+ {
+ FrozenData Single
+ { Data BOOL }
+ }
+}
+
+// Health Message
+// Tells viewer what agent health is
+{
+ HealthMessage Low Trusted Zerocoded
+ {
+ HealthData Single
+ { Health F32 }
+ }
+}
+
+// ChatFromSimulator
+// Chat text to appear on a user's screen
+// Position is region local.
+// Viewer can optionally use position to animate
+// If audible is CHAT_NOT_AUDIBLE, message will not be valid
+{
+ ChatFromSimulator Low Trusted Unencoded
+ {
+ ChatData Single
+ { FromName Variable 1 }
+ { SourceID LLUUID } // agent id or object id
+ { OwnerID LLUUID } // object's owner
+ { SourceType U8 }
+ { ChatType U8 }
+ { Audible U8 }
+ { Position LLVector3 }
+ { Message Variable 2 } // UTF-8 text
+ }
+}
+
+
+// Simulator statistics packet (goes out to viewer and dataserver/spaceserver)
+{
+ SimStats Low Trusted Unencoded
+ {
+ Region Single
+ { RegionX U32 }
+ { RegionY U32 }
+ { RegionFlags U32 }
+ { ObjectCapacity U32 }
+ }
+ {
+ Stat Variable
+ { StatID U32 }
+ { StatValue F32 }
+ }
+}
+
+// viewer -> sim
+// reliable
+{
+ RequestRegionInfo Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// RegionInfo
+// Used to populate UI for both region/estate floater
+// and god tools floater
+// sim -> viewer
+// reliable
+{
+ RegionInfo Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RegionInfo Single
+ { SimName Variable 1 } // string
+ { EstateID U32 }
+ { ParentEstateID U32 }
+ { RegionFlags U32 }
+ { SimAccess U8 }
+ { MaxAgents U8 }
+ { BillableFactor F32 }
+ { ObjectBonusFactor F32 }
+ { WaterHeight F32 }
+ { TerrainRaiseLimit F32 }
+ { TerrainLowerLimit F32 }
+ { PricePerMeter S32 }
+ { RedirectGridX S32 }
+ { RedirectGridY S32 }
+ { UseEstateSun BOOL }
+ { SunHour F32 } // last value set by estate or region controls JC
+ }
+}
+
+// GodUpdateRegionInfo
+// Sent from viewer to sim after a god has changed some
+// of the parameters in the god tools floater
+// viewer -> sim
+// reliable
+{
+ GodUpdateRegionInfo Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RegionInfo Single
+ { SimName Variable 1 } // string
+ { EstateID U32 }
+ { ParentEstateID U32 }
+ { RegionFlags U32 }
+ { BillableFactor F32 }
+ { PricePerMeter S32 }
+ { RedirectGridX S32 }
+ { RedirectGridY S32 }
+ }
+}
+
+//NearestLandingRegionRequest
+//sim->dataserver
+//Sent from the region to the data server
+//to request the most up to date region for the requesting
+//region to redirect teleports to
+{
+ NearestLandingRegionRequest Low Trusted Unencoded
+ {
+ RequestingRegionData Single
+ { RegionHandle U64 }
+ }
+}
+
+//NearestLandingPointReply
+//dataserver->sim
+//Sent from the data server to a region in reply
+//to the redirectregion request stating which region
+//the requesting region should redirect teleports to if necessary
+{
+ NearestLandingRegionReply Low Trusted Unencoded
+ {
+ LandingRegionData Single
+ { RegionHandle U64 }
+ }
+}
+
+//NearestLandingPointUpdated
+//sim->dataserver
+//Sent from a region to the data server
+//to have the dataserver note/clear in the db
+//that the region has updated it's nearest landing point
+{
+ NearestLandingRegionUpdated Low Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ }
+}
+
+
+//TeleportLandingStatusChanged
+//sim->dataserver
+//Sent from the region to the data server
+//to note that the region's teleportation landing status has changed
+{
+ TeleportLandingStatusChanged Low Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ }
+}
+
+// RegionHandshake
+// Sent by region to viewer after it has received UseCircuitCode
+// from that viewer.
+// sim -> viewer
+// reliable
+{
+ RegionHandshake Low NotTrusted Zerocoded
+ {
+ RegionInfo Single
+ { RegionFlags U32 }
+ { SimAccess U8 }
+ { SimName Variable 1 } // string
+ { SimOwner LLUUID }
+ { IsEstateManager BOOL } // this agent, for this sim
+ { WaterHeight F32 }
+ { BillableFactor F32 }
+ { CacheID LLUUID }
+ { TerrainBase0 LLUUID }
+ { TerrainBase1 LLUUID }
+ { TerrainBase2 LLUUID }
+ { TerrainBase3 LLUUID }
+ { TerrainDetail0 LLUUID }
+ { TerrainDetail1 LLUUID }
+ { TerrainDetail2 LLUUID }
+ { TerrainDetail3 LLUUID }
+ { TerrainStartHeight00 F32 }
+ { TerrainStartHeight01 F32 }
+ { TerrainStartHeight10 F32 }
+ { TerrainStartHeight11 F32 }
+ { TerrainHeightRange00 F32 }
+ { TerrainHeightRange01 F32 }
+ { TerrainHeightRange10 F32 }
+ { TerrainHeightRange11 F32 }
+ }
+}
+
+// RegionHandshakeReply
+// viewer -> sim
+// reliable
+// Sent after viewer has initialized the (pre-existing)
+// LLViewerRegion with the name, access level, etc. and
+// has loaded the cache for the region.
+// After the simulator receives this, it will start sending
+// data about objects.
+{
+ RegionHandshakeReply Low NotTrusted Zerocoded
+ {
+ RegionInfo Single
+ { Flags U32 }
+ }
+}
+
+// The CoarseLocationUpdate message is sent to notify the viewer of
+// the location of mappable objects in the region. 1 meter resolution is
+// sufficient for this. The index block is used to show where you are,
+// and where someone you are tracking is located. They are -1 if not
+// applicable.
+{
+ CoarseLocationUpdate Medium Trusted Unencoded
+ {
+ Location Variable
+ { X U8 }
+ { Y U8 }
+ { Z U8 } // Z in meters / 4
+ }
+ {
+ Index Single
+ { You S16 }
+ { Prey S16 }
+ }
+}
+
+// ImageData - sent to viewer to transmit information about an image
+{
+ ImageData High Trusted Unencoded
+ {
+ ImageID Single
+ { ID LLUUID }
+ { Codec U8 }
+ { Size U32 }
+ { Packets U16 }
+ }
+ {
+ ImageData Single
+ { Data Variable 2 }
+ }
+}
+
+// ImagePacket - follow on image data for images having > 1 packet of data
+{
+ ImagePacket High Trusted Unencoded
+ {
+ ImageID Single
+ { ID LLUUID }
+ { Packet U16 }
+ }
+ {
+ ImageData Single
+ { Data Variable 2 }
+ }
+}
+
+// LayerData - Sent to viewer - encodes layer data
+
+{
+ LayerData High Trusted Unencoded
+ {
+ LayerID Single
+ { Type U8 }
+
+ }
+ {
+ LayerData Single
+ { Data Variable 2 }
+ }
+}
+
+// ObjectUpdate - Sent by objects from the simulator to the viewer
+//
+// If only one ImageID is sent for an object type that has more than
+// one face, the same image is repeated on each subsequent face.
+//
+// NameValue is a list of name-value strings, separated by \n characters,
+// terminated by \0
+//
+// Data is type-specific opaque data for this object
+{
+ ObjectUpdate High Trusted Zerocoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ { TimeDilation U16 }
+ }
+ {
+ ObjectData Variable
+ { ID U32 }
+ { State U8 }
+
+ { FullID LLUUID }
+ { CRC U32 } // TEMPORARY HACK FOR JAMES
+ { PCode U8 }
+ { Material U8 }
+ { ClickAction U8 }
+ { Scale LLVector3 }
+ { ObjectData Variable 1 }
+
+ { ParentID U32 }
+ { UpdateFlags U32 } // U32, see object_flags.h
+
+ { PathCurve U8 }
+ { ProfileCurve U8 }
+ { PathBegin U8 } // 0 to 1, quanta = 0.01
+ { PathEnd U8 } // 0 to 1, quanta = 0.01
+ { PathScaleX U8 } // 0 to 1, quanta = 0.01
+ { PathScaleY U8 } // 0 to 1, quanta = 0.01
+ { PathShearX U8 } // -.5 to .5, quanta = 0.01
+ { PathShearY U8 } // -.5 to .5, quanta = 0.01
+ { PathTwist S8 } // -1 to 1, quanta = 0.01
+ { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
+ { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
+ { PathTaperX S8 } // -1 to 1, quanta = 0.01
+ { PathTaperY S8 } // -1 to 1, quanta = 0.01
+ { PathRevolutions U8 } // 0 to 3, quanta = 0.015
+ { PathSkew S8 } // -1 to 1, quanta = 0.01
+ { ProfileBegin U8 } // 0 to 1, quanta = 0.01
+ { ProfileEnd U8 } // 0 to 1, quanta = 0.01
+ { ProfileHollow U8 } // 0 to 1, quanta = 0.01
+
+ { TextureEntry Variable 2 }
+ { TextureAnim Variable 1 }
+
+ { NameValue Variable 2 }
+ { Data Variable 2 }
+ { Text Variable 1 } // llSetText() hovering text
+ { TextColor Fixed 4 } // actually, a LLColor4U
+ { MediaURL Variable 1 } // URL for web page, movie, etc.
+
+ // Info for particle systems
+ { PSBlock Variable 1 }
+
+ // Extra parameters
+ { ExtraParams Variable 1 }
+
+ // info for looped attached sounds
+ // because these are almost always all zero
+ // the hit after zero-coding is only 2 bytes
+ // not the 42 you see here
+ { Sound LLUUID }
+ { OwnerID LLUUID } // HACK object's owner id, only set if non-null sound, for muting
+ { Gain F32 }
+ { Flags U8 }
+ { Radius F32 } // cutoff radius
+
+ // joint info -- is sent in the update of each joint-child-root
+ { JointType U8 }
+ { JointPivot LLVector3 }
+ { JointAxisOrAnchor LLVector3 }
+ }
+}
+
+
+// ObjectUpdateCompressed
+{
+ ObjectUpdateCompressed High Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ { TimeDilation U16 }
+ }
+ {
+ ObjectData Variable
+ { UpdateFlags U32 }
+ { Data Variable 2 }
+ }
+}
+
+// ObjectUpdateCached
+// reliable
+{
+ ObjectUpdateCached High Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ { TimeDilation U16 }
+ }
+ {
+ ObjectData Variable
+ { ID U32 }
+ { CRC U32 }
+ { UpdateFlags U32 }
+ }
+}
+
+// packed terse object udpate format
+{
+ ImprovedTerseObjectUpdate High Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ { TimeDilation U16 }
+ }
+ {
+ ObjectData Variable
+ { Data Variable 1 }
+ { TextureEntry Variable 2 }
+ }
+}
+
+// KillObject - Sent by objects to the viewer to tell them to kill themselves
+
+{
+ KillObject High Trusted Unencoded
+ {
+ ObjectData Variable
+ { ID U32 }
+ }
+}
+
+// AgentToNewRegion - tells the viewer that it's agent has moved
+
+{
+ AgentToNewRegion High Trusted Unencoded
+ {
+ RegionData Single
+ { SessionID LLUUID }
+ { IP IPADDR }
+ { Port IPPORT }
+ { Handle U64 }
+ }
+}
+
+// CrossedRegion - new way to tell a viewer it has gone across a region
+// boundary
+{
+ CrossedRegion Medium Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RegionData Single
+ { SimIP IPADDR }
+ { SimPort IPPORT }
+ { RegionHandle U64 }
+ }
+ {
+ Info Single
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+// SimulatorViewerTimeMessage - Allows viewer to resynch to world time
+
+{
+ SimulatorViewerTimeMessage Low Trusted Unencoded
+ {
+ TimeInfo Single
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunPhase F32 }
+ { SunAngVelocity LLVector3 }
+ }
+}
+
+// EnableSimulator - Preps a viewer to receive data from a simulator
+
+{
+ EnableSimulator Low Trusted Unencoded
+ {
+ SimulatorInfo Single
+ { Handle U64 }
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+}
+
+// DisableThisSimulator - Tells a viewer not to expect data from this simulator anymore
+
+{
+ DisableSimulator Low Trusted Unencoded
+}
+
+// ConfirmEnableSimulator - A confirmation message sent from simulator to neighbors that the simulator
+// has successfully been enabled by the viewer
+
+{
+ ConfirmEnableSimulator Medium Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// New Transfer system
+//-----------------------------------------------------------------------------
+
+// Request a new transfer (target->source)
+{
+ TransferRequest Low NotTrusted Zerocoded
+ {
+ TransferInfo Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ { SourceType S32 }
+ { Priority F32 }
+ { Params Variable 2 }
+ }
+}
+
+// Return info about a transfer/initiate transfer (source->target)
+// Possibly should have a Params field like above
+{
+ TransferInfo Low NotTrusted Zerocoded
+ {
+ TransferInfo Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ { TargetType S32 }
+ { Status S32 }
+ { Size S32 }
+ }
+}
+
+{
+ TransferPacket High NotTrusted Unencoded
+ {
+ TransferData Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ { Packet S32 }
+ { Status S32 }
+ { Data Variable 2 }
+ }
+}
+
+// Abort a transfer in progress (either from target->source or source->target)
+{
+ TransferAbort Low NotTrusted Zerocoded
+ {
+ TransferInfo Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ }
+}
+
+// Change the priority of a transfer (target->source)
+{
+ TransferPriority Low NotTrusted Zerocoded
+ {
+ TransferInfo Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ { Priority F32 }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// General file transfer
+//-----------------------------------------------------------------------------
+
+// RequestXfer - request an arbitrary xfer
+{
+ RequestXfer Low NotTrusted Zerocoded
+ {
+ XferID Single
+ { ID U64 }
+ { Filename Variable 1 }
+ { FilePath U8 } // ELLPath
+ { DeleteOnCompletion BOOL } // BOOL
+ { UseBigPackets BOOL } // BOOL
+ { VFileID LLUUID }
+ { VFileType S16 }
+ }
+}
+
+// SendXferPacket - send an additional packet of an arbitrary xfer from sim -> viewer
+{
+ SendXferPacket High NotTrusted Unencoded
+ {
+ XferID Single
+ { ID U64 }
+ { Packet U32 }
+ }
+ {
+ DataPacket Single
+ { Data Variable 2 }
+ }
+}
+
+// ConfirmXferPacket
+{
+ ConfirmXferPacket High NotTrusted Unencoded
+ {
+ XferID Single
+ { ID U64 }
+ { Packet U32 }
+ }
+}
+
+// AbortXfer
+{
+ AbortXfer Low NotTrusted Unencoded
+ {
+ XferID Single
+ { ID U64 }
+ { Result S32 }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Avatar information
+//-----------------------------------------------------------------------------
+
+
+// RequestAvatarInfo
+{
+ RequestAvatarInfo Low Trusted Unencoded
+ {
+ DataBlock Single
+ { FullID LLUUID }
+ }
+}
+
+// AvatarAnimation - Update animation state
+// simulator --> viewer
+{
+ AvatarAnimation High Trusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ AnimationList Variable
+ { AnimID LLUUID }
+ { AnimSequenceID S32 }
+ }
+ {
+ AnimationSourceList Variable
+ { ObjectID LLUUID }
+ }
+}
+
+// AvatarAppearance - Update visual params
+{
+ AvatarAppearance Low Trusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { IsTrial BOOL }
+ }
+ {
+ ObjectData Single
+ { TextureEntry Variable 2 }
+ }
+ {
+ VisualParam Variable
+ { ParamValue U8 }
+ }
+}
+
+// AvatarSitResponse - response to a request to sit on an object
+{
+ AvatarSitResponse High Trusted Zerocoded
+ {
+ SitObject Single
+ { ID LLUUID }
+ }
+ {
+ SitTransform Single
+ { AutoPilot BOOL }
+ { SitPosition LLVector3 }
+ { SitRotation LLQuaternion }
+ { CameraEyeOffset LLVector3 }
+ { CameraAtOffset LLVector3 }
+ { ForceMouselook BOOL }
+ }
+}
+
+// SetFollowCamProperties
+{
+ SetFollowCamProperties Low Trusted Unencoded
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+ {
+ CameraProperty Variable
+ { Type S32 }
+ { Value F32 }
+ }
+}
+
+// ClearFollowCamProperties
+{
+ ClearFollowCamProperties Low Trusted Unencoded
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+}
+
+// CameraConstraint - new camera distance limit (based on collision with objects)
+{
+ CameraConstraint High Trusted Zerocoded
+ {
+ CameraCollidePlane Single
+ { Plane LLVector4 }
+ }
+}
+
+// ObjectProperties
+// Extended information such as creator, permissions, etc.
+// Medium because potentially driven by mouse hover events.
+{
+ ObjectProperties Medium Trusted Zerocoded
+ {
+ ObjectData Variable
+ { ObjectID LLUUID }
+ { CreatorID LLUUID }
+ { OwnerID LLUUID }
+ { GroupID LLUUID }
+ { BaseMask U32 }
+ { OwnerMask U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ { OwnershipCost S32 }
+// { TaxRate F32 } // F32
+ { SaleType U8 } // U8 -> EForSale
+ { SalePrice S32 }
+ { AggregatePerms U8 }
+ { AggregatePermTextures U8 }
+ { AggregatePermTexturesOwner U8 }
+ { Category U32 } // LLCategory
+ { InventorySerial S16 } // S16
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { FromTaskID LLUUID }
+ { LastOwnerID LLUUID }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { TouchName Variable 1 }
+ { SitName Variable 1 }
+ { TextureID Variable 1 }
+ }
+}
+
+// ObjectPropertiesFamily
+// Medium because potentially driven by mouse hover events.
+{
+ ObjectPropertiesFamily Medium Trusted Zerocoded
+ {
+ ObjectData Single
+ { RequestFlags U32 }
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { GroupID LLUUID }
+ { BaseMask U32 }
+ { OwnerMask U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ { OwnershipCost S32 }
+ { SaleType U8 } // U8 -> EForSale
+ { SalePrice S32 }
+ { Category U32 } // LLCategory
+ { LastOwnerID LLUUID }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+// RequestPayPrice
+// viewer -> sim
+{
+ RequestPayPrice Low NotTrusted Unencoded
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+}
+
+// PayPriceReply
+// sim -> viewer
+{
+ PayPriceReply Low Trusted Unencoded
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ { DefaultPayPrice S32 }
+ }
+ {
+ ButtonData Variable
+
+ { PayButton S32 }
+ }
+}
+
+// KickUser
+// *FIXME*
+// Kick off a logged-in user, such as when two people log in with the
+// same account name.
+// ROUTED dataserver -> userserver -> spaceserver -> simulator -> viewer
+// reliable, but that may not matter if a system component is quitting
+{
+ KickUser Low Trusted Unencoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ UserInfo Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { Reason Variable 2 } // string
+ }
+}
+
+// ack sent from the simulator up to the main database so that login
+// can continue.
+{
+ KickUserAck Low Trusted Unencoded
+ {
+ UserInfo Single
+ { SessionID LLUUID }
+ { Flags U32 }
+ }
+}
+
+// GodKickUser
+// When a god wants someone kicked
+// viewer -> sim
+// reliable
+{
+ GodKickUser Low NotTrusted Unencoded
+ {
+ UserInfo Single
+ { GodID LLUUID }
+ { GodSessionID LLUUID }
+ { AgentID LLUUID }
+ { KickFlags U32 }
+ { Reason Variable 2 } // string
+ }
+}
+
+// SystemKickUser
+// user->space, reliable
+{
+ SystemKickUser Low Trusted Unencoded
+ {
+ AgentInfo Variable
+ { AgentID LLUUID }
+ }
+}
+
+// EjectUser
+// viewer -> sim
+// reliable
+{
+ EjectUser Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { TargetID LLUUID }
+ { Flags U32 }
+ }
+}
+
+// FreezeUser
+// Freeze someone who is on my land.
+// viewer -> sim
+// reliable
+{
+ FreezeUser Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { TargetID LLUUID }
+ { Flags U32 }
+ }
+}
+
+
+// AvatarPropertiesRequest
+// viewer -> simulator
+// reliable
+{
+ AvatarPropertiesRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { AvatarID LLUUID }
+ }
+}
+
+// AvatarPropertiesRequestBackend
+// simulator -> dataserver
+// reliable
+{
+ AvatarPropertiesRequestBackend Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { AvatarID LLUUID }
+ { GodLevel U8 }
+ }
+}
+// AvatarPropertiesReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ AvatarPropertiesReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID } // your id
+ { AvatarID LLUUID } // avatar you're asking about
+ }
+ {
+ PropertiesData Single
+ { ImageID LLUUID }
+ { FLImageID LLUUID }
+ { PartnerID LLUUID }
+ { AboutText Variable 2 } // string, up to 512
+ { WantToMask U32 }
+ { WantToText Variable 1 } // string
+ { SkillsMask U32 }
+ { SkillsText Variable 1 } // string
+ { FLAboutText Variable 1 } // string
+ { BornOn Variable 1 } // string
+ { CharterMember Variable 1 } // special - usually U8
+ { AllowPublish BOOL } // whether profile is externally visible or not
+ { MaturePublish BOOL } // profile is "mature"
+ { Identified BOOL } // whether avatar has provided payment info
+ { Transacted BOOL } // whether avatar has actively used payment info
+ }
+}
+
+// AvatarGroupsReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ AvatarGroupsReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID } // your id
+ { AvatarID LLUUID } // avatar you're asking about
+ }
+ {
+ GroupData Variable
+ { GroupOfficer BOOL }
+ { GroupTitle Variable 1 }
+ { GroupID LLUUID }
+ { GroupName Variable 1 }
+ { GroupInsigniaID LLUUID }
+ }
+}
+
+
+// AvatarPropertiesUpdate
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ AvatarPropertiesUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ PropertiesData Single
+ { AvatarID LLUUID }
+ { ImageID LLUUID }
+ { FLImageID LLUUID }
+ { AboutText Variable 2 } // string, up to 512
+ { FLAboutText Variable 1 }
+ { WantToMask U32 }
+ { WantToText Variable 1 } // string
+ { SkillsMask U32 }
+ { SkillsText Variable 1 } // string
+ { AllowPublish BOOL } // whether profile is externally visible or not
+ { MaturePublish BOOL } // profile is "mature"
+ }
+}
+
+// AvatarStatisticsReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ AvatarStatisticsReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ AvatarData Single
+ { AvatarID LLUUID }
+ }
+ {
+ StatisticsData Variable
+ { Name Variable 1 } // string
+ { Positive S32 }
+ { Negative S32 }
+ }
+}
+
+
+// AvatarNotesReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ AvatarNotesReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { TargetID LLUUID }
+ { Notes Variable 2 } // string
+ }
+}
+
+
+// AvatarNotesUpdate
+// viewer -> simulator -> dataserver
+// reliable
+{
+ AvatarNotesUpdate Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { TargetID LLUUID }
+ { Notes Variable 2 } // string
+ }
+}
+
+
+// AvatarPicksReply
+// dataserver -> simulator -> viewer
+// Send the header information for this avatar's picks
+// This fills in the tabs of the Picks panel.
+// reliable
+{
+ AvatarPicksReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { TargetID LLUUID }
+ }
+ {
+ Data Variable
+ { PickID LLUUID }
+ { PickName Variable 1 } // string
+ }
+}
+
+
+// EventInfoRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ EventInfoRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+}
+
+
+// EventInfoReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ EventInfoReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ { Creator Variable 1 }
+ { Name Variable 1 }
+ { Category Variable 1 }
+ { Desc Variable 2 }
+ { Date Variable 1 }
+ { DateUTC U32 }
+ { Duration U32 }
+ { Cover U32 }
+ { Amount U32 }
+ { SimName Variable 1 }
+ { GlobalPos LLVector3d }
+ { EventFlags U32 }
+ }
+}
+
+
+// EventNotificationAddRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ EventNotificationAddRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+}
+
+
+// EventNotificationRemoveRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ EventNotificationRemoveRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+}
+
+// EventGodDelete
+// viewer -> simulator
+// simulator -> dataserver
+// QueryData is used to resend a search result after the deletion
+// reliable
+{
+ EventGodDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { QueryStart S32 } // prev/next page support
+ }
+}
+
+// PickInfoRequest
+// viewer -> simulator
+// simulator -> dataserver
+// If CreatorID is not null, then we're looking for an agent pick
+// or picks.
+// reliable
+{
+ PickInfoRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ }
+}
+
+
+// PickInfoReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ PickInfoReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ { CreatorID LLUUID }
+ { TopPick BOOL }
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { Desc Variable 2 }
+ { SnapshotID LLUUID }
+ { User Variable 1 }
+ { OriginalName Variable 1 }
+ { SimName Variable 1 }
+ { PosGlobal LLVector3d }
+ { SortOrder S32 }
+ { Enabled BOOL }
+ }
+}
+
+
+// PickInfoUpdate
+// Update a pick. ParcelID is set on the simulator as the message
+// passes through.
+// If TopPick is TRUE, the simulator will only pass on the message
+// if the agent_id is a god.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ PickInfoUpdate Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ { CreatorID LLUUID }
+ { TopPick BOOL }
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { Desc Variable 2 }
+ { SnapshotID LLUUID }
+ { PosGlobal LLVector3d }
+ { SortOrder S32 }
+ { Enabled BOOL }
+ }
+}
+
+
+// PickDelete
+// Delete a non-top pick from the database.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ PickDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ }
+}
+
+// PickGodDelete
+// Delete a pick from the database.
+// QueryID is needed so database can send a repeat list of
+// picks.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ PickGodDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ { QueryID LLUUID }
+ }
+}
+
+
+// ScriptQuestion
+// reliable
+{
+ ScriptQuestion Low Trusted Unencoded
+ {
+ Data Single
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ObjectName Variable 1 }
+ { ObjectOwner Variable 1 }
+ { Questions S32 }
+ }
+}
+
+// ScriptControlChange
+// reliable
+{
+ ScriptControlChange Low NotTrusted Unencoded
+ {
+ Data Variable
+ { TakeControls BOOL }
+ { Controls U32 }
+ { PassToAgent BOOL }
+ }
+}
+
+// ScriptDialog
+// sim -> viewer
+// reliable
+{
+ ScriptDialog Low Trusted Zerocoded
+ {
+ Data Single
+ { ObjectID LLUUID }
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ { ObjectName Variable 1 }
+ { Message Variable 2 }
+ { ChatChannel S32 }
+ { ImageID LLUUID }
+ }
+ {
+ Buttons Variable
+ { ButtonLabel Variable 1 }
+ }
+}
+
+
+// ScriptDialogReply
+// viewer -> sim
+// reliable
+{
+ ScriptDialogReply Low NotTrusted Zerocoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { ObjectID LLUUID }
+ { ChatChannel S32 }
+ { ButtonIndex S32 }
+ { ButtonLabel Variable 1 }
+ }
+}
+
+
+// ForceScriptControlRelease
+// reliable
+{
+ ForceScriptControlRelease Low NotTrusted Unencoded
+ {
+ Data Single
+ { ID LLUUID }
+ }
+}
+
+// RevokePermissions
+// reliable
+{
+ RevokePermissions Low NotTrusted Unencoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { ObjectID LLUUID }
+ { ObjectPermissions U32 }
+ }
+}
+
+// LoadURL
+// sim -> viewer
+// Ask the user if they would like to load a URL
+// reliable
+{
+ LoadURL Low Trusted Unencoded
+ {
+ Data Single
+ { ObjectName Variable 1 }
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { Message Variable 1 }
+ { URL Variable 1 }
+ }
+}
+
+// ScriptTeleportRequest
+// reliable
+{
+ ScriptTeleportRequest Low NotTrusted Unencoded
+ {
+ Data Single
+ { ObjectName Variable 1 }
+ { SimName Variable 1 }
+ { SimPosition LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+
+
+
+// ***************************************************************************
+// Land Parcel system
+// ***************************************************************************
+
+// ParcelOverlay
+// We send N packets per region to the viewer.
+// N = 4, currently. At 256x256 meter regions, 4x4 meter parcel grid,
+// there are 4096 parcel units per region. At N = 4, that's 1024 units
+// per packet, allowing 8 bit bytes.
+// sim -> viewer
+// reliable
+{
+ ParcelOverlay Low Trusted Zerocoded
+ {
+ ParcelData Single
+ { SequenceID S32 } // 0...3, which piece of region
+ { Data Variable 2 } // packed bit-field, (grids*grids)/N
+ }
+}
+
+
+// ParcelPropertiesRequest
+// SequenceID should be -1 or -2, and is echoed back in the
+// parcel properties message.
+// viewer -> sim
+// reliable
+{
+ ParcelPropertiesRequest Medium NotTrusted Zerocoded
+ {
+ ParcelData Single
+ { AgentID LLUUID }
+ { SequenceID S32 }
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ { SnapSelection BOOL }
+ }
+}
+
+// ParcelPropertiesRequestByID
+// viewer -> sim
+// reliable
+{
+ ParcelPropertiesRequestByID Low NotTrusted Zerocoded
+ {
+ ParcelData Single
+ { AgentID LLUUID }
+ { SequenceID S32 }
+ { LocalID S32 }
+ }
+}
+
+// ParcelProperties
+// sequence id = -1 for parcels that you explicitly selected
+// For agents, sequence id increments every time the agent transits into
+// a new parcel. It is used to detect out-of-order agent parcel info updates.
+// Bitmap = packed bit field, one bit per parcel grid, on if that grid is
+// part of the selected parcel.
+// sim -> viewer
+// WARNING: This packet is potentially large. With max length name,
+// description, music URL and media URL, it is 1526 + sizeof ( LLUUID ) bytes.
+{
+ ParcelProperties High Trusted Zerocoded
+ {
+ ParcelData Single
+ { RequestResult S32 }
+ { SequenceID S32 }
+ { SnapSelection BOOL }
+ { SelfCount S32 }
+ { OtherCount S32 }
+ { PublicCount S32 }
+ { LocalID S32 }
+ { OwnerID LLUUID }
+ { IsGroupOwned BOOL }
+ { AuctionID U32 }
+ { ReservedNewbie BOOL }
+ { ClaimDate S32 } // time_t
+ { ClaimPrice S32 }
+ { RentPrice S32 }
+ { AABBMin LLVector3 }
+ { AABBMax LLVector3 }
+ { Bitmap Variable 2 } // packed bit-field
+ { Area S32 }
+ { Status U8 } // owned vs. pending
+ { SimWideMaxPrims S32 }
+ { SimWideTotalPrims S32 }
+ { MaxPrims S32 }
+ { TotalPrims S32 }
+ { OwnerPrims S32 }
+ { GroupPrims S32 }
+ { OtherPrims S32 }
+ { SelectedPrims S32 }
+ { ParcelPrimBonus F32 }
+
+ { OtherCleanTime S32 }
+
+ { ParcelFlags U32 }
+ { SalePrice S32 }
+ { Name Variable 1 } // string
+ { Desc Variable 1 } // string
+ { MusicURL Variable 1 } // string
+ { MediaURL Variable 1 } // string
+ { MediaID LLUUID }
+ { MediaAutoScale U8 }
+ { GroupID LLUUID }
+ { PassPrice S32 }
+ { PassHours F32 }
+ { Category U8 }
+ { AuthBuyerID LLUUID }
+ { SnapshotID LLUUID }
+ { UserLocation LLVector3 }
+ { UserLookAt LLVector3 }
+ { LandingType U8 }
+ { RegionPushOverride BOOL }
+ }
+}
+
+// ParcelPropertiesUpdate
+// viewer -> sim
+// reliable
+{
+ ParcelPropertiesUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { Flags U32 }
+
+ { ParcelFlags U32 }
+ { SalePrice S32 }
+ { Name Variable 1 } // string
+ { Desc Variable 1 } // string
+ { MusicURL Variable 1 } // string
+ { MediaURL Variable 1 } // string
+ { MediaID LLUUID }
+ { MediaAutoScale U8 }
+ { GroupID LLUUID }
+ { PassPrice S32 }
+ { PassHours F32 }
+ { Category U8 }
+ { AuthBuyerID LLUUID }
+ { SnapshotID LLUUID }
+ { UserLocation LLVector3 }
+ { UserLookAt LLVector3 }
+ { LandingType U8 }
+ }
+}
+
+// ParcelReturnObjects
+// viewer -> sim
+// reliable
+{
+ ParcelReturnObjects Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { ReturnType S32 }
+ { OtherCleanTime S32 }
+ }
+ {
+ TaskIDs Variable
+ { TaskID LLUUID }
+ }
+ {
+ OwnerIDs Variable
+ { OwnerID LLUUID }
+ }
+}
+
+// Disable makes objects nonphysical and turns off their scripts.
+// ParcelDisableObjects
+// viewer -> sim
+// reliable
+{
+ ParcelDisableObjects Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { ReturnType S32 }
+ { OtherCleanTime S32 }
+ }
+ {
+ TaskIDs Variable
+ { TaskID LLUUID }
+ }
+ {
+ OwnerIDs Variable
+ { OwnerID LLUUID }
+ }
+}
+
+
+// ParcelSelectObjects
+// viewer -> sim
+// reliable
+{
+ ParcelSelectObjects Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { ReturnType S32 }
+ }
+ {
+ ReturnIDs Variable
+ { ReturnID LLUUID }
+ }
+}
+
+
+// ForceObjectSelect
+// sim -> viewer
+// reliable
+{
+ ForceObjectSelect Low Trusted Unencoded
+ {
+ Header Single
+ { ResetList BOOL }
+ }
+ {
+ Data Variable
+ { LocalID U32 }
+ }
+}
+
+
+// ParcelBuyPass - purchase a temporary access pass
+// viewer -> sim
+// reliable
+{
+ ParcelBuyPass Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ }
+}
+
+// ParcelDeedToGroup - deed a patch of land to a group
+// viewer -> sim
+// reliable
+{
+ ParcelDeedToGroup Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ { LocalID S32 } // parcel id
+ }
+}
+
+// reserved for when island owners force re-claim parcel
+{
+ ParcelReclaim Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { LocalID S32 } // parcel id
+ }
+}
+
+// ParcelClaim - change the owner of a patch of land
+// viewer -> sim
+// reliable
+{
+ ParcelClaim Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ { IsGroupOwned BOOL }
+ { Final BOOL } // true if buyer is in tier
+ }
+ {
+ ParcelData Variable
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ }
+}
+
+// ParcelJoin - Take all parcels which are owned by agent and inside
+// rectangle, and make them 1 parcel if they all are leased.
+// viewer -> sim
+// reliable
+{
+ ParcelJoin Low NotTrusted Unencoded
+ {
+ ParcelData Single
+ { AgentID LLUUID }
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ }
+}
+
+// ParcelDivide
+// If the selection is a subsection of exactly one parcel,
+// chop out that section and make a new parcel of it.
+// viewer -> sim
+// reliable
+{
+ ParcelDivide Low NotTrusted Unencoded
+ {
+ ParcelData Single
+ { AgentID LLUUID }
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ }
+}
+
+// ParcelRelease
+// Release a parcel to public
+// viewer -> sim
+// reliable
+{
+ ParcelRelease Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { LocalID S32 } // parcel ID
+ }
+}
+
+// ParcelBuy - change the owner of a patch of land.
+// viewer -> sim
+// reliable
+{
+ ParcelBuy Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ { IsGroupOwned BOOL }
+ { LocalID S32 }
+ { Final BOOL } // true if buyer is in tier
+ }
+}
+
+
+// ParcelGodForceOwner Unencoded
+{
+ ParcelGodForceOwner Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { OwnerID LLUUID }
+ { LocalID S32 } // parcel ID
+ }
+}
+
+
+// viewer -> sim
+// ParcelAccessListRequest
+{
+ ParcelAccessListRequest Low NotTrusted Zerocoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { SequenceID S32 }
+ { Flags U32 }
+ { LocalID S32 }
+ }
+}
+
+
+// sim -> viewer
+// ParcelAccessListReply
+{
+ ParcelAccessListReply Low NotTrusted Zerocoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { SequenceID S32 }
+ { Flags U32 }
+ { LocalID S32 }
+ }
+ {
+ List Variable
+ { ID LLUUID }
+ { Time S32 } // time_t
+ { Flags U32 }
+ }
+}
+
+// viewer -> sim
+// ParcelAccessListUpdate
+{
+ ParcelAccessListUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { Flags U32 }
+ { LocalID S32 }
+ { TransactionID LLUUID }
+ { SequenceID S32 }
+ { Sections S32 }
+ }
+ {
+ List Variable
+ { ID LLUUID }
+ { Time S32 } // time_t
+ { Flags U32 }
+ }
+}
+
+
+// viewer -> sim -> dataserver
+// reliable
+{
+ ParcelDwellRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { LocalID S32 }
+ { ParcelID LLUUID } // filled in on sim
+ }
+}
+
+
+// dataserver -> sim -> viewer
+// reliable
+{
+ ParcelDwellReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { LocalID S32 }
+ { ParcelID LLUUID }
+ { Dwell F32 }
+ }
+}
+
+// sim -> dataserver
+// This message is used to check if a user can buy a parcel. If
+// successful, the transaction is approved through a money balance reply
+// with the same transaction id.
+{
+ RequestParcelTransfer Low Trusted Zerocoded
+ {
+ Data Single
+ { TransactionID LLUUID }
+ { TransactionTime U32 } // utc seconds since epoch
+ { SourceID LLUUID }
+ { DestID LLUUID }
+ { OwnerID LLUUID }
+ { Flags U8 } // see lltransactiontypes.h
+ { TransactionType S32 } // see lltransactiontypes.h
+ { Amount S32 }
+ { BillableArea S32 }
+ { ActualArea S32 }
+ { Final BOOL } // true if buyer should be in tier
+ { ReservedNewbie BOOL }
+ }
+}
+
+// sim ->dataserver
+// This message is used to send up complete parcel properties for
+// persistance in the database.
+// If you add something here, you should probably also change the
+// simulator's database update query on startup.
+{
+ UpdateParcel Low Trusted Zerocoded
+ {
+ ParcelData Single
+ { ParcelID LLUUID }
+ { RegionHandle U64 }
+ { OwnerID LLUUID }
+ { GroupOwned BOOL }
+ { Status U8 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { MusicURL Variable 1 }
+ { RegionX F32 }
+ { RegionY F32 }
+ { ActualArea S32 }
+ { BillableArea S32 }
+ { ShowDir BOOL }
+ { IsForSale BOOL }
+ { Category U8 }
+ { SnapshotID LLUUID }
+ { UserLocation LLVector3 }
+ { SalePrice S32 }
+ { AuthorizedBuyerID LLUUID }
+ { ReservedNewbie BOOL }
+ { AllowPublish BOOL }
+ { MaturePublish BOOL }
+ }
+}
+
+// sim -> dataserver or space ->sim
+// This message is used to tell the dataserver that a parcel has been
+// removed.
+{
+ RemoveParcel Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ }
+}
+
+// sim -> dataserver
+// Merges some of the database information for parcels (dwell).
+{
+ MergeParcel Low Trusted Unencoded
+ {
+ MasterParcelData Single
+ { MasterID LLUUID }
+ }
+ {
+ SlaveParcelData Variable
+ { SlaveID LLUUID }
+ }
+}
+
+// sim -> dataserver
+{
+ LogParcelChanges Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ }
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { OwnerID LLUUID }
+ { IsOwnerGroup BOOL }
+ { ActualArea S32 }
+ { Action S8 }
+ { TransactionID LLUUID }
+ }
+}
+
+// userserver -> dataserver
+// Used to request all parcel sales in the database
+//{
+// RequestParcelSales Low Trusted Unencoded
+//}
+
+// dataserver -> userserver -> spaceserver
+// response of all (up to max packet size) parcel sales in the database.
+// each block in the meassage represents a parcel that a human agreed
+// to pay US$.
+//{
+// BulkParcelSales Low Trusted Unencoded
+// {
+// ParcelData Variable
+// { RegionHandle U64 }
+// { ParcelID LLUUID }
+// { BuyerID LLUUID }
+// }
+//}
+
+// sim -> dataserver
+{
+ CheckParcelSales Low Trusted Unencoded
+ {
+ RegionData Variable
+ { RegionHandle U64 }
+ }
+}
+
+// dataserver -> simulator
+// tell a particular simulator to finish parcel sale.
+{
+ ParcelSales Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { BuyerID LLUUID }
+ }
+}
+
+// viewer -> sim
+// mark parcel and double secret agent content on parcel as owned by
+// governor/maint and adjusts permissions approriately. Godlike request.
+{
+ ParcelGodMarkAsContent Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ }
+}
+
+// viewer -> sim
+{
+ ParcelGodReserveForNewbie Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { SnapshotID LLUUID }
+ }
+}
+
+// viewer -> sim
+// start an auction. viewer fills in the appropriate date, simulator
+// validates and fills in the rest of the information to start an auction
+// on a parcel. Processing currently requires that AgentID is a god.
+{
+ ViewerStartAuction Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { SnapshotID LLUUID }
+ }
+}
+
+// sim -> dataserver
+// Once all of the data has been gathered,
+{
+ StartAuction Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ParcelData Single
+ { ParcelID LLUUID }
+ { SnapshotID LLUUID }
+ { Name Variable 1 } // string
+ }
+}
+
+// dataserver -> sim
+{
+ ConfirmAuctionStart Low Trusted Unencoded
+ {
+ AuctionData Single
+ { ParcelID LLUUID }
+ { AuctionID U32 }
+ }
+}
+
+// sim -> dataserver
+// Tell the dataserver that an auction has completed.
+{
+ CompleteAuction Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ }
+}
+
+// Tell the dataserver that an auction has been canceled.
+{
+ CancelAuction Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ }
+}
+
+// userserver -> dataserver
+// Used to request all parcel sales in the database
+//{
+// RequestParcelAuctions Low Trusted Unencoded
+//}
+
+// dataserver -> userserver -> spaceserver
+// response of all (up to max packet size) parcel sales in the database.
+// each block in the meassage represents a parcel that a human agreed
+// to pay US$.
+//{
+// BulkParcelAuctions Low Trusted Unencoded
+// {
+// ParcelData Variable
+// { RegionHandle U64 }
+// { ParcelID LLUUID }
+// { WinnerID LLUUID }
+// }
+//}
+
+// sim -> dataserver
+{
+ CheckParcelAuctions Low Trusted Unencoded
+ {
+ RegionData Variable
+ { RegionHandle U64 }
+ }
+}
+
+// dataserver -> sim
+// tell a particular simulator to finish parcel sale.
+{
+ ParcelAuctions Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { WinnerID LLUUID }
+ }
+}
+
+// ***************************************************************************
+// UUID to name lookup
+// ***************************************************************************
+
+// UUIDNameRequest
+// Translate a UUID into first and last names
+{
+ UUIDNameRequest Low NotTrusted Unencoded
+ {
+ UUIDNameBlock Variable
+ { ID LLUUID }
+ }
+}
+
+// UUIDNameReply
+// Translate a UUID into first and last names
+{
+ UUIDNameReply Low Trusted Unencoded
+ {
+ UUIDNameBlock Variable
+ { ID LLUUID }
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ }
+}
+
+// UUIDGroupNameRequest
+// Translate a UUID into a group name
+{
+ UUIDGroupNameRequest Low NotTrusted Unencoded
+ {
+ UUIDNameBlock Variable
+ { ID LLUUID }
+ }
+}
+
+// UUIDGroupNameReply
+// Translate a UUID into a group name
+{
+ UUIDGroupNameReply Low Trusted Unencoded
+ {
+ UUIDNameBlock Variable
+ { ID LLUUID }
+ { GroupName Variable 1 }
+ }
+}
+
+// end uuid to name lookup
+
+// ***************************************************************************
+// Simulator to Simulator Messages
+// ***************************************************************************
+
+// ChatPass
+// Chat message transmission to neighbors
+// Chat is region local to receiving simulator.
+// Type is one of CHAT_TYPE_NORMAL, _WHISPER, _SHOUT
+{
+ ChatPass Low Trusted Zerocoded
+ {
+ ChatData Single
+ { Channel S32 }
+ { Position LLVector3 }
+ { ID LLUUID }
+ { OwnerID LLUUID }
+ { Name Variable 1 }
+ { SourceType U8 }
+ { Type U8 }
+ { Radius F32 }
+ { SimAccess U8 }
+ { Message Variable 2 }
+ }
+}
+
+// Edge data - compressed edge data
+
+{
+ EdgeDataPacket High Trusted Zerocoded
+ {
+ EdgeData Single
+ { LayerType U8 }
+ { Direction U8 }
+ { LayerData Variable 2 }
+ }
+}
+
+// Sim status, condition of this sim
+// sent reliably, when dirty
+{
+ SimStatus Medium Trusted Unencoded
+ {
+ SimStatus Single
+ { CanAcceptAgents BOOL }
+ { CanAcceptTasks BOOL }
+ }
+}
+
+// Child Agent Update - agents send child agents to neighboring simulators.
+// This will create a child camera if there isn't one at the target already
+// Can't send viewer IP and port between simulators -- the port may get remapped
+// if the viewer is behind a Network Address Translation (NAT) box.
+//
+// Note: some of the fields of this message really only need to be sent when an
+// agent crosses a region boundary and changes from a child to a main agent
+// (such as Head/BodyRotation, ControlFlags, Animations etc)
+// simulator -> simulator
+// reliable
+{
+ ChildAgentUpdate High Trusted Zerocoded
+ {
+ AgentData Single
+
+ { RegionHandle U64 }
+ { ViewerCircuitCode U32 }
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+
+ { AgentPos LLVector3 }
+ { AgentVel LLVector3 }
+ { Center LLVector3 }
+ { Size LLVector3 }
+ { AtAxis LLVector3 }
+ { LeftAxis LLVector3 }
+ { UpAxis LLVector3 }
+ { ChangedGrid BOOL } // BOOL
+
+ { Far F32 }
+ { Aspect F32 }
+ { Throttles Variable 1 }
+ { LocomotionState U32 }
+ { HeadRotation LLQuaternion }
+ { BodyRotation LLQuaternion }
+ { ControlFlags U32 }
+ { EnergyLevel F32 }
+ { GodLevel U8 } // Changed from BOOL to U8, and renamed GodLevel (from Godlike)
+ { AlwaysRun BOOL }
+ { PreyAgent LLUUID }
+ { AgentAccess U8 }
+ { AgentTextures Variable 2 }
+ { GroupIndex S8 } // -1 for none
+ }
+ {
+ GroupData Variable
+ { GroupID LLUUID }
+ { GroupOfficer BOOL } // BOOL
+ }
+ {
+ AnimationData Variable
+ { Animation LLUUID }
+ { ObjectID LLUUID }
+ }
+ {
+ GranterBlock Variable
+ { GranterID LLUUID }
+ }
+ {
+ NVPairData Variable
+ { NVPairs Variable 2 }
+ }
+ {
+ VisualParam Variable
+ { ParamValue U8 }
+ }
+}
+
+// ChildAgentAlive
+// sent to child agents just to keep them alive
+{
+ ChildAgentAlive High Trusted Unencoded
+ {
+ AgentData Single
+ { RegionHandle U64 }
+ { ViewerCircuitCode U32 }
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// ChildAgentPositionUpdate
+// sent to child agents just to keep them alive
+{
+ ChildAgentPositionUpdate High Trusted Unencoded
+ {
+ AgentData Single
+
+ { RegionHandle U64 }
+ { ViewerCircuitCode U32 }
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+
+ { AgentPos LLVector3 }
+ { AgentVel LLVector3 }
+ { Center LLVector3 }
+ { Size LLVector3 }
+ { AtAxis LLVector3 }
+ { LeftAxis LLVector3 }
+ { UpAxis LLVector3 }
+ { ChangedGrid BOOL }
+ }
+}
+
+
+// Obituary for child agents - make sure the parent know the child is dead
+// This way, children can be reliably restarted
+{
+ ChildAgentDying Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+
+// This is sent if a full child agent hasn't been accepted yet
+{
+ ChildAgentUnknown Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// Pass Object Between Simulators
+//
+// BUG compress rotation
+// BUG compress scale
+{
+ PassObject High Trusted Zerocoded
+ {
+ ObjectData Single
+ { ID LLUUID }
+ { ParentID LLUUID }
+
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+
+ { PCode U8 }
+ { Material U8 }
+ { State U8 }
+ { Scale LLVector3 }
+ { UsePhysics U8 }
+
+ { PosX S16 }
+ { PosY S16 }
+ { PosZ S16 }
+
+ { VelX S16 }
+ { VelY S16 }
+ { VelZ S16 }
+
+ { Rotation LLQuaternion }
+
+ { AngVelX S16 }
+ { AngVelY S16 }
+ { AngVelZ S16 }
+
+ { PathCurve U8 }
+ { ProfileCurve U8 }
+ { PathBegin U8 } // 0 to 1, quanta = 0.01
+ { PathEnd U8 } // 0 to 1, quanta = 0.01
+ { PathScaleX U8 } // 0 to 1, quanta = 0.01
+ { PathScaleY U8 } // 0 to 1, quanta = 0.01
+ { PathShearX U8 } // -.5 to .5, quanta = 0.01
+ { PathShearY U8 } // -.5 to .5, quanta = 0.01
+ { PathTwist S8 } // -1 to 1, quanta = 0.01
+ { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
+ { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
+ { PathTaperX S8 } // -1 to 1, quanta = 0.01
+ { PathTaperY S8 } // -1 to 1, quanta = 0.01
+ { PathRevolutions U8 } // 0 to 3, quanta = 0.015
+ { PathSkew S8 } // -1 to 1, quanta = 0.01
+ { ProfileBegin U8 } // 0 to 1, quanta = 0.01
+ { ProfileEnd U8 } // 0 to 1, quanta = 0.01
+ { ProfileHollow U8 } // 0 to 1, quanta = 0.01
+
+ { TextureEntry Variable 2 }
+
+ { SubType S16 }
+ { Active U8 }
+
+ { Data Variable 2 }
+ }
+ {
+ NVPairData Variable
+ { NVPairs Variable 2 }
+ }
+}
+
+// This message is sent how objects get passed between regions.
+{
+ AtomicPassObject High Trusted Unencoded
+ {
+ TaskData Single
+ { TaskID LLUUID }
+ { AttachmentNeedsSave BOOL } // true iff is attachment and needs asset saved
+ }
+}
+
+
+// KillChildAgents - A new agent has connected to the simulator . . . make sure that any old child cameras are blitzed
+{
+ KillChildAgents Low Trusted Unencoded
+ {
+ IDBlock Single
+ { AgentID LLUUID }
+ }
+}
+
+
+// GetScriptRunning - asks if a script is running or not. the simulator
+// responds with GetScriptRunningReply
+{
+ GetScriptRunning Low NotTrusted Unencoded
+ {
+ Script Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// ScriptRunningReply - response from simulator to message above
+{
+ ScriptRunningReply Low NotTrusted Unencoded
+ {
+ Script Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ { Running BOOL }
+ }
+}
+
+
+// SetScriptRunning - makes a script active or inactive (Enable may be
+// true or false)
+{
+ SetScriptRunning Low NotTrusted Unencoded
+ {
+ Script Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ { Running BOOL }
+ }
+}
+
+// ScriptReset - causes a script to reset
+{
+ ScriptReset Low NotTrusted Unencoded
+ {
+ Script Single
+ { AgentID LLUUID }
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// ScriptSensorRequest - causes the receiving sim to run a script sensor and return the results
+{
+ ScriptSensorRequest Low Trusted Zerocoded
+ {
+ Requester Single
+ { SourceID LLUUID }
+ { RequestID LLUUID }
+ { SearchID LLUUID }
+ { SearchPos LLVector3 }
+ { SearchDir LLQuaternion }
+ { SearchName Variable 1 }
+ { Type S32 }
+ { Range F32 }
+ { Arc F32 }
+ { RegionHandle U64 }
+ { SearchRegions U8 }
+ }
+}
+
+// ScriptSensorReply - returns the request script search information back to the requester
+{
+ ScriptSensorReply Low Trusted Zerocoded
+ {
+ Requester Single
+ { SourceID LLUUID }
+ }
+ {
+ SensedData Variable
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { GroupID LLUUID }
+ { Position LLVector3 }
+ { Velocity LLVector3 }
+ { Rotation LLQuaternion }
+ { Name Variable 1 }
+ { Type S32 }
+ { Range F32 }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Login and Agent Motion
+//-----------------------------------------------------------------------------
+
+// viewer -> sim
+// agent is coming into the region. The region should be expecting the
+// agent.
+{
+ CompleteAgentMovement Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { CircuitCode U32 }
+ }
+}
+
+// sim -> viewer
+{
+ AgentMovementComplete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ { RegionHandle U64 }
+ { Timestamp U32 }
+ }
+}
+
+// sim->dataserver
+// log the fact that the agent has logged in.
+{
+ LogLogin Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ViewerDigest LLUUID }
+ { LastExecFroze BOOL }
+ { SpaceIP IPADDR }
+ }
+}
+
+// LoginRequestSafe
+// Attempt to log into the system with an auth token obtained via a
+// secure out of band mechanism (such as a TLS tunnel)
+// viewer -> userserver
+// unreliable
+//{
+// LoginRequestSafe Low NotTrusted Unencoded
+// {
+// LoginBlock Single
+// { AuthToken LLUUID } // session id really
+// { ViewerDigest LLUUID } // MD5 of viewer exe
+// { LastExecFroze BOOL }
+// }
+//}
+
+// LoginReply
+// Identifies the session, or sends LLUUID::null if invalid
+// userserver -> viewer
+//{
+// LoginReply Low Trusted Zerocoded
+// {
+// UserData Single
+// { Firstname Variable 1 } // string, canonical caps
+// { Lastname Variable 1 } // string, canonical caps
+// { SessionID LLUUID }
+// { AgentID LLUUID }
+// { ErrorMessage Variable 1 }
+// { AgentAccess U8 }
+// { GroupOfficer BOOL }
+// { GroupTitle Variable 1 }
+// { GroupID LLUUID }
+// { GroupName Variable 1 }
+// { GroupInsigniaID LLUUID }
+// { LoginFlags U32 } // bitfield
+// { SunTextureID LLUUID }
+// { MoonTextureID LLUUID }
+// { CloudTextureID LLUUID }
+// { TOSAssetID LLUUID } // Null if TOS agreement is current
+// { CriticalMessageAssetID LLUUID } // Null if message is current
+// { TrialDaysLeft S32 } // Zero if not trial
+// { ServerUTCTime U32 } // time_t, unix time format
+// }
+// {
+// StartLocationData Variable
+// { LocationID U32 }
+// { LocationRegionX U32 } // U32, meters to southwest
+// { LocationRegionY U32 }
+// { LocationPos LLVector3 } // Vector3, region coords
+// { LocationLookAt LLVector3 } // Vector3
+// }
+//}
+
+// DataserverLoginRequestSafe
+// userserver -> dataserver
+//{
+// DataserverLoginRequestSafe Low Trusted Unencoded
+// {
+// UserData Single
+// { AuthToken LLUUID } // session id really
+// { IP IPADDR }
+// { Port IPPORT }
+// { SpaceIP IPADDR }
+// { ViewerDigest LLUUID }
+// { LastExecFroze BOOL }
+// }
+//}
+
+// DataServerLoginReply
+// TimeValid is true if user is allowed to log in at this time
+// dataserver -> userserver
+// reliable
+//{
+// DataServerLoginReply Low Trusted Zerocoded
+// {
+// UserData Single
+// { Firstname Variable 1 } // string
+// { Lastname Variable 1 } // string
+// { IP IPADDR } // don't think this is valid JC 6/02
+// { Port IPPORT } // don't think this is valid JC 6/02
+// { LoginValid BOOL }
+// { TimeValid BOOL }
+// { ErrorMessage Variable 1 } // string
+// { AgentID LLUUID }
+// { SessionID LLUUID }
+// { LimitedToEstate U32 }
+// { AgentAccess U8 }
+// { GroupOfficer BOOL }
+// { GroupTitle Variable 1 }
+// { GroupID LLUUID }
+// { GroupName Variable 1 }
+// { GroupInsigniaID LLUUID }
+// { LoginFlags U32 } // bitfield
+// { SunTextureID LLUUID }
+// { MoonTextureID LLUUID }
+// { CloudTextureID LLUUID }
+// { TOSAssetID LLUUID } // Null if TOS agreement is current
+// { CriticalMessageAssetID LLUUID } // Null if message is current
+// { TrialDaysLeft S32 } // Zero if not trial
+// { ServerUTCTime U32 } // time_t, unix time format
+// { SpaceIP IPADDR }
+// { ViewerDigest LLUUID }
+// { LastExecFroze BOOL }
+// }
+// {
+// StartLocationData Variable
+// { LocationID U32 }
+// { LocationRegionX U32 }
+// { LocationRegionY U32 }
+// { LocationPos LLVector3 } // Vector3
+// { LocationLookAt LLVector3 } // Vector3
+// }
+//}
+
+// The user agrees to the current Terms of Service
+// or clicks OK on the current critical message
+// type 0 = TOS
+// type 1 = critical message
+// viewer -> userserver -> dataserver
+//{
+// TOSAgreement Low NotTrusted Unencoded
+// {
+// AgentBlock Single
+// { AgentID LLUUID }
+// { Type S32 }
+// }
+//}
+
+// This message is sent from the viewer on login or on demand from the
+// userserver.
+// viewer -> userserver
+{
+ ConnectAgentToUserserver Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// This message is sent from the userserver when it does not have
+// trusted connection or known agent on the circuit.
+{
+ ConnectToUserserver Low NotTrusted Unencoded
+}
+
+//-----------------------------------------------------------------------------
+// Logout
+//-----------------------------------------------------------------------------
+
+// userserver -> dataserver
+{
+ DataServerLogout Low Trusted Unencoded
+ {
+ UserData Single
+ { AgentID LLUUID }
+ { ViewerIP IPADDR }
+ { Disconnect BOOL }
+ { SessionID LLUUID }
+ }
+}
+
+// LogoutRequest
+// viewer -> sim
+// reliable
+{
+ LogoutRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// FinalizeLogout
+// Callback for when sim is done uploading assets to asset server
+// viewer -> sim
+// reliable
+{
+ FinalizeLogout Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// LogoutReply
+// it's ok for the viewer to quit.
+// sim -> viewer
+// reliable
+// Includes inventory items to update with new asset ids
+{
+ LogoutReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID } // null if list is actually empty (but has one entry 'cause it can't have none)
+ { NewAssetID LLUUID }
+ }
+}
+
+
+
+// LogoutDemand
+// Unreliable, because the viewer quits before it has a chance to retransmit.
+// viewer -> userserver
+// unreliable
+{
+ LogoutDemand Low NotTrusted Unencoded
+ {
+ LogoutBlock Single
+ { SessionID LLUUID }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// Viewer to UserServer Messages
+//-----------------------------------------------------------------------------
+
+// ViewerLoginLocationRequest
+// viewer -> userserver
+// *NOTE: obsolete
+{
+ ViewerLoginLocationRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ PositionBlock Single
+ { ViewerRegion U64 }
+ { ViewerPosition LLVector3 }
+ }
+ {
+ URLBlock Single
+ { SimName Variable 1 }
+ { Pos LLVector3 }
+ }
+}
+
+// ViewerSimLocationRequest
+// viewer -> userserver
+// *NOTE: obsolete
+{
+ ViewerSimLocationRequest Low NotTrusted Unencoded
+ {
+ PositionBlock Single
+ { AgentID LLUUID }
+ { SimName Variable 1 }
+ }
+}
+
+// RequestLocationGetAccess
+// userserver -> dataserver
+// *NOTE: obsolete.
+{
+ RequestLocationGetAccess Low Trusted Unencoded
+ {
+ PositionBlock Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { ViewerIP IPADDR }
+ { ViewerPort IPPORT }
+ { ViewerRegion U64 }
+ { ViewerPosition LLVector3 }
+ }
+}
+
+// RequestLocationGetAccessReply
+// dataserver -> userserver
+// *NOTE: obsolete.
+{
+ RequestLocationGetAccessReply Low Trusted Unencoded
+ {
+ PositionBlock Single
+ { ViewerIP IPADDR }
+ { ViewerPort IPPORT }
+ { ViewerRegion U64 }
+ { ViewerPosition LLVector3 }
+ { TravelAccess U8 }
+ }
+}
+
+
+// UserListRequest
+// Get a list of the current system users
+// viewer -> userserver
+//*NOTE: obsolete
+{
+ UserListRequest Low NotTrusted Unencoded
+}
+
+
+//-----------------------------------------------------------------------------
+// Instant Message
+//-----------------------------------------------------------------------------
+
+// ImprovedInstantMessage
+// This message can potentially route all over the place
+// ParentEstateID: parent estate id of the source estate
+// RegionID: region id of the source of the IM.
+// Position: position of the sender in region local coordinates
+// Dialog see llinstantmessage.h for values
+// ID May be used by dialog. Interpretation depends on context.
+// BinaryBucket May be used by some dialog types
+// reliable
+{
+ ImprovedInstantMessage Low NotTrusted Zerocoded
+ {
+ MessageBlock Single
+ { FromAgentID LLUUID }
+ { ToAgentID LLUUID }
+ { ParentEstateID U32 }
+ { RegionID LLUUID }
+ { Position LLVector3 }
+ { Offline U8 }
+ { Dialog U8 } // U8 - IM type
+ { ID LLUUID }
+ { Timestamp U32 }
+ { FromAgentName Variable 1 }
+ { Message Variable 2 }
+ { BinaryBucket Variable 2 }
+ }
+}
+
+// Start group IM session. If everyone is 1, then offline users also
+// get the messages.
+{
+ StartGroupIM Low NotTrusted Unencoded
+ {
+ SessionBlock Single
+ { SessionID LLUUID }
+ { Everyone U8 }
+ }
+ {
+ Participants Variable
+ { AgentID LLUUID }
+ }
+}
+
+// drop out from a group instant message
+{
+ DropGroupIM Low NotTrusted Unencoded
+ {
+ SessionBlock Single
+ { SessionID LLUUID }
+ { AgentID LLUUID }
+ }
+}
+
+// Group instant messaging
+{
+ GroupIM Low NotTrusted Unencoded
+ {
+ MessageBlock Single
+ { SessionID LLUUID }
+ { FromID LLUUID }
+ { FromAgentName Variable 1 }
+ { Message Variable 2 }
+ }
+}
+
+// RetrieveInstantMessages - used to get instant messages that
+// were persisted out to the database while the user was offline
+{
+ RetrieveInstantMessages Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { Agent LLUUID }
+ }
+}
+
+// DequeueInstantMessages - used to get messages out of the IM
+// queue that have come from outside of the system.
+{
+ DequeueInstantMessages Low Trusted Unencoded
+}
+
+// FindAgent - used to find an agent's global position. I used a
+// variable sized LocationBlock so that the message can be recycled with
+// minimum new messages and handlers.
+{
+ FindAgent Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { Hunter LLUUID }
+ { Prey LLUUID }
+ { SpaceIP IPADDR }
+ }
+ {
+ LocationBlock Variable
+ { GlobalX F64 }
+ { GlobalY F64 }
+ }
+}
+
+// This message is sent viewer->userserver to track if other agents
+// come on or off line.
+{
+ TrackOnlineStatus Low NotTrusted Zerocoded
+ {
+ AgentBlock Variable
+ { AgentID LLUUID }
+ }
+}
+
+// This message is sent viewer->userserver to ignore logon and logoff
+// events for the specified agents. This is typically sent when a
+// calling card is deleted or cancelled.
+{
+ IgnoreOnlineStatus Low NotTrusted Zerocoded
+ {
+ AgentBlock Variable
+ { AgentID LLUUID }
+ }
+}
+
+// Set godlike to 1 if you want to become godlike.
+// Set godlike to 0 if you want to relinquish god powers.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ RequestGodlikePowers Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RequestBlock Single
+ { Godlike BOOL }
+ { Token LLUUID } // viewer packs a null, sim packs token
+ }
+}
+
+// At the simulator, turn the godlike bit on.
+// At the viewer, show the god menu.
+// dataserver -> simulator -> viewer
+// reliable
+{
+ GrantGodlikePowers Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GrantData Single
+ { GodLevel U8 }
+ { Token LLUUID } // checked on sim, ignored on viewer
+ }
+}
+
+// GodlikeMessage - generalized construct for Gods to send messages
+// around the system. Each Request has it's own internal protocol.
+{
+ GodlikeMessage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MethodData Single
+ { Method Variable 1 }
+ { Invoice LLUUID }
+ }
+ {
+ ParamList Variable
+ { Parameter Variable 1 }
+ }
+}
+
+// EstateOwnerMessage
+// format must be identical to above
+{
+ EstateOwnerMessage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MethodData Single
+ { Method Variable 1 }
+ { Invoice LLUUID }
+ }
+ {
+ ParamList Variable
+ { Parameter Variable 1 }
+ }
+}
+
+// GenericMessage
+// format must be identical to above
+// As above, but don't have to be god or estate owner to send.
+{
+ GenericMessage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MethodData Single
+ { Method Variable 1 }
+ { Invoice LLUUID }
+ }
+ {
+ ParamList Variable
+ { Parameter Variable 1 }
+ }
+}
+
+// ***************************************************************************
+// Requests for possessions, acquisition, money, etc
+// ***************************************************************************
+
+// request for mute list
+{
+ MuteListRequest Low NotTrusted Unencoded
+ {
+ MuteData Single
+ { AgentID LLUUID }
+ { MuteCRC U32 }
+ }
+}
+
+// update/add someone in the mute list
+{
+ UpdateMuteListEntry Low NotTrusted Unencoded
+ {
+ MuteData Single
+ { AgentID LLUUID }
+ { MuteID LLUUID }
+ { MuteName Variable 1 }
+ { MuteType S32 }
+ { MuteFlags U32 }
+ }
+}
+
+// Remove a mute list entry.
+{
+ RemoveMuteListEntry Low NotTrusted Unencoded
+ {
+ MuteData Single
+ { AgentID LLUUID }
+ { MuteID LLUUID }
+ { MuteName Variable 1 }
+ }
+}
+
+
+// viewer -> userserver, gimme inventory
+//{
+// InventoryRequest Low NotTrusted Unencoded
+// {
+// InventoryData Single
+// { AgentID LLUUID }
+// { CacheCRC U32 }
+// }
+//}
+
+//
+// Inventory update messages
+//
+{
+ UpdateInventoryItem Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// When all that has updated is the asset, we can crunch this down.
+{
+ UpdateInventoryItemAsset Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { AssetID LLUUID }
+ }
+}
+
+{
+ MoveInventoryItem Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Stamp BOOL } // should the server re-timestamp?
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ }
+}
+
+// copy inventory item by item id to specified destination folder,
+// send out bulk inventory update when done.
+// currently only sim->data, but it is general enough to be
+// a viewer request.
+{
+ CopyInventoryItem Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { OldItemID LLUUID }
+ { NewFolderID LLUUID }
+ }
+}
+
+{
+ RemoveInventoryItem Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ }
+}
+
+{
+ ChangeInventoryItemFlags Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { Flags U32 }
+ }
+}
+
+
+{
+ SaveAssetIntoInventory Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Single
+ { ItemID LLUUID }
+ { NewAssetID LLUUID }
+ }
+}
+
+{
+ CreateInventoryFolder Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FolderData Single
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ { Type S8 }
+ { Name Variable 1 }
+ }
+}
+
+{
+ UpdateInventoryFolder Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ { Type S8 }
+ { Name Variable 1 }
+ }
+}
+
+{
+ MoveInventoryFolder Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Stamp BOOL } // should the server re-timestamp children
+ }
+ {
+ InventoryData Variable
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ }
+}
+
+{
+ RemoveInventoryFolder Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ }
+}
+
+// Get inventory segment.
+{
+ FetchInventoryDescendents Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Single
+ { FolderID LLUUID }
+ { OwnerID LLUUID }
+ { SortOrder S32 } // 0 = name, 1 = time
+ { FetchFolders BOOL } // false will omit folders in query
+ { FetchItems BOOL } // false will omit items in query
+ }
+}
+
+// return inventory segment.
+// *NOTE: This could be compressed more since we already know the
+// parent_id for folders and the folder_id for items, but this is
+// reasonable until we heve server side inventory.
+{
+ InventoryDescendents Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { FolderID LLUUID }
+ { OwnerID LLUUID } // owner of the folders creatd.
+ { Version S32 } // version of the folder for caching
+ { Descendents S32 } // count to help with caching
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ { Type S8 }
+ { Name Variable 1 }
+ }
+ {
+ ItemData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// Get inventory item(s) - response comes through FetchInventoryReply
+{
+ FetchInventory Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { OwnerID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// response to fetch inventory
+{
+ FetchInventoryReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// Can only fit around 7 items per packet - that's the way it goes. At
+// least many bulk updates can be packed.
+{
+ BulkUpdateInventory Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { TransactionID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ { Type S8 }
+ { Name Variable 1 }
+ }
+ {
+ ItemData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+
+
+// request permissions for agent id to get the asset for owner_id's
+// item_id.
+{
+ RequestInventoryAsset Low Trusted Unencoded
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { AgentID LLUUID }
+ { OwnerID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// response to RequestInventoryAsset
+// lluuid will be null if agentid in the request above cannot read asset
+{
+ InventoryAssetResponse Low Trusted Unencoded
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { AssetID LLUUID }
+ { IsReadable BOOL }
+ }
+}
+
+// This is the new improved way to remove inventory items. It is
+// currently only supported in viewer->userserver->dataserver
+// messages typically initiated by an empty trash method.
+{
+ RemoveInventoryObjects Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ }
+ {
+ ItemData Variable
+ { ItemID LLUUID }
+ }
+}
+
+// This is how you remove inventory when you're not even sure what it
+// is - only it's parenting.
+{
+ PurgeInventoryDescendents Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryData Single
+ { FolderID LLUUID }
+ }
+}
+
+// These messages are viewer->simulator requests to update a task's
+// inventory.
+// if Key == 0, itemid is the key. if Key == 1, assetid is the key.
+{
+ UpdateTaskInventory Low NotTrusted Zerocoded
+ {
+ UpdateData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { LocalID U32 }
+ { Key U8 }
+ }
+ {
+ InventoryData Single
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+{
+ RemoveTaskInventory Low NotTrusted Zerocoded
+ {
+ InventoryData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { LocalID U32 }
+ { ItemID LLUUID }
+ }
+}
+
+{
+ MoveTaskInventory Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { FolderID LLUUID }
+ }
+ {
+ InventoryData Single
+ { LocalID U32 }
+ { ItemID LLUUID }
+ }
+}
+
+{
+ RequestTaskInventory Low NotTrusted Unencoded
+ {
+ InventoryData Single
+ { AgentID LLUUID }
+ { LocalID U32 }
+ }
+}
+
+{
+ ReplyTaskInventory Low Trusted Zerocoded
+ {
+ InventoryData Single
+ { TaskID LLUUID }
+ { Serial S16 } // S16
+ { Filename Variable 1 }
+ }
+}
+
+// These messages are viewer->simulator requests regarding objects
+// which are currently being simulated. The viewer will get an
+// UpdateInventoryItem response if a DeRez succeeds, and the object
+// will appear if a RezObject succeeds.
+// The Destination field tells where the derez should wind up, and the
+// meaning of DestinationID depends on it. For example, if the
+// destination is a category, then the destination is the category id. If
+// the destination is a task inventory, then the destination id is the
+// task id.
+// The transaction id is generated by the viewer on derez, and then
+// the packets are counted and numbered. The rest of the information is
+// just duplicated (it's not that much, and derezzes that span multiple
+// packets will be rare.)
+{
+ DeRezObject Low NotTrusted Zerocoded
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ { Destination U8 }
+ { DestinationID LLUUID } // see above
+ { TransactionID LLUUID }
+ { PacketCount U8 }
+ { PacketNumber U8 }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 } // object id in world
+ }
+}
+
+// This message is sent when a derez succeeds, but there's no way to
+// know, since no inventory is created on the viewer. For example, when
+// saving into task inventory.
+{
+ DeRezAck Low Trusted Unencoded
+}
+
+// This message is sent from viewer -> simulator when the viewer wants
+// to rez an object out of inventory.
+{
+ RezObject Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ RezData Single
+ { FromTaskID LLUUID }
+ { BypassRaycast U8 }
+ { RayStart LLVector3 }
+ { RayEnd LLVector3 }
+ { RayTargetID LLUUID }
+ { RayEndIsIntersection BOOL }
+ { RezSelected BOOL }
+ { RemoveItem BOOL }
+ { ItemFlags U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ }
+ {
+ InventoryData Single
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// if declined, the destid agent from the GiveInventory message
+// responds with this message to the userserver
+{
+ DeclineInventory Low NotTrusted Unencoded
+ {
+ InfoBlock Single
+ { TransactionID LLUUID }
+ }
+}
+
+// userserver -> dataserver
+// sent during agent to agent inventory transfers
+{
+ TransferInventory Low Trusted Zerocoded
+ {
+ InfoBlock Single
+ { SourceID LLUUID }
+ { DestID LLUUID }
+ { TransactionID LLUUID }
+ }
+ {
+ InventoryBlock Variable
+ { InventoryID LLUUID }
+ { Type S8 }
+ }
+}
+
+// dataserver -> userserver
+// InventoryID is the id of the inventory object that the end user
+// should discard if they deny the transfer.
+{
+ TransferInventoryAck Low Trusted Zerocoded
+ {
+ InfoBlock Single
+ { TransactionID LLUUID }
+ { InventoryID LLUUID }
+ }
+}
+
+// Relationships - the start will be a request from sourceid to dest
+// id when they are located near each other.
+{
+ RequestFriendship Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { SourceID LLUUID }
+ { FolderID LLUUID } // source ID's calling card folder
+ { DestID LLUUID }
+ { TransactionID LLUUID }
+ }
+}
+
+{
+ AcceptFriendship Low NotTrusted Unencoded
+ {
+ TransactionBlock Single
+ { TransactionID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID } // place to put calling card.
+ }
+}
+
+{
+ DeclineFriendship Low NotTrusted Unencoded
+ {
+ TransactionBlock Single
+ { TransactionID LLUUID }
+ }
+}
+
+
+//{
+// AddCallingCard Low NotTrusted Unencoded
+// {
+// CardBlock Variable
+// { SourceUUID LLUUID }
+// { DestUUID LLUUID }
+// { Name Variable 1 }
+// }
+//}
+
+{
+ FormFriendship Low Trusted Unencoded
+ {
+ AgentBlock Single
+ { SourceID LLUUID }
+ { DestID LLUUID }
+ }
+}
+
+// Cancels user relationship
+// Updates inventory for both users.
+// Stops agent tracking in userserver.
+// viewer -> userserver -> dataserver
+// reliable
+{
+ TerminateFriendship Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ExBlock Single
+ { OtherID LLUUID }
+ }
+}
+
+// used to give someone a calling card.
+{
+ OfferCallingCard Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { SourceID LLUUID }
+ { DestID LLUUID }
+ { TransactionID LLUUID }
+ }
+}
+
+{
+ AcceptCallingCard Low NotTrusted Unencoded
+ {
+ TransactionBlock Single
+ { TransactionID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID } // place to put calling card.
+ }
+}
+
+{
+ DeclineCallingCard Low NotTrusted Unencoded
+ {
+ TransactionBlock Single
+ { TransactionID LLUUID }
+ }
+}
+
+
+// Rez a script onto an object
+{
+ RezScript Low NotTrusted Zerocoded
+ {
+ UpdateBlock Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { ObjectLocalID U32 } // object id in world
+ { Enabled BOOL } // is script rezzed in enabled?
+ }
+ {
+ InventoryBlock Single
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// Create inventory
+{
+ CreateInventoryItem Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryBlock Single
+ { FolderID LLUUID }
+ { NextOwnerMask U32 }
+ { Type S8 }
+ { InvType S8 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+// give agent a landmark for an event.
+{
+ CreateLandmarkForEvent Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+ {
+ InventoryBlock Single
+ { FolderID LLUUID }
+ { Name Variable 1 }
+ }
+}
+
+{
+ EventLocationRequest Low Trusted Zerocoded
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+}
+
+{
+ EventLocationReply Low Trusted Zerocoded
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ EventData Single
+ { Success BOOL }
+ { RegionID LLUUID }
+ { RegionPos LLVector3 }
+ }
+}
+
+// get information about landmarks. Used by viewers for determining
+// the location of a landmark, and by simulators for teleport
+{
+ RegionHandleRequest Low NotTrusted Unencoded
+ {
+ RequestBlock Single
+ { RegionID LLUUID }
+ }
+}
+
+//{
+// RegionIDRequest Low NotTrusted Unencoded
+// {
+// RequestBlock Single
+// { RegionHandle U64 }
+// }
+//}
+
+{
+ RegionIDAndHandleReply Low Trusted Unencoded
+ {
+ ReplyBlock Single
+ { RegionID LLUUID }
+ { RegionHandle U64 }
+ }
+}
+
+// Move money from one agent to another. Validation will happen at the
+// simulator, the dataserver will actually do the work. Dataserver
+// generates a MoneyBalance message in reply. The simulator
+// will generate a MoneyTransferBackend in response to this.
+// viewer -> simulator -> dataserver
+{
+ MoneyTransferRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MoneyData Single
+ { SourceID LLUUID }
+ { DestID LLUUID } // destination of the transfer
+ { Flags U8 }
+ { Amount S32 }
+ { AggregatePermNextOwner U8 }
+ { AggregatePermInventory U8 }
+ { TransactionType S32 } // see lltransactiontypes.h
+ { Description Variable 1 } // string, name of item for purchases
+ }
+}
+
+// And, the money transfer
+{
+ MoneyTransferBackend Low Trusted Zerocoded
+ {
+ MoneyData Single
+ { TransactionID LLUUID }
+ { TransactionTime U32 } // utc seconds since epoch
+ { SourceID LLUUID }
+ { DestID LLUUID } // destination of the transfer
+ { Flags U8 }
+ { Amount S32 }
+ { AggregatePermNextOwner U8 }
+ { AggregatePermInventory U8 }
+ { TransactionType S32 } // see lltransactiontypes.h
+ { Description Variable 1 } // string, name of item for purchases
+ }
+}
+
+// This message is used to coalesce money transfers on a per-agent
+// basis. It should only be involved in sim->dataserver money communication.
+{
+ BulkMoneyTransfer Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { RegionX U32 }
+ { RegionY U32 }
+ }
+ {
+ MoneyData Variable
+ { TransactionID LLUUID }
+ { DestID LLUUID } // destination of the transfer
+ { Flags U8 }
+ { Amount S32 }
+ { TransactionType S32 } // see lltransactiontypes.h
+ { Description Variable 1 } // string, name of purchased item
+ }
+}
+
+
+// This message is sent sim -> viewer when the simulator is queueing
+// up transactions. This is because we do not have an authoritative
+// balance from the dataserver, but we want to 'guess' how much
+// money the agent has on the viewer.
+{
+ AdjustBalance Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Delta S32 }
+ }
+}
+
+// viewer -> userserver -> dataserver
+// Reliable
+{
+ MoneyBalanceRequest Low NotTrusted Zerocoded
+ {
+ MoneyData Single
+ { TransactionID LLUUID }
+ { AgentID LLUUID }
+ }
+}
+
+
+// dataserver -> simulator -> viewer
+{
+ MoneyBalanceReply Low Trusted Zerocoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { TransactionID LLUUID }
+ { TransactionSuccess BOOL } // BOOL
+ { MoneyBalance S32 }
+ { SquareMetersCredit S32 }
+ { SquareMetersCommitted S32 }
+ { Description Variable 1 } // string
+ }
+}
+
+
+// RoutedMoneyBalanceReply
+// This message is used when a dataserver needs to send updated
+// money balance information to a simulator other than the one it
+// is connected to. It uses the standard TransferBlock format.
+// dataserver -> simulator -> spaceserver -> simulator -> viewer
+// reliable
+{
+ RoutedMoneyBalanceReply Low Trusted Zerocoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { TransactionID LLUUID }
+ { TransactionSuccess BOOL } // BOOL
+ { MoneyBalance S32 }
+ { SquareMetersCredit S32 }
+ { SquareMetersCommitted S32 }
+ { Description Variable 1 } // string
+ }
+}
+
+
+// This will give you a partial money history on the requested agentid.
+// Reliable
+{
+ MoneyHistoryRequest Low NotTrusted Unencoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { StartPeriod S32 }
+ { EndPeriod S32 }
+ }
+}
+
+// Reliable
+{
+ MoneyHistoryReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MoneyData Single
+ { StartPeriod S32 }
+ { EndPeriod S32 }
+ { Balance S32 }
+ { StartDate Variable 1 } // string
+ { TaxEstimate S32 }
+ { StipendEstimate S32 }
+ { BonusEstimate S32 }
+ }
+ {
+ HistoryData Variable
+ { Description Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+
+// CurrentInterval = 0 => this period (week, day, etc.)
+// CurrentInterval = 1 => last period
+// viewer -> userserver -> dataserver
+// reliable
+{
+ MoneySummaryRequest Low NotTrusted Unencoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+
+// dataserver -> userserver -> viewer
+// Reliable
+{
+ MoneySummaryReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ { Balance S32 }
+ { TotalCredits S32 }
+ { TotalDebits S32 }
+ { ObjectTaxCurrent S32 }
+ { LightTaxCurrent S32 }
+ { LandTaxCurrent S32 }
+ { GroupTaxCurrent S32 }
+ { ParcelDirFeeCurrent S32 }
+ { ObjectTaxEstimate S32 }
+ { LightTaxEstimate S32 }
+ { LandTaxEstimate S32 }
+ { GroupTaxEstimate S32 }
+ { ParcelDirFeeEstimate S32 }
+ { StipendEstimate S32 }
+ { BonusEstimate S32 }
+ { LastTaxDate Variable 1 } // string
+ { TaxDate Variable 1 } // string
+ }
+}
+
+
+// Reliable
+{
+ MoneyDetailsRequest Low NotTrusted Unencoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+// Reliable
+{
+ MoneyDetailsReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ }
+ {
+ HistoryData Variable
+ { Description Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+
+// Reliable
+{
+ MoneyTransactionsRequest Low NotTrusted Unencoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+// Reliable
+{
+ MoneyTransactionsReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ }
+ {
+ HistoryData Variable
+ { Time Variable 1 } // string
+ { User Variable 1 } // string
+ { Type S32 }
+ { Item Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+//---------------------------------------------------------------------------
+// Gesture saves/loads
+//---------------------------------------------------------------------------
+
+// viewer -> userserver -> dataserver
+// dataserver -> userserver -> viewer
+{
+ GestureUpdate Medium NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { Filename Variable 1 } // String
+ { ToViewer BOOL } // BOOL, direction this is going
+ }
+}
+
+// viewer -> userserver -> dataserver
+{
+ GestureRequest Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { Reset BOOL } // 0=no reset, 1=male, 2=female
+ }
+}
+
+// Tell the database that some gestures are now active
+// viewer -> sim -> data
+{
+ ActivateGestures Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ Data Variable
+ { ItemID LLUUID }
+ { AssetID LLUUID }
+ { GestureFlags U32 }
+ }
+}
+
+// Tell the database some gestures are no longer active
+// viewer -> sim -> data
+{
+ DeactivateGestures Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ Data Variable
+ { ItemID LLUUID }
+ { GestureFlags U32 }
+ }
+}
+
+//---------------------------------------------------------------------------
+//
+//---------------------------------------------------------------------------
+
+// userserver -> viewer, up-to-date inventory is here
+// could be sent as a result of spam
+// as well as in response to InventoryRequest
+{
+ InventoryUpdate Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Single
+ { IsComplete U8 }
+ { Filename Variable 1 }
+ }
+}
+
+// possible alternate to InventoryUpdate - tells viewer to load cached inventory
+//{
+// UseCachedInventory Low Trusted Unencoded
+// {
+// InventoryData Single
+// { AgentID LLUUID }
+// }
+//}
+
+// dataserver-> userserver -> viewer to move around the mute list
+{
+ MuteListUpdate Low Trusted Unencoded
+ {
+ MuteData Single
+ { AgentID LLUUID }
+ { Filename Variable 1 }
+ }
+}
+
+// tell viewer to use the local mute cache
+{
+ UseCachedMuteList Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+
+// UserLoginLocationReply
+// userserver -> viewer
+{
+ UserLoginLocationReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { SessionID LLUUID }
+ { Message Variable 1 }
+ }
+ {
+ RegionInfo Single
+ { LocationValid BOOL }
+ { GridsPerEdge U32 }
+ { MetersPerGrid F32 }
+ { Handle U64 }
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunAngVelocity LLVector3 }
+ }
+ {
+ SimulatorBlock Single
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+ {
+ URLBlock Single
+ { LocationID U32 }
+ { LocationLookAt LLVector3 }
+ }
+}
+
+// UserSimLocationReply
+// userserver -> viewer
+{
+ UserSimLocationReply Low Trusted Unencoded
+ {
+ SimulatorBlock Single
+ { AccessOK U8 }
+ { SimName Variable 1 }
+ { SimHandle U64 }
+ }
+}
+
+// UserListReply
+// Return a list of users on the system
+{
+ UserListReply Low Trusted Unencoded
+ {
+ UserBlock Variable
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ { Status U8 }
+ }
+}
+
+// notification for login and logout.
+// source_sim -> dest_viewer
+{
+ OnlineNotification Low Trusted Unencoded
+ {
+ AgentBlock Variable
+ { AgentID LLUUID }
+ }
+}
+{
+ OfflineNotification Low Trusted Unencoded
+ {
+ AgentBlock Variable
+ { AgentID LLUUID }
+ }
+}
+
+
+// SetStartLocationRequest
+// viewer -> sim
+// failure checked at sim and triggers ImprovedInstantMessage
+// success triggers SetStartLocation
+{
+ SetStartLocationRequest Low NotTrusted Zerocoded
+ {
+ StartLocationData Single
+ { AgentID LLUUID }
+ { SimName Variable 1 } // string
+ { LocationID U32 }
+ { LocationPos LLVector3 } // region coords
+ { LocationLookAt LLVector3 }
+ }
+}
+
+// SetStartLocation
+// sim -> dataserver
+{
+ SetStartLocation Low Trusted Zerocoded
+ {
+ StartLocationData Single
+ { AgentID LLUUID }
+ { RegionID LLUUID }
+ { LocationID U32 }
+ { RegionHandle U64 }
+ { LocationPos LLVector3 } // region coords
+ { LocationLookAt LLVector3 }
+ }
+}
+
+
+
+// UserLoginLocationRequest
+// userserver -> spaceserver
+{
+ UserLoginLocationRequest Low Trusted Zerocoded
+ {
+ UserBlock Single
+ { SessionID LLUUID }
+ { TravelAccess U8 }
+ { FirstLogin BOOL }
+ { LimitedToEstate U32 }
+ }
+ {
+ PositionBlock Single
+ { ViewerRegion U64 }
+ { ViewerPosition LLVector3 }
+ }
+ {
+ URLBlock Single
+ { SimName Variable 1 }
+ { Pos LLVector3 }
+ }
+}
+
+// SpaceLoginLocationReply
+// spaceserver -> userserver
+// not reliable
+{
+ SpaceLoginLocationReply Low Trusted Zerocoded
+ {
+ UserBlock Single
+ { SessionID LLUUID }
+ { LocationID U32 }
+ { LocationPos LLVector3 }
+ { LocationLookAt LLVector3 }
+ }
+ {
+ SimulatorBlock Single
+ { IP IPADDR }
+ { Port IPPORT }
+ { CircuitCode U32 }
+ { Name Variable 1 }
+ { SimAccess U8 }
+ }
+ {
+ RegionInfo Single
+ { GridsPerEdge U32 }
+ { MetersPerGrid F32 }
+ { Handle U64 }
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunAngVelocity LLVector3 }
+ }
+}
+
+
+// ***************************************************************************
+// Launcher messages
+// ***************************************************************************
+
+
+// NetTest - This goes back and forth to the space server because of
+// problems determining the port
+{
+ NetTest Low NotTrusted Unencoded
+ {
+ NetBlock Single
+ { Port IPPORT }
+ }
+}
+
+// SetChildCount - Sent to launcher to adjust nominal child count
+// Simulator sends this increase the sim/cpu ratio on startup
+{
+ SetCPURatio Low NotTrusted Unencoded
+ {
+ Data Single
+ { Ratio U8 }
+ }
+}
+
+
+
+// SimCrashed - Sent to dataserver when the sim goes down.
+// Maybe we should notify the spaceserver as well?
+{
+ SimCrashed Low NotTrusted Unencoded
+ {
+ Data Single
+ { RegionX U32 }
+ { RegionY U32 }
+ }
+ {
+ Users Variable
+ { AgentID LLUUID }
+ }
+}
+
+// ***************************************************************************
+// Simulator to QuerySim
+// ***************************************************************************
+
+// SimulatorPauseState - what parts of the sim are paused
+
+{
+ SimulatorPauseState Low NotTrusted Unencoded
+ {
+ PauseBlock Single
+ { SimPaused U32 }
+ { LayersPaused U32 }
+ { TasksPaused U32 }
+ }
+}
+
+// SimulatorThrottleSettings - what are the current throttle settings?
+
+{
+ SimulatorThrottleSettings Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ Throttle Single
+ { Throttles Variable 1 }
+ }
+}
+
+// ***************************************************************************
+// Name Value Pair messages
+// ***************************************************************************
+
+// NameValuePair - if the specific task exists on simulator, add or replace this name value pair
+{
+ NameValuePair Low NotTrusted Unencoded
+ {
+ TaskData Single
+ { ID LLUUID }
+ }
+ {
+ NameValueData Variable
+ { NVPair Variable 2 }
+ }
+}
+
+// NameValuePair - if the specific task exists on simulator or dataserver, remove the name value pair (value is ignored)
+{
+ RemoveNameValuePair Low NotTrusted Unencoded
+ {
+ TaskData Single
+ { ID LLUUID }
+ }
+ {
+ NameValueData Variable
+ { NVPair Variable 2 }
+ }
+}
+
+
+// GetNameValuePair - if the specific task exists on simulator, get the value of this NameVale pair (if it exists)
+// FIXME: No transmit. 12 Sep 2002 mark
+{
+ GetNameValuePair Low NotTrusted Unencoded
+ {
+ TaskData Single
+ { ID LLUUID }
+ }
+ {
+ NameValueName Variable
+ { Name Variable 2 }
+ }
+}
+
+// ***************************************************************************
+// Add/Remove Attachment messages
+// ***************************************************************************
+
+
+// Simulator informs Dataserver of new attachment or attachment asset update
+{
+ UpdateAttachment Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ AttachmentBlock Single
+ { AttachmentPoint U8 }
+ }
+ {
+ OperationData Single
+ { AddItem BOOL }
+ { UseExistingAsset BOOL }
+ }
+ {
+ InventoryData Single // Standard inventory item block
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// Simulator informs Dataserver that attachment has been taken off
+{
+ RemoveAttachment Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ AttachmentBlock Single
+ { AttachmentPoint U8 }
+ { ItemID LLUUID }
+ }
+}
+
+
+// ***************************************************************************
+// GUIDed Sound messages
+// ***************************************************************************
+
+// SoundTrigger - Sent by simulator to viewer to trigger sound outside current region
+{
+ SoundTrigger High NotTrusted Unencoded
+ {
+ SoundData Single
+ { SoundID LLUUID }
+ { OwnerID LLUUID }
+ { ObjectID LLUUID }
+ { ParentID LLUUID } // null if this object is the parent
+ { Handle U64 } // region handle
+ { Position LLVector3 } // region local
+ { Gain F32 }
+ }
+}
+
+// AttachedSound - Sent by simulator to viewer to play sound attached with an object
+{
+ AttachedSound Medium Trusted Unencoded
+ {
+ DataBlock Single
+ { SoundID LLUUID }
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { Gain F32 }
+ { Flags U8 }
+ }
+}
+
+// AttachedSoundGainChange - Sent by simulator to viewer to change an attached sounds' volume
+
+{
+ AttachedSoundGainChange Medium Trusted Unencoded
+ {
+ DataBlock Single
+ { ObjectID LLUUID }
+ { Gain F32 }
+ }
+}
+
+// AttachedSoundCutoffRadius - Sent by simulator to viewer to change an attached sounds' cutoff radius
+
+{
+ AttachedSoundCutoffRadius Medium Trusted Unencoded
+ {
+ DataBlock Single
+ { ObjectID LLUUID }
+ { Radius F32 }
+ }
+}
+
+// PreloadSound - Sent by simulator to viewer to preload sound for an object
+
+{
+ PreloadSound Medium Trusted Unencoded
+ {
+ DataBlock Variable
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { SoundID LLUUID }
+ }
+}
+
+
+// *************************************************************************
+// Asset storage messages
+// *************************************************************************
+
+// current assumes an existing UUID, need to enhance for new assets
+{
+ AssetUploadRequest Low NotTrusted Unencoded
+ {
+ AssetBlock Single
+ { UUID LLUUID }
+ { Type S8 }
+ { Tempfile BOOL }
+ { AssetData Variable 2 } // Optional: the actual asset data if the whole thing will fit it this packet
+ }
+}
+
+{
+ AssetUploadComplete Low NotTrusted Unencoded
+ {
+ AssetBlock Single
+ { UUID LLUUID }
+ { Type S8 }
+ { Success BOOL }
+ }
+}
+
+//
+// Reputation
+//
+{
+ ReputationAgentAssign Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { RatorID LLUUID }
+ { RateeID LLUUID }
+ { Behavior F32 } // float, usually -1 or +1
+ { Appearance F32 } // float, usually -1 or +1
+ { Building F32 } // float, usually -1 or +1
+ }
+}
+
+// ReputationIndividualRequest
+// Gets From's rating of To.
+// reliable
+{
+ ReputationIndividualRequest Low NotTrusted Unencoded
+ {
+ ReputationData Single
+ { FromID LLUUID }
+ { ToID LLUUID }
+ }
+}
+
+// ReputationIndividualReply
+// reliable
+{
+ ReputationIndividualReply Low Trusted Unencoded
+ {
+ ReputationData Single
+ { FromID LLUUID }
+ { ToID LLUUID }
+ { Behavior F32 } // float, usually -1 or +1
+ { Appearance F32 } // float, usually -1 or +1
+ { Building F32 } // float, usually -1 or +1
+ }
+}
+
+
+// Script on simulator asks dataserver if there are any email messages
+// waiting.
+{
+ EmailMessageRequest Low Trusted Unencoded
+ {
+ DataBlock Single
+ { ObjectID LLUUID }
+ { FromAddress Variable 1 }
+ { Subject Variable 1 }
+ }
+}
+
+// Dataserver gives simulator the oldest email message in the queue, along with
+// how many messages are left in the queue. And passes back the filter used to request emails.
+{
+ EmailMessageReply Low Trusted Unencoded
+ {
+ DataBlock Single
+ { ObjectID LLUUID }
+ { More U32 } //U32
+ { Time U32 } //U32
+ { FromAddress Variable 1 }
+ { Subject Variable 1 }
+ { Data Variable 2 }
+ { MailFilter Variable 1 }
+ }
+}
+
+// Script on simulator sends mail to another script
+{
+ InternalScriptMail Medium Trusted Unencoded
+ {
+ DataBlock Single
+ { From Variable 1 }
+ { To LLUUID }
+ { Subject Variable 1 }
+ { Body Variable 2 }
+ }
+}
+
+// Script on simulator asks dataserver for information
+{
+ ScriptDataRequest Low Trusted Unencoded
+ {
+ DataBlock Variable
+ { Hash U64 }
+ { RequestType S8 }
+ { Request Variable 2 }
+ }
+}
+
+// Data server responds with data
+{
+ ScriptDataReply Low Trusted Unencoded
+ {
+ DataBlock Variable
+ { Hash U64 }
+ { Reply Variable 2 }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// Group messages
+//-----------------------------------------------------------------------------
+
+// CreateGroupRequest
+// viewer -> userserver
+// userserver -> dataserver
+// reliable
+{
+ CreateGroupRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Name Variable 1 } // string
+ { Charter Variable 2 } // string
+ { ShowInList U8 }
+ { ShowMembersInGroupDir U8 }
+ { RequireMask U32 } // U32 mask
+ { ReputationMin S32 }
+ { ReputationMax S32 }
+ { MoneyMin S32 }
+ { MoneyMax S32 }
+ { OfficerTitle Variable 1 } // string
+ { MemberTitle Variable 1 } // string
+// { OfficerMax U8 }
+// { MemberMax U8 }
+ { PowersMask U32 } // U32 mask
+ { InsigniaID LLUUID }
+ { InviteOfficers Variable 2 } // string
+ { InviteMembers Variable 2 } // string
+ { MembershipFee S32 } // S32
+ { OpenEnrollment BOOL } // BOOL (U8)
+ { AllowPublish BOOL } // whether profile is externally visible or not
+ { MaturePublish BOOL } // profile is "mature"
+ }
+}
+
+// CreateGroupReply
+// dataserver -> userserver
+// userserver -> viewer
+// reliable
+{
+ CreateGroupReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ReplyData Single
+ { GroupID LLUUID }
+ { Result S32 }
+ { Message Variable 1 } // string
+ }
+}
+
+// CreateGroupRequest
+// viewer -> userserver
+// userserver -> dataserver
+// reliable
+{
+ UpdateGroupInfo Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Charter Variable 2 } // string
+ { ShowInList BOOL }
+ { ShowMembersInGroupDir BOOL }
+ { OfficerTitle Variable 1 } // string
+ { MemberTitle Variable 1 } // string
+// { OfficerMax U8 }
+// { MemberMax U8 }
+ { InsigniaID LLUUID }
+ { MembershipFee S32 }
+ { OpenEnrollment BOOL }
+ { InviteOfficers Variable 2 } // string
+ { InviteMembers Variable 2 } // string
+ { AllowPublish BOOL }
+ { MaturePublish BOOL }
+ }
+}
+
+{
+ GroupInfoUpdated Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+// JoinGroupRequest
+// viewer -> userserver -> dataserver
+// reliable
+{
+ JoinGroupRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Officer U8 }
+ { MembershipFee S32 }
+ }
+}
+
+// JoinGroupReply
+// dataserver -> userserver -> viewer
+{
+ JoinGroupReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Success BOOL }
+ }
+}
+
+// EjectGroupMemberRequest
+// viewer -> userserver -> dataserver
+// reliable
+{
+ EjectGroupMemberRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { AgentID LLUUID }
+ }
+}
+
+// This message is sent from the dataserver to the simulator to let
+// AgentID know that they are no longer a member of the group. This
+// message is in response to EjectGroupMemberRequest messages.
+// ROUTED dataserver -> userserver -> spaceserver -> simulator
+// reliable
+{
+ RemoveMemberFromGroup Low Trusted Unencoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupBlock Single
+ { GroupID LLUUID }
+ }
+}
+
+
+// LeaveGroupRequest
+// viewer -> userserver -> dataserver
+// reliable
+{
+ LeaveGroupRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// InviteGroupRequest
+// viewer -> userserver -> dataserver
+// reliable
+{
+ InviteGroupRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID } // UUID of inviting agent
+ }
+ {
+ InviteData Single
+ { AgentName Variable 1 } // string
+ { InviteeID LLUUID }
+ { GroupID LLUUID }
+ { Officer BOOL } // BOOL
+ }
+}
+
+// GroupPropertiesRequest
+// viewer-> userserver -> dataserver
+// reliable
+{
+ GroupPropertiesRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// GroupPropertiesReply
+// viewer -> userserver -> dataserver
+// reliable
+{
+ GroupPropertiesReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Name Variable 1 } // string
+ { Charter Variable 2 } // string
+ { ShowInList U8 }
+ { ShowMembersInGroupDir U8 }
+ { RequireMask U32 } // U32 mask
+ { ReputationMin S32 }
+ { ReputationMax S32 }
+ { MoneyMin S32 }
+ { MoneyMax S32 }
+ { OfficerTitle Variable 1 } // string
+ { MemberTitle Variable 1 } // string
+// { OfficerMax U8 }
+// { MemberMax U8 }
+ { PowersMask U32 } // U32 mask
+ { InsigniaID LLUUID }
+ { FounderID LLUUID }
+ { MembershipFee S32 } // S32
+ { OpenEnrollment BOOL } // BOOL (U8)
+ { Money S32 }
+ { CurrentElectionID LLUUID }
+ { GroupMembershipCount S32 }
+ { AllowPublish BOOL }
+ { MaturePublish BOOL }
+ }
+}
+
+// GroupProfileRequest
+// viewer-> userserver -> dataserver
+// reliable
+{
+ GroupProfileRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// GroupProfileReply
+// dataserver -> userserver -> viewer
+// reliable
+{
+ GroupProfileReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Name Variable 1 } // string
+ { Charter Variable 2 } // string
+ { ShowInList U8 }
+ { ShowMembersInGroupDir U8 }
+ { OfficerTitle Variable 1 } // string
+ { MemberTitle Variable 1 } // string
+ { InsigniaID LLUUID }
+ { FounderID LLUUID }
+ { FounderName Variable 1 }
+ { MembershipFee S32 }
+ { OpenEnrollment BOOL }
+ }
+}
+
+// GroupMoneyHistoryRequest
+// viewer-> userserver -> dataserver
+// reliable
+{
+ GroupMoneyHistoryRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// GroupMoneyHistoryReply
+// dataserver -> userserver -> viewer
+// reliable
+{
+ GroupMoneyHistoryReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ GroupData Single
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { CurrentTaxes S32 }
+ { CurrentDividend S32 }
+ { EstimatedTaxes S32 }
+ { EstimatedDividend S32 }
+ { NumberNonExemptMembers S32 }
+ }
+}
+
+
+// CurrentInterval = 0 => this period (week, day, etc.)
+// CurrentInterval = 1 => last period
+// viewer -> userserver -> dataserver
+// reliable
+{
+ GroupAccountSummaryRequest Low NotTrusted Zerocoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+
+// dataserver -> userserver -> viewer
+// Reliable
+{
+ GroupAccountSummaryReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ { Balance S32 }
+ { TotalCredits S32 }
+ { TotalDebits S32 }
+ { ObjectTaxCurrent S32 }
+ { LightTaxCurrent S32 }
+ { LandTaxCurrent S32 }
+ { GroupTaxCurrent S32 }
+ { ParcelDirFeeCurrent S32 }
+ { ObjectTaxEstimate S32 }
+ { LightTaxEstimate S32 }
+ { LandTaxEstimate S32 }
+ { GroupTaxEstimate S32 }
+ { ParcelDirFeeEstimate S32 }
+ { NonExemptMembers S32 }
+ { LastTaxDate Variable 1 } // string
+ { TaxDate Variable 1 } // string
+ }
+}
+
+
+// Reliable
+{
+ GroupAccountDetailsRequest Low NotTrusted Zerocoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+// Reliable
+{
+ GroupAccountDetailsReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ }
+ {
+ HistoryData Variable
+ { Description Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+
+// Reliable
+{
+ GroupAccountTransactionsRequest Low NotTrusted Zerocoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+// Reliable
+{
+ GroupAccountTransactionsReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ }
+ {
+ HistoryData Variable
+ { Time Variable 1 } // string
+ { User Variable 1 } // string
+ { Type S32 }
+ { Item Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+// GroupElectionInfoRequest
+// viewer -> userserver -> dataserver
+//reliable
+{
+ GroupElectionInfoRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// GroupElectionInfoReply
+// dataserver -> userserver -> viewer
+// reliable
+{
+ GroupElectionInfoReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ElectionData Single
+ { GroupID LLUUID }
+ { ElectionID LLUUID }
+ { ElectionType Variable 1 } // string
+ { StartDateTime Variable 1 } // string
+ { EndDateTime Variable 1 } // string
+ { ElectionInitiator LLUUID }
+ { AlreadyVoted BOOL }
+ { VotedForCandidate LLUUID }
+ { VoteCast Variable 1 } // string
+ { Majority F32 }
+ { Quorum S32 }
+ }
+ {
+ CandidateData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// StartGroupElection
+// viewer -> userserver -> dataserver
+// reliable
+{
+ StartGroupElection Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ElectionData Single
+ { GroupID LLUUID }
+ { Duration S32 }
+ { Majority F32 }
+ { Quorum S32 }
+ }
+}
+
+// GroupElectionBallot
+// viewer -> userserver -> dataserver
+// reliable
+{
+ GroupElectionBallot Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ElectionData Single
+ { GroupID LLUUID }
+ { ElectionID LLUUID }
+ { CandidateID LLUUID }
+ }
+}
+
+// StartGroupRecall
+// viewer -> userserver -> dataserver
+// reliable
+{
+ StartGroupRecall Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ RecallData Single
+ { GroupID LLUUID }
+ { Duration S32 }
+ { RecallID LLUUID }
+ }
+}
+
+// GroupRecallBallot
+// viewer -> userserver -> dataserver
+// reliable
+{
+ GroupRecallBallot Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ RecallData Single
+ { GroupID LLUUID }
+ { ElectionID LLUUID }
+ { VoteCast Variable 1 } // string
+ }
+}
+
+// GroupActiveProposalsRequest
+// viewer -> userserver -> dataserver
+//reliable
+{
+ GroupActiveProposalsRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// GroupActiveProposalItemReply
+// dataserver -> userserver -> viewer
+// reliable
+{
+ GroupActiveProposalItemReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ProposalData Variable
+ { VoteID LLUUID }
+ { VoteInitiator LLUUID }
+ { TerseDateID Variable 1 } // string
+ { StartDateTime Variable 1 } // string
+ { EndDateTime Variable 1 } // string
+ { AlreadyVoted BOOL }
+ { VoteCast Variable 1 } // string
+ { Majority F32 }
+ { Quorum S32 }
+ { ProposalText Variable 1 } // string
+ }
+}
+
+// GroupVoteHistoryRequest
+// viewer -> userserver -> dataserver
+//reliable
+{
+ GroupVoteHistoryRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// GroupVoteHistoryItemReply
+// dataserver -> userserver -> viewer
+// reliable
+{
+ GroupVoteHistoryItemReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ HistoryItemData Single
+ { VoteID LLUUID }
+ { TerseDateID Variable 1 } // string
+ { StartDateTime Variable 1 } // string
+ { EndDateTime Variable 1 } // string
+ { VoteInitiator LLUUID }
+ { RecallID LLUUID }
+ { VoteType Variable 1 } // string
+ { VoteResult Variable 1 } // string
+ { Majority F32 }
+ { Quorum S32 }
+ { ProposalText Variable 2 } // string
+ }
+ {
+ VoteItem Variable
+ { CandidateID LLUUID }
+ { VoteCast Variable 1 } // string
+ { NumVotes S32 }
+ }
+}
+
+// StartGroupProposal
+// viewer -> userserver -> dataserver
+// reliable
+{
+ StartGroupProposal Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ProposalData Single
+ { GroupID LLUUID }
+ { Quorum S32 }
+ { Majority F32 } // F32
+ { Duration S32 } // S32, seconds
+ { ProposalText Variable 1 } // string
+ }
+}
+
+// GroupProposalBallot
+// viewer -> userserver -> dataserver
+// reliable
+{
+ GroupProposalBallot Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ProposalData Single
+ { ProposalID LLUUID }
+ { VoteCast Variable 1 } // string
+ }
+}
+
+// CallVote
+// viewer -> userserver -> dataserver
+// reliable
+{
+ CallVote Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ VoteData Single
+ { GroupID LLUUID }
+ { VoteType S32 }
+ { VoteQuorum S32 }
+ { VoteTime F32 } // F32, seconds
+ { VoteText Variable 1 } // string
+ }
+}
+
+
+// Vote
+// viewer -> userserver -> dataserver
+// reliable
+{
+ Vote Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ VoteData Single
+ { VoteID LLUUID }
+ { Response S32 } // S32, 0 = no, 1 = yes
+ }
+}
+
+// TallyVotes userserver -> dataserver
+// reliable
+{
+ TallyVotes Low Trusted Unencoded
+}
+
+// GroupMembersRequest
+// get the group members
+// userserver -> dataserver
+// reliable
+{
+ GroupMembersRequest Low NotTrusted Unencoded
+ {
+ RequestData Single
+ { RequestID LLUUID }
+ { GroupID LLUUID }
+ { ActiveOnly BOOL }
+ }
+}
+
+// GroupMembersReply
+// list of uuids for the group members
+// dataserver -> userserver
+// reliable
+{
+ GroupMembersReply Low NotTrusted Zerocoded
+ {
+ ReplyData Single
+ { RequestID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// GroupOfficersAndMembersRequest
+// get the group members
+// userserver -> dataserver
+// reliable
+{
+ GroupOfficersAndMembersRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { IncludeMembers BOOL }
+ }
+}
+
+// GroupOfficersAndMembersReply
+// list of uuids for the group officers and members
+// dataserver -> userserver
+// reliable
+{
+ GroupOfficersAndMembersReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { CompoundMsgID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+ {
+ OfficerData Variable
+ { AgentID LLUUID }
+ { Contribution S32 }
+ { OnlineStatus Variable 1 } // string
+ }
+ {
+ MemberData Variable
+ { AgentID LLUUID }
+ { Contribution S32 }
+ { OnlineStatus Variable 1 } // string
+ }
+}
+
+// used to switch an agent's currently active group.
+// viewer -> userserver -> dataserver -> AgentDataUpdate...
+{
+ ActivateGroup Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+}
+
+// viewer -> userserver -> dataserver
+{
+ SetGroupContribution Low NotTrusted Unencoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { Contribution S32 }
+ }
+}
+
+// Request the members of the live help group needed for requesting agent.
+// userserver -> dataserver
+{
+ LiveHelpGroupRequest Low Trusted Unencoded
+ {
+ RequestData Single
+ { RequestID LLUUID }
+ { AgentID LLUUID }
+ }
+}
+
+// Send down the group
+// dataserver -> userserver
+{
+ LiveHelpGroupReply Low Trusted Unencoded
+ {
+ ReplyData Single
+ { RequestID LLUUID }
+ { GroupID LLUUID }
+ { Selection Variable 1 } // selection criteria all or active
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Wearable messages
+//-----------------------------------------------------------------------------
+
+// AgentWearablesRequest
+// (a.k.a. "Tell me what the avatar is wearing.")
+// viewer -> userserver -> dataserver
+// reliable
+{
+ AgentWearablesRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID } // UUID
+ }
+}
+
+// AgentWearablesUpdate
+// (a.k.a. "Here's what the avatar is wearing now.")
+// viewer -> userserver -> dataserver
+// dataserver -> userserver -> viewer
+// reliable
+{
+ AgentWearablesUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SerialNum U32 } // U32, Increases every time the wearables change for a given agent. Used to avoid processing out of order packets.
+ }
+ {
+ WearableData Variable
+ { ItemID LLUUID }
+ { AssetID LLUUID }
+ { WearableType U8 } // U8, LLWearable::EWearType
+ }
+}
+
+// AgentCachedTexture
+// viewer queries for cached textures on dataserver (via simulator)
+// viewer -> userserver -> dataserver
+// dataserver -> userserver -> viewer
+// reliable
+{
+ AgentCachedTexture Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SerialNum S32 }
+ }
+ {
+ WearableData Variable
+ { ID LLUUID }
+ { TextureIndex U8 }
+ }
+}
+
+// Request an AgentDataUpdate without changing any agent data.
+{
+ AgentDataUpdateRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+// AgentDataUpdate
+// Updates a viewer or simulator's impression of agent-specific information.
+// Used, for example, when an agent's group changes.
+// dataserver -> simulator -> viewer
+// reliable
+{
+ AgentDataUpdate Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { FirstName Variable 1 } // string
+ { LastName Variable 1 } // string
+ { GroupTitle Variable 1 } // string
+ { GroupIndex S8 } // -1 for none
+ }
+ {
+ GroupData Variable
+ { GroupID LLUUID }
+ { GroupOfficer BOOL } // BOOL
+ { GroupInsigniaID LLUUID }
+ { Contribution S32 }
+ { GroupName Variable 1 } // string
+ }
+}
+
+// LogTextMessage
+// Asks the dataserver to log the contents of this message in the
+// chat and IM log table.
+// Sent from userserver (IM logging) and simulator (chat logging).
+{
+ LogTextMessage Low Trusted Zerocoded
+ {
+ DataBlock Variable
+ { FromAgentId LLUUID }
+ { ToAgentId LLUUID }
+ { GlobalX F64 }
+ { GlobalY F64 }
+ { Time U32 } // utc seconds since epoch
+ { Message Variable 2 } // string
+ }
+}
+
+// ViewerEffect
+// Viewer side effect that's sent from one viewer, and broadcast to other agents nearby
+{
+ ViewerEffect Medium NotTrusted Zerocoded
+ {
+ Effect Variable
+ { ID LLUUID } // UUID of the effect
+ { Type U8 } // Type of the effect
+ { Duration F32 } // F32 time (seconds)
+ { Color Fixed 4 } // Color4U
+ { TypeData Variable 1 } // Type specific data
+ }
+}
+
+// SetSunPhase
+// Sets the current phase of the sun - propagated from viewer->sim->spaceserver (if godlike)
+{
+ SetSunPhase Medium NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { Phase F32 } // F32 (radians)
+ }
+}
+
+// CreateTrustedCircuit
+// Sent to establish a trust relationship between two components.
+// Only sent in response to a DenyTrustedCircuit message.
+{
+ CreateTrustedCircuit Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { EndPointID LLUUID }
+ { Digest Fixed 32 } // 32 hex digits == 1 MD5 Digest
+ }
+}
+
+// DenyTrustedCircuit
+// Sent :
+// - in response to failed CreateTrustedCircuit
+// - to force the remote end-point to try to establish a trusted circuit
+// - the reception of a trusted message on a non-trusted circuit
+// This allows us to re-auth a circuit if it gets closed due to timeouts or network failures.
+{
+ DenyTrustedCircuit Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { EndPointID LLUUID }
+ }
+}
+
+
+{
+ RezSingleAttachmentFromInv Low NotTrusted Zerocoded
+ {
+ ObjectData Single
+ { AgentID LLUUID }
+ { AssetID LLUUID } // asset id in inventory
+ { ItemID LLUUID } // inventory item id
+ { AttachmentPt U8 } // 0 for default
+ { ItemFlags U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+{
+ RezMultipleAttachmentsFromInv Low NotTrusted Zerocoded
+ {
+ HeaderData Single
+ { CompoundMsgID LLUUID } // All messages a single "compound msg" must have the same id
+ { TotalObjects U8 }
+ { AgentID LLUUID }
+ { FirstDetachAll U8 }
+ }
+ {
+ ObjectData Variable // 1 to 4 of these per packet
+ { AssetID LLUUID } // asset id in inventory
+ { ItemID LLUUID } // inventory item id
+ { AttachmentPt U8 } // 0 for default
+ { ItemFlags U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+
+{
+ DetachAttachmentIntoInv Low NotTrusted Unencoded
+ {
+ ObjectData Single
+ { AgentID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+
+// Viewer -> Sim
+// Used in "Make New Outfit"
+{
+ CreateNewOutfitAttachments Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ HeaderData Single
+ { NewFolderID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { OldItemID LLUUID }
+ { OldFolderID LLUUID }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Personal information messages
+//-----------------------------------------------------------------------------
+
+{
+ UserInfoRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+{
+ UserInfoReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ UserData Single
+ { IMViaEMail BOOL }
+ { EMail Variable 2 }
+ }
+}
+
+{
+ UpdateUserInfo Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ UserData Single
+ { IMViaEMail BOOL }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// System operations and maintenance
+//-----------------------------------------------------------------------------
+
+// GodExpungeUser is sent from a viewer or other untrusted source to
+// start the process for getting rid of a list of users. The message
+// goes to the userserver, checks for godhood, and forwards the
+// request to the dataserver. The dataserver then marks the user as being
+// expunged and sends a StartExpungeProcess out to the simulators.
+{
+ GodExpungeUser Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ExpungeData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// StartExpungeProcess is sent from the dataserver to the userserver,
+// and from there relayed to the simulators which mark parcels and
+// objects owned by the agent as being expunged.
+{
+ StartExpungeProcess Low Trusted Zerocoded
+ {
+ ExpungeData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// StartExpungeProcessAck - is sent from the userserver to anyone who
+// sends a StartExpungeProcess. This is used to aid scripting the
+// expunge process, since the message system does not generate
+// any errors if you attempt to connect to a non-existant host within
+// a reasonable timeframe for scripting
+{
+ StartExpungeProcessAck Low Trusted Unencoded
+}
+
+// Message to rename identified parcels. script -> userserver -> dataserver
+{
+ StartParcelRename Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { NewName Variable 1 } // string
+ }
+}
+
+// ack the last message. userserver->script
+{
+ StartParcelRenameAck Low Trusted Unencoded
+}
+
+// dataserver -> userserver -> spaceserver
+{
+ BulkParcelRename Low Trusted Zerocoded
+ {
+ ParcelData Variable
+ { RegionHandle U64 }
+ { ParcelID LLUUID }
+ { NewName Variable 1 } // string
+ }
+}
+
+// spaceserver -> sim
+// tell a particular simulator to rename a parcel
+{
+ ParcelRename Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { NewName Variable 1 } // string
+ }
+}
+
+// message to remove specified parcels. script -> userserver -> dataserver
+{
+ StartParcelRemove Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ }
+}
+
+// ack the start parcel remove message
+{
+ StartParcelRemoveAck Low Trusted Unencoded
+}
+
+// dataserver -> userserver -> spaceserver
+// The space server will then slice this message into a series of
+// RemoveParcel messages.
+{
+ BulkParcelRemove Low Trusted Zerocoded
+ {
+ ParcelData Variable
+ { RegionHandle U64 }
+ { ParcelID LLUUID }
+ }
+}
+
+
+// viewer -> sim
+// initiate upload. primarily used for uploading raw files.
+{
+ InitiateUpload Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FileData Single
+ { BaseFilename Variable 1 } // string
+ { SourceFilename Variable 1 } // string
+ }
+}
+
+// sim -> viewer
+// initiate upload. primarily used for uploading raw files.
+{
+ InitiateDownload Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FileData Single
+ { SimFilename Variable 1 } // string
+ { ViewerFilename Variable 1 } // string
+ }
+}
+
+// Generalized system message. Each Requst has its own protocol for
+// the StringData block format and contents.
+{
+ SystemMessage Low Trusted Zerocoded
+ {
+ MethodData Single
+ { Method Variable 1 }
+ { Invoice LLUUID }
+ { Digest Fixed 32 } // 32 hex digits == 1 MD5 Digest
+ }
+ {
+ ParamList Variable
+ { Parameter Variable 1 }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// map messages
+//-----------------------------------------------------------------------------
+
+// viewer -> sim
+// reliable
+// This message is sent up from the viewer to (eventually) get a list
+// of all map layers and NULL-layer sims.
+// Returns: MapLayerReply and MapBlockReply
+{
+ MapLayerRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ { EstateID U32 } // filled in on sim
+ { Godlike BOOL } // filled in on sim
+ }
+}
+
+// sim -> viewer
+{
+ MapLayerReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ LayerData Variable
+ { Left U32 }
+ { Right U32 }
+ { Top U32 }
+ { Bottom U32 }
+ { ImageID LLUUID }
+ }
+}
+
+// viewer -> sim
+// This message is sent up from the viewer to get a list
+// of the sims in a specified region.
+// Returns: MapBlockReply
+{
+ MapBlockRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ { EstateID U32 } // filled in on sim
+ { Godlike BOOL } // filled in on sim
+ }
+ {
+ PositionData Single
+ { MinX U16 } // in region-widths
+ { MaxX U16 } // in region-widths
+ { MinY U16 } // in region-widths
+ { MaxY U16 } // in region-widths
+ }
+}
+
+// viewer -> sim
+// This message is sent up from the viewer to get a list
+// of the sims with a given name.
+// Returns: MapBlockReply
+{
+ MapNameRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ { EstateID U32 } // filled in on sim
+ { Godlike BOOL } // filled in on sim
+ }
+ {
+ NameData Single
+ { Name Variable 1 } // string
+ }
+}
+
+// sim -> viewer
+{
+ MapBlockReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ Data Variable
+ { X U16 } // in region-widths
+ { Y U16 } // in region-widths
+ { Name Variable 1 } // string
+ { Access U8 } // PG, mature, etc.
+ { RegionFlags U32 }
+ { WaterHeight U8 } // meters
+ { Agents U8 }
+ { MapImageID LLUUID }
+ }
+}
+
+// viewer -> sim
+// This message is sent up from the viewer to get a list
+// of the items of a particular type on the map.
+// Used for Telehubs, Agents, Events, Popular Places, etc.
+// Returns: MapBlockReply
+{
+ MapItemRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ { EstateID U32 } // filled in on sim
+ { Godlike BOOL } // filled in on sim
+ }
+ {
+ RequestData Single
+ { ItemType U32 }
+ { RegionHandle U64 } // filled in on sim
+ }
+}
+
+// sim -> viewer
+{
+ MapItemReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ RequestData Single
+ { ItemType U32 }
+ }
+ {
+ Data Variable
+ { X U32 } // global position
+ { Y U32 } // global position
+ { ID LLUUID } // identifier id
+ { Extra S32 } // extra information
+ { Extra2 S32 } // extra information
+ { Name Variable 1 } // identifier string
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Postcard messages
+//-----------------------------------------------------------------------------
+// reliable
+{
+ SendPostcard Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { AssetID LLUUID }
+ { PosGlobal LLVector3d } // Where snapshot was taken
+ { To Variable 1 } // dest email address(es)
+ { From Variable 1 } // src email address(es)
+ { Name Variable 1 } // src name
+ { Subject Variable 1 } // mail subject
+ { Msg Variable 2 } // message text
+ { AllowPublish BOOL } // Allow publishing on the web.
+ { MaturePublish BOOL } // profile is "mature"
+ }
+}
+
+// RPC messages
+// Script on simulator requests rpc channel from rpcserver
+// simulator -> dataserver -> MySQL
+{
+ RpcChannelRequest Low Trusted Unencoded
+ {
+ DataBlock Single
+ { GridX U32 }
+ { GridY U32 }
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// RpcServer allocated a session for the script
+// ChannelID will be the NULL UUID if unable to register
+// dataserver -> simulator
+{
+ RpcChannelReply Low Trusted Unencoded
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ChannelID LLUUID }
+ }
+}
+
+// Inbound RPC requests follow this path:
+// RpcScriptRequestInbound: rpcserver -> spaceserver
+// RpcScriptRequestInboundForward: spaceserver -> simulator
+// reply: simulator -> rpcserver
+{
+ RpcScriptRequestInbound Low NotTrusted Unencoded
+ {
+ TargetBlock Single
+ { GridX U32 }
+ { GridY U32 }
+ }
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ChannelID LLUUID }
+ { IntValue U32 }
+ { StringValue Variable 2 } // string
+ }
+}
+
+// spaceserver -> simulator
+{
+ RpcScriptRequestInboundForward Low Trusted Unencoded
+ {
+ DataBlock Single
+ { RPCServerIP IPADDR }
+ { RPCServerPort IPPORT }
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ChannelID LLUUID }
+ { IntValue U32 }
+ { StringValue Variable 2 } // string
+ }
+}
+
+// simulator -> rpcserver
+// Not trusted because trust establishment doesn't work here.
+{
+ RpcScriptReplyInbound Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ChannelID LLUUID }
+ { IntValue U32 }
+ { StringValue Variable 2 } // string
+ }
+}
+
+// Simulator asks for what sim a script lives on (intersim object->object email delivery)
+// simulator -> dataserver
+{
+ MailTaskSimRequest Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ }
+}
+
+// Reply from dataserver to simulator about where a mailping needs to go.
+// Same as below, but needs to be different as it has different routing.
+{
+ MailTaskSimReply Low NotTrusted Unencoded
+ {
+ TargetBlock Single
+ { TargetIP Variable 1 } // String IP
+ { TargetPort IPPORT }
+ }
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ }
+}
+
+// ScriptMailRegistration
+// Simulator -> dataserver
+{
+ ScriptMailRegistration Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { TargetIP Variable 1 } // String IP
+ { TargetPort IPPORT }
+ { TaskID LLUUID }
+ { Flags U32 }
+ }
+}
+
+
+// MailPingBounce
+// This is sent to the RPC server when the sim can not be found.
+// Not currently used.
+// Spaceserver -> RPC server
+{
+ MailPingBounce Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { TargetIP IPADDR }
+ { TargetPort IPPORT }
+ { TaskID LLUUID }
+ { Flags U32 }
+ }
+}
+
+
+// ParcelMediaCommandMessage
+// Sends a parcel media command
+{
+ ParcelMediaCommandMessage Low NotTrusted Unencoded
+ {
+ CommandBlock Single
+ { Flags U32 }
+ { Command U32 }
+ { Time F32 }
+ }
+}
+
+// ParcelMediaUpdate
+// Sends a parcel media update to a single user
+// For global updates use the parcel manager.
+{
+ ParcelMediaUpdate Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { MediaURL Variable 1 } // string
+ { MediaID LLUUID }
+ { MediaAutoScale U8 }
+ }
+}
+
+// LandScriptsRequest
+// Sent by the viewer to request script information for a parcel
+{
+ LandScriptsRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RequestData Single
+ { RequestFlags U32 }
+ { ParcelLocalID S32 }
+ { RelatedID LLUUID }
+ }
+}
+
+// LandScriptsReply
+// Sent by the simulator in response to LandScriptsRequest
+{
+ LandScriptsReply Low NotTrusted Unencoded
+ {
+ RequestData Single
+ { RequestFlags U32 }
+ { TotalScriptCount U32 }
+ { TotalScriptTime F32 }
+ }
+ {
+ Data Variable
+ { TaskLocalID U32 }
+ { TaskID LLUUID }
+ { LocationX F32 }
+ { LocationY F32 }
+ { LocationZ F32 }
+ { ScriptTime F32 }
+ { ScriptCount S32 }
+ { TaskName Variable 1 }
+ { OwnerName Variable 1 }
+ }
+}
+
+// LandCollidersRequest
+// Sent by the viewer to request collider information for a parcel (not yet implemented, still using God request)
+{
+ LandCollidersRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RequestData Single
+ { RequestFlags U32 }
+ { ParcelLocalID S32 }
+ { RelatedID LLUUID }
+ }
+}
+
+// LandCollidersReply
+// Sent by the simulator in response to LandCollidersRequest
+{
+ LandCollidersReply Low NotTrusted Unencoded
+ {
+ RequestData Single
+ { RequestFlags U32 }
+ { TotalColliderCount U32 }
+ }
+ {
+ Data Variable
+ { TaskLocalID U32 }
+ { TaskID LLUUID }
+ { LocationX F32 }
+ { LocationY F32 }
+ { LocationZ F32 }
+ { Score S32 }
+ { TaskName Variable 1 }
+ { OwnerName Variable 1 }
+ }
+}
diff --git a/applications/SLChat/winAbout.Designer.cs b/applications/SLChat/winAbout.Designer.cs
index 5da32bfb..f1e60d3f 100644
--- a/applications/SLChat/winAbout.Designer.cs
+++ b/applications/SLChat/winAbout.Designer.cs
@@ -37,7 +37,7 @@ namespace SLChat
private void InitializeComponent()
{
this.grpLabels = new System.Windows.Forms.GroupBox();
- this.lblCreditsNames = new System.Windows.Forms.Label();
+ this.rCredits = new System.Windows.Forms.RichTextBox();
this.lblCredits = new System.Windows.Forms.Label();
this.lblURL = new System.Windows.Forms.Label();
this.lblLib = new System.Windows.Forms.Label();
@@ -49,7 +49,7 @@ namespace SLChat
//
// grpLabels
//
- this.grpLabels.Controls.Add(this.lblCreditsNames);
+ this.grpLabels.Controls.Add(this.rCredits);
this.grpLabels.Controls.Add(this.lblCredits);
this.grpLabels.Controls.Add(this.lblURL);
this.grpLabels.Controls.Add(this.lblLib);
@@ -62,50 +62,50 @@ namespace SLChat
this.grpLabels.TabStop = false;
this.grpLabels.Text = "About This Program:";
//
- // lblCreditsNames
+ // rCredits
//
- this.lblCreditsNames.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblCreditsNames.Location = new System.Drawing.Point(6, 131);
- this.lblCreditsNames.Name = "lblCreditsNames";
- this.lblCreditsNames.Size = new System.Drawing.Size(260, 85);
- this.lblCreditsNames.TabIndex = 4;
- this.lblCreditsNames.Text = "Oz Spade";
+ this.rCredits.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rCredits.Location = new System.Drawing.Point(6, 134);
+ this.rCredits.Name = "rCredits";
+ this.rCredits.Size = new System.Drawing.Size(263, 79);
+ this.rCredits.TabIndex = 4;
+ this.rCredits.Text = "Oz Spade";
//
// lblCredits
//
this.lblCredits.Font = new System.Drawing.Font("Tahoma", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblCredits.Location = new System.Drawing.Point(83, 101);
+ this.lblCredits.Location = new System.Drawing.Point(7, 111);
this.lblCredits.Name = "lblCredits";
- this.lblCredits.Size = new System.Drawing.Size(75, 30);
+ this.lblCredits.Size = new System.Drawing.Size(75, 20);
this.lblCredits.TabIndex = 3;
this.lblCredits.Text = "Credits:";
//
// lblURL
//
- this.lblURL.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblURL.Location = new System.Drawing.Point(74, 73);
+ this.lblURL.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblURL.Location = new System.Drawing.Point(19, 51);
this.lblURL.Name = "lblURL";
- this.lblURL.Size = new System.Drawing.Size(94, 18);
+ this.lblURL.Size = new System.Drawing.Size(241, 20);
this.lblURL.TabIndex = 2;
- this.lblURL.Text = "URL goes here";
+ this.lblURL.Text = "http://slwiki.slinked.net/index.php?title=SLChat";
//
// lblLib
//
this.lblLib.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblLib.Location = new System.Drawing.Point(50, 51);
+ this.lblLib.Location = new System.Drawing.Point(54, 71);
this.lblLib.Name = "lblLib";
- this.lblLib.Size = new System.Drawing.Size(216, 22);
+ this.lblLib.Size = new System.Drawing.Size(162, 40);
this.lblLib.TabIndex = 1;
- this.lblLib.Text = "Created using libsecondlife";
+ this.lblLib.Text = "Created using libsecondlife (http://libsecondlife.org)";
//
// lblName
//
this.lblName.Font = new System.Drawing.Font("Tahoma", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblName.Location = new System.Drawing.Point(83, 26);
+ this.lblName.Location = new System.Drawing.Point(63, 26);
this.lblName.Name = "lblName";
- this.lblName.Size = new System.Drawing.Size(75, 25);
+ this.lblName.Size = new System.Drawing.Size(133, 25);
this.lblName.TabIndex = 0;
- this.lblName.Text = "SLChat:";
+ this.lblName.Text = "SLChat 0.0.0.1";
//
// btnClose
//
@@ -123,13 +123,13 @@ namespace SLChat
this.lblRandomQuote.Name = "lblRandomQuote";
this.lblRandomQuote.Size = new System.Drawing.Size(196, 16);
this.lblRandomQuote.TabIndex = 2;
- this.lblRandomQuote.Text = "You\'re going to have to cheat.";
+ this.lblRandomQuote.Text = "But how can the snowmen talk?";
//
// winAbout
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(289, 262);
+ this.ClientSize = new System.Drawing.Size(291, 264);
this.Controls.Add(this.lblRandomQuote);
this.Controls.Add(this.btnClose);
this.Controls.Add(this.grpLabels);
@@ -143,9 +143,9 @@ namespace SLChat
this.grpLabels.ResumeLayout(false);
this.ResumeLayout(false);
}
+ private System.Windows.Forms.RichTextBox rCredits;
private System.Windows.Forms.Label lblRandomQuote;
private System.Windows.Forms.GroupBox grpLabels;
- private System.Windows.Forms.Label lblCreditsNames;
private System.Windows.Forms.Label lblCredits;
private System.Windows.Forms.Label lblURL;
private System.Windows.Forms.Label lblLib;
diff --git a/applications/SLChat/winAbout.cs b/applications/SLChat/winAbout.cs
index 27cc50b4..533f4fd7 100644
--- a/applications/SLChat/winAbout.cs
+++ b/applications/SLChat/winAbout.cs
@@ -27,6 +27,7 @@ namespace SLChat
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
+ rCredits.Text = "Oz Spade, Baba Yamamoto";
//
// TODO: Add constructor code after the InitializeComponent() call.
diff --git a/applications/SLChat/winChat.cs b/applications/SLChat/winChat.cs
index ce8776e8..3fa45929 100644
--- a/applications/SLChat/winChat.cs
+++ b/applications/SLChat/winChat.cs
@@ -18,7 +18,7 @@ using System.Xml.XPath;
using System.IO;
using System.Threading;
using libsecondlife;
-using libsecondlife.InventorySystem;
+//using libsecondlife.InventorySystem;
namespace SLChat
{
@@ -33,9 +33,10 @@ namespace SLChat
{
public static winLogin winLog; //Login Window.
public static NetCom net; //NetCom calls.
- public static winInventory winInv; //Inventory window.
+ //public static winInventory winInv; //Inventory window.
public static winAbout winAboot; //About window.
- public static Thread loginthread;
+ public static ChatScreen winCht;
+ //public static Thread loginthread;
public bool aboutVisible; //Is the about window visible?
public bool loginVisible; //Is the login window visible? Probably a better way of checking this.
public bool loggedin; //Are we logged in? false and true
@@ -47,14 +48,17 @@ namespace SLChat
int ChatLeng; //Length of rChatHistory, used for buggy ChatEffects.
//Used to toggle auto-scrolling, making it easier to
//copy text and such from rChatHistory.
- bool chatAutoScroll;
+ bool chatAutoScroll = true;
//Stores residents who have spoken Name and Key
//used for printing key to text (and later things).
Hashtable userHash = new Hashtable();
+ IMwin[] arrIM = new IMwin[4];
+ public int tabCount;
public ChatScreen(winLogin Load)
{
winLog = Load;
+ winCht = this;
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
@@ -110,12 +114,16 @@ namespace SLChat
this.toolStrip = new System.Windows.Forms.ToolStrip();
this.toolStripBtnIM = new System.Windows.Forms.ToolStripButton();
this.txtChatEntry = new System.Windows.Forms.TextBox();
+ this.tabMain = new System.Windows.Forms.TabControl();
+ this.tabLocalChat = new System.Windows.Forms.TabPage();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.cntxListNames.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.toolStrip.SuspendLayout();
+ this.tabMain.SuspendLayout();
+ this.tabLocalChat.SuspendLayout();
this.SuspendLayout();
//
// rChatHistory
@@ -125,10 +133,10 @@ namespace SLChat
| System.Windows.Forms.AnchorStyles.Right)));
this.rChatHistory.AutoWordSelection = true;
this.rChatHistory.BackColor = System.Drawing.Color.White;
- this.rChatHistory.Location = new System.Drawing.Point(3, 8);
+ this.rChatHistory.Location = new System.Drawing.Point(3, 3);
this.rChatHistory.Name = "rChatHistory";
this.rChatHistory.ReadOnly = true;
- this.rChatHistory.Size = new System.Drawing.Size(404, 274);
+ this.rChatHistory.Size = new System.Drawing.Size(421, 329);
this.rChatHistory.TabIndex = 3;
this.rChatHistory.Text = "";
this.rChatHistory.LostFocus += new System.EventHandler(this.rChatHistory_LostFocus);
@@ -140,7 +148,7 @@ namespace SLChat
this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.splitContainer1.Location = new System.Drawing.Point(6, 52);
+ this.splitContainer1.Location = new System.Drawing.Point(-4, 6);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
@@ -150,8 +158,8 @@ namespace SLChat
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.listNames);
- this.splitContainer1.Size = new System.Drawing.Size(564, 285);
- this.splitContainer1.SplitterDistance = 410;
+ this.splitContainer1.Size = new System.Drawing.Size(589, 340);
+ this.splitContainer1.SplitterDistance = 427;
this.splitContainer1.TabIndex = 5;
//
// listNames
@@ -161,9 +169,9 @@ namespace SLChat
| System.Windows.Forms.AnchorStyles.Right)));
this.listNames.ContextMenuStrip = this.cntxListNames;
this.listNames.FormattingEnabled = true;
- this.listNames.Location = new System.Drawing.Point(3, 8);
+ this.listNames.Location = new System.Drawing.Point(2, 3);
this.listNames.Name = "listNames";
- this.listNames.Size = new System.Drawing.Size(144, 264);
+ this.listNames.Size = new System.Drawing.Size(152, 329);
this.listNames.TabIndex = 2;
//
// cntxListNames
@@ -204,7 +212,7 @@ namespace SLChat
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
- this.menuStrip1.Size = new System.Drawing.Size(579, 24);
+ this.menuStrip1.Size = new System.Drawing.Size(589, 24);
this.menuStrip1.TabIndex = 4;
this.menuStrip1.Text = "menuStrip1";
//
@@ -248,15 +256,14 @@ namespace SLChat
// aboutToolStripMenuItem
//
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
- this.aboutToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.aboutToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
this.aboutToolStripMenuItem.Text = "&About";
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.AboutToolStripMenuItemClick);
//
// btnSend
//
- this.btnSend.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnSend.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.btnSend.Location = new System.Drawing.Point(491, 343);
+ this.btnSend.Location = new System.Drawing.Point(505, 352);
this.btnSend.Name = "btnSend";
this.btnSend.Size = new System.Drawing.Size(73, 29);
this.btnSend.TabIndex = 1;
@@ -272,7 +279,7 @@ namespace SLChat
this.toolStrip.Location = new System.Drawing.Point(0, 24);
this.toolStrip.Name = "toolStrip";
this.toolStrip.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
- this.toolStrip.Size = new System.Drawing.Size(579, 25);
+ this.toolStrip.Size = new System.Drawing.Size(589, 25);
this.toolStrip.Stretch = true;
this.toolStrip.TabIndex = 6;
this.toolStrip.Text = "toolStrip";
@@ -289,24 +296,44 @@ namespace SLChat
//
// txtChatEntry
//
- this.txtChatEntry.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.txtChatEntry.Location = new System.Drawing.Point(9, 343);
+ this.txtChatEntry.Location = new System.Drawing.Point(3, 357);
+ this.txtChatEntry.MaxLength = 977;
this.txtChatEntry.Name = "txtChatEntry";
- this.txtChatEntry.Size = new System.Drawing.Size(479, 21);
+ this.txtChatEntry.Size = new System.Drawing.Size(496, 21);
this.txtChatEntry.TabIndex = 8;
this.txtChatEntry.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtChatEntry_KeyPress);
//
+ // tabMain
+ //
+ this.tabMain.Appearance = System.Windows.Forms.TabAppearance.Buttons;
+ this.tabMain.Controls.Add(this.tabLocalChat);
+ this.tabMain.Location = new System.Drawing.Point(0, 52);
+ this.tabMain.Name = "tabMain";
+ this.tabMain.SelectedIndex = 0;
+ this.tabMain.Size = new System.Drawing.Size(589, 413);
+ this.tabMain.TabIndex = 9;
+ //
+ // tabLocalChat
+ //
+ this.tabLocalChat.Controls.Add(this.splitContainer1);
+ this.tabLocalChat.Controls.Add(this.txtChatEntry);
+ this.tabLocalChat.Controls.Add(this.btnSend);
+ this.tabLocalChat.Location = new System.Drawing.Point(4, 25);
+ this.tabLocalChat.Name = "tabLocalChat";
+ this.tabLocalChat.Padding = new System.Windows.Forms.Padding(3);
+ this.tabLocalChat.Size = new System.Drawing.Size(581, 384);
+ this.tabLocalChat.TabIndex = 0;
+ this.tabLocalChat.Text = "Local Chat";
+ this.tabLocalChat.UseVisualStyleBackColor = true;
+ //
// ChatScreen
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(579, 393);
- this.Controls.Add(this.txtChatEntry);
+ this.ClientSize = new System.Drawing.Size(589, 462);
this.Controls.Add(this.toolStrip);
- this.Controls.Add(this.btnSend);
- this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.menuStrip1);
+ this.Controls.Add(this.tabMain);
this.MainMenuStrip = this.menuStrip1;
this.MinimumSize = new System.Drawing.Size(400, 300);
this.Name = "ChatScreen";
@@ -320,9 +347,14 @@ namespace SLChat
this.menuStrip1.PerformLayout();
this.toolStrip.ResumeLayout(false);
this.toolStrip.PerformLayout();
+ this.tabMain.ResumeLayout(false);
+ this.tabLocalChat.ResumeLayout(false);
+ this.tabLocalChat.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
+ private System.Windows.Forms.TabPage tabLocalChat;
+ public System.Windows.Forms.TabControl tabMain;
private System.Windows.Forms.ToolStripButton toolStripBtnIM;
private System.Windows.Forms.ToolStrip toolStrip;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
@@ -342,7 +374,7 @@ namespace SLChat
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.SplitContainer splitContainer1;
- public void callLogin(string firstname, string lastname, string password)
+ public void callLogin(string firstname, string lastname, string password, string logLocation)
{
this.Text = "SLChat: "+firstname+" "+lastname;
fname = firstname;
@@ -353,12 +385,14 @@ namespace SLChat
if(firstlog==true)
{
firstlog = false;
- net = new NetCom(firstname, lastname, password, this);
- loginthread = new Thread(new ThreadStart(net.Login));
- loginthread.Start();
+ net = new NetCom(firstname, lastname, password, logLocation, this);
+ //loginthread = new Thread(new ThreadStart(net.Login));
+ //loginthread.Start();
+ net.Login();
}else{
- loginthread = new Thread(new ThreadStart(net.Login));
- loginthread.Start();
+ //loginthread = new Thread(new ThreadStart(net.Login));
+ //loginthread.Start();
+ net.Login();
}
}
@@ -504,10 +538,10 @@ namespace SLChat
if(loggedin==false)
{
//Cleanup thread call just incase.
- if(loginthread.IsAlive)
- {
- loginthread.Abort();
- }
+ //if(loginthread.IsAlive)
+ //{
+ // loginthread.Abort();
+ //}
Application.Exit();
}
//System.Windows.Forms.Application.Exit()
@@ -607,29 +641,7 @@ namespace SLChat
winIM IM = new winIM();
IM.Show();
}
- public delegate void SetStringDel(string s);
- void SetToolStripMenuItemText(string v)
- {
- if (!InvokeRequired)
- {
- loginToolStripMenuItem.Text = v;
- }
- else
- {
- Invoke(new SetStringDel(SetToolStripMenuItemText), new object[] { v });
- }
- }
- void AddToHistory(string v)
- {
- if (!InvokeRequired)
- {
- rChatHistory.Text += v;
- }
- else
- {
- Invoke(new SetStringDel(AddToHistory), new object[] { v });
- }
- }
+
public void ReturnData(string data, int type, string extra1, string extra2)
{
//This is how we get data back from our NetCom.cs file
@@ -640,17 +652,17 @@ namespace SLChat
//Reply Type: Login
if(extra1!="error")
{
- SetToolStripMenuItemText("Logout");
+ loginToolStripMenuItem.Text = "Logout";
//string loginReply = Login(firstname, lastname, password);
//string loginReply = "OMG WHATS: ON YUR FACE?! Yes yes yes cabam shamzaameiawml" + newline;
- AddToHistory(data + newline);
+ rChatHistory.Text += data + newline;
//ChatEffects(loginReply,1);
//string text2 = "Bob Smith: AHWIWEAM W!";
//rChatHistory.Text += text2 + newline;
//ChatEffects(18,loginReply.Length,1);
loggedin = true;
}else if(extra1=="error"){
- AddToHistory(data + newline);
+ rChatHistory.Text += data + newline;
loggedin = false;
}
}else if(type==2){
@@ -660,10 +672,10 @@ namespace SLChat
rChatHistory.Text += data;
loggedin = false;
//Cleanup thread call just incase.
- if(loginthread.IsAlive)
- {
- loginthread.Abort();
- }
+ //if(loginthread.IsAlive)
+ //{
+ // loginthread.Abort();
+ //}
}else if(type==3){
//Reply Type: Chat
@@ -678,6 +690,23 @@ namespace SLChat
//Printing actual chat.
rChatHistory.Text += data;
//ChatEffects(name.Length,output.Length,2);
+ }else if(type==4){
+ //Reply Type: IM
+
+ for(int i=0;i
public partial class winIM
{
+ public static winIM that;
+ RichTextBox rChatThing = new System.Windows.Forms.RichTextBox();
+ IMwin[] arrIM = new IMwin[4];
+ public int tabCount;
+
public winIM()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
-
+ that = this;
//
// TODO: Add constructor code after the InitializeComponent() call.
//
@@ -32,10 +41,137 @@ namespace SLChat
void BtnSendClick(object sender, System.EventArgs e)
{
- string title = "Oz Spade";
- TabPage myTabPage = new TabPage(title);
- tabMain.TabPages.Add(myTabPage);
- myTabPage.Controls.Add(new RichTextBox());
+ for(int i=0;i=0)
+ {
+ arrIM[i].Text(txtIMEntry.Text);
+ }*/
+ }
+
+ void BtnCreateClick(object sender, System.EventArgs e)
+ {
+ CreateTab();
+ }
+
+ public void CreateTab()
+ {
+ int i = tabCount;
+ arrIM[i] = new IMwin();
+ that.txtIMEntry.Text = arrIM.Length.ToString();
+ arrIM[i].Tabs();
+ tabCount++;
+ }
+
+ public class IMwin
+ {
+ public string name;
+
+ public IMwin()
+ {
+
+ }
+
+ public void Tabs()
+ {
+ //that.txtIMEntry.Text = "test";
+ this.tabNext = new System.Windows.Forms.TabPage();
+ this.txtIMThing = new System.Windows.Forms.TextBox();
+ this.btnDel = new System.Windows.Forms.Button();
+ this.btnTes = new System.Windows.Forms.Button();
+ this.tabNext.SuspendLayout();
+ //
+ // tabGroups
+ //
+ this.tabNext.Controls.Add(this.btnTes);
+ this.tabNext.Controls.Add(this.btnDel);
+ this.tabNext.Location = new System.Drawing.Point(4, 22);
+ this.tabNext.Name = "tabNext";
+ this.tabNext.Padding = new System.Windows.Forms.Padding(3);
+ this.tabNext.Size = new System.Drawing.Size(421, 170);
+ this.tabNext.TabIndex = 0;
+ this.tabNext.Text = "Next";
+ this.tabNext.UseVisualStyleBackColor = true;
+ //
+ // txtIMEntry
+ //
+ this.txtIMThing.Location = new System.Drawing.Point(3, 6);
+ this.txtIMThing.Name = "txtIMThing";
+ this.txtIMThing.Size = new System.Drawing.Size(412, 160);
+ this.txtIMThing.TabIndex = 1;
+ //
+ // button1
+ //
+ this.btnDel.Location = new System.Drawing.Point(290, 125);
+ this.btnDel.Name = "btnDel";
+ this.btnDel.Size = new System.Drawing.Size(108, 28);
+ this.btnDel.TabIndex = 1;
+ this.btnDel.Text = "Delete";
+ this.btnDel.UseVisualStyleBackColor = true;
+ this.btnDel.Click += new System.EventHandler(this.BtnDelClick);
+ //
+ // button2
+ //
+ this.btnTes.Location = new System.Drawing.Point(178, 125);
+ this.btnTes.Name = "btnTes";
+ this.btnTes.Size = new System.Drawing.Size(106, 28);
+ this.btnTes.TabIndex = 2;
+ this.btnTes.Text = "Test";
+ this.btnTes.UseVisualStyleBackColor = true;
+ this.btnTes.Click += new System.EventHandler(this.BtnTesClick);
+
+ this.tabNext.Controls.Add(this.txtIMThing);
+ that.tabMain.Controls.Add(this.tabNext);
+ this.tabNext.ResumeLayout(false);
+
+ /*
+ string title = "Oz Spade";
+ TabPage myTabPage = new TabPage(title);
+ tabMain.TabPages.Add(myTabPage);
+ myTabPage.Controls.Add(rChatThing);*/
+ }
+ private System.Windows.Forms.Button btnDel;
+ private System.Windows.Forms.Button btnTes;
+ private System.Windows.Forms.TextBox txtIMThing;
+ private System.Windows.Forms.TabPage tabNext;
+
+ void BtnTesClick(object sender, System.EventArgs e)
+ {
+ name = "Oz Spade";
+ this.tabNext.Text = name;
+ }
+
+ void BtnDelClick(object sender, System.EventArgs e)
+ {
+ that.tabMain.Controls.Remove(this.tabNext);
+ Array.Clear(that.arrIM,that.tabMain.SelectedIndex,1);
+ that.tabCount--;
+ }
+
+ public void Text(string txt)
+ {
+ txtIMThing.Text = txt;
+ if(!this.tabNext.Visible)
+ {
+ this.tabNext.Text = name + " (N)";
+ }else{
+ this.tabNext.Text = name;
+ }
+ }
}
}
}
diff --git a/applications/SLChat/winLogin.cs b/applications/SLChat/winLogin.cs
index 4a503d86..e55389aa 100644
--- a/applications/SLChat/winLogin.cs
+++ b/applications/SLChat/winLogin.cs
@@ -1,4 +1,6 @@
using System;
+using System.IO;
+using System.Security.Cryptography;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
@@ -22,7 +24,6 @@ namespace SLChat
private System.Windows.Forms.StatusBar mainStatusBar;
private System.Windows.Forms.Panel LoginPanel;
- public bool loggedin = false;
private System.Windows.Forms.GroupBox grpLogin;
private System.Windows.Forms.Button btnLogin;
private System.Windows.Forms.TextBox txtfirstname;
@@ -30,14 +31,22 @@ namespace SLChat
private System.Windows.Forms.TextBox txtpassword;
public bool exitApp = false;
public string accountid;
- public bool chatCreated;
- public static ChatScreen winChat;
+ public bool chatCreated; //Used to check if we've created the chat window or not
+ public static ChatScreen winChat; //Easy calling to the chat window.
+ //These are used for our settings loading/saving
+ //to see if we have changed our settings since they were last loaded
+ public string setFirstName;
+ public string setLastName;
+ public string setLLocation; //Login Location
+ public bool setSaveLogin; //Save Login check box
+
public winLogin()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
+
//
// TODO: Add any constructor code after InitializeComponent call
@@ -69,6 +78,11 @@ namespace SLChat
this.mainStatusBar = new System.Windows.Forms.StatusBar();
this.LoginPanel = new System.Windows.Forms.Panel();
this.grpLogin = new System.Windows.Forms.GroupBox();
+ this.button1 = new System.Windows.Forms.Button();
+ this.chkSaveLogin = new System.Windows.Forms.CheckBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.cmbLocation = new System.Windows.Forms.ComboBox();
this.btnCancel = new System.Windows.Forms.Button();
this.txtpassword = new System.Windows.Forms.TextBox();
this.txtlastname = new System.Windows.Forms.TextBox();
@@ -80,9 +94,9 @@ namespace SLChat
//
// mainStatusBar
//
- this.mainStatusBar.Location = new System.Drawing.Point(0, 170);
+ this.mainStatusBar.Location = new System.Drawing.Point(0, 167);
this.mainStatusBar.Name = "mainStatusBar";
- this.mainStatusBar.Size = new System.Drawing.Size(174, 23);
+ this.mainStatusBar.Size = new System.Drawing.Size(312, 23);
this.mainStatusBar.TabIndex = 2;
//
// LoginPanel
@@ -91,33 +105,94 @@ namespace SLChat
this.LoginPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.LoginPanel.Location = new System.Drawing.Point(0, 0);
this.LoginPanel.Name = "LoginPanel";
- this.LoginPanel.Size = new System.Drawing.Size(174, 193);
+ this.LoginPanel.Size = new System.Drawing.Size(312, 190);
this.LoginPanel.TabIndex = 3;
this.LoginPanel.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.LoginPanel_Keypress);
//
// grpLogin
//
this.grpLogin.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.grpLogin.Controls.Add(this.button1);
+ this.grpLogin.Controls.Add(this.chkSaveLogin);
+ this.grpLogin.Controls.Add(this.label2);
+ this.grpLogin.Controls.Add(this.label1);
+ this.grpLogin.Controls.Add(this.cmbLocation);
this.grpLogin.Controls.Add(this.btnCancel);
this.grpLogin.Controls.Add(this.txtpassword);
this.grpLogin.Controls.Add(this.txtlastname);
this.grpLogin.Controls.Add(this.txtfirstname);
this.grpLogin.Controls.Add(this.btnLogin);
this.grpLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.grpLogin.Location = new System.Drawing.Point(12, 4);
+ this.grpLogin.Location = new System.Drawing.Point(2, 3);
this.grpLogin.Name = "grpLogin";
- this.grpLogin.Size = new System.Drawing.Size(150, 160);
+ this.grpLogin.Size = new System.Drawing.Size(307, 160);
this.grpLogin.TabIndex = 0;
this.grpLogin.TabStop = false;
this.grpLogin.Text = "Sign In";
//
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(106, 118);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(39, 34);
+ this.button1.TabIndex = 9;
+ this.button1.Text = "button1";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Visible = false;
+ this.button1.Click += new System.EventHandler(this.Button1Click);
+ //
+ // chkSaveLogin
+ //
+ this.chkSaveLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.chkSaveLogin.Location = new System.Drawing.Point(10, 118);
+ this.chkSaveLogin.Name = "chkSaveLogin";
+ this.chkSaveLogin.Size = new System.Drawing.Size(120, 28);
+ this.chkSaveLogin.TabIndex = 8;
+ this.chkSaveLogin.Text = "Save Login Info";
+ this.chkSaveLogin.UseVisualStyleBackColor = true;
+ //
+ // label2
+ //
+ this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.label2.Location = new System.Drawing.Point(154, 59);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(138, 20);
+ this.label2.TabIndex = 7;
+ this.label2.Text = "Location:";
+ //
+ // label1
+ //
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.label1.Location = new System.Drawing.Point(9, 59);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(138, 20);
+ this.label1.TabIndex = 6;
+ this.label1.Text = "Password:";
+ //
+ // cmbLocation
+ //
+ this.cmbLocation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmbLocation.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cmbLocation.FormattingEnabled = true;
+ this.cmbLocation.Items.AddRange(new object[] {
+ "Home",
+ "Last"});
+ this.cmbLocation.Location = new System.Drawing.Point(153, 80);
+ this.cmbLocation.Name = "cmbLocation";
+ this.cmbLocation.Size = new System.Drawing.Size(140, 24);
+ this.cmbLocation.TabIndex = 3;
+ this.cmbLocation.Text = "Last";
+ //
// btnCancel
//
this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnCancel.Location = new System.Drawing.Point(77, 121);
+ this.btnCancel.Location = new System.Drawing.Point(226, 119);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(66, 33);
- this.btnCancel.TabIndex = 4;
+ this.btnCancel.TabIndex = 5;
this.btnCancel.Text = "&Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancelClick);
@@ -126,7 +201,7 @@ namespace SLChat
//
this.txtpassword.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.txtpassword.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.txtpassword.Location = new System.Drawing.Point(6, 92);
+ this.txtpassword.Location = new System.Drawing.Point(9, 80);
this.txtpassword.Name = "txtpassword";
this.txtpassword.PasswordChar = '*';
this.txtpassword.Size = new System.Drawing.Size(138, 22);
@@ -136,7 +211,7 @@ namespace SLChat
//
this.txtlastname.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.txtlastname.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.txtlastname.Location = new System.Drawing.Point(6, 64);
+ this.txtlastname.Location = new System.Drawing.Point(154, 34);
this.txtlastname.Name = "txtlastname";
this.txtlastname.Size = new System.Drawing.Size(138, 22);
this.txtlastname.TabIndex = 1;
@@ -147,7 +222,7 @@ namespace SLChat
//
this.txtfirstname.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.txtfirstname.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.txtfirstname.Location = new System.Drawing.Point(6, 36);
+ this.txtfirstname.Location = new System.Drawing.Point(9, 34);
this.txtfirstname.Name = "txtfirstname";
this.txtfirstname.Size = new System.Drawing.Size(138, 22);
this.txtfirstname.TabIndex = 0;
@@ -158,31 +233,35 @@ namespace SLChat
//
this.btnLogin.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btnLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnLogin.Location = new System.Drawing.Point(6, 120);
+ this.btnLogin.Location = new System.Drawing.Point(153, 118);
this.btnLogin.Name = "btnLogin";
this.btnLogin.Size = new System.Drawing.Size(65, 34);
- this.btnLogin.TabIndex = 3;
+ this.btnLogin.TabIndex = 4;
this.btnLogin.Text = "&Login";
this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
//
// winLogin
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
- this.ClientSize = new System.Drawing.Size(174, 193);
+ this.ClientSize = new System.Drawing.Size(312, 190);
this.Controls.Add(this.mainStatusBar);
this.Controls.Add(this.LoginPanel);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
- this.MinimumSize = new System.Drawing.Size(182, 223);
+ this.MaximizeBox = false;
this.Name = "winLogin";
this.Text = "SLChat - Login";
+ this.Closing += new System.ComponentModel.CancelEventHandler(this.OnClosing);
this.Load += new System.EventHandler(this.winLogin_Load);
- //TODO: make this.Closing work. See "OnClosing"
- this.Closing += new CancelEventHandler(this.OnClosing);
this.LoginPanel.ResumeLayout(false);
this.grpLogin.ResumeLayout(false);
this.grpLogin.PerformLayout();
this.ResumeLayout(false);
}
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.CheckBox chkSaveLogin;
+ private System.Windows.Forms.ComboBox cmbLocation;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button btnCancel;
#endregion
@@ -196,7 +275,8 @@ namespace SLChat
{
try
{
-
+ //Try to load the login settings.
+ LoadLoginSettings();
}
catch (Exception error)
{
@@ -209,8 +289,26 @@ namespace SLChat
{
//Make sure our fields aren't blank (could possibly be
//handled better to specify which one is blank).
- if(txtlastname.Text != "" & txtfirstname.Text != "" & txtpassword.Text != "")
+ if(txtlastname.Text != "" & txtfirstname.Text != "" & txtpassword.Text != "" & cmbLocation.Text != "")
{
+ //Save our settings on the following conditions:
+ //The user has checked the appropriet checkbox
+ //The content has changed from last being loaded.
+ if(chkSaveLogin.Checked != false)
+ {
+ //If the checkbox is checked
+ if(chkSaveLogin.Checked != setSaveLogin | txtfirstname.Text != setFirstName | txtlastname.Text != setLastName | cmbLocation.Text != setLLocation)
+ {
+ //If there have been any changes from when
+ //the settings were last loaded.
+ SaveLoginSettings();
+ }
+ }else{
+ //If unchecked, delete the login settings
+ //no point in having unused information remain.
+ DeleteLoginSettings();
+ }
+
//Check if we've already created the chatscreen
//and react approprietly.
if(chatCreated==false){
@@ -229,11 +327,12 @@ namespace SLChat
//to login.
if(winChat.loggedin==false)
{
+ string logLocation = cmbLocation.Text.ToLower();
//Why not call Login directly from netcom?
//Well we want winChat to have the easiest access
//to NetCom and creating a bunch of instances
//doesn't seem desirable, so we go through winChat.
- winChat.callLogin(txtfirstname.Text,txtlastname.Text,txtpassword.Text);
+ winChat.callLogin(txtfirstname.Text,txtlastname.Text,txtpassword.Text,logLocation);
winChat.loginVisible = false;
this.Hide();
}
@@ -296,5 +395,202 @@ namespace SLChat
e.Handled = true;
}
}
+
+ public void SaveLoginSettings()
+ {
+ //Saving our login settings
+ //pick whatever filename with .xml extension
+ string filename = "settings.xml";
+
+ XmlDocument xmlDoc = new XmlDocument();
+
+ try
+ {
+ xmlDoc.Load(filename);
+ }
+ catch(System.IO.FileNotFoundException)
+ {
+ //if file is not found, create a new xml file
+ XmlTextWriter xmlWriter = new XmlTextWriter(filename, System.Text.Encoding.UTF8);
+ xmlWriter.Formatting = Formatting.Indented;
+ xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
+ xmlWriter.WriteStartElement("SLChatSettings");
+ //If WriteProcessingInstruction is used as above,
+ //Do not use WriteEndElement() here
+ //xmlWriter.WriteEndElement();
+ //it will cause the <Root> to be <Root />
+ xmlWriter.Close();
+ xmlDoc.Load(filename);
+ }
+
+ XmlNode root = xmlDoc.DocumentElement;
+ XmlNodeList nodeList = xmlDoc.GetElementsByTagName("LoginSettings");
+ if(nodeList.Count!=0){
+ root.RemoveChild(nodeList[0]);
+ }
+ XmlElement loginSettings = xmlDoc.CreateElement("LoginSettings");
+ string strSettings = ""+
+ ""+
+ ""+
+ "";
+ loginSettings.InnerXml = strSettings;
+
+ root.AppendChild(loginSettings);
+
+ xmlDoc.Save(filename);
+ }
+
+ public void LoadLoginSettings()
+ {
+ //Load our login settings.
+
+ string filename = "settings.xml";
+
+ XmlDocument xmlDoc = new XmlDocument();
+
+ try
+ {
+ xmlDoc.Load(filename);
+ }
+ catch(System.IO.FileNotFoundException)
+ {
+ return;
+ }
+
+ XmlNode root = xmlDoc.DocumentElement;
+ XmlNodeList nodeList = xmlDoc.GetElementsByTagName("LoginSettings");
+ if(nodeList.Count!=0){
+ XmlNodeList nodeSLogin = xmlDoc.GetElementsByTagName("SaveLoginInfo");
+ if(nodeSLogin[0].Attributes["value"].InnerText=="true"){
+ //There may be a better way to get the values of each element
+ //but I could not find one. - Oz
+ XmlNodeList nodeFName = xmlDoc.GetElementsByTagName("FirstName");
+ txtfirstname.Text = setFirstName = nodeFName[0].Attributes["value"].InnerText;
+ XmlNodeList nodeLName = xmlDoc.GetElementsByTagName("LastName");
+ txtlastname.Text = setLastName = nodeLName[0].Attributes["value"].InnerText;
+ XmlNodeList nodeLLocation = xmlDoc.GetElementsByTagName("LoginLocation");
+ cmbLocation.Text = setLLocation = nodeLLocation[0].Attributes["value"].InnerText;
+ chkSaveLogin.Checked = setSaveLogin = true;
+ }else{
+ chkSaveLogin.Checked = setSaveLogin = false;
+
+ }
+ }
+
+ }
+
+ public void DeleteLoginSettings()
+ {
+ //Delete our login settings.
+
+ string filename = "settings.xml";
+
+ XmlDocument xmlDoc = new XmlDocument();
+
+ try
+ {
+ xmlDoc.Load(filename);
+ }
+ catch(System.IO.FileNotFoundException)
+ {
+ return;
+ }
+ XmlNode root = xmlDoc.DocumentElement;
+ XmlNodeList nodeList = xmlDoc.GetElementsByTagName("LoginSettings");
+ if(nodeList.Count!=0){
+ //Simply remove that NodeList that composes our "LoginSettings"
+ root.RemoveChild(nodeList[0]);
+ }
+ xmlDoc.Save(filename);
+ }
+
+ /*
+ * The below commented out code was basicly saving the login
+ * settings to a .ini (or really a .txt file), I'm leaving this
+ * incase its needed for now, although this seems unlikely.
+ * - Oz
+ *
+ public void SaveSettings()
+ {
+ string path = @"settings.ini";
+ // This text is added only once to the file.
+ if (!File.Exists(path))
+ {
+ // Create a file to write to.
+ using (StreamWriter sw = File.CreateText(path))
+ {
+ sw.WriteLine("SLChat Settings");
+ }
+ }
+
+ //string s = txtpassword.Text;
+ //SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
+ //sha1.ComputeHash(s);
+
+ // This text is always added, making the file longer over time
+ // if it is not deleted.
+ using (StreamWriter sw = File.AppendText(path))
+ {
+ sw.WriteLine("savesettings="+chkSaveLogin.CheckState.ToString());
+ sw.WriteLine("firstname="+txtfirstname.Text);
+ sw.WriteLine("lastname="+txtlastname.Text);
+ //sw.WriteLine("password="+sha1);
+ sw.WriteLine("loginlocation="+cmbLocation.Text);
+ }
+ }
+
+ public void DeleteSettings()
+ {
+ string path = @"settings.ini";
+ FileInfo file = new FileInfo(path);
+ if(File.Exists(path))
+ {
+ file.Delete();
+ }
+ }
+
+
+ public void LoadSettings()
+ {
+ string path = @"settings.ini";
+ // This text is added only once to the file.
+ if (File.Exists(path))
+ {
+ // Open the file to read from.
+ using (StreamReader sr = File.OpenText(path))
+ {
+ string s = "";
+ while ((s = sr.ReadLine()) != null)
+ {
+ char cher = '=';
+ string[] split = s.Split(cher);
+ if(split[0]=="savesettings")
+ {
+ if(split[1]=="Checked")
+ {
+ chkSaveLogin.Checked = true;
+ }
+ }else if(split[0]=="firstname")
+ {
+ txtfirstname.Text = split[1];
+ }else if(split[0]=="lastname"){
+ txtlastname.Text = split[1];
+ }else if(split[0]=="loginlocation"){
+ cmbLocation.Text = split[1];
+ }
+ }
+ }
+ }
+ }*/
+
+ //This is a hidden button used to call the IM window
+ //which I'm messing around with, this was so I didn't have
+ //to login to load an IM window each time. This serves no
+ //actual purpose other than testing. - Oz
+ void Button1Click(object sender, System.EventArgs e)
+ {
+ winIM IM = new winIM();
+ IM.Show();
+ }
}
}