ChatFromSimulator
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).
Length of Message
is stored as little-endian.
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:
// LINDEN BUSY MUTED OWNED_BY_YOU TASK DISPLAY STORE IN HISTORY // 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.