ObjectUpdate

Message Layout

{
	ObjectUpdate High 12 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		U16	}
		{	PathEnd			U16	}
		{	PathScaleX		U8	}
		{	PathScaleY		U8	}
		{	PathShearX		U8	}
		{	PathShearY		U8	}
		{	PathTwist		S8	}
		{	PathTwistBegin		S8	}
		{ 	PathRadiusOffset 	S8	}
		{ 	PathTaperX		S8	}
		{	PathTaperY		S8	}
		{	PathRevolutions		U8	}
		{	PathSkew		S8	}
		{	ProfileBegin	U16	}
		{	ProfileEnd		U16	}
		{	ProfileHollow	U16	}

		{	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  }
		{	OwnerID			LLUUID	}
		{	Gain            F32		}
		{	Flags           U8		}
		{	Radius          F32		}

		{	JointType 			U8		}
		{	JointPivot			LLVector3	}
		{	JointAxisOrAnchor 	LLVector3	}
	}
}

Usage and Notes

RegionData

RegionHandle is the global coordinates of the simulator compressed and encoded into a single U64, with each coordinate taking up 32 bits. It can be visualized as XXXX|YYYY where each character is 8bits.

TimeDilation is used to update the regions time dilation. It is cast to a F32 and then divided by 65535. for actual value.

ObjectData


Generic Object Properties

This section explains details about properties that are unpacked and parsed regardless of PCode. These apply to most PCode types.

CRC is copied directly from each message and is not checked, appears to be used for object cache only.

Changing material type sets the task as having moved, undamped.

If generic data exists, it is cleared and replaced when an update is received. (Data field.)

ObjectData Format

The contents of ObjectData are dependent on the size of the field.

Size of 76 bytes

Angular velocity is ignored and set to 0. Falls through to 60 bytes parser.

Size of 60 bytes

32 bit precision update.

Size of 48 bytes

Falls through to 32 bytes parser.

Size of 32 bytes

16 bit precision update.

Size of 16

8 bit precision update.

Attached Sounds

Attached sounds use the following fields within the ObjectUpdate packet.

Attached sounds volume is only adjusted when an object update it received for that specific task. Is not affected by adjusting SFX volume or muting SFX. (BUG?)

OwnerID is used to allow muting of attached sounds and particles only.