Difference between revisions of "UUID"
(Notecard's UUID is unstable) |
|||
Line 6: | Line 6: | ||
== The UUID and Secondlife == | == The UUID and Secondlife == | ||
In Secondlife every object and every avatar has an UUID and they can be split up into | In Secondlife every object and every avatar has an UUID and they can be split up into three groups: Asset, Instance and Account UUID's. | ||
SL uses Version 4 type UUIDs as defined in {{RFC|4122|target=section-4.1.3}}, though there are some that are not V4. | SL uses Version 4 type UUIDs as defined in {{RFC|4122|target=section-4.1.3}}, though there are some that are not V4. | ||
=== | === Inventory === | ||
* | Inventory as it is thought of is really only a permissions layer. The inventory item, is really just a wrapper around an asset. The wrapper contains the permissions, creator & owner of the asset and a link to the asset. The link is the asset UUID. | ||
=== Asset UUIDs === | |||
Asset UUIDs are used as the handle for all types that can be inventory items. The asset UUID is what is returned by [[llGetInventoryKey]] and by the "Copy UUID" feature in the client. Full (asset) permissions are required to get the UUID. Assets are immutable (they cannot be modified); when the user is editing an asset, they are in fact creating new assets. The appearance is that modified inventory items are assigned new UUIDs. | |||
* Animation | |||
* Gestures | |||
* Objects | * Objects | ||
* Notecards | |||
* Scripts | * Scripts | ||
* Sounds | |||
* Textures (including sculpty textures) | * Textures (including sculpty textures) | ||
---- | ---- | ||
* | *When an Object is modified in-world, it is not assigned a new asset UUID until it is derezzed, copied back to inventory or during sim-state save. Modifying an instance of an asset will not update other instances or inventory copies. | ||
* | *Brand new notecards are just asset wrappers without an asset. That is to say, new notecards have an asset UUID of [[NULL_KEY]]. The asset isn't created until the notecard is edited and then saved. | ||
* The UUID | |||
=== Instance UUIDs === | |||
When an object is rezzed, all of the prims (including the root prim) are assigned temporary instance UUIDs. If the object is derezzed and rerezzed or a duplicate is rezzed; new instance UUIDs are assigned. The instance UUID is what is returned by [[llGetKey]] and other functions. | |||
=== Account UUIDs === | |||
Account UUIDs are assigned during the creation process and never change. They are generally public information. | |||
* Avatar - Public | |||
* Group - Public or private depending on setup. | |||
The avatar UUID is returned by [[llGetOwner]] and other functions. | |||
=== | === Misc UUIDs === | ||
Parcels and Regions also have UUIDs. This information is technically available to the public but there is no interface to get at it directly. | |||
Revision as of 03:53, 1 June 2009
Help Portal: |
Avatar | Bug Fixes | Communication | Community | Glossary | Land & Sim | Multimedia | Navigation | Object | Video Tutorials | Viewer | Wiki | Misc |
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
UUID is an abbreviation for Universally Unique Identifier. It is a 128-bit (16 byte) value which is generated in such a way as to make collisions very unlikely. They are often represented as a string of 32 hex characters with four dashes interspersed. See Wikipedia on UUIDs for more information.
In LSL they are stored in the key variable type (which is a specialized form of a string).
The UUID and Secondlife
In Secondlife every object and every avatar has an UUID and they can be split up into three groups: Asset, Instance and Account UUID's.
SL uses Version 4 type UUIDs as defined in RFC-4122, though there are some that are not V4.
Inventory
Inventory as it is thought of is really only a permissions layer. The inventory item, is really just a wrapper around an asset. The wrapper contains the permissions, creator & owner of the asset and a link to the asset. The link is the asset UUID.
Asset UUIDs
Asset UUIDs are used as the handle for all types that can be inventory items. The asset UUID is what is returned by llGetInventoryKey and by the "Copy UUID" feature in the client. Full (asset) permissions are required to get the UUID. Assets are immutable (they cannot be modified); when the user is editing an asset, they are in fact creating new assets. The appearance is that modified inventory items are assigned new UUIDs.
- Animation
- Gestures
- Objects
- Notecards
- Scripts
- Sounds
- Textures (including sculpty textures)
- When an Object is modified in-world, it is not assigned a new asset UUID until it is derezzed, copied back to inventory or during sim-state save. Modifying an instance of an asset will not update other instances or inventory copies.
- Brand new notecards are just asset wrappers without an asset. That is to say, new notecards have an asset UUID of NULL_KEY. The asset isn't created until the notecard is edited and then saved.
Instance UUIDs
When an object is rezzed, all of the prims (including the root prim) are assigned temporary instance UUIDs. If the object is derezzed and rerezzed or a duplicate is rezzed; new instance UUIDs are assigned. The instance UUID is what is returned by llGetKey and other functions.
Account UUIDs
Account UUIDs are assigned during the creation process and never change. They are generally public information.
- Avatar - Public
- Group - Public or private depending on setup.
The avatar UUID is returned by llGetOwner and other functions.
Misc UUIDs
Parcels and Regions also have UUIDs. This information is technically available to the public but there is no interface to get at it directly.