diff --git a/applications/SLChat/bin/Debug/keywords.txt b/applications/SLChat/bin/Debug/keywords.txt index 1c2ab208..38256ca3 100644 --- a/applications/SLChat/bin/Debug/keywords.txt +++ b/applications/SLChat/bin/Debug/keywords.txt @@ -1,1511 +1,1512 @@ -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 +SeedCapability +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 +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 +MuteType +IMViaEMail +StartExpungeProcessAck +RentPrice +GenericMessage +ChildAgentAlive +SpawnPointBlock +AttachmentBlock +RecallData +OfficerData +GroupOfficer +ObjectMaterial +OwnerName +AvatarNotesReply +CacheID +OwnerMask +TransferInventoryAck diff --git a/applications/SLChat/bin/Debug/protocol.txt b/applications/SLChat/bin/Debug/protocol.txt index e3e5f36c..43d91382 100644 --- a/applications/SLChat/bin/Debug/protocol.txt +++ b/applications/SLChat/bin/Debug/protocol.txt @@ -1,10232 +1,10245 @@ -// 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 } - } -} +// 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 } + { SeedCapability Variable 2 } // URL + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + ObjectData Single + { PCode U8 } + { 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Position LLVector3 } // region + } +} + + +// ObjectScale +// viewer -> simulator +{ + ObjectScale Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Scale LLVector3 } + } +} + + +// ObjectRotation +// viewer -> simulator +{ + ObjectRotation Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Rotation LLQuaternion } + } +} + + +// ObjectFlagUpdate +// viewer -> simulator +{ + ObjectFlagUpdate Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { MediaURL Variable 1 } + { TextureEntry Variable 2 } + } +} + + +{ + ObjectMaterial Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Material U8 } + } +} + + +{ + ObjectShape Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + { SessionID 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 } + { SessionID 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { SaleType U8 } // U8 -> EForSale + { SalePrice S32 } + } +} + + +// set object names +{ + ObjectName Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { Name Variable 1 } + } +} + +// set object descriptions +{ + ObjectDescription Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { Description Variable 1 } + } +} + +// set object category +{ + ObjectCategory Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + } +} + +// Import an object +{ + ObjectImport Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { FolderID LLUUID } + } + { + AssetData Single + { FileID LLUUID 1 } + { ObjectName Variable 1 } + { Description Variable 1 } + } +} + +// 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 } + { SeedCapability Variable 2 } // URL + } + { + 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + Script Single + { ObjectID LLUUID } + { ItemID LLUUID } + { Running BOOL } + } +} + +// ScriptReset - causes a script to reset +{ + ScriptReset Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + Script Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + UpdateData Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + InventoryData Single + { LocalID U32 } + { ItemID LLUUID } + } +} + +{ + MoveTaskInventory Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + { FolderID LLUUID } + } + { + InventoryData Single + { LocalID U32 } + { ItemID LLUUID } + } +} + +{ + RequestTaskInventory Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + InventoryData Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + UpdateBlock Single + { 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 Trusted 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 Trusted 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 -> simulator +// simulator -> dataserver +// reliable +{ + CreateGroupRequest Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 + } +} + +// UpdateGroupInfo +// viewer -> simulator +// simulator -> dataserver +// reliable +{ + UpdateGroupInfo Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 -> simulator -> dataserver +// reliable +{ + JoinGroupRequest Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + GroupData Single + { GroupID LLUUID } + } +} + +// 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 } + { SessionID LLUUID } + } + { + GroupData Single + { GroupID LLUUID } + } +} + +// InviteGroupResponse +// simulator -> dataserver +// reliable +{ + InviteGroupResponse Low Trusted Unencoded + { + InviteData Single + { AgentID LLUUID } + { InviteeID LLUUID } + { GroupID LLUUID } + { Officer BOOL } + { MembershipFee S32 } + } +} + +// 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/SLIRC/bin/Debug/keywords.txt b/applications/SLIRC/bin/Debug/keywords.txt index 1c2ab208..38256ca3 100644 --- a/applications/SLIRC/bin/Debug/keywords.txt +++ b/applications/SLIRC/bin/Debug/keywords.txt @@ -1,1511 +1,1512 @@ -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 +SeedCapability +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 +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 +MuteType +IMViaEMail +StartExpungeProcessAck +RentPrice +GenericMessage +ChildAgentAlive +SpawnPointBlock +AttachmentBlock +RecallData +OfficerData +GroupOfficer +ObjectMaterial +OwnerName +AvatarNotesReply +CacheID +OwnerMask +TransferInventoryAck diff --git a/applications/SLIRC/bin/Debug/protocol.txt b/applications/SLIRC/bin/Debug/protocol.txt index e3e5f36c..43d91382 100644 --- a/applications/SLIRC/bin/Debug/protocol.txt +++ b/applications/SLIRC/bin/Debug/protocol.txt @@ -1,10232 +1,10245 @@ -// 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 } - } -} +// 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 } + { SeedCapability Variable 2 } // URL + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + ObjectData Single + { PCode U8 } + { 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Position LLVector3 } // region + } +} + + +// ObjectScale +// viewer -> simulator +{ + ObjectScale Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Scale LLVector3 } + } +} + + +// ObjectRotation +// viewer -> simulator +{ + ObjectRotation Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Rotation LLQuaternion } + } +} + + +// ObjectFlagUpdate +// viewer -> simulator +{ + ObjectFlagUpdate Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { MediaURL Variable 1 } + { TextureEntry Variable 2 } + } +} + + +{ + ObjectMaterial Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Material U8 } + } +} + + +{ + ObjectShape Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + { SessionID 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 } + { SessionID 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { SaleType U8 } // U8 -> EForSale + { SalePrice S32 } + } +} + + +// set object names +{ + ObjectName Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { Name Variable 1 } + } +} + +// set object descriptions +{ + ObjectDescription Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { Description Variable 1 } + } +} + +// set object category +{ + ObjectCategory Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + } +} + +// Import an object +{ + ObjectImport Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { FolderID LLUUID } + } + { + AssetData Single + { FileID LLUUID 1 } + { ObjectName Variable 1 } + { Description Variable 1 } + } +} + +// 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 } + { SeedCapability Variable 2 } // URL + } + { + 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + Script Single + { ObjectID LLUUID } + { ItemID LLUUID } + { Running BOOL } + } +} + +// ScriptReset - causes a script to reset +{ + ScriptReset Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + Script Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + UpdateData Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + InventoryData Single + { LocalID U32 } + { ItemID LLUUID } + } +} + +{ + MoveTaskInventory Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + { FolderID LLUUID } + } + { + InventoryData Single + { LocalID U32 } + { ItemID LLUUID } + } +} + +{ + RequestTaskInventory Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + InventoryData Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + UpdateBlock Single + { 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 Trusted 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 Trusted 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 -> simulator +// simulator -> dataserver +// reliable +{ + CreateGroupRequest Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 + } +} + +// UpdateGroupInfo +// viewer -> simulator +// simulator -> dataserver +// reliable +{ + UpdateGroupInfo Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 -> simulator -> dataserver +// reliable +{ + JoinGroupRequest Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + GroupData Single + { GroupID LLUUID } + } +} + +// 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 } + { SessionID LLUUID } + } + { + GroupData Single + { GroupID LLUUID } + } +} + +// InviteGroupResponse +// simulator -> dataserver +// reliable +{ + InviteGroupResponse Low Trusted Unencoded + { + InviteData Single + { AgentID LLUUID } + { InviteeID LLUUID } + { GroupID LLUUID } + { Officer BOOL } + { MembershipFee S32 } + } +} + +// 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/SLIRC/bin/Release/Meebey.SmartIrc4net.dll b/applications/SLIRC/bin/Release/Meebey.SmartIrc4net.dll deleted file mode 100644 index 66285b5e..00000000 Binary files a/applications/SLIRC/bin/Release/Meebey.SmartIrc4net.dll and /dev/null differ diff --git a/applications/SLIRC/bin/Release/Meebey.SmartIrc4net.pdb b/applications/SLIRC/bin/Release/Meebey.SmartIrc4net.pdb deleted file mode 100644 index 6316130a..00000000 Binary files a/applications/SLIRC/bin/Release/Meebey.SmartIrc4net.pdb and /dev/null differ diff --git a/applications/SLIRC/bin/Release/Meebey.SmartIrc4net.xml b/applications/SLIRC/bin/Release/Meebey.SmartIrc4net.xml deleted file mode 100644 index b924702f..00000000 --- a/applications/SLIRC/bin/Release/Meebey.SmartIrc4net.xml +++ /dev/null @@ -1,661 +0,0 @@ - - - - Meebey.SmartIrc4net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Initializes the message queues, read and write thread - - - - - - - Reconnects to the server - - - If there was no active connection - - - The connection failed - - - If there is already an active connection - - - - - Disconnects from the server - - - If there was no active connection - - - - - Raised when a \r\n terminated line is read from the socket - - - - - Raised when a \r\n terminated line is written to the socket - - - - - Raised before the connect attempt - - - - - Raised on successful connect - - - - - Raised before the connection is closed - - - - - Raised when the connection is closed - - - - - Raised when the connection got into an error state - - - - - - The current address of the connection - - - - - The address list of the connection - - - - - Which port is used for the connection - - - - - By default nothing is done when the library looses the connection - to the server. - Default: false - - - true, if the library should reconnect on lost connections - false, if the library should not take care of it - - - - - If the library should retry to connect when the connection fails. - Default: false - - - true, if the library should retry to connect - false, if the library should not retry - - - - - Delay between retry attempts in Connect() in seconds. - Default: 30 - - - - - To prevent flooding the IRC server, it's required to delay each - message, given in milliseconds. - Default: 200 - - - - - On successful registration on the IRC network, this is set to true. - - - - - On successful connect to the IRC server, this is set to true. - - - - - The SmartIrc4net version number - - - - - The full SmartIrc4net version - - - - - Encoding which is used for reading and writing to the socket - Default: ISO-8859-1 - - - - - Timeout in seconds for receiving data from the socket - Default: 600 - - - - - Timeout in seconds for sending data to the socket - Default: 600 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Enables/disables the active channel sync feature - - true, to enable - - - - Sets the ctcp version that should be replied on ctcp version request - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Checks if the passed nickname is valid according to the RFC - Use with caution, many IRC servers are not conform with this! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/SLIRC/bin/Release/SLIRC.exe b/applications/SLIRC/bin/Release/SLIRC.exe deleted file mode 100644 index 732f1f7f..00000000 Binary files a/applications/SLIRC/bin/Release/SLIRC.exe and /dev/null differ diff --git a/applications/SLIRC/bin/Release/SLIRC.pdb b/applications/SLIRC/bin/Release/SLIRC.pdb deleted file mode 100644 index c25feaa6..00000000 Binary files a/applications/SLIRC/bin/Release/SLIRC.pdb and /dev/null differ diff --git a/applications/SLIRC/bin/Release/libsecondlife.dll b/applications/SLIRC/bin/Release/libsecondlife.dll deleted file mode 100644 index c8ace110..00000000 Binary files a/applications/SLIRC/bin/Release/libsecondlife.dll and /dev/null differ diff --git a/applications/SLProxy/bin/Debug/keywords.txt b/applications/SLProxy/bin/Debug/keywords.txt index 30a49a13..38256ca3 100644 --- a/applications/SLProxy/bin/Debug/keywords.txt +++ b/applications/SLProxy/bin/Debug/keywords.txt @@ -1,3 +1,4 @@ +SeedCapability X Y Z diff --git a/applications/SLProxy/bin/Debug/protocol.txt b/applications/SLProxy/bin/Debug/protocol.txt index b4b200e1..43d91382 100644 --- a/applications/SLProxy/bin/Debug/protocol.txt +++ b/applications/SLProxy/bin/Debug/protocol.txt @@ -8569,14 +8569,15 @@ sim -> dataserver //----------------------------------------------------------------------------- // CreateGroupRequest -// viewer -> userserver -// userserver -> dataserver +// viewer -> simulator +// simulator -> dataserver // reliable { CreateGroupRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } + { SessionID LLUUID } } { GroupData Single @@ -8623,15 +8624,16 @@ sim -> dataserver } } -// CreateGroupRequest -// viewer -> userserver -// userserver -> dataserver +// UpdateGroupInfo +// viewer -> simulator +// simulator -> dataserver // reliable { UpdateGroupInfo Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } + { SessionID LLUUID } } { GroupData Single @@ -8662,19 +8664,18 @@ sim -> dataserver } // JoinGroupRequest -// viewer -> userserver -> dataserver +// viewer -> simulator -> dataserver // reliable { JoinGroupRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } + { SessionID LLUUID } } { GroupData Single { GroupID LLUUID } - { Officer U8 } - { MembershipFee S32 } } } @@ -8736,6 +8737,7 @@ sim -> dataserver { AgentData Single { AgentID LLUUID } + { SessionID LLUUID } } { GroupData Single @@ -8743,21 +8745,18 @@ sim -> dataserver } } -// InviteGroupRequest -// viewer -> userserver -> dataserver +// InviteGroupResponse +// simulator -> dataserver // reliable { - InviteGroupRequest Low NotTrusted Unencoded - { - AgentData Single - { AgentID LLUUID } // UUID of inviting agent - } + InviteGroupResponse Low Trusted Unencoded { InviteData Single - { AgentName Variable 1 } // string + { AgentID LLUUID } { InviteeID LLUUID } { GroupID LLUUID } - { Officer BOOL } // BOOL + { Officer BOOL } + { MembershipFee S32 } } } diff --git a/applications/SecondSuite/bin/Debug/keywords.txt b/applications/SecondSuite/bin/Debug/keywords.txt index 2dfc041e..38256ca3 100644 --- a/applications/SecondSuite/bin/Debug/keywords.txt +++ b/applications/SecondSuite/bin/Debug/keywords.txt @@ -1,3 +1,4 @@ +SeedCapability X Y Z @@ -56,7 +57,6 @@ MapLayerReply CompoundMsgID CameraConstraint DownloadTotals -ChatMessage ErrorValue GenCounter FrozenData @@ -193,6 +193,7 @@ AgentPresenceResponse CharterMember EdgeData NameData +RegionPushOverride SimName UserReport DownloadPriority @@ -229,7 +230,6 @@ Arc NewFolderID RegionX RegionY -UUIDSoundTriggerFar RequestData Msg Top @@ -469,9 +469,6 @@ ObjectCount RegionPresenceRequestByHandle RezSingleAttachmentFromInv ChildAgentUpdate -XPos -YPos -ZPos ToID ViewerPort IsOwnerGroup @@ -634,12 +631,14 @@ TransferPriority EventID FromAgentId Type +ChatType ReportData LeaderBoardData RequestBlock GrantData DetachAttachmentIntoInv ParcelDisableObjects +Sections GodLevel StartGroupIM PayPriceReply @@ -828,17 +827,16 @@ ClassifiedInfoRequest ParcelInfoRequest ParcelObjectOwnersRequest TeleportLandmarkRequest -CommandID +EventInfoRequest MovedIntoSimulator ChatFromSimulator -EventInfoRequest PickInfoRequest -DirPeopleQuery MoneyBalanceRequest +DirPeopleQuery GroupElectionInfoRequest GroupMembersRequest -TextureID GroupOfficersAndMembersRequest +TextureID OldFolderID UserInfoRequest LandCollidersRequest @@ -968,7 +966,6 @@ BodyRotation StartGroupElection SearchRegions Ignore -ConversationData AnimationData StatID ItemID @@ -1143,6 +1140,7 @@ VoteItem ObjectRotation SitRotation SnapSelection +SoundTrigger TerrainRaiseLimit Quorum TokenBlock @@ -1252,6 +1250,7 @@ ObjectSelect ForceObjectSelect Price SunDirection +FromName ChangeInventoryItemFlags Force TransactionBlock @@ -1276,6 +1275,7 @@ SysOS Notes AvatarID FounderID +EndPointID StipendEstimate LocationLookAt Sound @@ -1296,6 +1296,7 @@ Count South Entry ObjectUpdateCompressed +MuteFlags Group AgentPause InternalScriptMail @@ -1492,6 +1493,7 @@ DeRezAck TakeControls DirLandReply SpaceLocationTeleportReply +MuteType IMViaEMail StartExpungeProcessAck RentPrice @@ -1507,4 +1509,4 @@ OwnerName AvatarNotesReply CacheID OwnerMask -TransferInventoryAck \ No newline at end of file +TransferInventoryAck diff --git a/applications/SecondSuite/bin/Debug/protocol.txt b/applications/SecondSuite/bin/Debug/protocol.txt index bb39cfc5..43d91382 100644 --- a/applications/SecondSuite/bin/Debug/protocol.txt +++ b/applications/SecondSuite/bin/Debug/protocol.txt @@ -1 +1,10245 @@ -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 } + { SeedCapability Variable 2 } // URL + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + ObjectData Single + { PCode U8 } + { 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Position LLVector3 } // region + } +} + + +// ObjectScale +// viewer -> simulator +{ + ObjectScale Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Scale LLVector3 } + } +} + + +// ObjectRotation +// viewer -> simulator +{ + ObjectRotation Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Rotation LLQuaternion } + } +} + + +// ObjectFlagUpdate +// viewer -> simulator +{ + ObjectFlagUpdate Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { MediaURL Variable 1 } + { TextureEntry Variable 2 } + } +} + + +{ + ObjectMaterial Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { ObjectLocalID U32 } + { Material U8 } + } +} + + +{ + ObjectShape Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + { SessionID 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 } + { SessionID 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 } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { SaleType U8 } // U8 -> EForSale + { SalePrice S32 } + } +} + + +// set object names +{ + ObjectName Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { Name Variable 1 } + } +} + +// set object descriptions +{ + ObjectDescription Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + ObjectData Variable + { LocalID U32 } + { Description Variable 1 } + } +} + +// set object category +{ + ObjectCategory Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 } + } +} + +// Import an object +{ + ObjectImport Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { FolderID LLUUID } + } + { + AssetData Single + { FileID LLUUID 1 } + { ObjectName Variable 1 } + { Description Variable 1 } + } +} + +// 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 } + { SeedCapability Variable 2 } // URL + } + { + 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + Script Single + { ObjectID LLUUID } + { ItemID LLUUID } + { Running BOOL } + } +} + +// ScriptReset - causes a script to reset +{ + ScriptReset Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + Script Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + UpdateData Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + InventoryData Single + { LocalID U32 } + { ItemID LLUUID } + } +} + +{ + MoveTaskInventory Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + { FolderID LLUUID } + } + { + InventoryData Single + { LocalID U32 } + { ItemID LLUUID } + } +} + +{ + RequestTaskInventory Low NotTrusted Unencoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + InventoryData Single + { 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 + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + { GroupID LLUUID } + } + { + UpdateBlock Single + { 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 Trusted 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 Trusted 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 -> simulator +// simulator -> dataserver +// reliable +{ + CreateGroupRequest Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 + } +} + +// UpdateGroupInfo +// viewer -> simulator +// simulator -> dataserver +// reliable +{ + UpdateGroupInfo Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID 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 -> simulator -> dataserver +// reliable +{ + JoinGroupRequest Low NotTrusted Zerocoded + { + AgentData Single + { AgentID LLUUID } + { SessionID LLUUID } + } + { + GroupData Single + { GroupID LLUUID } + } +} + +// 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 } + { SessionID LLUUID } + } + { + GroupData Single + { GroupID LLUUID } + } +} + +// InviteGroupResponse +// simulator -> dataserver +// reliable +{ + InviteGroupResponse Low Trusted Unencoded + { + InviteData Single + { AgentID LLUUID } + { InviteeID LLUUID } + { GroupID LLUUID } + { Officer BOOL } + { MembershipFee S32 } + } +} + +// 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/snowcrash/snowcrash.sln b/applications/snowcrash/snowcrash.sln similarity index 100% rename from snowcrash/snowcrash.sln rename to applications/snowcrash/snowcrash.sln diff --git a/snowcrash/snowcrash/MainFrame.cpp b/applications/snowcrash/snowcrash/MainFrame.cpp similarity index 100% rename from snowcrash/snowcrash/MainFrame.cpp rename to applications/snowcrash/snowcrash/MainFrame.cpp diff --git a/snowcrash/snowcrash/MainFrame.h b/applications/snowcrash/snowcrash/MainFrame.h similarity index 100% rename from snowcrash/snowcrash/MainFrame.h rename to applications/snowcrash/snowcrash/MainFrame.h diff --git a/snowcrash/snowcrash/TrayIconImpl.h b/applications/snowcrash/snowcrash/TrayIconImpl.h similarity index 100% rename from snowcrash/snowcrash/TrayIconImpl.h rename to applications/snowcrash/snowcrash/TrayIconImpl.h diff --git a/snowcrash/snowcrash/resource.h b/applications/snowcrash/snowcrash/resource.h similarity index 100% rename from snowcrash/snowcrash/resource.h rename to applications/snowcrash/snowcrash/resource.h diff --git a/snowcrash/snowcrash/small.ico b/applications/snowcrash/snowcrash/small.ico similarity index 100% rename from snowcrash/snowcrash/small.ico rename to applications/snowcrash/snowcrash/small.ico diff --git a/snowcrash/snowcrash/snowcrash.cpp b/applications/snowcrash/snowcrash/snowcrash.cpp similarity index 100% rename from snowcrash/snowcrash/snowcrash.cpp rename to applications/snowcrash/snowcrash/snowcrash.cpp diff --git a/snowcrash/snowcrash/snowcrash.h b/applications/snowcrash/snowcrash/snowcrash.h similarity index 100% rename from snowcrash/snowcrash/snowcrash.h rename to applications/snowcrash/snowcrash/snowcrash.h diff --git a/snowcrash/snowcrash/snowcrash.ico b/applications/snowcrash/snowcrash/snowcrash.ico similarity index 100% rename from snowcrash/snowcrash/snowcrash.ico rename to applications/snowcrash/snowcrash/snowcrash.ico diff --git a/snowcrash/snowcrash/snowcrash.rc b/applications/snowcrash/snowcrash/snowcrash.rc similarity index 100% rename from snowcrash/snowcrash/snowcrash.rc rename to applications/snowcrash/snowcrash/snowcrash.rc diff --git a/snowcrash/snowcrash/snowcrash.vcproj b/applications/snowcrash/snowcrash/snowcrash.vcproj similarity index 100% rename from snowcrash/snowcrash/snowcrash.vcproj rename to applications/snowcrash/snowcrash/snowcrash.vcproj diff --git a/snowcrash/snowcrash/stdafx.cpp b/applications/snowcrash/snowcrash/stdafx.cpp similarity index 100% rename from snowcrash/snowcrash/stdafx.cpp rename to applications/snowcrash/snowcrash/stdafx.cpp diff --git a/snowcrash/snowcrash/stdafx.h b/applications/snowcrash/snowcrash/stdafx.h similarity index 100% rename from snowcrash/snowcrash/stdafx.h rename to applications/snowcrash/snowcrash/stdafx.h diff --git a/snowcrash/snowflake/Block.cpp b/applications/snowcrash/snowflake/Block.cpp similarity index 100% rename from snowcrash/snowflake/Block.cpp rename to applications/snowcrash/snowflake/Block.cpp diff --git a/snowcrash/snowflake/Block.h b/applications/snowcrash/snowflake/Block.h similarity index 100% rename from snowcrash/snowflake/Block.h rename to applications/snowcrash/snowflake/Block.h diff --git a/snowcrash/snowflake/BlockList.cpp b/applications/snowcrash/snowflake/BlockList.cpp similarity index 100% rename from snowcrash/snowflake/BlockList.cpp rename to applications/snowcrash/snowflake/BlockList.cpp diff --git a/snowcrash/snowflake/BlockList.h b/applications/snowcrash/snowflake/BlockList.h similarity index 100% rename from snowcrash/snowflake/BlockList.h rename to applications/snowcrash/snowflake/BlockList.h diff --git a/snowcrash/snowflake/Config.cpp b/applications/snowcrash/snowflake/Config.cpp similarity index 100% rename from snowcrash/snowflake/Config.cpp rename to applications/snowcrash/snowflake/Config.cpp diff --git a/snowcrash/snowflake/Config.h b/applications/snowcrash/snowflake/Config.h similarity index 100% rename from snowcrash/snowflake/Config.h rename to applications/snowcrash/snowflake/Config.h diff --git a/snowcrash/snowflake/MainFrame.cpp b/applications/snowcrash/snowflake/MainFrame.cpp similarity index 100% rename from snowcrash/snowflake/MainFrame.cpp rename to applications/snowcrash/snowflake/MainFrame.cpp diff --git a/snowcrash/snowflake/MainFrame.h b/applications/snowcrash/snowflake/MainFrame.h similarity index 100% rename from snowcrash/snowflake/MainFrame.h rename to applications/snowcrash/snowflake/MainFrame.h diff --git a/snowcrash/snowflake/Message.cpp b/applications/snowcrash/snowflake/Message.cpp similarity index 100% rename from snowcrash/snowflake/Message.cpp rename to applications/snowcrash/snowflake/Message.cpp diff --git a/snowcrash/snowflake/Message.h b/applications/snowcrash/snowflake/Message.h similarity index 100% rename from snowcrash/snowflake/Message.h rename to applications/snowcrash/snowflake/Message.h diff --git a/snowcrash/snowflake/Sequence.cpp b/applications/snowcrash/snowflake/Sequence.cpp similarity index 100% rename from snowcrash/snowflake/Sequence.cpp rename to applications/snowcrash/snowflake/Sequence.cpp diff --git a/snowcrash/snowflake/Sequence.h b/applications/snowcrash/snowflake/Sequence.h similarity index 100% rename from snowcrash/snowflake/Sequence.h rename to applications/snowcrash/snowflake/Sequence.h diff --git a/snowcrash/snowflake/SequenceList.cpp b/applications/snowcrash/snowflake/SequenceList.cpp similarity index 100% rename from snowcrash/snowflake/SequenceList.cpp rename to applications/snowcrash/snowflake/SequenceList.cpp diff --git a/snowcrash/snowflake/SequenceList.h b/applications/snowcrash/snowflake/SequenceList.h similarity index 100% rename from snowcrash/snowflake/SequenceList.h rename to applications/snowcrash/snowflake/SequenceList.h diff --git a/snowcrash/snowflake/Server.cpp b/applications/snowcrash/snowflake/Server.cpp similarity index 100% rename from snowcrash/snowflake/Server.cpp rename to applications/snowcrash/snowflake/Server.cpp diff --git a/snowcrash/snowflake/Server.h b/applications/snowcrash/snowflake/Server.h similarity index 100% rename from snowcrash/snowflake/Server.h rename to applications/snowcrash/snowflake/Server.h diff --git a/snowcrash/snowflake/ServerList.cpp b/applications/snowcrash/snowflake/ServerList.cpp similarity index 100% rename from snowcrash/snowflake/ServerList.cpp rename to applications/snowcrash/snowflake/ServerList.cpp diff --git a/snowcrash/snowflake/ServerList.h b/applications/snowcrash/snowflake/ServerList.h similarity index 100% rename from snowcrash/snowflake/ServerList.h rename to applications/snowcrash/snowflake/ServerList.h diff --git a/snowcrash/snowflake/Var.cpp b/applications/snowcrash/snowflake/Var.cpp similarity index 100% rename from snowcrash/snowflake/Var.cpp rename to applications/snowcrash/snowflake/Var.cpp diff --git a/snowcrash/snowflake/Var.h b/applications/snowcrash/snowflake/Var.h similarity index 100% rename from snowcrash/snowflake/Var.h rename to applications/snowcrash/snowflake/Var.h diff --git a/snowcrash/snowflake/keywords.cpp b/applications/snowcrash/snowflake/keywords.cpp similarity index 100% rename from snowcrash/snowflake/keywords.cpp rename to applications/snowcrash/snowflake/keywords.cpp diff --git a/snowcrash/snowflake/keywords.h b/applications/snowcrash/snowflake/keywords.h similarity index 100% rename from snowcrash/snowflake/keywords.h rename to applications/snowcrash/snowflake/keywords.h diff --git a/snowcrash/snowflake/snowflake.cpp b/applications/snowcrash/snowflake/snowflake.cpp similarity index 100% rename from snowcrash/snowflake/snowflake.cpp rename to applications/snowcrash/snowflake/snowflake.cpp diff --git a/snowcrash/snowflake/snowflake.h b/applications/snowcrash/snowflake/snowflake.h similarity index 100% rename from snowcrash/snowflake/snowflake.h rename to applications/snowcrash/snowflake/snowflake.h diff --git a/snowcrash/snowflake/snowflake.vcproj b/applications/snowcrash/snowflake/snowflake.vcproj similarity index 100% rename from snowcrash/snowflake/snowflake.vcproj rename to applications/snowcrash/snowflake/snowflake.vcproj diff --git a/snowcrash/snowflake/stdafx.cpp b/applications/snowcrash/snowflake/stdafx.cpp similarity index 100% rename from snowcrash/snowflake/stdafx.cpp rename to applications/snowcrash/snowflake/stdafx.cpp diff --git a/snowcrash/snowflake/stdafx.h b/applications/snowcrash/snowflake/stdafx.h similarity index 100% rename from snowcrash/snowflake/stdafx.h rename to applications/snowcrash/snowflake/stdafx.h diff --git a/libsecondlife-cs/bin/Debug/keywords.txt b/libsecondlife-cs/bin/Debug/keywords.txt index 30a49a13..38256ca3 100644 --- a/libsecondlife-cs/bin/Debug/keywords.txt +++ b/libsecondlife-cs/bin/Debug/keywords.txt @@ -1,3 +1,4 @@ +SeedCapability X Y Z diff --git a/libsecondlife-cs/bin/Debug/protocol.txt b/libsecondlife-cs/bin/Debug/protocol.txt index b4b200e1..43d91382 100644 --- a/libsecondlife-cs/bin/Debug/protocol.txt +++ b/libsecondlife-cs/bin/Debug/protocol.txt @@ -8569,14 +8569,15 @@ sim -> dataserver //----------------------------------------------------------------------------- // CreateGroupRequest -// viewer -> userserver -// userserver -> dataserver +// viewer -> simulator +// simulator -> dataserver // reliable { CreateGroupRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } + { SessionID LLUUID } } { GroupData Single @@ -8623,15 +8624,16 @@ sim -> dataserver } } -// CreateGroupRequest -// viewer -> userserver -// userserver -> dataserver +// UpdateGroupInfo +// viewer -> simulator +// simulator -> dataserver // reliable { UpdateGroupInfo Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } + { SessionID LLUUID } } { GroupData Single @@ -8662,19 +8664,18 @@ sim -> dataserver } // JoinGroupRequest -// viewer -> userserver -> dataserver +// viewer -> simulator -> dataserver // reliable { JoinGroupRequest Low NotTrusted Zerocoded { AgentData Single { AgentID LLUUID } + { SessionID LLUUID } } { GroupData Single { GroupID LLUUID } - { Officer U8 } - { MembershipFee S32 } } } @@ -8736,6 +8737,7 @@ sim -> dataserver { AgentData Single { AgentID LLUUID } + { SessionID LLUUID } } { GroupData Single @@ -8743,21 +8745,18 @@ sim -> dataserver } } -// InviteGroupRequest -// viewer -> userserver -> dataserver +// InviteGroupResponse +// simulator -> dataserver // reliable { - InviteGroupRequest Low NotTrusted Unencoded - { - AgentData Single - { AgentID LLUUID } // UUID of inviting agent - } + InviteGroupResponse Low Trusted Unencoded { InviteData Single - { AgentName Variable 1 } // string + { AgentID LLUUID } { InviteeID LLUUID } { GroupID LLUUID } - { Officer BOOL } // BOOL + { Officer BOOL } + { MembershipFee S32 } } }