From Second Life Wiki
Revision as of 22:36, 2 July 2008 by Zwagoth Klaar (talk | contribs) (Added client behavior details.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Message Layout

	ChatFromSimulator Low Trusted Unencoded
		ChatData			Single
		{	FromName		Variable 1	}
		{	SourceID		LLUUID		}	
		{	OwnerID			LLUUID		}	
		{	SourceType		U8			}
		{	ChatType		U8			}
		{	Audible			U8			}
		{	Position		LLVector3	}
		{	Message			Variable 2	}	

Usage and Notes

With this message the simulator notifies clients of new chat messages.

If Audible is 0, the message may be blank (because you're too far away).

SourceType values

SourceType Value Notes
System 0 Chat from the grid or simulator
Agent 1 Chat from another avatar
Object 2 Chat from an object

Audible values

Audible Value Notes
Not -1 Is not audible at all.
Barely 0 Is close to being out of range.
Fully 1 Is in range.

ChatType values

ChatType Value Notes
Whisper 0 5m radius - "Test User whispers: message"
Normal 1 10/20m radius - "Test User: message"
Shout 2 100m radius - "Test User shouts: message"
Say 3 Not sure if this is used for anything - "Test User say, message"
StartTyping 4 Lets others know you are typing
StopTyping 5 Lets others know you've stopped typing
Debug 6 Chat from debug channel
OwnerSay 8 Private chat message from an object owned by you; this chat is only sent to you

Official Viewer Behavior

Check to determine if self owned is based on SourceID.

"Swirly things" are only created if an object chats on a non debug channel. (always white)

Position is never read from message block.

ChatType 3 is undefined.

Logging and display truth table:

// F		F	F	F		*		Yes		Yes
// F		F	F	T		*		Yes		Yes
// F		F	T	F		*		No		No
// F		F	T	T		*		No		No
// F		T	F	F		*		No		Yes
// F		T	F	T		*		Yes		Yes
// F		T	T	F		*		No		No
// F		T	T	T		*		No		No
// T		*	*	*		F		Yes		Yes

Todo: make a pretty table.