ObjectProperties

From Second Life Wiki
Jump to: navigation, search

Message Layout

{
	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	}
	}
}

Usage and Notes

Sent to client in reply to ObjectSelect

Aggregate perms are packed very oddly. Each permission takes two bits to represent.

Aggregate Permissions bitmasks

AND with mask to determine if permission is present.

Bitmask Permission
00000011b Copy
00001100b Modify
00110000b Transfer

Sale Type value

Value Sale Type Comment
0x00 FS_NOT Item is not for sale, price is ignored.
0x01 FS_ORIGINAL Original items ownership is transferred to buyer when bought.
0x02 FS_COPY Copy of item is given to buyer with next owner permissions when bought.
0x03 FS_CONTENTS The contents of the item are given to the buyer as a folder when bought.

Category is up to 4 different values packed as one. One category is stored per byte. 0x|AA|BB|CC|DD| Have yet to find with anything other than 0. Looks deprecated.

SitName is the string to replace the text in the Sit pie menu location. TouchName is the string to replace the test in the Touch pie menu location.

TextureID is a list of UUIDs for textures contained within the object. Number of items is determined by dividing data size by the size of a standard UUID.

Official Client Behavior

Mentions CreationDate as a U64 pulled just after GroupID is pulled. (Could not find it in the current template. Was this dropped?)

Refreshes the contents of all tool dialogs and pie menus upon being received. Refreshes buy in pie menu. Enables Take Copy in pie menu.

Object inventory is dirtied if InventorySerial does not match the previously received value.

TextureID values are saved only if aggregate texture permissions allow both copy and transfer.