Current Sim Capabilities
Introduction
In the current protocols, there appear to be at least 2 kinds of capabilities: Sim capabilities and Sub-Capabilities obtained from the Sim Capability. The current login protocols return a "seed-capability" which is actually the Sim-Capability of the sim the avatar enters upon performing a full login. This will change with the new login protocols.
The following slides are from an October, 2007 presentation by Tess Linden. Though it was an internal Linden Lab presentation, the slides may be useful for those residents trying to learn Second Life's messaging and capability systems. Message_System_and_Capabilities
Accessing Capabilities
A typical capability is of the form: https://sim1234.agni.lindenlab.com:12345/cap/UUID
In the current client, sim capabilities are accessed via an https request of the form:
https request {POST, URL:port, path, body, header}
where
- • URL:port is of the form: sim1234.agni.lindenlab.com:12345;
- • path is of the form: /cap/UUID;
- • body is an xml-encoded LLSD array of the form: <llsd><array><string>request1</string><string>request2</string></array></llsd>
- • Header is of the form: "content-type": "application/llsd+xml";
The response from a sim capability transaction is an xml-encoded LLSD dictionary with key, value pairs in the form:
- • <llsd><map><key>request1</key><string>Capability1</string><key>request2</key><string>Capability2</string</map></llsd>
sub-capabilities apparently use the same protocol, but the body of the https request is dependent on which capability is used, as is the result.
Sub Capabilities
The following are among the sub-capabilities returned by the sim cap. Each has its own protocols which will be discussed in separate pages:
- AbuseCategories
- AcceptFriendship
- AcceptGroupInvite
- AgentExperiences
- AgentPreferences
- AgentProfile
- AgentState
- AttachmentResources
- AvatarPickerSearch
- AvatarRenderInfo
- CharacterProperties
- ChatSessionRequest
- CopyInventoryFromNotecard
- CreateInventoryCategory
- DeclineFriendship
- DeclineGroupInvite
- DirectDelivery
- DispatchRegionInfo
- EnvironmentSettings
- EstateAccess
- EstateChangeInfo
- EventQueueGet
- ExperiencePreferences
- ExperienceQuery
- ExtEnvironment
- FacebookConnect (Removed)
- FetchInventory2
- FetchInventoryDescendents2
- FetchLib2
- FetchLibDescendents2
- FindExperienceByName
- FlickrConnect (Removed)
- GetAdminExperiences
- GetCreatorExperiences
- GetDisplayNames
- GetExperienceInfo
- GetExperiences
- GetMesh
- GetMesh2
- GetMetadata
- GetObjectCost
- GetObjectPhysicsData
- GetTexture
- GroupAPIv1
- GroupExperiences
- GroupMemberData
- GroupProposalBallot
- HomeLocation
- IncrementCOFVersion
- InterestList
- InventoryAPIv1
- InventoryAPIv3
- InventoryThumbnailUpload
- IsExperienceAdmin
- IsExperienceContributor
- LandResources
- LibraryAPIv3
- LSLSyntax
- MapLayer
- MapLayerGod
- MeshUploadFlag
- ModifyMaterialParams
- NavMeshGenerationStatus
- NewFileAgentInventory
- ObjectAnimation
- ObjectMedia
- ObjectMediaNavigate
- ObjectNavMeshProperties
- ParcelPropertiesUpdate
- ParcelVoiceInfoRequest
- ProductInfoRequest
- ProvisionVoiceAccountRequest
- ReadOfflineMsgs
- RegionExperiences
- RegionObjects
- RemoteParcelRequest
- RenderMaterials
- RequestTextureDownload
- ResourceCostSelected
- RetrieveNavMeshSrc
- ScriptPermissions
- SearchStatRequest
- SearchStatTracking
- SendPostcard
- SendUserReport
- SendUserReportWithScreenshot
- ServerReleaseNotes
- SetDisplayName
- SimConsoleAsync
- SimulatorFeatures
- StartGroupProposal
- TerrainNavMeshProperties
- TextureStats
- TwitterConnect (Removed)
- UntrustedSimulatorMessage
- UpdateAgentInformation
- UpdateAgentLanguage
- UpdateAvatarAppearance
- UpdateExperience
- UpdateGestureAgentInventory
- UpdateGestureTaskInventory
- UpdateMaterialAgentInventory
- UpdateMaterialTaskInventory
- UpdateNotecardAgentInventory
- UpdateNotecardTaskInventory
- UpdateScriptAgent
- UpdateScriptTask
- UpdateSettingsAgentInventory
- UpdateSettingsTaskInventory
- UploadAgentProfileImage
- UploadBakedTexture
- UserInfo
- ViewerAsset
- ViewerBenefits
- ViewerMetrics
- ViewerStartAuction
- ViewerStats
External Links
[1] -- EventQueueGet - libsecondlife - Wayback Machine
[2] -- MapLayer - libsecondlife
[3] -- NewAgentInventory - libsecondlife
[4] -- UpdateNotecardAgentInventory - libsecondlife